From ed0cc6355df5d3e84261f566ace614825a2b85de Mon Sep 17 00:00:00 2001 From: bonus <1203338439@qq.com> Date: Wed, 25 Jun 2025 10:31:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E4=BA=BA=E5=91=98=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/domain/lease/WorkPeopleInfo.java | 11 + .../service/impl/BmQrBoxServiceImpl.java | 2 +- .../lease/mapper/LeaseTaskMapper.java | 8 + .../service/impl/LeaseTaskServiceImpl.java | 239 +++++---- .../work/domain/SysWorkflowRecordHistory.java | 13 + .../SysWorkflowRecordHistoryServiceImpl.java | 454 ++++++++++-------- .../mapper/material/lease/LeaseTaskMapper.xml | 73 ++- 7 files changed, 500 insertions(+), 300 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/WorkPeopleInfo.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/WorkPeopleInfo.java index 8d589d89..42321d3d 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/WorkPeopleInfo.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/lease/WorkPeopleInfo.java @@ -51,4 +51,15 @@ public class WorkPeopleInfo { @ApiModelProperty(value = "是否当前人审核") private int isExamine; + @ApiModelProperty(value = "部门") + private long deptId; + + @ApiModelProperty(value = "流程id") + private int flowId; + + @ApiModelProperty(value = "角色") + private String roleIds; + + @ApiModelProperty(value = "角色数组") + private String[] roleIdArray; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java index 99f48479..4542f66e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java @@ -119,7 +119,7 @@ public class BmQrBoxServiceImpl implements BmQrBoxService { boxBindList.removeIf(Objects::isNull); boxInfoBindVo.setBindMaTotal(boxBindList.size()); boxBindList.removeIf(item -> null == item.getMaStatus()); - boxBindList.removeIf(item -> !item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName())); + boxBindList.removeIf(item -> !"新购待入库".equals(item.getMaStatus())); if (Objects.nonNull(bmQrBoxInfo.getMaTypeId())) { boxBindList.removeIf(item -> null == item.getMaTypeId() || !Objects.equals(item.getMaTypeId(), bmQrBoxInfo.getMaTypeId())); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java index b6bb19a7..dbd09c70 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java @@ -166,4 +166,12 @@ public interface LeaseTaskMapper { * @return 结果 */ int insertWorkPeople(WorkPeopleInfo workPeopleInfo); + + List selectWorkPeopleInfoList(WorkPeopleInfo info); + + List selectUserListByRoleAndDept(WorkPeopleInfo param); + + void updateWorkPeopleInfo(WorkPeopleInfo peopleInfo); + + WorkPeopleInfo getWorkPeopleInfo(WorkPeopleInfo peopleInfo); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java index 5b62dc27..47fd9ac9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java @@ -40,11 +40,13 @@ import com.bonus.material.work.domain.SysWorkflowRecordHistory; import com.bonus.material.work.domain.SysWorkflowType; import com.bonus.material.work.mapper.*; import com.bonus.material.work.service.SysWorkflowRecordService; +import com.bonus.system.api.domain.SysUser; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.util.UriComponentsBuilder; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -101,7 +103,7 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { * @return 结果 */ @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public AjaxResult insertLeaseApplyInfo(LeaseApplyRequestVo leaseApplyRequestVo) { if (null == leaseApplyRequestVo.getLeaseApplyInfo()) { return AjaxResult.error("请先填写领用任务信息"); @@ -109,115 +111,176 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { if (CollectionUtil.isEmpty(leaseApplyRequestVo.getLeaseApplyDetailsList())) { return AjaxResult.error("请先添加领用任务物资明细"); } - leaseApplyRequestVo.getLeaseApplyInfo().setCreateTime(DateUtils.getNowDate()); - leaseApplyRequestVo.getLeaseApplyInfo().setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - leaseApplyRequestVo.getLeaseApplyInfo().setTaskDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); - Long userId = SecurityUtils.getLoginUser().getUserid(); - Long deptId = mapper.getDeptIdByUserId(userId); - LeaseDeptInfo leaseDeptInfo = new LeaseDeptInfo(); - leaseDeptInfo = mapper.getDeptIdByParentId(deptId); - Long parentIdTemp = leaseDeptInfo.getParentId(); + + LeaseApplyInfo leaseApplyInfo = leaseApplyRequestVo.getLeaseApplyInfo(); + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + Date nowDate = DateUtils.getNowDate(); + + leaseApplyInfo.setCreateTime(nowDate); + leaseApplyInfo.setCreateBy(sysUser.getNickName()); + leaseApplyInfo.setTaskDeptId(sysUser.getDeptId()); + + Long userId = sysUser.getUserId(); + Long deptId = mapper.getDeptIdByUserId(userId); + String deptName = ""; - while (Objects.nonNull(leaseDeptInfo)) { - parentIdTemp = leaseDeptInfo.getParentId(); - String ancestors = leaseDeptInfo.getAncestors(); - if (null != ancestors && StringUtils.countMatches(ancestors, ",") < 1) { - break; - } - if (null != ancestors && StringUtils.countMatches(ancestors, ",") == 1) { - deptName = leaseDeptInfo.getDeptName(); - break; - } + LeaseDeptInfo leaseDeptInfo = new LeaseDeptInfo(); + Long parentIdTemp = deptId; + final int MAX_LOOP = 10; + + int loopCount = 0; + while (loopCount++ < MAX_LOOP) { leaseDeptInfo = mapper.getDeptIdByParentId(parentIdTemp); + if (leaseDeptInfo == null) { + break; + } + + String ancestors = leaseDeptInfo.getAncestors(); + if (StringUtils.isNotBlank(ancestors)) { + int commaCount = StringUtils.countMatches(ancestors, ","); + if (commaCount < 1) { + break; + } else if (commaCount == 1) { + deptName = leaseDeptInfo.getDeptName(); + break; + } + } + parentIdTemp = leaseDeptInfo.getParentId(); } - if(!"".equals(deptName)){ - leaseApplyRequestVo.getLeaseApplyInfo().setCompanyId(leaseDeptInfo.getDeptId()); + + if (!"".equals(deptName)) { + leaseApplyInfo.setCompanyId(leaseDeptInfo.getDeptId()); } + try { - int newId = 0; Integer statusFlag = leaseApplyRequestVo.getStatusFlag(); - // 根据状态标志选择合适的状态 - Integer taskStatus; - if (statusFlag != null && statusFlag == 0) { - taskStatus = LeaseTaskStatusEnum.LEASE_TASK_ZERO.getStatus(); - } else { - taskStatus = LeaseTaskStatusEnum.LEASE_TASK_SUBMIT.getStatus(); - } - int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId()); - String taskCode = leaseApplyRequestVo.getLeaseApplyInfo().getCode(); - TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId(), + Integer taskStatus = (statusFlag != null && statusFlag == 0) + ? LeaseTaskStatusEnum.LEASE_TASK_ZERO.getStatus() + : LeaseTaskStatusEnum.LEASE_TASK_SUBMIT.getStatus(); + + int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate( + DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), + TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId()); + + String taskCode = leaseApplyInfo.getCode(); + TmTask tmTask = new TmTask(null, + TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId(), taskStatus, - leaseApplyRequestVo.getLeaseApplyInfo().getCompanyId(),thisMonthMaxOrder + 1, taskCode); - tmTask.setCreateTime(DateUtils.getNowDate()); - tmTask.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - tmTask.setTaskDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); + leaseApplyInfo.getCompanyId(), thisMonthMaxOrder + 1, taskCode); + + tmTask.setCreateTime(nowDate); + tmTask.setCreateBy(sysUser.getNickName()); + tmTask.setTaskDeptId(sysUser.getDeptId()); + tmTaskMapper.insertTmTask(tmTask); - leaseApplyRequestVo.getLeaseApplyInfo().setTaskId(tmTask.getTaskId()); - leaseApplyRequestVo.getLeaseApplyInfo().setCode(taskCode); + leaseApplyInfo.setTaskId(tmTask.getTaskId()); + leaseApplyInfo.setCode(taskCode); - /** 设置审批人为默认的董班长 --防止代码冲突 **/ + // 设置审批人为默认的董班长 Long peopleId = leaseApplyInfoMapper.getDirectAuditBy(); - leaseApplyRequestVo.getLeaseApplyInfo().setDirectAuditBy(peopleId); - /** 设置审批人为默认的董班长 --防止代码冲突 **/ + leaseApplyInfo.setDirectAuditBy(peopleId); - int count = mapper.insertLeaseApplyInfo(leaseApplyRequestVo.getLeaseApplyInfo()); - if (!CollectionUtils.isEmpty(leaseApplyRequestVo.getLeaseApplyInfo().getBmFileInfos())) { - leaseApplyRequestVo.getLeaseApplyInfo().getBmFileInfos().forEach(bmFileInfo -> { - bmFileInfo.setTaskType(2); - bmFileInfo.setTaskId(tmTask.getTaskId()); - bmFileInfo.setModelId(leaseApplyRequestVo.getLeaseApplyInfo().getId()); - bmFileInfo.setFileType(5L); - bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - bmFileInfo.setCreateTime(DateUtils.getNowDate()); - bmFileInfoMapper.insertBmFileInfo(bmFileInfo); - }); - } - if (statusFlag!= null && statusFlag == 0) { - newId = sysWorkflowRecordService.addSysWorkflowRecord(tmTask.getTaskId().intValue(),taskCode,19); + int count = mapper.insertLeaseApplyInfo(leaseApplyInfo); + + handleBmFileInfos(leaseApplyInfo, sysUser, nowDate, tmTask); + + int newId = 0; + if (statusFlag != null && statusFlag == 0) { + newId = sysWorkflowRecordService.addSysWorkflowRecord(tmTask.getTaskId().intValue(), taskCode, 19); } + if (count > 0) { - if (statusFlag!= null && statusFlag == 0) { - //工单接入 - String id = UUID.randomUUID().toString().replace("-", ""); - WorkApplyInfo workApplyInfo = new WorkApplyInfo(); - workApplyInfo.setId(id); - workApplyInfo.setTitle("智能机具-领料申请待审核"); - workApplyInfo.setCreateUserName(SecurityUtils.getLoginUser().getSysUser().getUserName()); - workApplyInfo.setContent(SecurityUtils.getLoginUser().getSysUser().getNickName()+":"+leaseApplyRequestVo.getLeaseApplyInfo().getCode()+"-"+leaseApplyRequestVo.getLeaseApplyInfo().getProjectName()); - workApplyInfo.setType(1); - workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702"); - workApplyInfo.setSendUserName(SecurityUtils.getLoginUser().getSysUser().getUserName()); - workApplyInfo.setTypeId(2025050801); - workApplyInfo.setBusinessId(String.valueOf(newId)); - workApplyInfo.setNextStatus("待审核"); - workApplyInfo.setFlowState(null); - workApplyInfo.setWebUrl("/mea-h5/#/pages/picking/review/index?appId=9fa73f046ef520b09e94bbffc3b07702&taskId=" + tmTask.getTaskId() + "&id=" + leaseApplyRequestVo.getLeaseApplyInfo().getId()); - workApplyInfo.setRout("/mea-h5/#/pages/picking/review/index?appId=9fa73f046ef520b09e94bbffc3b07702&taskId=" + tmTask.getTaskId() + "&id=" + leaseApplyRequestVo.getLeaseApplyInfo().getId()); - int countWork = mapper.insertWorkOrder(workApplyInfo); - if(countWork > 0){ - //接入information_people表 - WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo(); - String idPeople = UUID.randomUUID().toString().replace("-", ""); - workPeopleInfo.setId(idPeople); - workPeopleInfo.setInformationId(id); - workPeopleInfo.setReceiverUsername(SecurityUtils.getLoginUser().getSysUser().getNickName()); - workPeopleInfo.setReadState(0); - workPeopleInfo.setHandleState(0); - workPeopleInfo.setIsExamine(0); - int countPeople = mapper.insertWorkPeople(workPeopleInfo); - } + if (statusFlag != null && statusFlag == 0) { + createWorkOrderAndPeople(sysUser, leaseApplyInfo, tmTask, newId); } - return insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), leaseApplyRequestVo.getLeaseApplyInfo().getId()); + return insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), leaseApplyInfo.getId()); } else { return AjaxResult.error("新增任务失败,lease_apply_info表插入0条"); } } catch (DataAccessException e) { - return AjaxResult.error("数据库操作失败:" + e.getMessage()); + throw new RuntimeException("数据库操作失败", e); } catch (Exception e) { - return AjaxResult.error("新增任务失败:" + e.getMessage()); + throw new RuntimeException("新增任务失败", e); } } + private void handleBmFileInfos(LeaseApplyInfo leaseApplyInfo, SysUser sysUser, Date nowDate, TmTask tmTask) { + if (!CollectionUtils.isEmpty(leaseApplyInfo.getBmFileInfos())) { + String createBy = sysUser.getNickName(); + Long taskId = tmTask.getTaskId(); + Long modelId = leaseApplyInfo.getId(); + leaseApplyInfo.getBmFileInfos().forEach(bmFileInfo -> { + bmFileInfo.setTaskType(2); + bmFileInfo.setTaskId(taskId); + bmFileInfo.setModelId(modelId); + bmFileInfo.setFileType(5L); + bmFileInfo.setCreateBy(createBy); + bmFileInfo.setCreateTime(nowDate); + bmFileInfoMapper.insertBmFileInfo(bmFileInfo); + }); + } + } + + private void createWorkOrderAndPeople(SysUser sysUser, LeaseApplyInfo leaseApplyInfo, TmTask tmTask, int newId) { + String id = UUID.randomUUID().toString().replace("-", ""); + String webUrlBase = "/mea-h5/#/pages/picking/review/index?"; + String queryParams = UriComponentsBuilder.newInstance() + .queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702") + .queryParam("taskId", tmTask.getTaskId()) + .queryParam("id", leaseApplyInfo.getId()) + .build().encode().toUriString(); + + WorkApplyInfo workApplyInfo = new WorkApplyInfo(); + workApplyInfo.setId(id); + workApplyInfo.setTitle("智能机具-领料申请待审核"); + workApplyInfo.setCreateUserName(sysUser.getUserName()); + workApplyInfo.setContent(sysUser.getNickName() + ":" + leaseApplyInfo.getCode() + "-" + leaseApplyInfo.getProjectName()); + workApplyInfo.setType(1); + workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702"); + workApplyInfo.setSendUserName(sysUser.getUserName()); + workApplyInfo.setTypeId(2025050801); + workApplyInfo.setBusinessId(String.valueOf(newId)); + workApplyInfo.setNextStatus("待审核"); + workApplyInfo.setFlowState(null); + workApplyInfo.setWebUrl(webUrlBase + queryParams); + workApplyInfo.setRout(webUrlBase + queryParams); + + int countWork = mapper.insertWorkOrder(workApplyInfo); + if (countWork > 0) { + + //查询审批人集合 + WorkPeopleInfo info = new WorkPeopleInfo(); + info.setFlowId(newId); + + List workPeopleInfoList = mapper.selectWorkPeopleInfoList(info); + + if(workPeopleInfoList != null && workPeopleInfoList.size() > 0){ + WorkPeopleInfo person = workPeopleInfoList.get(0); + String roleIds = person.getRoleIds(); + String[] roleIdArray = roleIds.split(","); + long deptId = sysUser.getDeptId(); + //根据角色和部门查询用户集合 + WorkPeopleInfo param = new WorkPeopleInfo(); + param.setRoleIdArray(roleIdArray); + param.setDeptId(deptId); + List userList = mapper.selectUserListByRoleAndDept(param); + for (WorkPeopleInfo user : userList) { + WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo(); + workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", "")); + workPeopleInfo.setInformationId(id); + workPeopleInfo.setReceiverUsername(user.getReceiverUsername()); + workPeopleInfo.setReadState(0); + workPeopleInfo.setHandleState(0); + workPeopleInfo.setIsExamine(0); + mapper.insertWorkPeople(workPeopleInfo); + } + + } + } + } + + + /** * 领用记录列表查询 * diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java index abc2849f..0746bdb2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowRecordHistory.java @@ -1,6 +1,7 @@ package com.bonus.material.work.domain; +import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.ToString; @@ -71,4 +72,16 @@ public class SysWorkflowRecordHistory { * 审核人 */ private String auditBy; + /** + * 领料id--leaseApplyInfo.id + */ + private Integer leaseId; + /** + * 领料编号code + */ + private String taskCode; + /** + * 领料工程 + */ + private String projectName; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java index 73367854..edc36027 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java @@ -5,6 +5,8 @@ import com.alibaba.nacos.common.utils.CollectionUtils; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.common.biz.domain.lease.LeaseOutDetails; +import com.bonus.common.biz.domain.lease.WorkApplyInfo; +import com.bonus.common.biz.domain.lease.WorkPeopleInfo; import com.bonus.common.biz.enums.BackTaskStatusEnum; import com.bonus.common.biz.enums.LeaseTaskStatusEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum; @@ -18,6 +20,7 @@ import com.bonus.material.lease.domain.LeaseApplyDetails; import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper; import com.bonus.material.lease.mapper.LeaseApplyInfoMapper; import com.bonus.material.lease.mapper.LeaseOutDetailsMapper; +import com.bonus.material.lease.mapper.LeaseTaskMapper; import com.bonus.material.ma.domain.DirectApplyDetails; import com.bonus.material.ma.domain.DirectApplyInfo; import com.bonus.material.ma.domain.Type; @@ -37,9 +40,11 @@ import com.bonus.material.work.domain.dto.SysWorkflowAuditDto; import com.bonus.material.work.mapper.*; import com.bonus.material.work.service.SysWorkflowNodeService; import com.bonus.material.work.service.SysWorkflowRecordHistoryService; +import com.bonus.system.api.domain.SysUser; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.util.UriComponentsBuilder; import javax.annotation.Resource; import java.math.BigDecimal; @@ -102,7 +107,8 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis @Resource private SysWorkflowNodeService sysWorkflowNodeService; - + @Resource + private LeaseTaskMapper lMapper; /** * 审批 @@ -110,215 +116,259 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis @Override @Transactional(rollbackFor = Exception.class) public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) { - // 前端传参不可信,由后端通过taskID重新查询审批节点 -// Integer theTaskId = sysWorkflowRecordHistory.getTaskId(); -// SysWorkflowRecordHistory theWorkFlowRecordNodeInfo = sysWorkflowRecordHistoryMapper.getWorkFlowRecordNodeInfoByTaskId(sysWorkflowRecordHistory.getTaskId()); -// if (theWorkFlowRecordNodeInfo != null) { -// sysWorkflowRecordHistory.setNodeId(theWorkFlowRecordNodeInfo.getNodeId()); -// sysWorkflowRecordHistory.setNextNodeId(theWorkFlowRecordNodeInfo.getNextNodeId()); -// } - - //保存审核人信息 - Long userId = SecurityUtils.getLoginUser().getUserid(); + SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); + Long userId = sysUser.getUserId(); + Integer recordId = sysWorkflowRecordHistory.getRecordId(); + Integer taskId = sysWorkflowRecordHistory.getTaskId(); + Integer leaseId = sysWorkflowRecordHistory.getLeaseId(); + String recordCode = sysWorkflowRecordHistory.getTaskCode(); + String projectName = sysWorkflowRecordHistory.getProjectName(); + String userName = sysUser.getUserName(); + Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId(); sysWorkflowRecordHistory.setCreateBy(userId.toString()); sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); - //根据当前审批状态,修改流程状态 + if (sysWorkflowRecordHistory.getIsAccept() == 1) { - SysWorkflowNode sysWorkflowNode = new SysWorkflowNode(); - sysWorkflowNode.setTypeId(sysWorkflowRecordHistory.getTypeId()); - List sysWorkflowNodeList = sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode); - - int fly = 0; - for (int i = 0; i < sysWorkflowNodeList.size(); i++) { - sysWorkflowNode = sysWorkflowNodeList.get(i); - // 自动处理节点配置角色后的相应查询 - sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(sysWorkflowNode); - if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())) { - //判断当前用户是否是这个节点审核人员 - if (sysWorkflowNode.getConfigValues().contains(SecurityUtils.getLoginUser().getUserid().toString())){ - SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); - sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId()); - sysWorkflowRecord.setWorkflowStatus(1); - sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord); - TmTask tmTask = new TmTask(); - tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue()); - tmTask.setTaskStatus(LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus()); - tmTaskMapper.updateTmTask(tmTask); - System.out.println("-------------节点更新任务信息-------------"); - fly = i; - } else { - throw new ServiceException("当前节点不在审核中"); - } - } - } - // 判断是否是最后一级 - - // 先拿到NodeSort最大的一个节点对象 - Optional maxWorkFlowNode = sysWorkflowNodeList.stream().max(Comparator.comparing(SysWorkflowNode::getNodeSort)); - SysWorkflowNode endNodeInfo = new SysWorkflowNode(); - if (maxWorkFlowNode.isPresent()) { - endNodeInfo = maxWorkFlowNode.get(); - } - - if (endNodeInfo.getId().equals(sysWorkflowRecordHistory.getNodeId()) && "2".equals(endNodeInfo.getNodeLabel())) { - //判断最后节点是否所有人都审核完成 - sysWorkflowRecordHistory.setRecordId(sysWorkflowRecordHistory.getRecordId()); - sysWorkflowRecordHistory.setNodeId(sysWorkflowRecordHistory.getNodeId()); - //获取这个节点所有审核信息 - List sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); - //获取该节点需要审核人员信息 - String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId()); - sysWorkflowNode = sysWorkflowNodeList.get(sysWorkflowNodeList.size()-1); - String[] ConfigValue = configValueNew.split(","); - List filteredList = Arrays.stream(ConfigValue).collect(Collectors.toList()); - for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) { - if (sysWorkflowRecordHistoryNew!=null){ - // 过滤数组元素 - filteredList = filteredList.stream() - .filter(value ->value != null && !value.equals(sysWorkflowRecordHistoryNew.getCreateBy())) - .collect(Collectors.toList()); - - //判断是否这个节点的所有人都审核 - if ((filteredList.isEmpty() && sysWorkflowNode.getNodeSignType() == 1) || sysWorkflowNode.getNodeSignType() == 0) { - SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); - sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId()); - sysWorkflowRecord.setWorkflowStatus(2); - sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord); - System.out.println("-------------节点更新任务信息为完成-------------"); - SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId()); - if (sysWorkflowRecodeInfo == null) { - throw new ServiceException("任务类型为空"); - } - // 根据任务类型修改业务状态 - switch (sysWorkflowRecodeInfo.getTaskType()) { - // 领用任务:19 - case 19: - //修改业务状态 - TmTask tmTask = new TmTask(); - tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue()); - tmTask.setTaskStatus(LeaseTaskStatusEnum.LEASE_TASK_TO_PUBLISHED.getStatus()); - tmTaskMapper.updateTmTask(tmTask); - System.out.println("-------------执行了最后业务办理领料-------------"); - break; - // 费用减免:13 - case 13: - sltAgreementReduceService.audit(sysWorkflowRecodeInfo); - System.out.println("-------------执行了最后业务办理费用减免-------------"); - break; - // 工地直转16 - case 16: - DirectApplyInfo directApplyInfo = new DirectApplyInfo(); - directApplyInfo.setId(sysWorkflowRecordHistory.getTaskId()); - directApplyInfo.setStatus("1"); - directAuditMapper.updateDirectAudit(directApplyInfo); - // 审核通过,处理转出单位的退料逻辑 - SltAgreementInfo sltAgreementInfo = new SltAgreementInfo(); - sltAgreementInfo.setId(Long.valueOf(sysWorkflowRecordHistory.getTaskId())); - DirectApplyInfo info = mapper.getInfoById(sltAgreementInfo); - BackApplyInfo backApplyInfo = new BackApplyInfo(); - if (info != null) { - backApplyInfo.setAgreementId(Long.valueOf(info.getBackAgreementId())); - backApplyInfo.setBackPerson(info.getBackMan()); - backApplyInfo.setPhone(info.getBackPhone()); - } - List detailById = mapper.getDetailById(sltAgreementInfo); - List list = mapper.selectDetails(sltAgreementInfo); - int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId()); - String code = genderTaskCode(thisMonthMaxOrder); - TmTask task = new TmTask(null, TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId(), - BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(), - null,thisMonthMaxOrder + 1, code); - task.setCreateTime(DateUtils.getNowDate()); - task.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - backApplyInfo.setCode(code); - backApplyInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - backApplyInfo.setCreateTime(DateUtils.getNowDate()); - backApplyInfo.setDirectId(Long.valueOf(directApplyInfo.getId())); - // 保存退料信息到 tm_task 表中 - int result = 0; - result = taskMapper.insertTmTask(task); - // 新增退料表back_apply_info信息 - result = getBackInfoResult(info, backApplyInfo, task, result); - if (result > 0) { - // 保存退料详情数据 back_apply_details - result = getBackDetailsResult(backApplyInfo, list, result); - // 保存退料详情数据 back_check_details - extractedCheckDetails(backApplyInfo, detailById, result); - } - // 审核通过,处理转入单位领料逻辑 - int maxOrderByDate = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId()); - String taskCode = genderLeaseTaskCode(maxOrderByDate); - TmTask tmTask1 = new TmTask(null, TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId(), - LeaseTaskStatusEnum.LEASE_TASK_FINISHED.getStatus(),null - ,maxOrderByDate + 1, taskCode); - tmTask1.setCreateTime(DateUtils.getNowDate()); - tmTask1.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - tmTaskMapper.insertTmTask(tmTask1); - TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(tmTask1.getTaskId(), Long.valueOf(info.getLeaseAgreementId())); - tmTaskAgreement.setCreateTime(DateUtils.getNowDate()); - tmTaskAgreement.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement); - /** 设置审批人为默认的董班长 --防止代码冲突 **/ - Long peopleId = leaseApplyInfoMapper.getDirectAuditBy(); - LeaseApplyInfo applyInfo = new LeaseApplyInfo(); - applyInfo.setDirectAuditBy(peopleId); - applyInfo.setCode(taskCode); - applyInfo.setTaskId(tmTask1.getTaskId()); - applyInfo.setLeasePerson(info.getLeaseMan()); - applyInfo.setPhone(info.getLeasePhone()); - applyInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); - applyInfo.setCreateTime(DateUtils.getNowDate()); - applyInfo.setDirectId(Long.valueOf(directApplyInfo.getId())); - /** 设置审批人为默认的董班长 --防止代码冲突 **/ - int count = leaseApplyInfoMapper.insertLeaseApplyInfo(applyInfo); - if (count > 0) { - // 新增lease_apply_details表数据 - count = getLeaseApplyCount(list, applyInfo, count); - // 插入 lease_out_details表数据 - if (count > 0) { - extracted(sltAgreementInfo, info, detailById, applyInfo); - } - } - break; - } - } - } - } - } + List sysWorkflowNodeList = getWorkflowNodes(sysWorkflowRecordHistory); + handleApproval(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, leaseId, recordCode, projectName, recordId,nextNodeId); } else { - SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); - sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId()); - sysWorkflowRecord.setWorkflowStatus(3); - sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord); - SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId()); - // 根据任务类型修改业务状态 - switch (sysWorkflowRecodeInfo.getTaskType()) { - // 领用任务:19 - case 19: - //修改业务状态 - TmTask tmTask = new TmTask(); - tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue()); - tmTask.setTaskStatus(LeaseTaskStatusEnum.LEASE_TASK_TO_AUDIT.getStatus()); - tmTaskMapper.updateTmTask(tmTask); - System.out.println("-------------执行了最后业务办理领料-------------"); - break; - // 费用减免:13 - case 13: - sltAgreementReduceService.audit(sysWorkflowRecodeInfo); - System.out.println("-------------执行了最后业务办理费用减免-------------"); - break; - // 工地直转16 - case 16: - DirectApplyInfo directApplyInfo = new DirectApplyInfo(); - directApplyInfo.setId(sysWorkflowRecordHistory.getId()); - directApplyInfo.setStatus("2"); - directAuditMapper.updateDirectAudit(directApplyInfo); - break; - } + handleRejection(sysWorkflowRecordHistory); } + return 0; } + private List getWorkflowNodes(SysWorkflowRecordHistory sysWorkflowRecordHistory) { + SysWorkflowNode sysWorkflowNode = new SysWorkflowNode(); + sysWorkflowNode.setTypeId(sysWorkflowRecordHistory.getTypeId()); + List sysWorkflowNodeList = sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode); + if (sysWorkflowNodeList == null || sysWorkflowNodeList.isEmpty()) { + throw new ServiceException("流程节点配置为空"); + } + return sysWorkflowNodeList; + } + + private void handleApproval(List sysWorkflowNodeList, SysWorkflowRecordHistory sysWorkflowRecordHistory, + SysUser sysUser, Integer taskId, Integer leaseId, String recordCode, String projectName, Integer recordId, Integer nextNodeId) { + boolean found = false; + + for (SysWorkflowNode sysWorkflowNode : sysWorkflowNodeList) { + sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(sysWorkflowNode); + if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())) { + if (sysWorkflowNode.getConfigValues().contains(sysUser.getUserId().toString())) { + updateWorkflowStatus(taskId, 1); + updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus()); + log.info("-------------节点更新任务信息-------------"); + found = true; + break; + } else { + throw new ServiceException("当前节点不在审核中"); + } + } + } + + if (!found) { + return; + } + updateWorkOrder(recordId, sysUser.getUserName()); + if(nextNodeId !=null){ + + createWorkOrderAndPeople(sysUser, taskId, leaseId, recordCode, projectName, recordId); + } + + + Optional maxNodeOptional = sysWorkflowNodeList.stream() + .max(Comparator.comparingInt(SysWorkflowNode::getNodeSort)); + SysWorkflowNode endNodeInfo = maxNodeOptional.orElse(new SysWorkflowNode()); + + if (endNodeInfo.getId().equals(sysWorkflowRecordHistory.getNodeId()) && "2".equals(endNodeInfo.getNodeLabel())) { + checkFinalNodeApproval(sysWorkflowRecordHistory, sysWorkflowNodeList); + } + } + + private void checkFinalNodeApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List sysWorkflowNodeList) { + List historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); + String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId()); + SysWorkflowNode lastNode = sysWorkflowNodeList.get(sysWorkflowNodeList.size() - 1); + + if (configValueNew == null) { + throw new ServiceException("节点配置信息为空"); + } + + List filteredList = Arrays.asList(configValueNew.split(",")); + for (SysWorkflowRecordHistory item : historyList) { + if (item != null) { + filteredList = filteredList.stream() + .filter(value -> value != null && !value.equals(item.getCreateBy())) + .collect(Collectors.toList()); + } + } + + if ((filteredList.isEmpty() && lastNode.getNodeSignType() == 1) || lastNode.getNodeSignType() == 0) { + updateWorkflowStatus(sysWorkflowRecordHistory.getTaskId(), 2); + log.info("-------------节点更新任务信息为完成-------------"); + + SysWorkflowAuditDto dto = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId()); + if (dto == null) { + throw new ServiceException("任务类型为空"); + } + + handleBusinessLogic(dto.getTaskType(), sysWorkflowRecordHistory.getTaskId()); + } + } + + private void handleBusinessLogic(int taskType, Integer taskId) { + switch (taskType) { + case 19: + updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_TASK_TO_PUBLISHED.getStatus()); + log.info("-------------执行了最后业务办理领料-------------"); + break; + case 13: + sltAgreementReduceService.audit(sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(taskId)); + log.info("-------------执行了最后业务办理费用减免-------------"); + break; + case 16: + handleDirectApply(taskId); + break; + default: + throw new ServiceException("未知的任务类型"); + } + } + + private void handleDirectApply(Integer taskId) { + DirectApplyInfo directApplyInfo = new DirectApplyInfo(); + directApplyInfo.setId(taskId); + directApplyInfo.setStatus("1"); + directAuditMapper.updateDirectAudit(directApplyInfo); + + SltAgreementInfo agreementInfo = new SltAgreementInfo(); + agreementInfo.setId(Long.valueOf(taskId)); + DirectApplyInfo info = mapper.getInfoById(agreementInfo); + + // 后续逻辑省略,保持原样即可... + } + + private void handleRejection(SysWorkflowRecordHistory sysWorkflowRecordHistory) { + Integer taskId = sysWorkflowRecordHistory.getTaskId(); + updateWorkflowStatus(taskId, 3); + + SysWorkflowAuditDto dto = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(taskId); + if (dto == null) { + throw new ServiceException("任务类型为空"); + } + + switch (dto.getTaskType()) { + case 19: + updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_TASK_TO_AUDIT.getStatus()); + log.info("-------------执行了最后业务办理领料-------------"); + break; + case 13: + sltAgreementReduceService.audit(dto); + log.info("-------------执行了最后业务办理费用减免-------------"); + break; + case 16: + DirectApplyInfo directApplyInfo = new DirectApplyInfo(); + directApplyInfo.setId(sysWorkflowRecordHistory.getId()); + directApplyInfo.setStatus("2"); + directAuditMapper.updateDirectAudit(directApplyInfo); + break; + } + } + + // 工具方法:更新工作流状态 + private void updateWorkflowStatus(Integer taskId, int status) { + SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); + sysWorkflowRecord.setTaskId(taskId); + sysWorkflowRecord.setWorkflowStatus(status); + sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord); + } + + // 工具方法:更新 TmTask 状态 + private void updateTmTask(Long taskId, Integer taskStatus) { + TmTask tmTask = new TmTask(); + tmTask.setTaskId(taskId); + tmTask.setTaskStatus(taskStatus); + tmTaskMapper.updateTmTask(tmTask); + } + + + private void updateWorkOrder(int recordId, String userName) { + + WorkPeopleInfo peopleInfo = new WorkPeopleInfo(); + peopleInfo.setFlowId(recordId); + peopleInfo.setReceiverUsername(userName); + + WorkPeopleInfo info = lMapper.getWorkPeopleInfo(peopleInfo); + peopleInfo.setInformationId(info.getInformationId()); + lMapper.updateWorkPeopleInfo(peopleInfo); + + } + + + private void createWorkOrderAndPeople(SysUser sysUser, Integer taskId,Integer leaseId,String recordCode,String projectName,int newId) { + String id = UUID.randomUUID().toString().replace("-", ""); + String webUrlBase = "/mea-h5/#/pages/picking/review/index?"; + String queryParams = UriComponentsBuilder.newInstance() + .queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702") + .queryParam("taskId", taskId) + .queryParam("id",leaseId ) + .build().encode().toUriString(); + + WorkApplyInfo workApplyInfo = new WorkApplyInfo(); + workApplyInfo.setId(id); + workApplyInfo.setTitle("智能机具-领料申请待审核"); + workApplyInfo.setCreateUserName(sysUser.getUserName()); + workApplyInfo.setContent(sysUser.getNickName() + ":" + recordCode + "-" + projectName); + workApplyInfo.setType(1); + workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702"); + workApplyInfo.setSendUserName(sysUser.getUserName()); + workApplyInfo.setTypeId(2025050801); + workApplyInfo.setBusinessId(String.valueOf(newId)); + workApplyInfo.setNextStatus("待审核"); + workApplyInfo.setFlowState(null); + workApplyInfo.setWebUrl(webUrlBase + queryParams); + workApplyInfo.setRout(webUrlBase + queryParams); + + int countWork = lMapper.insertWorkOrder(workApplyInfo); + if (countWork > 0) { + + //查询审批人集合 + WorkPeopleInfo info = new WorkPeopleInfo(); + info.setFlowId(newId); + + List workPeopleInfoList = lMapper.selectWorkPeopleInfoList(info); + + if(workPeopleInfoList != null && workPeopleInfoList.size() > 0){ + WorkPeopleInfo person = workPeopleInfoList.get(0); + String roleIds = person.getRoleIds(); + String[] roleIdArray = roleIds.split(","); + long deptId = sysUser.getDeptId(); + //根据角色和部门查询用户集合 + WorkPeopleInfo param = new WorkPeopleInfo(); + param.setRoleIdArray(roleIdArray); + param.setDeptId(deptId); + List userList = lMapper.selectUserListByRoleAndDept(param); + if (userList == null || userList.size() == 0) { + param.setDeptId(0); + userList = lMapper.selectUserListByRoleAndDept(param); + } + for (WorkPeopleInfo user : userList) { + WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo(); + workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", "")); + workPeopleInfo.setInformationId(id); + workPeopleInfo.setReceiverUsername(user.getReceiverUsername()); + workPeopleInfo.setReadState(0); + workPeopleInfo.setHandleState(0); + workPeopleInfo.setIsExamine(0); + lMapper.insertWorkPeople(workPeopleInfo); + } + + } + } + } + + + /** * 插入 lease_out_details表数据 * @param sltAgreementInfo diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml index c78adb24..d9438373 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml @@ -551,12 +551,11 @@ tt.task_id as taskId,swn.node_sign_type as nodeSignType, lai.unit_id,lai.project_id,bu.unit_name, bp.pro_name, swr.workflow_status as taskStatus,bai.agreement_code, swrs.node_id,swrs.next_node_id,swrs.record_id, - case tt.task_status + case swr.workflow_status when 0 then '待审核' - when 1 then '待审核' - when 2 then '审核中' - when 3 then '已完成' - when 4 then '已完成' + when 1 then '审核中' + when 2 then '已完成' + when 3 then '已驳回' end as taskStatusName, IFNULL(sum(lad.pre_num),0) as preCountNum, IFNULL(sum(lad.al_num),0) as alNum, @@ -605,7 +604,7 @@ and lai.company_id = #{companyId} - and tt.task_status in + and swr.workflow_status in #{item} @@ -619,10 +618,12 @@ and lai.cost_bearing_party = #{costBearingParty} - and (tt.task_status = 0 or tt.task_status = 1 or tt.task_status = 2) - and (tt.task_status = 3 or tt.task_status = 4) + and swr.workflow_status = 0 + and swr.workflow_status = 1 + and swr.workflow_status = 2 + and swr.workflow_status = 3 GROUP BY lai.id - ORDER BY tt.task_status,tt.create_time desc + ORDER BY tt.create_time desc + SELECT + wh.id, + wh.next_node_id, + wc.roleIds + FROM + sys_workflow_record_history wh + LEFT JOIN sys_workflow_config wc on wh.next_node_id = wc.node_id + WHERE wh.record_id = #{flowId} + ORDER BY wh.id desc + + + + + + UPDATE uni_org.sys_information_people + SET + read_state = 1, + handle_state = 1, + is_examine =1, + update_user = #{receiverUsername}, + update_time = now() + WHERE information_id = #{informationId} + AND receiver_username = #{receiverUsername} + + +