|
|
@@ -1125,6 +1125,151 @@ public class AcceptOrderServiceImpl implements AcceptOrderService {
|
|
|
return pageResult;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public PageResult<AcceptOrderRespVO> getAcceptOrderPageUnified(AcceptOrderPageReqVO pageReqVO) {
|
|
|
+ pageReqVO.setOrderByColumn(AcceptOrderDO::getCreateTime);
|
|
|
+ if(pageReqVO.getIsAudit() != null && pageReqVO.getIsAudit()){
|
|
|
+ pageReqVO.setOrderByColumn(AcceptOrderDO::getSubmitTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理检验员名称查询
|
|
|
+ if (StringUtils.isNotBlank(pageReqVO.getCheckers())) {
|
|
|
+ List<AdminUserRespDTO> inspectors = adminUserApi.getUserListByNickname(pageReqVO.getCheckers()).getCheckedData();
|
|
|
+ if (CollUtil.isNotEmpty(inspectors)) {
|
|
|
+ List<String> inspectorIds = inspectors.stream().map(AdminUserRespDTO::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 通过检验员ID查询关联的订单ID
|
|
|
+ List<String> orderIds = new ArrayList<>();
|
|
|
+ List<BoilerAcceptOrderUserDO> boilerAcceptOrderUserDOS = acceptOrderUserMapper.selectList(BoilerAcceptOrderUserDO::getUserId, inspectorIds);
|
|
|
+ List<PipeAcceptOrderUserDO> pipeAcceptOrderUserDOS = pipeAcceptOrderUserMapper.selectList(PipeAcceptOrderUserDO::getUserId, inspectorIds);
|
|
|
+ if (CollUtil.isNotEmpty(boilerAcceptOrderUserDOS)) {
|
|
|
+ orderIds.addAll(boilerAcceptOrderUserDOS.stream()
|
|
|
+ .map(BoilerAcceptOrderUserDO::getOrderId)
|
|
|
+ .distinct()
|
|
|
+ .toList());
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(pipeAcceptOrderUserDOS)) {
|
|
|
+ orderIds.addAll(pipeAcceptOrderUserDOS.stream()
|
|
|
+ .map(PipeAcceptOrderUserDO::getOrderId)
|
|
|
+ .distinct()
|
|
|
+ .toList());
|
|
|
+ }
|
|
|
+ if (orderIds.isEmpty()){
|
|
|
+ // 没有找到关联订单,返回空结果
|
|
|
+ return new PageResult<>();
|
|
|
+ }
|
|
|
+ // 设置订单ID列表
|
|
|
+ pageReqVO.setOrderIds(orderIds);
|
|
|
+ } else {
|
|
|
+ // 没有找到检验员,返回空结果
|
|
|
+ return new PageResult<>();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理提交人名称查询
|
|
|
+ if (StringUtils.isNotBlank(pageReqVO.getSubmitUser())) {
|
|
|
+ List<AdminUserRespDTO> submitters = adminUserApi.getUserListByNickname(pageReqVO.getSubmitUser()).getCheckedData();
|
|
|
+ if (CollUtil.isNotEmpty(submitters)) {
|
|
|
+ List<String> submitterIds = submitters.stream().map(AdminUserRespDTO::getId).collect(Collectors.toList());
|
|
|
+ pageReqVO.setSubmitterIdList(submitterIds);
|
|
|
+ } else {
|
|
|
+ // 没有找到提交人,返回空结果
|
|
|
+ return new PageResult<>();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据流程节点人员id查询
|
|
|
+ if (StringUtils.isNotEmpty(pageReqVO.getBpmUserId())) {
|
|
|
+ BpmProcessInstanceDTO bpmProcessInstanceDTO = new BpmProcessInstanceDTO();
|
|
|
+ bpmProcessInstanceDTO.setStatus(100);
|
|
|
+ if (CollUtil.isNotEmpty(pageReqVO.getStatus())) {
|
|
|
+ bpmProcessInstanceDTO.setStatus(pageReqVO.getStatus().get(0));
|
|
|
+ }
|
|
|
+ bpmProcessInstanceDTO.setProcessDefinitionKey(BpmModeConstantsEnum.ACCEPT_ORDER.getType());
|
|
|
+ List<BpmProcessInstanceRespDTO> checkedData = bpmProcessInstanceApi.getProcessInstanceList(pageReqVO.getBpmUserId(), bpmProcessInstanceDTO).getCheckedData();
|
|
|
+ if (CollUtil.isNotEmpty(checkedData)) {
|
|
|
+ List<String> list = checkedData.stream().map(BpmProcessInstanceRespDTO::getId).toList();
|
|
|
+ if (CollUtil.isNotEmpty(list)) {
|
|
|
+ pageReqVO.setProcessInstanceIds(list);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return PageResult.empty();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 不设置 equipMainType,查询全部类型(锅炉200+管道300)
|
|
|
+
|
|
|
+ PageResult<AcceptOrderDO> acceptOrderDOPageResult = acceptOrderMapper.selectPage(pageReqVO);
|
|
|
+ PageResult<AcceptOrderRespVO> pageResult = BeanUtils.toBean(acceptOrderDOPageResult, AcceptOrderRespVO.class);
|
|
|
+
|
|
|
+ if(pageResult.getList() == null){
|
|
|
+ return pageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> ids = pageResult.getList().stream().map(AcceptOrderRespVO::getId).collect(Collectors.toList());
|
|
|
+ List<String> processInstanceIds = pageResult.getList().stream().map(AcceptOrderRespVO::getProcessInstanceId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<String> deptIds = pageResult.getList().stream().map(AcceptOrderRespVO::getDeptId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<BoilerAcceptOrderUserDO> boilerAcceptOrderUserDOS = acceptOrderUserMapper.selectList(BoilerAcceptOrderUserDO::getOrderId, ids);
|
|
|
+ List<PipeAcceptOrderUserDO> pipeAcceptOrderUserDOS = pipeAcceptOrderUserMapper.selectList(PipeAcceptOrderUserDO::getOrderId, ids);
|
|
|
+
|
|
|
+ Map<String, DeptRespDTO> deptMap = deptApi.getDeptMap(deptIds);
|
|
|
+
|
|
|
+ //user List
|
|
|
+ Map<String, List<BoilerAcceptOrderUserDO>> boilerUserList = boilerAcceptOrderUserDOS.stream().collect(Collectors.groupingBy(BoilerAcceptOrderUserDO::getOrderId));
|
|
|
+ Map<String, List<PipeAcceptOrderUserDO>> pipeUserList = pipeAcceptOrderUserDOS.stream().collect(Collectors.groupingBy(PipeAcceptOrderUserDO::getOrderId));
|
|
|
+ Map<String, BpmTaskDTO> bpmTaskDTOMap = bpmTaskApi.getLastTaskMap(processInstanceIds).getData();
|
|
|
+
|
|
|
+ pageResult.getList().forEach(acceptOrder -> {
|
|
|
+
|
|
|
+ BpmTaskDTO taskDTO = bpmTaskDTOMap.get(acceptOrder.getProcessInstanceId());
|
|
|
+ if(taskDTO != null){
|
|
|
+ acceptOrder.setCurrentNode(taskDTO.getName());
|
|
|
+ acceptOrder.setCurrentAuditorId(taskDTO.getAssignee());
|
|
|
+ }
|
|
|
+
|
|
|
+ acceptOrder.setDept(deptMap.get(acceptOrder.getDeptId()));
|
|
|
+ List<BoilerAcceptOrderUserDO> checkerUserIds1 = boilerUserList.get(acceptOrder.getId());
|
|
|
+ List<PipeAcceptOrderUserDO> checkerUserIds2 = pipeUserList.get(acceptOrder.getId());
|
|
|
+ if (checkerUserIds1 != null && !checkerUserIds1.isEmpty()){
|
|
|
+ acceptOrder.setCheckerUserIds(checkerUserIds1);
|
|
|
+ }
|
|
|
+ if (checkerUserIds2 != null && !checkerUserIds2.isEmpty()){
|
|
|
+ List<BoilerAcceptOrderUserDO> checkerUserIds = BeanUtils.toBean(checkerUserIds2,BoilerAcceptOrderUserDO.class);
|
|
|
+ acceptOrder.setCheckerUserIds(checkerUserIds);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ List<String> userIds = pageResult.getList().stream().map(AcceptOrderRespVO::getCurrentAuditorId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<String> userIds2 = pageResult.getList().stream().map(AcceptOrderRespVO::getCreator).filter(Objects::nonNull).toList();
|
|
|
+ List<String> userIds3 = boilerAcceptOrderUserDOS.stream().map(BoilerAcceptOrderUserDO::getUserId).filter(Objects::nonNull).toList();
|
|
|
+ List<String> userIds5 = pipeAcceptOrderUserDOS.stream().map(PipeAcceptOrderUserDO::getUserId).filter(Objects::nonNull).toList();
|
|
|
+ List<String> userIds4 = pageResult.getList().stream().map(AcceptOrderRespVO::getSubmitId).filter(Objects::nonNull).toList();
|
|
|
+
|
|
|
+ userIds.addAll(userIds2);
|
|
|
+ userIds.addAll(userIds3);
|
|
|
+ userIds.addAll(userIds4);
|
|
|
+ userIds.addAll(userIds5);
|
|
|
+
|
|
|
+ if(!userIds.isEmpty()){
|
|
|
+ Map<String, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
|
|
|
+ pageResult.getList().forEach(acceptOrder -> {
|
|
|
+ acceptOrder.setCurrentAuditor(userMap.get(acceptOrder.getCurrentAuditorId()));
|
|
|
+ acceptOrder.setCreateUser(userMap.get(acceptOrder.getCreator()));
|
|
|
+
|
|
|
+ if(acceptOrder.getCheckerUserIds() != null){
|
|
|
+ acceptOrder.getCheckerUserIds().forEach(checkerUserId -> {
|
|
|
+ acceptOrder.getCheckers().add(userMap.get(checkerUserId.getUserId()));
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ acceptOrder.setSubmitUser(userMap.get(acceptOrder.getSubmitId()));
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return pageResult;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public String getPayLink(String id) {
|
|
|
|