Browse Source

2026-07-28

异常规则配置
master
fengyuan_yang 2 months ago
parent
commit
6cd81c4fcc
  1. 27
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  2. 4
      src/main/java/com/gaotao/modules/sys/entity/SysSceneExceptionRuleConditionEntity.java
  3. 4
      src/main/java/com/gaotao/modules/sys/entity/SysSceneExceptionRuleEntity.java
  4. 12
      src/main/java/com/gaotao/modules/sys/service/impl/SysSceneExceptionRuleServiceImpl.java
  5. 14
      src/main/resources/mapper/sys/SysSceneExceptionRuleMapper.xml

27
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -3758,6 +3758,9 @@ public class ScheduleServiceImpl implements ScheduleService {
List<SplitRollMetricContext> metricContextList = buildSplitRollMetricContexts(inData);
for (SysSceneExceptionRuleEntity rule : ruleList) {
if (!matchesTriggerWorkCenter(rule.getTriggerWorkCenter(), currentWorkCenterNo)) {
continue;
}
SysSceneExceptionRuleConditionEntity query = new SysSceneExceptionRuleConditionEntity();
query.setSite(rule.getSite());
query.setBuNo(rule.getBuNo());
@ -3766,9 +3769,6 @@ public class ScheduleServiceImpl implements ScheduleService {
if (CollectionUtils.isEmpty(conditionList)) {
continue;
}
if (!containsWorkCenterForRule(conditionList, currentWorkCenterNo)) {
continue;
}
Map<String, List<SysSceneExceptionRuleConditionEntity>> childMap = new LinkedHashMap<>();
List<SysSceneExceptionRuleConditionEntity> rootList = new ArrayList<>();
@ -3792,12 +3792,6 @@ public class ScheduleServiceImpl implements ScheduleService {
continue;
}
for (SysSceneExceptionRuleConditionEntity child : childList) {
String triggerWorkCenter = StringUtils.hasText(child.getTriggerWorkCenter())
? child.getTriggerWorkCenter()
: root.getTriggerWorkCenter();
if (!matchesTriggerWorkCenter(triggerWorkCenter, currentWorkCenterNo)) {
continue;
}
if (!isConditionMatched(child, metricMap)) {
continue;
}
@ -4194,21 +4188,6 @@ public class ScheduleServiceImpl implements ScheduleService {
}
}
private boolean containsWorkCenterForRule(List<SysSceneExceptionRuleConditionEntity> conditionList, String workCenterNo) {
if (CollectionUtils.isEmpty(conditionList) || !StringUtils.hasText(workCenterNo)) {
return false;
}
for (SysSceneExceptionRuleConditionEntity condition : conditionList) {
if (condition == null) {
continue;
}
if (matchesTriggerWorkCenter(condition.getTriggerWorkCenter(), workCenterNo)) {
return true;
}
}
return false;
}
private boolean matchesTriggerWorkCenter(String triggerWorkCenter, String workCenterNo) {
if (!StringUtils.hasText(triggerWorkCenter) || !StringUtils.hasText(workCenterNo)) {
return false;

4
src/main/java/com/gaotao/modules/sys/entity/SysSceneExceptionRuleConditionEntity.java

@ -37,10 +37,6 @@ public class SysSceneExceptionRuleConditionEntity extends QueryPage {
* 异常代码 / 异常单
*/
private String triggerEvent;
/**
* 触发工序加工中心多个用分号分隔
*/
private String triggerWorkCenter;
private String createBy;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

4
src/main/java/com/gaotao/modules/sys/entity/SysSceneExceptionRuleEntity.java

@ -33,6 +33,10 @@ public class SysSceneExceptionRuleEntity extends QueryPage {
* Y: 启用 N: 禁用
*/
private String enableFlag;
/**
* 触发工序加工中心多个用分号分隔
*/
private String triggerWorkCenter;
private String userName;
private String createBy;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

12
src/main/java/com/gaotao/modules/sys/service/impl/SysSceneExceptionRuleServiceImpl.java

@ -54,6 +54,10 @@ public class SysSceneExceptionRuleServiceImpl implements SysSceneExceptionRuleSe
if (StringUtils.isBlank(data.getApplyButton())) {
throw new RuntimeException("应用按钮不能为空");
}
data.setTriggerWorkCenter(normalizeTriggerWorkCenter(data.getTriggerWorkCenter()));
if (StringUtils.isBlank(data.getTriggerWorkCenter())) {
throw new RuntimeException("触发工序不能为空");
}
TransNoControl transNo = transNoControlMapper.getTransNo(data.getSite(), TRANS_TYPE, data.getBuNo());
if (transNo == null || StringUtils.isBlank(transNo.getNewTransNo())) {
throw new RuntimeException("规则编码生成失败,请先在TransNoControl维护trans_type=" + TRANS_TYPE);
@ -80,6 +84,10 @@ public class SysSceneExceptionRuleServiceImpl implements SysSceneExceptionRuleSe
if (StringUtils.isBlank(data.getApplyButton())) {
throw new RuntimeException("应用按钮不能为空");
}
data.setTriggerWorkCenter(normalizeTriggerWorkCenter(data.getTriggerWorkCenter()));
if (StringUtils.isBlank(data.getTriggerWorkCenter())) {
throw new RuntimeException("触发工序不能为空");
}
data.setEnableFlag(StringUtils.isBlank(data.getEnableFlag()) ? "Y" : data.getEnableFlag());
data.setUpdateBy(getCurrentUserName());
sysSceneExceptionRuleMapper.updateRule(data);
@ -184,10 +192,6 @@ public class SysSceneExceptionRuleServiceImpl implements SysSceneExceptionRuleSe
if (StringUtils.isBlank(data.getForceType())) {
throw new RuntimeException("是否强制不能为空");
}
data.setTriggerWorkCenter(normalizeTriggerWorkCenter(data.getTriggerWorkCenter()));
if (StringUtils.isBlank(data.getTriggerWorkCenter())) {
throw new RuntimeException("触发工序不能为空");
}
boolean isRootCondition = StringUtils.isBlank(data.getParentConditionNo());
if (isRootCondition) {
data.setTriggerEvent("");

14
src/main/resources/mapper/sys/SysSceneExceptionRuleMapper.xml

@ -12,6 +12,7 @@
apply_page,
apply_button,
enable_flag,
trigger_work_center,
create_by,
create_date,
update_by,
@ -45,6 +46,7 @@
apply_page,
apply_button,
enable_flag,
trigger_work_center,
create_by,
create_date,
update_by,
@ -60,9 +62,9 @@
<insert id="saveRule">
INSERT INTO sys_scene_exception_rule
(site, bu_no, rule_code, rule_name, apply_page, apply_button, enable_flag, create_by, create_date, update_by, update_date)
(site, bu_no, rule_code, rule_name, apply_page, apply_button, enable_flag, trigger_work_center, create_by, create_date, update_by, update_date)
VALUES
(#{site}, #{buNo}, #{ruleCode}, #{ruleName}, #{applyPage}, #{applyButton}, #{enableFlag}, #{createBy}, GETDATE(), #{updateBy}, GETDATE())
(#{site}, #{buNo}, #{ruleCode}, #{ruleName}, #{applyPage}, #{applyButton}, #{enableFlag}, #{triggerWorkCenter}, #{createBy}, GETDATE(), #{updateBy}, GETDATE())
</insert>
<update id="updateRule">
@ -72,6 +74,7 @@
apply_page = #{applyPage},
apply_button = #{applyButton},
enable_flag = #{enableFlag},
trigger_work_center = #{triggerWorkCenter},
update_by = #{updateBy},
update_date = GETDATE()
WHERE site = #{site}
@ -109,7 +112,6 @@
c.responsibility_dept,
ISNULL(sr.role_name, c.responsibility_dept) AS responsibility_dept_name,
c.trigger_event,
c.trigger_work_center,
c.create_by,
c.create_date,
c.update_by,
@ -142,7 +144,6 @@
c.responsibility_dept,
ISNULL(sr.role_name, c.responsibility_dept) AS responsibility_dept_name,
c.trigger_event,
c.trigger_work_center,
c.create_by,
c.create_date,
c.update_by,
@ -169,11 +170,11 @@
INSERT INTO sys_scene_exception_rule_condition
(site, bu_no, rule_code, condition_no, parent_condition_no, relation_field, compare_symbol,
condition_param, force_type, warning_level, animation_effect, responsibility_dept, trigger_event,
trigger_work_center, create_by, create_date, update_by, update_date)
create_by, create_date, update_by, update_date)
VALUES
(#{site}, #{buNo}, #{ruleCode}, #{conditionNo}, #{parentConditionNo}, #{relationField}, #{compareSymbol},
#{conditionParam}, #{forceType}, #{warningLevel}, #{animationEffect}, #{responsibilityDept}, #{triggerEvent},
#{triggerWorkCenter}, #{createBy}, GETDATE(), #{updateBy}, GETDATE())
#{createBy}, GETDATE(), #{updateBy}, GETDATE())
</insert>
<update id="updateCondition">
@ -188,7 +189,6 @@
animation_effect = #{animationEffect},
responsibility_dept = #{responsibilityDept},
trigger_event = #{triggerEvent},
trigger_work_center = #{triggerWorkCenter},
update_by = #{updateBy},
update_date = GETDATE()
WHERE site = #{site}

Loading…
Cancel
Save