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/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index facbc770..ae350613 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -51,13 +51,14 @@ public class AssessManagerController extends AbstractController{ @ApiOperation("获取考核列表") @ApiResponses({@ApiResponse(code = 200,message = "成功",response = AssessManagerListRes.class)}) public R assessList(@RequestBody AssessListReq req){ + Long userId = null; try { - Long userId = getUserId(); + userId = getUserId(); req.setLoginUserId(userId); PageUtils pageUtils = assessManagerService.assessList(req); return R.ok().put("data",pageUtils); } catch (Exception e) { - log.error("获取考核列表异常,",e); + log.error("获取考核列表异常,userId: " + userId,e); return R.error(e.getMessage()); } } @@ -67,12 +68,13 @@ public class AssessManagerController extends AbstractController{ @ApiResponses({@ApiResponse(code = 200,message = "成功",response = AssessManagerDetailRes.class)}) public R assessDetail(@RequestBody AssessDetailReq req){ PageUtils pageUtils; + Long userId = null; try { - Long userId = getUserId(); + userId = getUserId(); req.setLoginUserId(userId); pageUtils = assessManagerService.assessDetail(req); } catch (Exception e) { - log.error("获取考核详情列表异常" ,e); + log.error("获取考核详情列表异常,userId: " + userId,e); return R.error(e.getMessage()); } return R.ok().put("data",pageUtils); @@ -86,12 +88,13 @@ public class AssessManagerController extends AbstractController{ @ApiResponses({@ApiResponse(code = 200,message = "成功",response = ChartStatistical.class)}) public R assessChart(@RequestBody AssessDetailReq req){ List process; + Long userId = null; try { - Long userId = getUserId(); + userId = getUserId(); req.setLoginUserId(userId); process = chartResultService.countAssessNumByFlowProcess(req); } catch (Exception e) { - log.error("获取详情顶部人数统计异常" ,e); + log.error("获取详情顶部人数统计异常,userId: " + userId,e); return R.error(e.getMessage()); } return R.ok().put("data",process); diff --git a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java index 72282a64..39fa2115 100644 --- a/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java +++ b/src/main/java/com/lz/modules/performance/service/impl/AssessManagerServiceImpl.java @@ -19,13 +19,11 @@ import com.lz.modules.flow.dao.EvaluationStartStaffMapper; import com.lz.modules.flow.dao.FlowRecordMapper; import com.lz.modules.flow.dao.FlowStartMapper; import com.lz.modules.flow.entity.EvaluationGroup; -import com.lz.modules.flow.entity.EvaluationStartStaff; import com.lz.modules.flow.entity.FlowStart; import com.lz.modules.flow.model.GroupStaffs; import com.lz.modules.flow.model.StartGroups; import com.lz.modules.flow.service.EvaluationGroupService; import com.lz.modules.flow.service.EvaluationStartStaffService; -import com.lz.modules.flow.service.FlowRecordService; import com.lz.modules.flow.service.FlowStartService; import com.lz.modules.job.business.DingtalkBusiness; import com.lz.modules.performance.dto.ToScoreDingTalkDto; @@ -40,21 +38,12 @@ import com.lz.modules.performance.service.AssessService; import com.lz.modules.sys.dao.app.ResultRecordMapper; import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultRecordService; -import com.sun.org.apache.regexp.internal.RE; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; @@ -291,7 +280,6 @@ public class AssessManagerServiceImpl implements AssessManagerService { Long evaluation = group.getId(); int i = evaluationStartStaffService.updateBatchToScore(req.getStartId(), group.getId()); log.info("更新evaluationStartStaff 数据 为已评分 " + i); - List dtos = resultRecordMapper.selectToScoreList(req.getStartId(), evaluation); if(CollectionUtils.isNotEmpty(dtos)){ log.info("本次评分更新操作 num: " + dtos.size()); @@ -347,17 +335,4 @@ public class AssessManagerServiceImpl implements AssessManagerService { } - /* public static void main(String[] args) { - ExecutorService executorService = Executors.newFixedThreadPool(10); - CompletableFuture> future = CompletableFuture.supplyAsync(()-> Arrays.asList(1L,2L),executorService); - try { - List longs = future.get(); - System.out.println(); - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } - }*/ - } \ No newline at end of file diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 04fd795b..21cb7569 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 @@