yzc 1 рік тому
батько
коміт
5db97137d5

+ 31 - 16
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -251,9 +251,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
             );
 
             //如果目标节点为空,完工入库
-            if(ObjectUtil.isEmpty(targetProcessesIds)){
+            if (ObjectUtil.isEmpty(targetProcessesIds)) {
                 productStorage(dto);
-            }else {
+            } else {
                 //获取目标节点的父节点列表
                 List<WorkOrderProcessLine> sourceProcessesList = workOrderProcessLineService.list(q -> q
                         .eq(WorkOrderProcessLine::getWorkOrderId, workOrderId)
@@ -346,9 +346,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
             );
 
             //如果目标节点为空,完工入库
-            if(ObjectUtil.isEmpty(targetProcessesIds)){
+            if (ObjectUtil.isEmpty(targetProcessesIds)) {
                 productStorage(dto);
-            }else {
+            } else {
                 //获取目标节点的父节点列表
                 List<TechnologyProcessLine> sourceProcessesList = technologyProcessLineService.list(q -> q
                         .eq(TechnologyProcessLine::getTechnologyId, technologyId)
@@ -462,8 +462,8 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
 //        productionTaskDetail.setProcessesStatus(0);
 //        //清空负责人
 //        productionTaskDetail.setPersonLiableId(-1L);
-
-        this.updateById(productionTaskDetail);
+//
+//        this.updateById(productionTaskDetail);
 
         //保存附件
         ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
@@ -787,17 +787,17 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         wrapper.orderByDesc("t1", ProductionTaskDetail::getId);
 
         Page<ProductionTaskDetailVo> page = baseMapper.taskProgressPage(dto.getPage(), wrapper);
+        List<ProductionTaskDetailVo> records = page.getRecords();
+        if (ObjectUtil.isEmpty(records)) {
+            return page;
+        }
 
         //处理工序
         Map<Long, Long> applicableProductsMap = new HashMap<>();
         Map<Long, String> technologyMap = new HashMap<>();
-        Map<Long, String> productionProcessesMap = new HashMap<>();
 
-
-        List<ProductionTaskDetailVo> records = page.getRecords();
-        if (ObjectUtil.isEmpty(records)) {
-            return page;
-        }
+        //获取非定制工序
+        Map<Long, String> productionProcessesMap = new HashMap<>();//非定制工序列表
         List<Long> productIds = records.stream().map(ProductionTaskDetail::getProductId).distinct().collect(Collectors.toList());
         List<ApplicableProducts> applicableProducts = applicableProductsService.list(q -> q.in(ApplicableProducts::getProductId, productIds));
         if (ObjectUtil.isNotEmpty(applicableProducts)) {
@@ -821,6 +821,12 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
                 }
             }
         }
+        //获取定制工序
+        List<Long> customizedWorkOrderIds = records.stream().filter(item -> Objects.equals(item.getIsCustomized(), "1"))
+                .map(ProductionTaskDetailVo::getWorkOrderId).collect(Collectors.toList());
+        Map<Long, String> workOrderProductionProcessesMap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId, WorkOrderProductionProcesses::getName, q -> q
+                .in(WorkOrderProductionProcesses::getWorkOrderId, customizedWorkOrderIds)
+        );
 
 
         for (ProductionTaskDetailVo record : records) {
@@ -851,12 +857,21 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         );
         List<TaskProgressVo> taskProgressVos = BeanUtil.copyToList(taskProgressList, TaskProgressVo.class);
         UserUtil.assignmentNickName(taskProgressVos, TaskProgress::getPersonLiableId, TaskProgressVo::setPersonLiableName);
-        for (TaskProgressVo taskProgressVo : taskProgressVos) {
-            taskProgressVo.setProcessesName(productionProcessesMap.getOrDefault(taskProgressVo.getProcessesId(), "未知工序"));
-        }
         Map<Long, List<TaskProgressVo>> taskProgressMap = taskProgressVos.stream().collect(Collectors.groupingBy(TaskProgressVo::getProductionTaskDetailId));
         for (ProductionTaskDetailVo record : records) {
-            List<TaskProgressVo> taskProgressVos1 = taskProgressMap.get(record.getId());
+            List<TaskProgressVo> taskProgressVos1 = taskProgressMap.getOrDefault(record.getId(),new ArrayList<>());
+
+            //赋值工序名称
+            for (TaskProgressVo taskProgressVo : taskProgressVos1) {
+                if (Objects.equals(record.getIsCustomized(), "1")) {
+                    //定制
+                    taskProgressVo.setProcessesName(workOrderProductionProcessesMap.getOrDefault(taskProgressVo.getProcessesId(), "未知工序"));
+                } else {
+                    //非定制
+                    taskProgressVo.setProcessesName(productionProcessesMap.getOrDefault(taskProgressVo.getProcessesId(), "未知工序"));
+                }
+            }
+
             record.setTaskProgressList(taskProgressVos1);
         }
 

+ 14 - 10
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -331,9 +331,9 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
             }
 
             //获取开始节点下的节点为当前工序
-            processList = workOrderProcessLineService.listObject(WorkOrderProcessLine::getTargetProcessesId,q -> q
+            processList = workOrderProcessLineService.listObject(WorkOrderProcessLine::getTargetProcessesId, q -> q
                     .eq(WorkOrderProcessLine::getWorkOrderId, workOrder.getId())
-                    .eq(WorkOrderProcessLine::getSourceProcessesId,1)
+                    .eq(WorkOrderProcessLine::getSourceProcessesId, 1)
             );
 
         } else {
@@ -347,9 +347,9 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
             }
 
             //获取开始节点下的节点为当前工序
-            processList = technologyProcessLineService.listObject(TechnologyProcessLine::getTargetProcessesId,q -> q
+            processList = technologyProcessLineService.listObject(TechnologyProcessLine::getTargetProcessesId, q -> q
                     .eq(TechnologyProcessLine::getTechnologyId, technology.getId())
-                    .eq(TechnologyProcessLine::getSourceProcessesId,1)
+                    .eq(TechnologyProcessLine::getSourceProcessesId, 1)
             );
 
             String processRoute = technology.getProcessRoute();
@@ -399,7 +399,7 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
         List<TaskProgress> taskProgressList = new ArrayList<>();
         for (ProductionTaskDetail productionTaskDetail : productionTaskDetailList) {
             //创建生产过程信息
-            if(ObjectUtil.isEmpty(processList)){
+            if (ObjectUtil.isEmpty(processList)) {
                 //完工入库
                 ProductionTaskDetailDto productionTaskDetailDto = BeanUtil.copyProperties(productionTaskDetail, ProductionTaskDetailDto.class);
                 productionTaskDetailService.productStorage(productionTaskDetailDto);
@@ -461,7 +461,7 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
 
         List<TaskProgress> taskProgressList = taskProgressService.list(q -> q
                 .in(TaskProgress::getProductionTaskDetailId, ptdIds)
-                .ne(TaskProgress::getStatus,2)
+                .ne(TaskProgress::getStatus, 2)
         );
         List<TaskProgressVo> taskProgressVos = BeanUtil.copyToList(taskProgressList, TaskProgressVo.class);
         UserUtil.assignmentNickName(taskProgressVos, TaskProgress::getPersonLiableId, TaskProgressVo::setPersonLiableName);
@@ -473,7 +473,7 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
         //判断是否是定制工单 获取指定工序
         if ("1".equals(workOrder.getIsCustomized())) {
             //获取定制工序
-             gxmap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId, WorkOrderProductionProcesses::getName, q -> q.eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId()));
+            gxmap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId, WorkOrderProductionProcesses::getName, q -> q.eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId()));
         } else {
             //获取基本工序
             ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
@@ -483,7 +483,7 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
                     String processRoute = technology.getProcessRoute();
                     if (ObjectUtil.isNotEmpty(processRoute)) {
                         String[] split = processRoute.split(",");
-                         gxmap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName, q -> q.in(ProductionProcesses::getId, split));
+                        gxmap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName, q -> q.in(ProductionProcesses::getId, split));
                     }
                 }
             }
