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
*/
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);
resultMap.put("matchedRollIndex", metricContext.rollIndex);
saveSplitRuleMatchedData(inData, String.valueOf(resultMap.get("action")));
saveSplitRuleMatchedData(inData, String.valueOf(resultMap.get("action")), child);
return resultMap;
}
}
@ -3878,6 +3878,7 @@ public class ScheduleServiceImpl implements ScheduleService {
resultMap.put("conditionNo", condition.getConditionNo());
resultMap.put("triggerEvent", triggerEvent);
resultMap.put("forceType", forceType);
resultMap.put("responsibilityDept", condition.getResponsibilityDept());
if ("异常代码".equals(triggerEvent)) {
resultMap.put("action", ACTION_OPEN_DEFECT);
@ -3904,10 +3905,13 @@ public class ScheduleServiceImpl implements ScheduleService {
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)) {
saveSplitRuleCacheData(inData);
saveSplitRuleTodoMessage(inData, true, false, false);
saveSplitRuleTodoMessage(inData, true, false, false, responsibilityDept);
return;
}
if (ACTION_OPEN_DEFECT.equals(action) || ACTION_OPEN_DOWNTIME.equals(action)) {
@ -3916,7 +3920,7 @@ public class ScheduleServiceImpl implements ScheduleService {
// 异常截卷流程等同产量报告 + 换班结转提示类规则也需要缓存当前数据
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())
|| !StringUtils.hasText(inData.getOrderNo()) || !StringUtils.hasText(inData.getSeqNo())) {
return;
@ -3996,6 +4004,7 @@ public class ScheduleServiceImpl implements ScheduleService {
entity.setAuditFlag(audited ? FLAG_Y : FLAG_N);
entity.setOperateFlag(operated ? FLAG_Y : FLAG_N);
entity.setLockFlag(lockRequired ? FLAG_Y : FLAG_N);
entity.setResponsibilityDept(StringUtils.hasText(responsibilityDept) ? responsibilityDept : null);
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 animationEffect;
private String responsibilityDept;
/**
* 责任部门名称展示用
*/
private String responsibilityDeptName;
/**
* 异常代码 / 异常单
*/

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

@ -14,7 +14,8 @@
message_source,
audit_flag,
operate_flag,
lock_flag
lock_flag,
responsibility_dept
) VALUES (
#{site},
#{buNo},
@ -26,7 +27,8 @@
#{messageSource},
#{auditFlag},
#{operateFlag},
#{lockFlag}
#{lockFlag},
#{responsibilityDept}
)
</insert>
@ -42,7 +44,8 @@
message_source AS messageSource,
audit_flag AS auditFlag,
operate_flag AS operateFlag,
lock_flag AS lockFlag
lock_flag AS lockFlag,
responsibility_dept AS responsibilityDept
FROM schedule_todo_message
WHERE site = #{site}
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
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
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 id="getCondition" resultType="com.gaotao.modules.sys.entity.SysSceneExceptionRuleConditionEntity">
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 id="countConditionNo" resultType="java.lang.Integer">

Loading…
Cancel
Save