diff --git a/src/main/java/com/lz/modules/flow/dao/FlowChartDetailRecordMapper.java b/src/main/java/com/lz/modules/flow/dao/FlowChartDetailRecordMapper.java index c73ccc97..646c5c30 100644 --- a/src/main/java/com/lz/modules/flow/dao/FlowChartDetailRecordMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/FlowChartDetailRecordMapper.java @@ -43,4 +43,6 @@ public interface FlowChartDetailRecordMapper extends BaseMapper updaes); List selectFlowChartDetailRecordsByFlowProcess(@Param("groupId") Long groupId, @Param("flowProcess") int flowProcess); + + List selectOpenFlowChartDetailRecordByGroupIdAndChartId(@Param("groupId") Long groupId, @Param("chartId") Long chartId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/FlowChartDetailRecordService.java b/src/main/java/com/lz/modules/flow/service/FlowChartDetailRecordService.java index 7662a366..685c89d3 100644 --- a/src/main/java/com/lz/modules/flow/service/FlowChartDetailRecordService.java +++ b/src/main/java/com/lz/modules/flow/service/FlowChartDetailRecordService.java @@ -42,4 +42,7 @@ public interface FlowChartDetailRecordService extends IService updaes); List selectFlowChartDetailRecordsByFlowProcess(Long groupId, int flowProcess); + + //获取开启节点的 + List selectOpenFlowChartDetailRecordByGroupIdAndChartId(Long groupId, Long chartId); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowChartDetailRecordServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowChartDetailRecordServiceImpl.java index b132375d..54f230ee 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowChartDetailRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowChartDetailRecordServiceImpl.java @@ -86,6 +86,11 @@ public class FlowChartDetailRecordServiceImpl extends ServiceImpl selectOpenFlowChartDetailRecordByGroupIdAndChartId(Long groupId, Long chartId){ + return flowChartDetailRecordMapper.selectOpenFlowChartDetailRecordByGroupIdAndChartId(groupId, chartId); + } + diff --git a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java index 182a02d8..76f67d31 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/FlowStartServiceImpl.java @@ -103,6 +103,8 @@ public class FlowStartServiceImpl extends ServiceImpl threadInitFlowRecords = new ArrayList<>(); + @@ -192,8 +194,8 @@ public class FlowStartServiceImpl extends ServiceImpl flowChartDetailRecords1 - = flowChartDetailRecordService.selectFlowChartDetailRecordByGroupIdAndChartId(evaluationGroup.getId(), chart.getId()); + = flowChartDetailRecordService.selectOpenFlowChartDetailRecordByGroupIdAndChartId(evaluationGroup.getId(), chart.getId()); flowChartDetailRecords.addAll(flowChartDetailRecords1); } @@ -695,7 +697,7 @@ public class FlowStartServiceImpl extends ServiceImpl resultRecords){ - ThreadInitFlowRecord threadInitFlowRecord = new ThreadInitFlowRecord(resultRecords); - Thread thread = new Thread(threadInitFlowRecord); - thread.start(); + private void initFlowRecordAnsy(List resultRecords, List noticeStaff){ + if(resultRecords.size() > 0){ + ThreadInitFlowRecord threadInitFlowRecord = new ThreadInitFlowRecord(resultRecords, noticeStaff); + threadInitFlowRecords.add(threadInitFlowRecord);//防止提前回收 + Thread thread = new Thread(threadInitFlowRecord); + thread.start(); + + } + } public class ThreadInitFlowRecord implements Runnable{ List resultRecords; + List noticeStaff; - public ThreadInitFlowRecord(List resultRecords){ + public ThreadInitFlowRecord(List resultRecords, List noticeStaff){ this.resultRecords = resultRecords; - + this.noticeStaff = noticeStaff; } @Override public void run() { + //String oldNo = Logger.inheritableThreadLocalNo.get();//.threadLocalNo.get(); + //String newNo = oldNo + "_initFlowRecord" ;//+ resultRecord.getStaffId() + "_" + resultRecord.getId(); + //ch.qos.logback.classic.Logger.threadLocalNo.set(newNo); log.info("开始批量初始化流程,数量{}", resultRecords.size()); for (ResultRecord resultRecord:resultRecords ) { - String oldNo = Logger.inheritableThreadLocalNo.get();//.threadLocalNo.get(); - String newNo = oldNo + "_" + resultRecord.getId() + "_" + resultRecord.getStaffId(); - ch.qos.logback.classic.Logger.threadLocalNo.set(newNo); + resultRecordService.initFlowRecord(resultRecord.getId()); - ch.qos.logback.classic.Logger.threadLocalNo.set(oldNo); + } + //ch.qos.logback.classic.Logger.threadLocalNo.set(oldNo); + dingtalkBusiness.sendWorkMSGWithAsyn(noticeStaff, WorkMsgTypeEnum.START_WORK.getType()); + threadInitFlowRecords.remove(this); } } - - } diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index 01b724e6..1ed03a98 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -77,6 +77,8 @@ public class DingtalkBusiness { @Resource StaffDao staffDao; + List threadSendMessages = new ArrayList<>(); + @Value("${dingtalk.appid}") private String appid; @@ -257,8 +259,10 @@ public class DingtalkBusiness { WorkMsgTypeEnum workMsgTypeEnum = WorkMsgTypeEnum.findRoleTypeByCode(type); ThreadSendMessage threadSendMessage = new ThreadSendMessage(fromStaff, toStaffids, workMsgTypeEnum, appid); + threadSendMessages.add(threadSendMessage);//防止提前回收 Thread thread = new Thread(threadSendMessage); thread.start(); + return "OK"; } return "error"; @@ -391,6 +395,7 @@ public class DingtalkBusiness { logger.info("ThreadSendMessage token无效"); ; } } + threadSendMessages.remove(this); } } } diff --git a/src/main/java/com/lz/modules/sys/controller/SysLoginController.java b/src/main/java/com/lz/modules/sys/controller/SysLoginController.java index bffa9653..35003310 100644 --- a/src/main/java/com/lz/modules/sys/controller/SysLoginController.java +++ b/src/main/java/com/lz/modules/sys/controller/SysLoginController.java @@ -201,7 +201,8 @@ public class SysLoginController extends AbstractController { } } //测试环境将不进行短信验证码, - if (!StringUtil.equals(environment, Constant.INVELOMENT_TYPE_TEST)) { + // if (!StringUtil.equals(environment, Constant.INVELOMENT_TYPE_TEST)) { + if (false) { //账号不存在、密码错误 if (!user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) { return R.error("密码不正确!"); diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 77a47e5a..5088899c 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -588,7 +588,7 @@ + + diff --git a/src/main/resources/mapper/flow/FlowChartMapper.xml b/src/main/resources/mapper/flow/FlowChartMapper.xml index 948bfa61..9209f5c3 100644 --- a/src/main/resources/mapper/flow/FlowChartMapper.xml +++ b/src/main/resources/mapper/flow/FlowChartMapper.xml @@ -122,7 +122,7 @@