@@ -491,7 +491,7 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
 
         if (ObjectUtil.isNotEmpty(gxmap)) {
             for (TaskProgressVo taskProgressVo : taskProgressVos) {
-                taskProgressVo.setProcessesName(gxmap.getOrDefault(taskProgressVo.getProcessesId(),"未知工序"));
+                taskProgressVo.setProcessesName(gxmap.getOrDefault(taskProgressVo.getProcessesId(), "未知工序"));
             }
             Map<Long, List<TaskProgressVo>> taskProgressMap = taskProgressVos.stream().collect(Collectors.groupingBy(TaskProgressVo::getProductionTaskDetailId));
             for (ProductionTaskDetailVo productionTaskDetail : productionTaskDetailVos) {
@@ -502,7 +502,11 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
 
         //赋值累计耗时
         for (ProductionTaskDetailVo productionTaskDetail : productionTaskDetailVos) {
-            long diff = new Date().getTime() - productionTaskDetail.getCreateTime().getTime();
+            Date finishTime = productionTaskDetail.getFinishTime();
+            if (productionTaskDetail.getFinishStatus() == 0 || ObjectUtil.isEmpty(finishTime)) {
+                finishTime = new Date();
+            }
+            long diff = finishTime.getTime() - productionTaskDetail.getCreateTime().getTime();
             DecimalFormat decimalFormat = new DecimalFormat("#0.00");
             String formattedResult = decimalFormat.format(diff / 60.0 / 60.0 / 1000.0);
             productionTaskDetail.setCumulativeTime(formattedResult);

+ 4 - 4
hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.xml

@@ -92,10 +92,10 @@
                             ) ,
                         ( SELECT GROUP_CONCAT( wopp.`name` SEPARATOR ',' ) FROM work_order_production_processes wopp WHERE wopp.work_order_id = wo.id )
                       ) AS productionProcessesNames,
-                    IF(
-                        wo.is_customized=0,
-                            ( SELECT ppr.`name` FROM production_processes ppr WHERE ppr.id = ptd.production_processes_id ) , ( SELECT wopp.`name` FROM work_order_production_processes wopp WHERE wopp.id = ptd.production_processes_id )
-                        ) AS productionProcessesName,
+--                     IF(
+--                         wo.is_customized=0,
+--                             ( SELECT ppr.`name` FROM production_processes ppr WHERE ppr.id = ptd.production_processes_id ) , ( SELECT wopp.`name` FROM work_order_production_processes wopp WHERE wopp.id = ptd.production_processes_id )
+--                         ) AS productionProcessesName,
                     su.nick_name AS personLiableName,
                     ptd.finish_status,
                     ptd.finish_time,