From dc0dd59f063ee9c1fcb7735017e152e261a13e0b Mon Sep 17 00:00:00 2001 From: hongchao <3228015117@qq.com> Date: Wed, 3 Sep 2025 21:21:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lease/mapper/LeaseTaskMapper.java | 2 + .../SysWorkflowRecordHistoryMapper.java | 2 + .../SysWorkflowRecordHistoryServiceImpl.java | 81 +++++++++++-------- .../mapper/material/lease/LeaseTaskMapper.xml | 47 +++++++++++ .../work/SysWorkflowRecordhistoryMapper.xml | 7 ++ 5 files changed, 106 insertions(+), 33 deletions(-) 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 9030299f..8801ee9f 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 @@ -298,4 +298,6 @@ public interface LeaseTaskMapper { * @return */ int insertBackRecordByMaId(LeaseApplyDetails bean); + + WorkApplyInfo getInformationById(WorkApplyInfo workApplyInfo); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java index f36417a6..09f8d7ae 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordHistoryMapper.java @@ -15,4 +15,6 @@ public interface SysWorkflowRecordHistoryMapper { SysWorkflowRecordHistory getWorkflowRecordHistoryByRecordId(Integer recordId); SysWorkflowRecordHistory getWorkFlowRecordNodeInfoByTaskId(Integer taskId); + + SysWorkflowRecordHistory getWorkflowRecordHistory(Integer recordId); } 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 558736d5..536d3008 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 @@ -17,6 +17,7 @@ import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.back.domain.BackApplyDetails; import com.bonus.material.back.domain.BackApplyInfo; import com.bonus.material.back.mapper.BackApplyInfoMapper; +import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.event.InsertWorkflowEvent; import com.bonus.material.lease.domain.LeaseApplyDetails; import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper; @@ -117,7 +118,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis * 审批 */ @Override - @Transactional(rollbackFor = Exception.class) +// @Transactional(rollbackFor = Exception.class) public int updateSysWorkflowRecordHistory(@NotNull(message = "审批方法参数不能为空") SysWorkflowRecordHistory sysWorkflowRecordHistory) { SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); Long userId = sysUser.getUserId(); @@ -134,7 +135,12 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis String projectName = sysWorkflowRecordHistory.getProjectName(); Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId(); sysWorkflowRecordHistory.setCreateBy(userId.toString()); - sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); + //判断表中有没有这条数据 + SysWorkflowRecordHistory workflowRecordHistory = sysWorkflowRecordHistoryMapper.getWorkflowRecordHistory(recordId); + if(workflowRecordHistory == null){ + sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); + } + if (sysWorkflowRecordHistory.getIsAccept() == null) { throw new ServiceException("请选择是否接受审批"); @@ -748,41 +754,50 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis workApplyInfo.setFlowState(null); workApplyInfo.setWebUrl(webUrlBase + queryParams); workApplyInfo.setRout(webUrlBase + queryParams); + //判断表中是否已经有该条information数据 + WorkApplyInfo information = lMapper.getInformationById(workApplyInfo); + if(information == null){ + int countWork = lMapper.insertWorkOrder(workApplyInfo); + if (countWork > 0) { - int countWork = lMapper.insertWorkOrder(workApplyInfo); - if (countWork > 0) { + //查询审批人集合 + WorkPeopleInfo info = new WorkPeopleInfo(); + info.setFlowId(newId); - //查询审批人集合 - WorkPeopleInfo info = new WorkPeopleInfo(); - info.setFlowId(newId); - - List workPeopleInfoList = new ArrayList<>(); - workPeopleInfoList = lMapper.selectWorkPeopleInfoList(info.getFlowId()); - 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); + List workPeopleInfoList = new ArrayList<>(); + workPeopleInfoList = lMapper.selectWorkPeopleInfoList(info.getFlowId()); + // 过滤掉nextNodeId为null的数据 + if (workPeopleInfoList != null) { + workPeopleInfoList = workPeopleInfoList.stream() + .filter(person -> person.getNextNodeId() != null) // 过滤条件:nextNodeId不为null + .collect(Collectors.toList()); } + 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); + } + } } } } 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 7408c687..3bf80980 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 @@ -1231,4 +1231,51 @@ WHERE parent_id = #{parentId} + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordhistoryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordhistoryMapper.xml index 9f9917e2..986aac11 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordhistoryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordhistoryMapper.xml @@ -59,4 +59,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) h ON r.id = h.record_id WHERE r.task_id = #{taskId} +