策略优化

parent cf8215e1
......@@ -1510,11 +1510,6 @@ public class GeneticDecoder {
return OperationScheduleResult.success(null);
}
if (startTime == 0 && islockMachineTime) {
FileHelper.writeLogFile(String.format(
"排产结果从基准时间开始,正常写入result,订单:%s,工序:%d,设备:%d",
operation.getOrderCode(), operation.getId(), machine.getId()));
}
int endTime = geneDetails.stream()
.mapToInt(ScheduleResultDetail::getEndTime)
.max()
......
......@@ -63,27 +63,16 @@ public class UserStrategyRuleServiceImpl extends ServiceImpl<UserStrategyRuleMap
String source = getSource(params);
String ruleId = getRuleId(params);
String userRuleId = "USER".equalsIgnoreCase(source) ? ruleId : getString(params, "userRuleId");
Long baseRuleId = resolveBaseRuleId(params, source, ruleId);
UserStrategyRule userRule = null;
if (StringUtils.hasText(userRuleId)) {
userRule = this.getById(userRuleId);
if (userRule == null || !userId.equals(userRule.getUserid()) || isDeleted(userRule.getIsdeleted())) {
throw new RuntimeException("用户策略不存在");
}
}
if (userRule == null) {
userRule = findUserRule(userId, baseRuleId);
if (baseRuleId == null) {
throw new RuntimeException("baseRuleId不能为空");
}
if (baseRuleId == null && userRule != null) {
baseRuleId = userRule.getBaseRuleId();
}
StrategyRule globalRule = findGlobalRule(baseRuleId);
if (baseRuleId == null && globalRule != null) {
baseRuleId = globalRule.getId();
UserStrategyRule userRule = findUserRule(userId, baseRuleId);
StrategyRule globalRule = strategyRuleService.getById(baseRuleId);
if (globalRule == null || isDeleted(globalRule.getIsDeleted())) {
throw new RuntimeException("baseRuleId不存在");
}
boolean newUserRule = userRule == null;
......@@ -105,9 +94,12 @@ public class UserStrategyRuleServiceImpl extends ServiceImpl<UserStrategyRuleMap
userRule.setName(resolveName(params, globalRule, newUserRule));
userRule.setForwardScheduling(toJson(params.get("forwardScheduling"), globalRule == null ? null : globalRule.getForwardScheduling()));
userRule.setKpiConfig(toJson(params.get("kpiConfig"), null));
userRule.setIsDefault(getLong(params, "isDefault") == null ? 0L : getLong(params, "isDefault"));
userRule.setIsDefault(1L);
this.saveOrUpdate(userRule);
boolean saved = this.saveOrUpdate(userRule);
if (!saved) {
throw new RuntimeException("UserStrategyRule save failed");
}
return buildUserResult(userRule);
}
......@@ -202,6 +194,8 @@ public class UserStrategyRuleServiceImpl extends ServiceImpl<UserStrategyRuleMap
Map<String, Object> item = new HashMap<>();
item.put("id", "GLOBAL:" + rule.getId());
item.put("source", "GLOBAL");
item.put("userRuleId", null);
item.put("baseRuleId", rule.getId());
item.put("ruleId", rule.getId());
item.put("name", rule.getName());
item.put("globalRuleId", rule.getId());
......@@ -214,6 +208,8 @@ public class UserStrategyRuleServiceImpl extends ServiceImpl<UserStrategyRuleMap
Map<String, Object> item = new HashMap<>();
item.put("id", "USER:" + rule.getId());
item.put("source", "USER");
item.put("userRuleId", rule.getId());
item.put("baseRuleId", rule.getBaseRuleId());
item.put("ruleId", rule.getId());
item.put("name", rule.getName());
item.put("isDefault", rule.getIsDefault());
......@@ -418,7 +414,11 @@ public class UserStrategyRuleServiceImpl extends ServiceImpl<UserStrategyRuleMap
}
Long baseRuleId = getLong(params, "baseRuleId");
// 前端保存策略时可能传 referenceId;只有纯数字时才兼容成基础策略 ID,UUID 行引用要忽略。
return baseRuleId == null ? getLongIfNumeric(params, "referenceId") : baseRuleId;
if (baseRuleId != null) {
return baseRuleId;
}
Long referenceId = getLongIfNumeric(params, "referenceId");
return referenceId == null ? getLongIfNumeric(params, "reference") : referenceId;
}
private Long getLongIfNumeric(Map<String, Object> params, String key) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment