diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java index 9353fa28..8c2b2f30 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java @@ -110,4 +110,7 @@ public class ProjUsingRecord { @Excel(name = "协议状态") private String isSltName; + private String externalIds; + @ApiModelProperty(value = "关联外部(第三方)的工程ID") + private String externalId; } \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java index 0c5ec2d2..20ae7530 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java @@ -20,6 +20,7 @@ import java.util.stream.Collectors; /** * 综合查询服务实现类 + * * @Author ma_sh * @create 2024/12/16 10:53 */ @@ -32,16 +33,29 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 工程机具使用列表 + * * @param bean * @return */ @Override public List getProjUsingRecordList(ProjUsingRecord bean) { - return complexQueryMapper.getProjUsingRecordList(bean); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(bean.getExternalIds())) { + String[] externalIds = bean.getExternalIds().split(","); + for (String externalId : externalIds) { + bean.setExternalId(externalId); + List projUsingRecordList = complexQueryMapper.getProjUsingRecordList(bean); + list.addAll(projUsingRecordList); + } + } else { + list = complexQueryMapper.getProjUsingRecordList(bean); + } + return list; } /** * 设备使用追溯查询 + * * @param bean * @return */ @@ -52,40 +66,42 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 导出工程机具使用列表 + * * @param bean */ @Override public List exportProjUsingRecord(ProjUsingRecord bean) { - // 使用 BigDecimal 常量初始化 - BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); - BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); - BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); - BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); - BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); - List list = complexQueryMapper.getProjUsingRecordList(bean); - if (CollectionUtils.isNotEmpty(list)) { - ProjUsingRecord projUsingRecord = new ProjUsingRecord(); - for (ProjUsingRecord record : list) { - totalLeaseNum = totalLeaseNum.add(record.getLeaseNum()); - totalBackNum = totalBackNum.add(record.getBackNum()); - totalUsNum = totalUsNum.add(record.getUsNum()); - totalUsPrice = totalUsPrice.add(record.getUsPrice()); - totalTotalPrice = totalTotalPrice.add(record.getTotalPrice()); - } - // 设置 ProjUsingDto 总结数据 - projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, RoundingMode.HALF_UP)); - projUsingRecord.setBackNum(totalBackNum.setScale(3, RoundingMode.HALF_UP)); - projUsingRecord.setUsNum(totalUsNum.setScale(3, RoundingMode.HALF_UP)); - projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP)); - projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP)); - projUsingRecord.setUnit("合计"); - list.add(0,projUsingRecord); + // 使用 BigDecimal 常量初始化 + BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); + BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); + BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); + BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); + BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); + List list = complexQueryMapper.getProjUsingRecordList(bean); + if (CollectionUtils.isNotEmpty(list)) { + ProjUsingRecord projUsingRecord = new ProjUsingRecord(); + for (ProjUsingRecord record : list) { + totalLeaseNum = totalLeaseNum.add(record.getLeaseNum()); + totalBackNum = totalBackNum.add(record.getBackNum()); + totalUsNum = totalUsNum.add(record.getUsNum()); + totalUsPrice = totalUsPrice.add(record.getUsPrice()); + totalTotalPrice = totalTotalPrice.add(record.getTotalPrice()); } - return list; + // 设置 ProjUsingDto 总结数据 + projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, RoundingMode.HALF_UP)); + projUsingRecord.setBackNum(totalBackNum.setScale(3, RoundingMode.HALF_UP)); + projUsingRecord.setUsNum(totalUsNum.setScale(3, RoundingMode.HALF_UP)); + projUsingRecord.setUsPrice(totalUsPrice.setScale(2, RoundingMode.HALF_UP)); + projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, RoundingMode.HALF_UP)); + projUsingRecord.setUnit("合计"); + list.add(0, projUsingRecord); + } + return list; } /** * 机具入库查询列表 + * * @param bean * @return */ @@ -128,6 +144,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 机具出库查询列表 + * * @param bean * @return */ @@ -159,6 +176,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 保有设备总量查询 + * * @param bean * @return */ @@ -262,6 +280,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 查询机具编码 + * * @param bean * @return */ @@ -319,6 +338,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 去重maCode,保留最新的一个 + * * @param list */ private void extracted(List list) { @@ -347,6 +367,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 查询在用设备详情 + * * @param bean * @return */ @@ -385,6 +406,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 判断item是否包含关键字 + * * @param item * @param keyWord * @return @@ -395,11 +417,12 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { (item.getCreator() != null && item.getCreator().equals(keyWord)) || (item.getMaCode() != null && item.getMaCode().contains(keyWord)) || (item.getProjectName() != null && item.getProjectName().contains(keyWord)) || - (item.getCode() != null && item.getCode().contains(keyWord)) ; + (item.getCode() != null && item.getCode().contains(keyWord)); } /** * 查询在修设备详情 + * * @param bean * @return */ @@ -410,6 +433,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 查询新购待入库设备详情 + * * @param bean * @return */ @@ -476,6 +500,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 查询修饰待入库设备详情 + * * @param bean * @return */ @@ -486,6 +511,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 查询待报废设备详情 + * * @param bean * @return */ @@ -496,6 +522,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 查询已审核报废设备详情 + * * @param bean * @return */ @@ -506,6 +533,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { /** * 修试查询--一机一档案查询 + * * @param bean * @return */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowNodeController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowNodeController.java index f6d5e2d8..bb669631 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowNodeController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/controller/SysWorkflowNodeController.java @@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Map; @Api(tags = "工作流详情表") @RestController @@ -100,4 +101,20 @@ public class SysWorkflowNodeController extends BaseController { return getDataTableError(null); } } + /** + * 根据工程id查询工作流详情列表 + */ + @ApiOperation(value = "根据工程id查询工作流详情列表") + @GetMapping("/listByproId") + public AjaxResult listByproId(SysWorkflowNode sysWorkflowNode) { + if (sysWorkflowNode == null || sysWorkflowNode.getProId() == null) { + throw new RuntimeException("查询参数不能为空"); + } + try { + Map integerSysWorkflowNodeMap = sysWorkflowNodeService.listByProId(sysWorkflowNode); + return AjaxResult.success(integerSysWorkflowNodeMap); + }catch (Exception e){ + return AjaxResult.error(); + } + } } 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 612c7b7f..f322e05b 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 @@ -82,6 +82,11 @@ public class SysWorkflowNode { */ private String taskId; + /** + * 工程Id + */ + private String proId; + /** * 任务类型 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowNodeMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowNodeMapper.java index f98b05f1..fc0b992d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowNodeMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowNodeMapper.java @@ -18,4 +18,6 @@ public interface SysWorkflowNodeMapper { List listByTaskId(SysWorkflowNode sysWorkflowNode); SysWorkflowNode selectSysWorkflowNodeById(Integer nodeId); + + List getTaskIdByProId(SysWorkflowNode sysWorkflowNode); } 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 4ea71baa..16821376 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 @@ -4,6 +4,7 @@ package com.bonus.material.work.service; import com.bonus.material.work.domain.SysWorkflowNode; import java.util.List; +import java.util.Map; public interface SysWorkflowNodeService { List selectSysWorkflowNodeList(SysWorkflowNode sysWorkflowNode); @@ -17,4 +18,6 @@ public interface SysWorkflowNodeService { List listByTaskId(SysWorkflowNode sysWorkflowNode); void copeNodeConfigPersonValuesByNode(SysWorkflowNode forSysWorkflowNode); + + Map listByProId(SysWorkflowNode sysWorkflowNode); } 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 34cd72e0..4795bb83 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 @@ -16,9 +16,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; +import java.util.stream.IntStream; @Service public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { @@ -215,4 +218,86 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { System.err.println("执行审核流配置角色处理方法时发生异常:" + e.getMessage()); } } + + @Override + public Map listByProId(SysWorkflowNode sysWorkflowNode) { + Long userId = SecurityUtils.getLoginUser().getUserid(); + // 获取工程下所有的任务id + List list = sysWorkflowNodeMapper.getTaskIdByProId(sysWorkflowNode); + List sysWorkflowNodeLists = new ArrayList<>(); + for (SysWorkflowNode workflowNode : list) { + sysWorkflowNode.setTaskId(workflowNode.getTaskId()); + List sysWorkflowNodeList = sysWorkflowNodeMapper.listByTaskId(sysWorkflowNode); + if (sysWorkflowNodeList != null && !sysWorkflowNodeList.isEmpty()){ + sysWorkflowNodeLists.addAll(sysWorkflowNodeList); + } + } + for (SysWorkflowNode forSysWorkflowNode : sysWorkflowNodeLists) { + // 传入节点信息,自动处理节点配置角色相关的处理 + copeNodeConfigPersonValuesByNode(forSysWorkflowNode); + + SysWorkflowRecordHistory sysWorkflowRecordHistory = new SysWorkflowRecordHistory(); + sysWorkflowRecordHistory.setRecordId(forSysWorkflowNode.getRecordId()); + sysWorkflowRecordHistory.setNodeId(forSysWorkflowNode.getNodeId()); + List sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory); + if (!sysWorkflowRecordHistoryList.isEmpty()) { + //判断是或签还是会签0:或签 1:会签 + if (0 == forSysWorkflowNode.getNodeSignType()) { + forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryList.get(0).getIsAccept()); + forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryList.get(0).getCreateTime()); + forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryList.get(0).getRemark()); + forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryList.get(0).getAuditBy()); + } else { + String[] configValue = forSysWorkflowNode.getConfigValues().split(","); + List filteredList = Arrays.stream(configValue).collect(Collectors.toList()); + // 过滤数组元素 + for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) { + // 过滤数组元素 + filteredList = filteredList.stream() + .filter(value ->value != null && !value.equals(sysWorkflowRecordHistoryNew.getCreateBy())) + .collect(Collectors.toList()); + } + //获取所有的审核状态 + List isAcceptList =sysWorkflowRecordHistoryList.stream() + .map(SysWorkflowRecordHistory::getIsAccept) + .collect(Collectors.toList()); + //判断是否有人是驳回 + if (isAcceptList.contains(2)) { + //获取驳回信息 + List sysWorkflowRecordHistoryListNew = sysWorkflowRecordHistoryList.stream() + .filter(value ->value != null && 2 == (value.getIsAccept())) + .collect(Collectors.toList()); + forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryListNew.get(0).getIsAccept()); + forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryListNew.get(0).getCreateTime()); + forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryListNew.get(0).getRemark()); + forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryListNew.get(0).getAuditBy()); + } else { + // 获取当前人的审核信息 + List sysWorkflowRecordHistoryListNew = sysWorkflowRecordHistoryList.stream() + .filter(value -> value != null && userId.toString().equals(value.getCreateBy())) + .collect(Collectors.toList()); + // 判断当前人是否是这个节点的审核人 + if (!sysWorkflowRecordHistoryListNew.isEmpty()) { + forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryListNew.get(0).getIsAccept()); + forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryListNew.get(0).getCreateTime()); + forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryListNew.get(0).getRemark()); + forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryListNew.get(0).getAuditBy()); + } else { + forSysWorkflowNode.setIsAccept(sysWorkflowRecordHistoryList.get(0).getIsAccept()); + forSysWorkflowNode.setCreateTime(sysWorkflowRecordHistoryList.get(0).getCreateTime()); + forSysWorkflowNode.setRemark(sysWorkflowRecordHistoryList.get(0).getRemark()); + forSysWorkflowNode.setAuditBy(sysWorkflowRecordHistoryList.get(0).getAuditBy()); + } + } + } + } + } + Map resultMap = IntStream.range(0, sysWorkflowNodeLists.size()) + .boxed() + .collect(Collectors.toMap( + i -> i + 1, + i -> sysWorkflowNodeLists.get(i) + )); + return resultMap; + } } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml index 451f3719..331dcea7 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml @@ -66,6 +66,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_machine mm ON mm.ma_id = lod.ma_id where 1=1 + + and bpl.external_id = #{externalId} + and (bai.agreement_code like concat('%',#{keyWord},'%') or bui.unit_name like concat('%',#{keyWord},'%') or @@ -132,6 +135,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id where 1=1 and bcd.is_finished = '1' + + and bpl.external_id = #{externalId} + and (bai.agreement_code like concat('%',#{keyWord},'%') or bui.unit_name like concat('%',#{keyWord},'%') or diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml index d92c191b..720ef703 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowNodeMapper.xml @@ -109,6 +109,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{nodeId} +