Browse Source

2026-07-17

异常规则配置
master
fengyuan_yang 2 months ago
parent
commit
9d7b3c7784
  1. 5
      src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java
  2. 19
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  3. 4
      src/main/java/com/gaotao/modules/sys/entity/SysSceneExceptionRuleConditionEntity.java
  4. 9
      src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml
  5. 98
      src/main/resources/mapper/sys/SysSceneExceptionRuleMapper.xml

5
src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java

@ -68,4 +68,9 @@ public class ScheduleTodoMessageEntity implements Serializable {
* 是否强制锁定标识Y/N * 是否强制锁定标识Y/N
*/ */
private String lockFlag; private String lockFlag;
/**
* 责任部门编码roleId
*/
private String responsibilityDept;
} }

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

@ -3647,7 +3647,7 @@ public class ScheduleServiceImpl implements ScheduleService {
} }
fillSplitRuleMatchResult(resultMap, rule, child); fillSplitRuleMatchResult(resultMap, rule, child);
resultMap.put("matchedRollIndex", metricContext.rollIndex); resultMap.put("matchedRollIndex", metricContext.rollIndex);
saveSplitRuleMatchedData(inData, String.valueOf(resultMap.get("action")));
saveSplitRuleMatchedData(inData, String.valueOf(resultMap.get("action")), child);
return resultMap; return resultMap;
} }
} }
@ -3878,6 +3878,7 @@ public class ScheduleServiceImpl implements ScheduleService {
resultMap.put("conditionNo", condition.getConditionNo()); resultMap.put("conditionNo", condition.getConditionNo());
resultMap.put("triggerEvent", triggerEvent); resultMap.put("triggerEvent", triggerEvent);
resultMap.put("forceType", forceType); resultMap.put("forceType", forceType);
resultMap.put("responsibilityDept", condition.getResponsibilityDept());
if ("异常代码".equals(triggerEvent)) { if ("异常代码".equals(triggerEvent)) {
resultMap.put("action", ACTION_OPEN_DEFECT); resultMap.put("action", ACTION_OPEN_DEFECT);
@ -3904,10 +3905,13 @@ public class ScheduleServiceImpl implements ScheduleService {
resultMap.put("message", "触发异常规则,但触发事件未配置。"); resultMap.put("message", "触发异常规则,但触发事件未配置。");
} }
private void saveSplitRuleMatchedData(SearchScheduleData inData, String action) {
private void saveSplitRuleMatchedData(SearchScheduleData inData,
String action,
SysSceneExceptionRuleConditionEntity matchedCondition) {
String responsibilityDept = matchedCondition == null ? "" : StringUtils.trimWhitespace(matchedCondition.getResponsibilityDept());
if (ACTION_LOCK_PAGE.equals(action)) { if (ACTION_LOCK_PAGE.equals(action)) {
saveSplitRuleCacheData(inData); saveSplitRuleCacheData(inData);
saveSplitRuleTodoMessage(inData, true, false, false);
saveSplitRuleTodoMessage(inData, true, false, false, responsibilityDept);
return; return;
} }
if (ACTION_OPEN_DEFECT.equals(action) || ACTION_OPEN_DOWNTIME.equals(action)) { if (ACTION_OPEN_DEFECT.equals(action) || ACTION_OPEN_DOWNTIME.equals(action)) {
@ -3916,7 +3920,7 @@ public class ScheduleServiceImpl implements ScheduleService {
// 异常截卷流程等同产量报告 + 换班结转提示类规则也需要缓存当前数据 // 异常截卷流程等同产量报告 + 换班结转提示类规则也需要缓存当前数据
saveSplitRuleCacheData(inData); saveSplitRuleCacheData(inData);
} }
saveSplitRuleTodoMessage(inData, false, true, true);
saveSplitRuleTodoMessage(inData, false, true, true, responsibilityDept);
} }
} }
@ -3967,7 +3971,11 @@ public class ScheduleServiceImpl implements ScheduleService {
} }
} }
private void saveSplitRuleTodoMessage(SearchScheduleData inData, boolean lockRequired, boolean operated, boolean audited) {
private void saveSplitRuleTodoMessage(SearchScheduleData inData,
boolean lockRequired,
boolean operated,
boolean audited,
String responsibilityDept) {
if (inData == null || !StringUtils.hasText(inData.getSite()) || !StringUtils.hasText(inData.getBuNo()) if (inData == null || !StringUtils.hasText(inData.getSite()) || !StringUtils.hasText(inData.getBuNo())
|| !StringUtils.hasText(inData.getOrderNo()) || !StringUtils.hasText(inData.getSeqNo())) { || !StringUtils.hasText(inData.getOrderNo()) || !StringUtils.hasText(inData.getSeqNo())) {
return; return;
@ -3996,6 +4004,7 @@ public class ScheduleServiceImpl implements ScheduleService {
entity.setAuditFlag(audited ? FLAG_Y : FLAG_N); entity.setAuditFlag(audited ? FLAG_Y : FLAG_N);
entity.setOperateFlag(operated ? FLAG_Y : FLAG_N); entity.setOperateFlag(operated ? FLAG_Y : FLAG_N);
entity.setLockFlag(lockRequired ? FLAG_Y : FLAG_N); entity.setLockFlag(lockRequired ? FLAG_Y : FLAG_N);
entity.setResponsibilityDept(StringUtils.hasText(responsibilityDept) ? responsibilityDept : null);
scheduleTodoMessageMapper.insertTodoMessage(entity); scheduleTodoMessageMapper.insertTodoMessage(entity);
} }

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

@ -29,6 +29,10 @@ public class SysSceneExceptionRuleConditionEntity extends QueryPage {
private String warningLevel; private String warningLevel;
private String animationEffect; private String animationEffect;
private String responsibilityDept; private String responsibilityDept;
/**
* 责任部门名称展示用
*/
private String responsibilityDeptName;
/** /**
* 异常代码 / 异常单 * 异常代码 / 异常单
*/ */

9
src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml

@ -14,7 +14,8 @@
message_source, message_source,
audit_flag, audit_flag,
operate_flag, operate_flag,
lock_flag
lock_flag,
responsibility_dept
) VALUES ( ) VALUES (
#{site}, #{site},
#{buNo}, #{buNo},
@ -26,7 +27,8 @@
#{messageSource}, #{messageSource},
#{auditFlag}, #{auditFlag},
#{operateFlag}, #{operateFlag},
#{lockFlag}
#{lockFlag},
#{responsibilityDept}
) )
</insert> </insert>
@ -42,7 +44,8 @@
message_source AS messageSource, message_source AS messageSource,
audit_flag AS auditFlag, audit_flag AS auditFlag,
operate_flag AS operateFlag, operate_flag AS operateFlag,
lock_flag AS lockFlag
lock_flag AS lockFlag,
responsibility_dept AS responsibilityDept
FROM schedule_todo_message FROM schedule_todo_message
WHERE site = #{site} WHERE site = #{site}
AND bu_no = #{buNo} AND bu_no = #{buNo}

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

@ -95,57 +95,63 @@
<select id="getConditionList" resultType="com.gaotao.modules.sys.entity.SysSceneExceptionRuleConditionEntity"> <select id="getConditionList" resultType="com.gaotao.modules.sys.entity.SysSceneExceptionRuleConditionEntity">
SELECT SELECT
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,
create_by,
create_date,
update_by,
update_date
FROM sys_scene_exception_rule_condition
WHERE site = #{site}
AND bu_no = #{buNo}
AND rule_code = #{ruleCode}
c.site,
c.bu_no,
c.rule_code,
c.condition_no,
c.parent_condition_no,
c.relation_field,
c.compare_symbol,
c.condition_param,
c.force_type,
c.warning_level,
c.animation_effect,
c.responsibility_dept,
ISNULL(sr.role_name, c.responsibility_dept) AS responsibility_dept_name,
c.trigger_event,
c.create_by,
c.create_date,
c.update_by,
c.update_date
FROM sys_scene_exception_rule_condition c
LEFT JOIN sys_role sr
ON CAST(sr.role_id AS NVARCHAR(100)) = c.responsibility_dept
WHERE c.site = #{site}
AND c.bu_no = #{buNo}
AND c.rule_code = #{ruleCode}
ORDER BY ORDER BY
CASE WHEN ISNULL(parent_condition_no, '') = '' THEN condition_no ELSE parent_condition_no END,
CASE WHEN ISNULL(parent_condition_no, '') = '' THEN 0 ELSE 1 END,
condition_no
CASE WHEN ISNULL(c.parent_condition_no, '') = '' THEN c.condition_no ELSE c.parent_condition_no END,
CASE WHEN ISNULL(c.parent_condition_no, '') = '' THEN 0 ELSE 1 END,
c.condition_no
</select> </select>
<select id="getCondition" resultType="com.gaotao.modules.sys.entity.SysSceneExceptionRuleConditionEntity"> <select id="getCondition" resultType="com.gaotao.modules.sys.entity.SysSceneExceptionRuleConditionEntity">
SELECT SELECT
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,
create_by,
create_date,
update_by,
update_date
FROM sys_scene_exception_rule_condition
WHERE site = #{site}
AND bu_no = #{buNo}
AND rule_code = #{ruleCode}
AND condition_no = #{conditionNo}
c.site,
c.bu_no,
c.rule_code,
c.condition_no,
c.parent_condition_no,
c.relation_field,
c.compare_symbol,
c.condition_param,
c.force_type,
c.warning_level,
c.animation_effect,
c.responsibility_dept,
ISNULL(sr.role_name, c.responsibility_dept) AS responsibility_dept_name,
c.trigger_event,
c.create_by,
c.create_date,
c.update_by,
c.update_date
FROM sys_scene_exception_rule_condition c
LEFT JOIN sys_role sr
ON CAST(sr.role_id AS NVARCHAR(100)) = c.responsibility_dept
WHERE c.site = #{site}
AND c.bu_no = #{buNo}
AND c.rule_code = #{ruleCode}
AND c.condition_no = #{conditionNo}
</select> </select>
<select id="countConditionNo" resultType="java.lang.Integer"> <select id="countConditionNo" resultType="java.lang.Integer">

Loading…
Cancel
Save