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 97a6e3ea..b2c36125 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 @@ -62,4 +62,8 @@ public class WorkPeopleInfo implements Serializable { private String[] roleIdArray; private Integer nextNodeId; + + private Long userId; + + private String userName; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/dto/SysUserRoleVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/dto/SysUserRoleVo.java index 9ac1bc2f..0cc4c267 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/dto/SysUserRoleVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/dto/SysUserRoleVo.java @@ -24,4 +24,6 @@ public class SysUserRoleVo extends SysUserRole { private Long deptId; private String ancestors; + + private Long userid; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUserRoleMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUserRoleMapper.java index bb9af7b5..ee321be2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUserRoleMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmUserRoleMapper.java @@ -1,5 +1,6 @@ package com.bonus.material.basic.mapper; +import com.bonus.common.biz.domain.lease.WorkPeopleInfo; import com.bonus.material.basic.domain.dto.SysUserRoleVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ public interface BmUserRoleMapper { * @return List */ List getUserRoleListByDeptId(@Param("deptId") Long deptId, @Param("roleId") Long roleId); + + List getUserListByDeptId(@Param("deptId") Long deptId, @Param("roleId") Long roleId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyInfo.java index 8a843869..b3ea8c6e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyInfo.java @@ -199,4 +199,16 @@ public class MaterialBackApplyInfo implements Serializable { @ApiModelProperty(value = "退料方式(0 材料退料,1 工器具退料,2 第三方推送)") private String backStyle; + + @ApiModelProperty(value = "分公司") + private String impUnitName; + + @ApiModelProperty(value = "分包单位") + @Excel(name = "分包单位",sort = 5) + private String subUnitName; + + @ApiModelProperty(value = "项目部") + @Excel(name = "项目部",sort = 4) + private String departName; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyTotalInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyTotalInfo.java index 6aee31e8..0be174d1 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyTotalInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/back/MaterialBackApplyTotalInfo.java @@ -163,4 +163,16 @@ public class MaterialBackApplyTotalInfo implements Serializable { */ private List projectIdList; + @ApiModelProperty(value = "分包单位") + @Excel(name = "分包单位",sort = 5) + private String subUnitName; + + @ApiModelProperty(value = "项目部") + @Excel(name = "项目部",sort = 4) + private String departName; + + @Excel(name = "分公司",sort = 3) + @ApiModelProperty(value = "实施单位" ) + private String impUnitName; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/lease/MaterialLeaseApplyInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/lease/MaterialLeaseApplyInfo.java index 1a6cc447..04ee2660 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/lease/MaterialLeaseApplyInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/lease/MaterialLeaseApplyInfo.java @@ -34,14 +34,15 @@ public class MaterialLeaseApplyInfo extends BaseEntity { @ApiModelProperty(value = "申请时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "申请时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "申请时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 1) private Date createTime; - @Excel(name = "申请人") + @Excel(name = "申请人",sort = 2) @ApiModelProperty(value = "申请人") private String createBy; - @ApiModelProperty(value = "实施单位") + @Excel(name = "分公司",sort = 3) + @ApiModelProperty(value = "实施单位" ) private String impUnitName; @ApiModelProperty(value = "合同主体") @@ -60,9 +61,10 @@ public class MaterialLeaseApplyInfo extends BaseEntity { private String teamId; @ApiModelProperty(value = "班组名称") - @Excel(name = "领料班组") + @Excel(name = "领料班组",sort = 6) private String teamName; + @Excel(name = "租赁工程",sort = 7) @ApiModelProperty(value = "租赁工程") private String leaseProject; @@ -83,7 +85,7 @@ public class MaterialLeaseApplyInfo extends BaseEntity { private Byte leaseSignType; @ApiModelProperty(value = "领料物资名称汇总") - @Excel(name = "领料工器具类型") + @Excel(name = "领料工器具类型",sort=8) private String maTypeNames; @ApiModelProperty(value = "协议号") @@ -95,7 +97,7 @@ public class MaterialLeaseApplyInfo extends BaseEntity { @ApiModelProperty(value = "任务ID") private Long taskId; - @Excel(name = "班组长") + @Excel(name = "班组长",sort=9) @ApiModelProperty(value = "领料人") private String leasePerson; @@ -315,4 +317,16 @@ public class MaterialLeaseApplyInfo extends BaseEntity { * 状态 */ private String status; + + @ApiModelProperty(value = "分包单位") + @Excel(name = "分包单位",sort = 5) + private String subUnitName; + + @ApiModelProperty(value = "项目部") + @Excel(name = "项目部",sort = 4) + private String departName; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String proName; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java index 37a896af..a6cca388 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedEquipmentInfo.java @@ -233,4 +233,13 @@ public class MaterialRetainedEquipmentInfo { @ApiModelProperty(value = "项目部名称") private String proCenter; + + @ApiModelProperty(value = "物资类型") + private String materialName; + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; } \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java index 54e44387..41c72361 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/MaterialRetainedTeamTotalVo.java @@ -41,4 +41,20 @@ public class MaterialRetainedTeamTotalVo { @ApiModelProperty(value = "实施单位id") private String impUnit; + + @ApiModelProperty(value = "分公司") + @Excel(name = "分公司") + private String impUnitName; + + @ApiModelProperty(value = "项目部") + @Excel(name = "项目部") + private String departName; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String proName; + + @ApiModelProperty(value = "分包单位") + @Excel(name = "分包单位") + private String subUnitName; } \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/lease/LeaseTotalInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/lease/LeaseTotalInfo.java index 740a6dc2..1fc06473 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/lease/LeaseTotalInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/domain/vo/lease/LeaseTotalInfo.java @@ -102,4 +102,20 @@ public class LeaseTotalInfo { * i8工程id集合 */ private List projectIdList; + + @ApiModelProperty(value = "分公司") + @Excel(name = "分公司") + private String impUnitName; + + @ApiModelProperty(value = "项目部") + @Excel(name = "项目部") + private String departName; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String proName; + + @ApiModelProperty(value = "分包单位") + @Excel(name = "分包单位") + private String subUnitName; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java index 99e9c382..89beb5f3 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialBackApplyInfoServiceImpl.java @@ -21,6 +21,7 @@ import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.clz.domain.BmTeam; import com.bonus.material.clz.domain.lease.MaterialLeaseApplyInfo; +import com.bonus.material.clz.mapper.IwsTeamUserMapper; import com.bonus.material.clz.mapper.MaterialMachineMapper; import com.bonus.material.common.mapper.SelectMapper; import com.bonus.material.ma.mapper.MachineMapper; @@ -74,6 +75,9 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe @Resource private MaterialMachineMapper materialMachineMapper; + + @Resource + private IwsTeamUserMapper iwsTeamUserMapper; /** * 查询退料申请列表 * @param backApplyInfo @@ -125,12 +129,21 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe }*/ } if (!CollectionUtils.isEmpty(list)) { - // 提取关键字 - String keyWord = backApplyInfo.getKeyWord(); - // 如果关键字不为空,进行过滤 - if (!StringUtils.isBlank(keyWord)) { + for (MaterialBackApplyInfo materialRetainedEquipmentInfo : list) { + // 根据班组名称查询分包单位 + String subUnitName = iwsTeamUserMapper.getTeamName(materialRetainedEquipmentInfo.getTeamName()); + materialRetainedEquipmentInfo.setSubUnitName(subUnitName); + } + if(backApplyInfo.getSubUnitName()!=null && !backApplyInfo.getSubUnitName().equals("") && !list.isEmpty()){ + // 根据传入的SubUnitName过滤列表 list = list.stream() - .filter(item -> containsKeyword(item, keyWord)) + .filter(item -> com.alibaba.nacos.common.utils.StringUtils.equals(item.getSubUnitName(), backApplyInfo.getSubUnitName())) + .collect(Collectors.toList()); + } + if (!org.springframework.util.CollectionUtils.isEmpty(list) && !StringUtils.isBlank(backApplyInfo.getTypeName())) { + list = list.stream() + .filter(item -> StringUtils.isNotBlank(item.getTypeName()) && + item.getTypeName().contains(backApplyInfo.getTypeName())) .collect(Collectors.toList()); } // 如果需要导出 @@ -232,6 +245,13 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe list = filterList(list, username); }*/ } + // 新增typeName过滤条件 + if (!org.springframework.util.CollectionUtils.isEmpty(list) && !StringUtils.isBlank(backApplyInfo.getTypeName())) { + list = list.stream() + .filter(item -> StringUtils.isNotBlank(item.getTypeName()) && + item.getTypeName().contains(backApplyInfo.getTypeName())) + .collect(Collectors.toList()); + } if (!CollectionUtils.isEmpty(list)) { // 如果关键字不为空,进行过滤 if (!StringUtils.isBlank(backApplyInfo.getKeyWord())) { @@ -601,6 +621,19 @@ public class MaterialBackApplyInfoServiceImpl implements MaterialBackApplyInfoSe list = filterInfo(list, username); }*/ } + if (CollectionUtils.isNotEmpty(list)) { + for (MaterialBackApplyTotalInfo materialRetainedEquipmentInfo : list) { + // 根据班组名称查询分包单位 + String subUnitName = iwsTeamUserMapper.getTeamName(materialRetainedEquipmentInfo.getTeamName()); + materialRetainedEquipmentInfo.setSubUnitName(subUnitName); + } + if(info.getSubUnitName()!=null && !info.getSubUnitName().equals("") && !list.isEmpty()){ + // 根据传入的SubUnitName过滤列表 + list = list.stream() + .filter(item -> com.alibaba.nacos.common.utils.StringUtils.equals(item.getSubUnitName(), info.getSubUnitName())) + .collect(Collectors.toList()); + } + } if (CollectionUtils.isNotEmpty(list)) { for (MaterialBackApplyTotalInfo backApplyTotalInfo : list) { backNum = backNum.add(backApplyTotalInfo.getBackNum()); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java index 59941d11..158952f6 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialLeaseInfoServiceImpl.java @@ -25,7 +25,9 @@ import com.bonus.material.basic.mapper.BmAgreementInfoMapper; import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.clz.domain.BmTeam; import com.bonus.material.clz.domain.vo.MaterialMaCodeVo; +import com.bonus.material.clz.domain.vo.MaterialRetainedTeamTotalVo; import com.bonus.material.clz.mapper.BmTeamMapper; +import com.bonus.material.clz.mapper.IwsTeamUserMapper; import com.bonus.material.clz.mapper.MaterialMachineMapper; import com.bonus.material.common.domain.dto.SelectDto; import com.bonus.material.common.domain.vo.AgreementVo; @@ -93,6 +95,9 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { @Resource private BmTeamMapper bmTeamMapper; + @Resource + private IwsTeamUserMapper iwsTeamUserMapper; + /** * 查询领料任务列表 * @@ -141,13 +146,25 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { .collect(Collectors.toList()); } } + + // 处理剩余数据 if (!CollectionUtils.isEmpty(sortedList)) { - // 关键字过滤 - String keyWord = leaseApplyInfo.getKeyWord(); - if (!StringUtils.isBlank(keyWord)) { + for (MaterialLeaseApplyInfo materialRetainedEquipmentInfo : sortedList) { + // 根据班组名称查询分包单位 + String subUnitName = iwsTeamUserMapper.getTeamName(materialRetainedEquipmentInfo.getTeamName()); + materialRetainedEquipmentInfo.setSubUnitName(subUnitName); + } + if(leaseApplyInfo.getSubUnitName()!=null && !leaseApplyInfo.getSubUnitName().equals("") && !sortedList.isEmpty()){ + // 根据传入的SubUnitName过滤列表 sortedList = sortedList.stream() - .filter(item -> containsKeyword(item, keyWord)) + .filter(item -> com.alibaba.nacos.common.utils.StringUtils.equals(item.getSubUnitName(), leaseApplyInfo.getSubUnitName())) + .collect(Collectors.toList()); + } + if (!org.springframework.util.CollectionUtils.isEmpty(sortedList) && !StringUtils.isBlank(leaseApplyInfo.getMaTypeNames())) { + sortedList = sortedList.stream() + .filter(item -> StringUtils.isNotBlank(item.getMaTypeNames()) && + item.getMaTypeNames().contains(leaseApplyInfo.getMaTypeNames())) .collect(Collectors.toList()); } // 状态过滤 @@ -241,6 +258,7 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { } // 领料数据 List list = materialLeaseInfoMapper.getTotalList(leaseApplyInfo); + // 查询领用数据 List leaseApplyOutList = materialLeaseInfoMapper.selectPublishList(leaseApplyInfo); if (!CollectionUtils.isEmpty(leaseApplyOutList)) { @@ -280,6 +298,13 @@ public class MaterialLeaseInfoServiceImpl implements MaterialLeaseInfoService { .collect(Collectors.toList()); } } + // 新增maTypeNames过滤条件 + if (!CollectionUtils.isEmpty(sortedList) && !StringUtils.isBlank(leaseApplyInfo.getMaTypeNames())) { + sortedList = sortedList.stream() + .filter(item -> StringUtils.isNotBlank(item.getMaTypeNames()) && + item.getMaTypeNames().contains(leaseApplyInfo.getMaTypeNames())) + .collect(Collectors.toList()); + } if (!CollectionUtils.isEmpty(sortedList)) { // 如果关键字不为空,进行过滤 if (!StringUtils.isBlank(leaseApplyInfo.getKeyWord())) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java index ec7e7c69..2f2eb602 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/clz/service/impl/MaterialMachineServiceImpl.java @@ -569,7 +569,19 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { @Override public List getSafeDetailsList(MaterialRetainedEquipmentInfo bean) { bean.setDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId()); - return materialMachineMapper.getTotalList(bean); + List usList = materialMachineMapper.getTotalList(bean); + for (MaterialRetainedEquipmentInfo materialRetainedEquipmentInfo : usList) { + // 根据班组名称查询分包单位 + String subUnitName = iwsTeamUserMapper.getTeamName(materialRetainedEquipmentInfo.getTeamName()); + materialRetainedEquipmentInfo.setSubUnitName(subUnitName); + } + if(bean.getSubUnitName()!=null && !bean.getSubUnitName().equals("") && !usList.isEmpty()){ + // 根据传入的SubUnitName过滤列表 + usList = usList.stream() + .filter(item -> StringUtils.equals(item.getSubUnitName(), bean.getSubUnitName())) + .collect(Collectors.toList()); + } + return usList; } /** @@ -598,6 +610,18 @@ public class MaterialMachineServiceImpl implements MaterialMachineService { List departId = mapper.getDepartId(username); // 根据项目部id查询工程信息 List teamNumList = materialMachineMapper.getTeamNumList(bean); + + for (MaterialRetainedTeamTotalVo materialRetainedEquipmentInfo : teamNumList) { + // 根据班组名称查询分包单位 + String subUnitName = iwsTeamUserMapper.getTeamName(materialRetainedEquipmentInfo.getTeamName()); + materialRetainedEquipmentInfo.setSubUnitName(subUnitName); + } + if(bean.getSubUnitName()!=null && !bean.getSubUnitName().equals("") && !teamNumList.isEmpty()){ + // 根据传入的SubUnitName过滤列表 + teamNumList = teamNumList.stream() + .filter(item -> StringUtils.equals(item.getSubUnitName(), bean.getSubUnitName())) + .collect(Collectors.toList()); + } if (CollectionUtils.isEmpty(departId)) { List projectIdList = mapper.getProjectId(departId); List list = mapper.getProjectInfo(new BmProject()); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/ApplyEventListener.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/ApplyEventListener.java index 8aa471a4..c21ef8db 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/ApplyEventListener.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/ApplyEventListener.java @@ -27,6 +27,8 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; +import static net.sf.jsqlparser.util.validation.metadata.NamedObject.user; + @Component public class ApplyEventListener { @@ -75,8 +77,6 @@ public class ApplyEventListener { throw new RuntimeException("创建审批任务失败!"); } - - } else { sysWorkflowRecord = new SysWorkflowRecord(); sysWorkflowRecord.setTaskId(event.getTaskId()); @@ -84,12 +84,6 @@ public class ApplyEventListener { sysWorkflowRecord.setTaskCode(event.getTaskCode()); //创建审批任务 count = sysWorkflowRecordMapper.addSysWorkflowRecord(sysWorkflowRecord); -// int newId = 0; -// -// newId = sysWorkflowRecord.getId() ; -// if (count > 0) { -// createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId); -// } // 如果该任务类型配置了多个审批流,则根据任务信息判断使用 if (event.getTaskType() == TmTaskTypeEnum.TM_TASK_DIRECT.getTaskTypeId()) { // 直转审批任务,则根据转出和转入的部门判断,同一部门使用无需接收审批流,不同部门则使用需要接收审批流 @@ -152,17 +146,42 @@ public class ApplyEventListener { sysWorkflowRecordHistory.setIsAccept(1); sysWorkflowRecordHistory.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString()); sysWorkflowRecordHistory.setCreateTime(DateUtils.getNowDate()); + int projectId = directAuditMapper.getProjectIdById(event.getBackAgreementId()); + //根据project_id获取external_id + String externalId = directAuditMapper.getExternalId(projectId); + List userList = new ArrayList<>(); + if (externalId != null && !externalId.isEmpty()) { + //获取项目总工id + String leaderId = directAuditMapper.getLeaderId(externalId); + if(leaderId != null && !leaderId.isEmpty()){ + //获取项目总工账号 + String leaderAccount = directAuditMapper.getUserNameById(leaderId); + if(leaderAccount != null && !leaderAccount.isEmpty()){ + userList = directAuditMapper.getUserIdByUserName(leaderAccount); + if(userList != null && !userList.isEmpty()){ + String userIds = userList.stream().map(WorkPeopleInfo::getUserId).map(String::valueOf).collect(Collectors.joining(",")); + sysWorkflowRecordHistory.setDirectUserIds(userIds); + } + } + }else{ + directAuditMapper.deleteWorkflowRecord(newId); + throw new RuntimeException("项目总工不存在"); + } + }else{ + directAuditMapper.deleteWorkflowRecord(newId); + throw new RuntimeException("未找到所属工程"); + } sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); - if (count > 0) { - createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId,sysWorkflowRecordHistory.getNodeId()); + if (count > 0 && userList != null && !userList.isEmpty()) { + createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId,sysWorkflowRecordHistory.getNodeId(),userList); } return newId; } - private void createWorkOrderAndPeople(SysUser sysUser, InsertWorkflowEvent event, Long taskId, int newId,int nodeId) { + private void createWorkOrderAndPeople(SysUser sysUser, InsertWorkflowEvent event, Long taskId, int newId,int nodeId,List userList) { //获取工程名称 - int projectId = directAuditMapper.getProjectIdById(event.getLeaseAgreementId()); + int projectId = directAuditMapper.getProjectIdById(event.getBackAgreementId()); String projectName = directAuditMapper.getProjectNameById(projectId); String id = UUID.randomUUID().toString().replace("-", ""); String webUrlBase = "/mea-h5/#/pages/businessAudit/directAudit/details"; @@ -190,39 +209,15 @@ public class ApplyEventListener { int countWork = directAuditMapper.insertWorkOrder(workApplyInfo); if (countWork > 0) { - - //查询审批人集合 - WorkPeopleInfo info = new WorkPeopleInfo(); - info.setFlowId(newId); - - List workPeopleInfoList = directAuditMapper.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 = directAuditMapper.selectUserListByRoleAndDept(param); - for (WorkPeopleInfo user : userList) { - WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo(); - workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", "")); - workPeopleInfo.setInformationId(id); - workPeopleInfo.setReceiverUsername(user.getReceiverUsername()); + for (WorkPeopleInfo user : userList) { + WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo(); + workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", "")); + workPeopleInfo.setInformationId(id); + workPeopleInfo.setReceiverUsername(user.getUserName()); workPeopleInfo.setReadState(0); workPeopleInfo.setHandleState(0); workPeopleInfo.setIsExamine(0); directAuditMapper.insertWorkPeople(workPeopleInfo); - } - } } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/InsertWorkflowEvent.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/InsertWorkflowEvent.java index ddf46b35..ecc16e03 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/InsertWorkflowEvent.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/event/InsertWorkflowEvent.java @@ -9,13 +9,15 @@ public class InsertWorkflowEvent { private final int taskType; private final String taskCode; private final int leaseAgreementId; + private final int backAgreementId; private final String leaseMan; - public InsertWorkflowEvent(int taskId, String taskCode, int taskType,int leaseAgreementId, String leaseMan) { + public InsertWorkflowEvent(int taskId, String taskCode, int taskType,int leaseAgreementId,int backAgreementId, String leaseMan) { this.taskId = taskId; this.taskCode = taskCode; this.taskType = taskType; this.leaseAgreementId = leaseAgreementId; + this.backAgreementId = backAgreementId; this.leaseMan = leaseMan; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyInfo.java index ad2e3c2d..b088d081 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/DirectApplyInfo.java @@ -204,4 +204,6 @@ public class DirectApplyInfo extends BaseEntity { @ApiModelProperty(value = "任务状态列表") private List statusList; + + private Integer deptId; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java index 8bbc0dac..f89d9727 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java @@ -348,4 +348,27 @@ public class Machine extends BaseEntity { @ApiModelProperty(value = "当前状态") private String oldStatus; + @ApiModelProperty(value = "分公司") + private String impUnitName; + + @ApiModelProperty(value = "项目部") + private String departName; + + @ApiModelProperty(value="开始时间") + private String startTime; + + @ApiModelProperty(value="结束时间") + private String endTime; + + @ApiModelProperty(value="本次检验开始时间") + private String checkStartTime; + + @ApiModelProperty(value="本次检验结束时间") + private String checkEndTime; + + @ApiModelProperty(value="下次检验开始时间") + private String nextStartTime; + + @ApiModelProperty(value="下次检验结束时间") + private String nextEndTime; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java index 177f724b..c8621533 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/DirectRotationImpl.java @@ -135,6 +135,7 @@ public class DirectRotationImpl implements DirectRotationService { String code; String leaseMan; int leaseAgreementId; + int backAgreementId; if (directApplyInfoDetails != null) { if (directApplyInfoDetails.getDirectApplyInfo() != null) { DirectApplyInfo directApplyInfos = directApplyInfoDetails.getDirectApplyInfo(); @@ -156,6 +157,7 @@ public class DirectRotationImpl implements DirectRotationService { directApplyInfos.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString()); leaseMan = directApplyInfos.getLeaseMan(); leaseAgreementId = directApplyInfos.getLeaseAgreementId(); + backAgreementId = directApplyInfos.getBackAgreementId(); int i = workSiteDirectManageService.saveDirectApplyInfo(directApplyInfos); if (i < 0) { return AjaxResult.error("保存失败"); @@ -186,7 +188,7 @@ public class DirectRotationImpl implements DirectRotationService { // @Override // public void afterCommit() { // 发布审批流程事件 - applicationEventPublisher.publishEvent(new InsertWorkflowEvent(id, code, TM_TASK_DIRECT.getTaskTypeId(),leaseAgreementId,leaseMan)); + applicationEventPublisher.publishEvent(new InsertWorkflowEvent(id, code, TM_TASK_DIRECT.getTaskTypeId(),leaseAgreementId,backAgreementId,leaseMan)); // } // }); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java index f322e05b..2fb34878 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/SysWorkflowNode.java @@ -122,4 +122,8 @@ public class SysWorkflowNode { * 审核人 */ private String auditBy; + + private Integer nextNodeId; + + private String nextRoleIds; } 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 4fb1447c..37f51fd8 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 @@ -103,4 +103,6 @@ public class SysWorkflowRecordHistory { * 工单审核状态0待审核1已审核 */ private int isExamine; + + private String directUserIds; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/DirectAuditMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/DirectAuditMapper.java index a5bf4dde..b80a968e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/DirectAuditMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/DirectAuditMapper.java @@ -11,6 +11,7 @@ import com.bonus.material.work.domain.DirectAudit; import com.bonus.material.work.domain.SysWorkflowRecord; import org.apache.ibatis.annotations.Param; +import java.util.Collection; import java.util.List; /** @@ -44,4 +45,16 @@ public interface DirectAuditMapper { List selectUserListByRoleAndDept(WorkPeopleInfo param); void insertWorkPeople(WorkPeopleInfo workPeopleInfo); + + String getExternalId(int projectId); + + String getLeaderId(String externalId); + + String getUserNameById(String leaderId); + + List getUserIdByUserName(String leaderAccount); + + void deleteWorkflowRecord(int newId); + + List getUserIdByExternalId(String leaderAccount); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowConfigMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowConfigMapper.java index 349d3559..75f870ac 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowConfigMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowConfigMapper.java @@ -1,5 +1,6 @@ package com.bonus.material.work.mapper; +import com.bonus.material.basic.domain.dto.SysUserRoleVo; import com.bonus.material.work.domain.SysWorkflowConfig; import com.bonus.material.work.domain.SysWorkflowType; @@ -25,4 +26,6 @@ public interface SysWorkflowConfigMapper { SysWorkflowConfig selectConfigValueInfoByNodeId(Integer nodeId); int getImpUnit(String backProId); + + List getUserIdByUserName(String leaderAccount); } 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 09f8d7ae..b6807f86 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 @@ -17,4 +17,16 @@ public interface SysWorkflowRecordHistoryMapper { SysWorkflowRecordHistory getWorkFlowRecordNodeInfoByTaskId(Integer taskId); SysWorkflowRecordHistory getWorkflowRecordHistory(Integer recordId); + + String getDirectUserIdsByTaskId(SysWorkflowRecordHistory sysWorkflowRecordHistory); + + int getLeaseAgreementIdByTaskId(SysWorkflowRecordHistory sysWorkflowRecordHistory); + + int getProjectIdById(int leaseAgreementId); + + int getBackAgreementIdByTaskId(SysWorkflowRecordHistory sysWorkflowRecordHistory); + + String getNowUserIds(SysWorkflowRecordHistory sysWorkflowRecordHistory); + + void deleteNowNode(SysWorkflowRecordHistory sysWorkflowRecordHistory); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/SysWorkflowNodeService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/SysWorkflowNodeService.java index be68dfd2..fcba00e2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/SysWorkflowNodeService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/SysWorkflowNodeService.java @@ -1,6 +1,7 @@ package com.bonus.material.work.service; +import com.bonus.common.biz.domain.lease.WorkPeopleInfo; import com.bonus.material.ma.domain.DirectApplyInfo; import com.bonus.material.work.domain.SysWorkflowNode; @@ -19,7 +20,7 @@ public interface SysWorkflowNodeService { List listByTaskId(SysWorkflowNode sysWorkflowNode); void copeNodeConfigPersonValuesByNode(SysWorkflowNode forSysWorkflowNode); - void copeNodeConfigPersonValuesByNodeTwo(SysWorkflowNode forSysWorkflowNode, DirectApplyInfo directApplyInfo); + void copeNodeConfigPersonValuesByNodeTwo(SysWorkflowNode forSysWorkflowNode, DirectApplyInfo directApplyInfo,List userList,int num); Map listByProId(SysWorkflowNode sysWorkflowNode); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/DirectAuditImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/DirectAuditImpl.java index 09dc7824..f31080a2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/DirectAuditImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/DirectAuditImpl.java @@ -48,73 +48,73 @@ public class DirectAuditImpl implements IDirectAuditService { List directApplyInfoList = mapper.getList(directApplyInfo); directApplyInfoList.removeIf(item -> item == null || item.getNodeId() == null); - for (DirectApplyInfo directApplyInfoNew : directApplyInfoList) { - log.info("当前节点为{}", directApplyInfoNew.getNodeId()); - SysWorkflowRecordHistory sysWorkflowRecordHistory = sysWorkflowRecordHistoryMapper.getWorkflowRecordHistoryByRecordId(directApplyInfoNew.getRecordId()); - directApplyInfoNew.setNodeId(sysWorkflowRecordHistory.getNodeId()); - //设置当前节点 - if (1 == directApplyInfoNew.getNodeSignType() && sysWorkflowRecordHistory.getNodeSort() == 1) { - directApplyInfoNew.setNodeId(sysWorkflowRecordHistory.getNextNodeId()); - } - String configValue = sysWorkflowConfigMapper.selectConfigValueByNodeId(directApplyInfoNew.getNodeId()); - SysWorkflowNode sysWorkflowNode = sysWorkflowNodeMapper.selectSysWorkflowNodeById(directApplyInfoNew.getNodeId()); - directApplyInfoNew.setConfigValue(configValue); - //判断当前节点是否审核 - sysWorkflowRecordHistory.setRecordId(directApplyInfoNew.getRecordId()); - sysWorkflowRecordHistory.setNodeId(directApplyInfoNew.getNodeId()); - List sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); - //判断是或签还是会签0:或签 1:会签 - if (sysWorkflowNode.getNodeSignType() == 0) { - //当前节点已经审核需要修改节点值 - if (sysWorkflowRecordHistoryList.get(0) != null) { - // 查询下个节点需要审核的人员 - // 不能采用简单的直接查询数据库字段,而是要调用方法,根据配置来获取对应的配置 - // String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); - - // 先根据下个节点的ID去查询下个节点信息 - SysWorkflowNode nextWorkflowInfo = sysWorkflowNodeMapper.selectSysWorkflowNodeById(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); - // 再根据下个节点信息查询到配置值 - sysWorkflowNodeService.copeNodeConfigPersonValuesByNodeTwo(nextWorkflowInfo,directApplyInfoNew); - directApplyInfoNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); - if (nextWorkflowInfo != null && nextWorkflowInfo.getConfigValues() != null) { - directApplyInfoNew.setConfigValue(nextWorkflowInfo.getConfigValues()); - } else { - directApplyInfoNew.setConfigValue(""); - } - } - } else { - String[] ConfigValue = configValue.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()); - directApplyInfoNew.setConfigValue(filteredList.toString()); - } - } - - // 判断是否这个节点的所有人都需要审核 - if (filteredList.isEmpty()) { - // 不能采用简单的直接查询数据库字段,而是要调用方法,根据配置来获取对应的配置 - // String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); - // 先根据下个节点的ID去查询下个节点信息 - SysWorkflowNode nextWorkflowInfo = sysWorkflowNodeMapper.selectSysWorkflowNodeById(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); - // 再根据下个节点信息查询到配置值 - sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(nextWorkflowInfo); - - directApplyInfoNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); - directApplyInfoNew.setConfigValue(nextWorkflowInfo.getConfigValues()); - } else { - if (!sysWorkflowRecordHistoryList.isEmpty()) { - directApplyInfoNew.setNodeId(directApplyInfoNew.getNodeId()); - directApplyInfoNew.setConfigValue(filteredList.toString()); - } - } - - } - } +// for (DirectApplyInfo directApplyInfoNew : directApplyInfoList) { +// log.info("当前节点为{}", directApplyInfoNew.getNodeId()); +// SysWorkflowRecordHistory sysWorkflowRecordHistory = sysWorkflowRecordHistoryMapper.getWorkflowRecordHistoryByRecordId(directApplyInfoNew.getRecordId()); +// directApplyInfoNew.setNodeId(sysWorkflowRecordHistory.getNodeId()); +// //设置当前节点 +// if (1 == directApplyInfoNew.getNodeSignType() && sysWorkflowRecordHistory.getNodeSort() == 1) { +// directApplyInfoNew.setNodeId(sysWorkflowRecordHistory.getNextNodeId()); +// } +// String configValue = sysWorkflowConfigMapper.selectConfigValueByNodeId(directApplyInfoNew.getNodeId()); +// SysWorkflowNode sysWorkflowNode = sysWorkflowNodeMapper.selectSysWorkflowNodeById(directApplyInfoNew.getNodeId()); +// directApplyInfoNew.setConfigValue(configValue); +// //判断当前节点是否审核 +// sysWorkflowRecordHistory.setRecordId(directApplyInfoNew.getRecordId()); +// sysWorkflowRecordHistory.setNodeId(directApplyInfoNew.getNodeId()); +// List sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); +// //判断是或签还是会签0:或签 1:会签 +// if (sysWorkflowNode.getNodeSignType() == 0) { +// //当前节点已经审核需要修改节点值 +// if (sysWorkflowRecordHistoryList.get(0) != null) { +// // 查询下个节点需要审核的人员 +// // 不能采用简单的直接查询数据库字段,而是要调用方法,根据配置来获取对应的配置 +// // String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); +// +// // 先根据下个节点的ID去查询下个节点信息 +// SysWorkflowNode nextWorkflowInfo = sysWorkflowNodeMapper.selectSysWorkflowNodeById(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); +// // 再根据下个节点信息查询到配置值 +// sysWorkflowNodeService.copeNodeConfigPersonValuesByNodeTwo(nextWorkflowInfo,directApplyInfoNew); +// directApplyInfoNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); +// if (nextWorkflowInfo != null && nextWorkflowInfo.getConfigValues() != null) { +// directApplyInfoNew.setConfigValue(nextWorkflowInfo.getConfigValues()); +// } else { +// directApplyInfoNew.setConfigValue(""); +// } +// } +// } else { +// String[] ConfigValue = configValue.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()); +// directApplyInfoNew.setConfigValue(filteredList.toString()); +// } +// } +// +// // 判断是否这个节点的所有人都需要审核 +// if (filteredList.isEmpty()) { +// // 不能采用简单的直接查询数据库字段,而是要调用方法,根据配置来获取对应的配置 +// // String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); +// // 先根据下个节点的ID去查询下个节点信息 +// SysWorkflowNode nextWorkflowInfo = sysWorkflowNodeMapper.selectSysWorkflowNodeById(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); +// // 再根据下个节点信息查询到配置值 +// sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(nextWorkflowInfo); +// +// directApplyInfoNew.setNodeId(sysWorkflowRecordHistoryList.get(0).getNextNodeId()); +// directApplyInfoNew.setConfigValue(nextWorkflowInfo.getConfigValues()); +// } else { +// if (!sysWorkflowRecordHistoryList.isEmpty()) { +// directApplyInfoNew.setNodeId(directApplyInfoNew.getNodeId()); +// directApplyInfoNew.setConfigValue(filteredList.toString()); +// } +// } +// +// } +// } return directApplyInfoList; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java index 1e8c3e56..d7aff8e2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java @@ -1,5 +1,6 @@ package com.bonus.material.work.service.impl; +import com.bonus.common.biz.domain.lease.WorkPeopleInfo; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.security.utils.SecurityUtils; @@ -9,6 +10,7 @@ import com.bonus.material.ma.domain.DirectApplyInfo; import com.bonus.material.work.domain.SysWorkflowConfig; import com.bonus.material.work.domain.SysWorkflowNode; import com.bonus.material.work.domain.SysWorkflowRecordHistory; +import com.bonus.material.work.mapper.DirectAuditMapper; import com.bonus.material.work.mapper.SysWorkflowConfigMapper; import com.bonus.material.work.mapper.SysWorkflowNodeMapper; import com.bonus.material.work.mapper.SysWorkflowRecordHistoryMapper; @@ -36,6 +38,9 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { @Resource private BmUserRoleMapper bmUserRoleMapper; + @Resource + private DirectAuditMapper directAuditMapper; + /** * 工作流详情列表 */ @@ -222,7 +227,7 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { } @Override - public void copeNodeConfigPersonValuesByNodeTwo(SysWorkflowNode forSysWorkflowNode, DirectApplyInfo directApplyInfo) { + public void copeNodeConfigPersonValuesByNodeTwo(SysWorkflowNode forSysWorkflowNode, DirectApplyInfo directApplyInfo,List userList,int num) { if (forSysWorkflowNode == null) { System.err.println("传入的节点信息为空!"); return; @@ -231,7 +236,7 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { // 判断配置的类型 if (forSysWorkflowNode.getConfigType() == null || forSysWorkflowNode.getConfigType() == 0) { // 如果配置的是角色,那么要根据角色id去查询有哪些用户 - String roleIds = forSysWorkflowNode.getRoleIds(); + String roleIds = forSysWorkflowNode.getNextRoleIds(); // 如果参数没有,那么就从数据库中查询 if (roleIds == null || roleIds.isEmpty()) { System.out.println("节点配置角色为空!去再执行数据库查询"); @@ -241,51 +246,58 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { StringBuilder roleConfigValues = new StringBuilder(); String[] roleIdArray = roleIds.split(","); for (String forRoleId : roleIdArray) { - List userList = bmUserRoleMapper.getUserRoleListByDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId(), Long.valueOf(forRoleId)); - if(forSysWorkflowNode.getNodeName().contains("接收")){ - int proIdLease = sysWorkflowConfigMapper.getImpUnit(directApplyInfo.getLeaseProId()); - // 使用 Iterator 迭代器遍历,支持安全删除元素 - Iterator iterator = userList.iterator(); - while (iterator.hasNext()) { - SysUserRoleVo user = iterator.next(); - // 条件1:部门ID等于proIdBack → 保留(跳过删除) - if (proIdLease == user.getDeptId()) { - continue; + if(forSysWorkflowNode.getNodeName().contains("接收方材料员审核")){ + //根据project_id获取external_id + String externalId = directAuditMapper.getExternalId(Integer.parseInt(directApplyInfo.getLeaseProId())); + if (externalId != null && !externalId.isEmpty()) { + //获取项目总工id + String leaderId = directAuditMapper.getLeaderId(externalId); + if(leaderId != null && !leaderId.isEmpty()){ + //获取项目总工账号 + String leaderAccount = directAuditMapper.getUserNameById(leaderId); + if(leaderAccount != null && !leaderAccount.isEmpty()){ + userList.addAll(directAuditMapper.getUserIdByUserName(leaderAccount)); + } + }else{ + throw new RuntimeException("项目总工不存在"); } - // 条件2:祖先ID列表包含proIdBack → 保留(跳过删除) - String ancestors = user.getAncestors(); - if (ancestors != null && Arrays.asList(ancestors.split(",")).contains(String.valueOf(proIdLease))) { - continue; - } - // 若以上条件均不满足 → 剔除该条数据 - iterator.remove(); + }else{ + throw new RuntimeException("未找到所属工程"); + } + }else if(forSysWorkflowNode.getNodeName().contains("所属施工管理科审核") && num==6){ + //根据project_id获取external_id + String externalId = directAuditMapper.getExternalId(Integer.parseInt(directApplyInfo.getLeaseProId())); + if (externalId != null && !externalId.isEmpty()) { + userList.addAll(directAuditMapper.getUserIdByExternalId(externalId)); + }else{ + throw new RuntimeException("未找到所属工程"); } }else{ - int proIdBack = sysWorkflowConfigMapper.getImpUnit(directApplyInfo.getBackProId()); - // 使用 Iterator 迭代器遍历,支持安全删除元素 - Iterator iterator = userList.iterator(); - while (iterator.hasNext()) { - SysUserRoleVo user = iterator.next(); - // 条件1:部门ID等于proIdBack → 保留(跳过删除) - if (proIdBack == user.getDeptId()) { - continue; - } - // 条件2:祖先ID列表包含proIdBack → 保留(跳过删除) - String ancestors = user.getAncestors(); - if (ancestors != null && Arrays.asList(ancestors.split(",")).contains(String.valueOf(proIdBack))) { - continue; - } - // 若以上条件均不满足 → 剔除该条数据 - iterator.remove(); - } + userList.addAll(bmUserRoleMapper.getUserListByDeptId(Long.valueOf(directApplyInfo.getDeptId()), Long.valueOf(forRoleId))); } - + //去重 + Set seenUserIds = new HashSet<>(); + userList.removeIf(info -> { + Long userId = info.getUserId(); + return userId == null || !seenUserIds.add(userId); // 若userId已存在则移除当前元素 + }); if (!userList.isEmpty()) { - // 如果不是第一次拼接,先添加逗号分隔 - if (roleConfigValues.length() > 0) { - roleConfigValues.append(","); + for(WorkPeopleInfo info:userList){ + String userId = String.valueOf(info.getUserId()); + if(!roleConfigValues.toString().contains(userId)){ + // 如果不是第一次拼接,先添加逗号分隔 + roleConfigValues.append(info.getUserId()); + roleConfigValues.append(","); + + } + } + + } + if(roleConfigValues.length() > 0){ + // 去除结尾的逗号 + if (roleConfigValues.charAt(roleConfigValues.length() - 1) == ',') { + roleConfigValues.deleteCharAt(roleConfigValues.length() - 1); } - roleConfigValues.append(userList.stream().map(user -> String.valueOf(user.getUserId())).collect(Collectors.joining(","))); } } forSysWorkflowNode.setConfigValues(roleConfigValues.toString()); 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 536d3008..d3fe0abc 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 @@ -167,7 +167,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis * 直转审批 */ @Override - @Transactional(rollbackFor = Exception.class) +// @Transactional(rollbackFor = Exception.class) public int updateDirectSysWorkflowRecordHistory(@NotNull(message = "审批方法参数不能为空") SysWorkflowRecordHistory sysWorkflowRecordHistory) { SysUser sysUser = SecurityUtils.getLoginUser().getSysUser(); Long userId = sysUser.getUserId(); @@ -183,7 +183,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId(); Integer nodeId = sysWorkflowRecordHistory.getNodeId(); sysWorkflowRecordHistory.setCreateBy(userId.toString()); - sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); +// sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); if (sysWorkflowRecordHistory.getIsAccept() == null) { throw new ServiceException("请选择是否接受审批"); @@ -365,33 +365,44 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis private void handleDirectApproval(List sysWorkflowNodeList, SysWorkflowRecordHistory sysWorkflowRecordHistory, SysUser sysUser, Integer taskId, String recordCode, Integer recordId, Integer nextNodeId, Integer nodeId) { boolean found = false; - - for (SysWorkflowNode sysWorkflowNode : sysWorkflowNodeList) { + Integer proId = null; + List userList = new ArrayList<>(); + for (int i = 0; i < sysWorkflowNodeList.size(); i++) { // 判断列表中哪个节点是当前审批的节点,如果不是审批的节点不处理 - if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())) { + if (sysWorkflowRecordHistory.getNextNodeId().equals(sysWorkflowNodeList.get(i).getId())) { log.info("-------------进入到了当前审批的节点-------------"); - // 根据传入的节点信息,去判断配置的是角色or用户 自动处理 - sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(sysWorkflowNode); - +// sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory); // 增加节点code编码判断,是否有节点审批限制 - if (StringUtils.isNotBlank(sysWorkflowNode.getNodeRestrictCode())) { + if (StringUtils.isNotBlank(sysWorkflowNodeList.get(i).getNodeRestrictCode())) { //属于后三个审批流 log.info("-------------当前节点有审批限制,进行限制🚫-------------"); - switch (sysWorkflowNode.getNodeRestrictCode()) { + switch (sysWorkflowNodeList.get(i).getNodeRestrictCode()) { case "unit": // 限制同一unit单位 - // 根据任务类型 + 任务ID + 节点ID 去查询满足限制的用户,然后更新configValues值 - if (Objects.equals(sysWorkflowRecordHistory.getTaskTypeId(), TmTaskTypeEnum.TM_TASK_DIRECT.getTaskTypeId())) { - // 直转任务, 根据任务ID去查询当前任务的接收项目部有哪些人员 - String thisUnitUserIds = sysWorkflowConfigMapper.selectUnitConfigValuesByTaskId(sysWorkflowRecordHistory.getTaskId()); - String filterConfigValuesResult = filterStringByReference(sysWorkflowNode.getConfigValues(), thisUnitUserIds); - if (StringUtils.isBlank(filterConfigValuesResult)) { - throw new ServiceException("您不满足当前节点的审批限制🚫,无法进行此操作!!"); + //获取转入(接收方)的agreementId + proId = sysWorkflowRecordHistoryMapper.getLeaseAgreementIdByTaskId(sysWorkflowRecordHistory); + int deptId = directAuditMapper.getImpUnit(String.valueOf(proId)); + DirectApplyInfo directApplyInfo = new DirectApplyInfo(); + directApplyInfo.setLeaseProId(String.valueOf(proId)); + directApplyInfo.setDeptId(deptId); + + //插入history表中 + SysWorkflowRecordHistory history = sysWorkflowRecordHistory; + history.setNodeId(sysWorkflowRecordHistory.getNextNodeId()); + if(i!=sysWorkflowNodeList.size()-1){ + history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId()); + sysWorkflowNodeList.get(i).setNextNodeId(sysWorkflowNodeList.get(i+1).getId()); + sysWorkflowNodeList.get(i).setNextRoleIds(sysWorkflowNodeList.get(i+1).getRoleIds()); + }else{ + history.setNextNodeId(null); + sysWorkflowNodeList.get(i).setNextNodeId(null); + sysWorkflowNodeList.get(i).setNextRoleIds(null); } - sysWorkflowNode.setConfigValues(filterConfigValuesResult); - } else { - System.err.println("非直转任务限制同一单位,系统暂不支持!!!" + sysWorkflowRecordHistory.getTypeId()); - throw new ServiceException("非直转任务限制同一单位,系统暂不支持此配置,请联系管理员"); - } + sysWorkflowNodeService.copeNodeConfigPersonValuesByNodeTwo(sysWorkflowNodeList.get(i), directApplyInfo,userList,sysWorkflowNodeList.size()); + sysWorkflowRecordHistory.setDirectUserIds(sysWorkflowNodeList.get(i).getConfigValues()); + history.setDirectUserIds(sysWorkflowNodeList.get(i).getConfigValues()); + + sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(history); + break; case "project": // 限制工程,暂无相关需求,暂定 @@ -402,10 +413,34 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis default: throw new ServiceException("当前节点有审批限制code,却是非法字符,请联系管理员!"); } + }else{//属于前三个审批流 + proId = sysWorkflowRecordHistoryMapper.getBackAgreementIdByTaskId(sysWorkflowRecordHistory); + int deptId = directAuditMapper.getImpUnit(String.valueOf(proId)); + DirectApplyInfo directApplyInfo = new DirectApplyInfo(); + directApplyInfo.setBackProId(String.valueOf(proId)); + directApplyInfo.setDeptId(deptId); + //插入history表中 + SysWorkflowRecordHistory history = sysWorkflowRecordHistory; + history.setNodeId(sysWorkflowRecordHistory.getNextNodeId()); + if(i!=sysWorkflowNodeList.size()-1){ + history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId()); + sysWorkflowNodeList.get(i).setNextNodeId(sysWorkflowNodeList.get(i+1).getId()); + sysWorkflowNodeList.get(i).setNextRoleIds(sysWorkflowNodeList.get(i+1).getRoleIds()); + }else{ + history.setNextNodeId(null); + sysWorkflowNodeList.get(i).setNextNodeId(null); + sysWorkflowNodeList.get(i).setNextRoleIds(null); + } + sysWorkflowNodeService.copeNodeConfigPersonValuesByNodeTwo(sysWorkflowNodeList.get(i), directApplyInfo,userList,sysWorkflowNodeList.size()); + sysWorkflowRecordHistory.setDirectUserIds(sysWorkflowNodeList.get(i).getConfigValues()); + history.setDirectUserIds(sysWorkflowNodeList.get(i).getConfigValues()); + sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(history); } + //获取当前node的directUserIds + String userIdsNow = sysWorkflowRecordHistoryMapper.getNowUserIds(sysWorkflowRecordHistory); // 判断当前用户是否是当前节点的配置用户 - if (sysWorkflowNode.getConfigValues().contains(sysUser.getUserId().toString())) { + if (userIdsNow.contains(sysUser.getUserId().toString())) { log.info("-------------✅通过校验,当前用户是该节点审批人员,进行更新任务信息-------------"); // 根据任务ID 更新审批流状态 updateWorkflowStatus(taskId, 1); @@ -414,8 +449,11 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis found = true; break; } else { + //删除新增节点 + sysWorkflowRecordHistoryMapper.deleteNowNode(sysWorkflowRecordHistory); throw new ServiceException("您不是当前节点配置的审批人员,无法进行操作!!"); } + } } @@ -430,10 +468,8 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis updateWorkOrder(recordId, sysUser.getUserName()); // 如果下个节点⬇存在的话,那么就创建下个节点⬇的工单信息 - if (nextNodeId != null) { - //获取leaseAgreementId - int leaseAgreementId = sysWorkflowRecordMapper.selectLeaseAgreementIdByRecordId(taskId); - createWorkOrderAndPeopleDirect(sysUser,leaseAgreementId, taskId, recordCode, recordId, nodeId); + if (nextNodeId != null && proId != null) { + createWorkOrderAndPeopleDirect(sysUser,proId, taskId, recordCode, recordId, nextNodeId,userList); }else{ //以下走退料、领料方法 SltAgreementInfo sltAgreementInfo = new SltAgreementInfo(); @@ -802,10 +838,9 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis } } - private void createWorkOrderAndPeopleDirect(SysUser sysUser, int leaseAgreementId, int taskId,String taskCode, int newId,int nodeId) { + private void createWorkOrderAndPeopleDirect(SysUser sysUser, int proId, int taskId,String taskCode, int newId,int nodeId,List userList) { //获取工程名称 - int projectId = directAuditMapper.getProjectIdById(leaseAgreementId); - String projectName = directAuditMapper.getProjectNameById(projectId); + String projectName = directAuditMapper.getProjectNameById(proId); String id = UUID.randomUUID().toString().replace("-", ""); String webUrlBase = "/mea-h5/#/pages/businessAudit/directAudit/details"; String queryParams = UriComponentsBuilder.newInstance() @@ -832,40 +867,16 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis int countWork = directAuditMapper.insertWorkOrder(workApplyInfo); if (countWork > 0) { - - //查询审批人集合 - WorkPeopleInfo info = new WorkPeopleInfo(); - info.setFlowId(newId); - - List workPeopleInfoList = directAuditMapper.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 = directAuditMapper.selectUserListByRoleAndDept(param); for (WorkPeopleInfo user : userList) { WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo(); workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", "")); workPeopleInfo.setInformationId(id); - workPeopleInfo.setReceiverUsername(user.getReceiverUsername()); + workPeopleInfo.setReceiverUsername(user.getUserName()); workPeopleInfo.setReadState(0); workPeopleInfo.setHandleState(0); workPeopleInfo.setIsExamine(0); directAuditMapper.insertWorkPeople(workPeopleInfo); } - - } } } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUserRoleMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUserRoleMapper.xml index 51fce469..e335614e 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUserRoleMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmUserRoleMapper.xml @@ -18,4 +18,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sys_role sr ON sur.role_id = sr.role_id WHERE su.dept_id = #{deptId} AND sr.role_id = #{roleId} + \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialBackInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialBackInfoMapper.xml index 923a3e66..7732bf5c 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialBackInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialBackInfoMapper.xml @@ -202,6 +202,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT + sd.dept_name AS impUnitName, bai.id as id, bai.task_id as taskId, bai.`code` as code, @@ -309,8 +334,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND bu.del_flag = '0' LEFT JOIN ma_type mt1 ON mt1.type_id = bad.type_id AND mt1.del_flag = '0' LEFT JOIN ma_type mt2 ON mt2.type_id = mt1.parent_id AND mt2.del_flag = '0' + left join sys_dept sd on sd.dept_id = bp.imp_unit WHERE 1=1 + + and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') + + + and bai.back_person LIKE CONCAT('%', #{backPerson}, '%') + + + and bai.code LIKE CONCAT('%', #{code}, '%') + + + and bu.unit_name LIKE CONCAT('%', #{unitName}, '%') + + + and bp.pro_name LIKE CONCAT('%', #{proName}, '%') + and bu.unit_id = #{unitId} @@ -558,7 +599,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') + + + and bp.pro_center LIKE CONCAT('%', #{departName}, '%') + + + and bt.unit_name LIKE CONCAT('%', #{teamName}, '%') + + + and ( + lai.create_by like concat('%',#{keyWord},'%') or + bp.pro_name like concat('%',#{keyWord},'%') or + lai.lease_person like concat('%',#{keyWord},'%') + ) + and tt.task_status = #{taskStatus} and lai.code = #{code} and lai.task_id = #{taskId} @@ -420,6 +437,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -791,6 +825,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT + sd.dept_name as impUnitName, lai.id AS id, lai.code AS code, lai.create_by AS createBy, @@ -1073,6 +1118,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" JOIN ma_type_keeper mtk ON mtk.type_id = lpd.type_id AND mtk.user_id = #{userId} where 1 = 1 + + and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') + + + and lpd.lease_person LIKE CONCAT('%', #{leasePerson}, '%') + + + and lai.code LIKE CONCAT('%', #{code}, '%') + + + and bu.unit_name LIKE CONCAT('%', #{leaseUnit}, '%') + + + and bp.pro_name LIKE CONCAT('%', #{leaseProject}, '%') + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml index c4f6be01..3ea22a42 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml @@ -5,6 +5,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT + sd.dept_name AS impUnitName, + bp.pro_center AS departName, bu.unit_id as teamId, bu.unit_name as teamName, bu.link_man as teamLeaderIdCard, SUM( sai.num ) as usNum, bu.bzz_idcard as idCard, - bp.imp_unit as impUnit + bp.imp_unit as impUnit, + bp.pro_name as proName FROM bm_unit bu LEFT JOIN clz_bm_agreement_info bai ON bu.unit_id = bai.unit_id LEFT JOIN clz_slt_agreement_info sai ON bai.agreement_id = sai.agreement_id LEFT JOIN bm_project bp ON bp.pro_id = bai.project_id + LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit WHERE sai.`status` = 0 and bu.type_id = 1731 @@ -796,6 +850,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bu.link_man like concat('%',#{keyWord},'%') ) + + and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') + + + and bp.pro_center LIKE CONCAT('%', #{departName}, '%') + + + and bp.pro_name LIKE CONCAT('%', #{proName}, '%') + + + and bu.unit_name LIKE CONCAT('%', #{teamName}, '%') + GROUP BY bu.unit_id @@ -1341,22 +1407,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND bu.unit_name is not null AND bp.external_id is not NULL - AND sd.dept_name = #{impUnitName} + AND sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') - AND bp.pro_name = #{proName} + AND bp.pro_name LIKE CONCAT('%', #{proName}, '%') - AND bp.pro_center = #{departName} + AND bp.pro_center LIKE CONCAT('%', #{departName}, '%') - AND bu.unit_name = #{teamName} + AND bu.unit_name LIKE CONCAT('%', #{teamName}, '%') - AND mt2.type_name = #{typeName} + AND mt2.type_name LIKE CONCAT('%', #{typeName}, '%') - AND mt.type_name = #{typeModelName} + AND mt.type_name LIKE CONCAT('%', #{typeModelName}, '%') and bp.external_id in diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml index 273b2da6..45987cd8 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyInfoMapper.xml @@ -403,9 +403,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where lod.num >0 and lod.lease_sign_id is not null and bp.external_id is not null and tt.task_type = 2 - and lai.code = #{code} + and lai.code LIKE CONCAT('%', #{code}, '%') and lai.task_id = #{taskId} - and lai.lease_person = #{leasePerson} + and lai.lease_person LIKE CONCAT('%', #{leasePerson}, '%') + and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') + + and bu.unit_name LIKE CONCAT('%', #{unitName}, '%') + + + and bp.pro_name LIKE CONCAT('%', #{projectName}, '%') + and lai.phone = #{phone} and lai.type = #{type} and lai.company_audit_by = #{companyAuditBy} @@ -751,6 +758,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_user su on lpd.create_by = su.user_id where lod.lease_sign_id is not null and bp.external_id is not null and tt.task_type = '19' + and lpd.lease_person LIKE CONCAT('%', #{leasePerson}, '%') + and sd.dept_name LIKE CONCAT('%', #{impUnitName}, '%') + + and bu.unit_name LIKE CONCAT('%', #{unitName}, '%') + + + and bp.pro_name LIKE CONCAT('%', #{projectName}, '%') + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/DirectAuditMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/DirectAuditMapper.xml index 1a1420be..7df6caa5 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/DirectAuditMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/DirectAuditMapper.xml @@ -28,7 +28,9 @@ swrs.node_id AS nodeId, swrs.next_node_id AS nextNodeId, swrs.record_id AS recordId, - swn.node_sign_type as nodeSignType + swn.node_sign_type as nodeSignType, + swrs.direct_user as directUserIds, + swrs.direct_user as configValue FROM direct_apply_info dai LEFT JOIN bm_agreement_info bai ON dai.back_agreement_id = bai.agreement_id @@ -156,6 +158,50 @@ + + + + + update sys_workflow_record set workflow_status = #{flowStatus} where id = #{id} @@ -230,4 +276,8 @@ #{isExamine}, + + + delete from sys_workflow_record where id = #{newId} + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowConfigMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowConfigMapper.xml index 50b1329e..c698fb85 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowConfigMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowConfigMapper.xml @@ -65,4 +65,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where pro_id = #{proId} + 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 986aac11..d4254672 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 @@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_by, create_time, remark, + direct_user, #{recordId}, @@ -24,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createBy}, now(), #{remark}, + #{directUserIds}, + + + + + + + delete from sys_workflow_record_history where record_id = #{recordId} and node_id = #{nodeId} +