Browse Source

生产进度 添加当前工序列表,查看记录有重复问题处理

yzc 1 year ago
parent
commit
e65b882561

+ 1 - 1
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskDetailController.java

@@ -53,7 +53,7 @@ public class ProductionTaskDetailController {
     /**
      * 生产任务流转完工入库
      */
-    @PostMapping("/productStorage")
+//    @PostMapping("/productStorage")
     public void productStorage(@RequestBody ProductionTaskDetailDto productionTaskDetailDto) {
         productionTaskDetailService.productStorage(productionTaskDetailDto);
     }

+ 6 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailVo.java

@@ -3,6 +3,7 @@ package com.fjhx.mes.entity.production.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fjhx.mes.entity.bom.vo.BomDetailVo;
 import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
+import com.fjhx.mes.entity.task.vo.TaskProgressVo;
 import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
 import lombok.Getter;
 import lombok.Setter;
@@ -158,4 +159,9 @@ public class ProductionTaskDetailVo extends ProductionTaskDetail {
      * 当前工序id
      */
     private Long productionProcessesId;
+
+    /**
+     * 当前工序列表
+     */
+    List<TaskProgressVo> taskProgressList;
 }

+ 10 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/task/vo/TaskProgressVo.java

@@ -14,4 +14,14 @@ import lombok.Setter;
 @Setter
 public class TaskProgressVo extends TaskProgress {
 
+    /**
+     * 工序名称
+     */
+    private String processesName;
+
+    /**
+     * 负责人名称
+     */
+    private String personLiableName;
+
 }

+ 42 - 22
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -27,6 +27,7 @@ import com.fjhx.mes.entity.production.po.*;
 import com.fjhx.mes.entity.production.vo.ProductionTaskDetailRecordVo;
 import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
 import com.fjhx.mes.entity.task.po.TaskProgress;
+import com.fjhx.mes.entity.task.vo.TaskProgressVo;
 import com.fjhx.mes.entity.technology.po.Technology;
 import com.fjhx.mes.entity.technology.po.TechnologyProcessLine;
 import com.fjhx.mes.entity.work.po.WorkOrder;
@@ -55,6 +56,7 @@ import com.fjhx.wms.entity.stock.po.StockWaitDetails;
 import com.fjhx.wms.service.stock.StockWaitDetailsService;
 import com.fjhx.wms.service.stock.StockWaitService;
 import com.ruoyi.common.annotation.TenantIgnore;
+import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -129,7 +131,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //过滤负责人为自己的任务
         wrapper.eq("tp.person_liable_id", SecurityUtils.getUserId());
         //过滤进行中的数据
-        wrapper.eq("tp.status",1);
+        wrapper.eq("tp.status", 1);
 //        //过滤未在流转的记录
 //        wrapper.eq("ptd", ProductionTaskDetail::getCirculationStatus, 0);
         //过滤未完成的记录
@@ -241,7 +243,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         List<Long> nextProcessIdList = new ArrayList<>();
         Long workOrderId = productionTaskDetail.getWorkOrderId();
         WorkOrder workOrder = workOrderService.getById(workOrderId);
-        if(Objects.equals(workOrder.getIsCustomized(),"1")){
+        if (Objects.equals(workOrder.getIsCustomized(), "1")) {
             //定制
 
             //获取父节点id
@@ -260,17 +262,17 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
                     .in(TaskProgress::getProcessesId, longs1)
                     .ne(TaskProgress::getStatus, 2)
             );
-            if(count==0){
+            if (count == 0) {
                 //统计节点已经完成,生成下级节点的任务
                 List<Long> longs2 = workOrderProcessLineService.listObject(WorkOrderProcessLine::getTargetProcessesId, q -> q
                         .eq(WorkOrderProcessLine::getWorkOrderId, workOrderId)
                         .eq(WorkOrderProcessLine::getSourceProcessesId, taskProgress.getProcessesId())
                         .ne(WorkOrderProcessLine::getTargetProcessesId, 99)
                 );
-                if(ObjectUtil.isEmpty(longs2)){
+                if (ObjectUtil.isEmpty(longs2)) {
                     //完工入库
                     productStorage(dto);
-                }else{
+                } else {
                     //生成下一节点任务信息
                     List<TaskProgress> taskProgressList = new ArrayList<>();
                     for (Long aLong : longs2) {
@@ -284,7 +286,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
                     taskProgressService.saveBatch(taskProgressList);
                 }
             }
-        }else{
+        } else {
             //非定制
             ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q
                     .eq(ApplicableProducts::getProductId, productionTaskDetail.getProductId())
@@ -307,17 +309,17 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
                     .in(TaskProgress::getProcessesId, longs1)
                     .ne(TaskProgress::getStatus, 2)
             );
-            if(count==0){
+            if (count == 0) {
                 //统计节点已经完成,生成下级节点的任务
                 List<Long> longs2 = technologyProcessLineService.listObject(TechnologyProcessLine::getTargetProcessesId, q -> q
                         .eq(TechnologyProcessLine::getTechnologyId, technologyId)
                         .eq(TechnologyProcessLine::getSourceProcessesId, taskProgress.getProcessesId())
                         .ne(TechnologyProcessLine::getTargetProcessesId, 99)
                 );
-                if(ObjectUtil.isEmpty(longs2)){
+                if (ObjectUtil.isEmpty(longs2)) {
                     //完工入库
                     productStorage(dto);
-                }else{
+                } else {
                     //生成下一节点任务信息
                     List<TaskProgress> taskProgressList = new ArrayList<>();
                     for (Long aLong : longs2) {
@@ -375,7 +377,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
 
         //推送消息给下一工序的用户有单可以抢了
-        if(ObjectUtil.isNotEmpty(nextProcessIdList)) {
+        if (ObjectUtil.isNotEmpty(nextProcessIdList)) {
 //            Long nextProductionProcessesId = productionTaskDetail.getNextProductionProcessesId();
             List<Long> userIds = productionTaskProcessesDetailService.listObject(ProductionTaskProcessesDetail::getUserId, q -> q
                     .in(ProductionTaskProcessesDetail::getProductionProcessesId, nextProcessIdList)
@@ -404,12 +406,12 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         }
 
         //创建任务明细记录
-        ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
-        productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
-        productionTaskDetailRecord.setProductionProcessesId(taskProgress.getProcessesId());
-        productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
-        productionTaskDetailRecord.setReceivedTime(taskProgress.getReceivedTime());
-        productionTaskDetailRecordService.save(productionTaskDetailRecord);
+//        ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
+//        productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
+//        productionTaskDetailRecord.setProductionProcessesId(taskProgress.getProcessesId());
+//        productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
+//        productionTaskDetailRecord.setReceivedTime(taskProgress.getReceivedTime());
+//        productionTaskDetailRecordService.save(productionTaskDetailRecord);
 
         productionTaskDetail.setFinishStatus(1);//标记为完成
         productionTaskDetail.setFinishTime(new Date());//记录完成时间
@@ -424,8 +426,8 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
 
         this.updateById(productionTaskDetail);
 
-        //保存附件
-        ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
+//        //保存附件
+//        ObsFileUtil.saveFile(dto.getFileList(), productionTaskDetailRecord.getId());
 
         StockWait stockWait = new StockWait();
         stockWait.setType(1);//入库
@@ -458,7 +460,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //过滤工序用户列表里有自己的数据
         wrapper.eq("ptpd.user_id", SecurityUtils.getUserId());
         //过滤未开始的数据
-        wrapper.eq("tp.status",0);
+        wrapper.eq("tp.status", 0);
         //过滤正在流转中的数据
 //        wrapper.eq("ptd", ProductionTaskDetail::getCirculationStatus, 1);
         //过滤未完工的数据
@@ -611,7 +613,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
     @Override
     public Long haveTaskCount(ProductionTaskDetailDto dto) {
         //获取负责人为当前用户 工序为某一工序 未在流转(进行中) 未完成 的任务计数
-        return taskProgressService.count(q->q
+        return taskProgressService.count(q -> q
                 .eq(TaskProgress::getPersonLiableId, SecurityUtils.getUserId())
                 .eq(ObjectUtil.isNotEmpty(dto.getProductionProcessesId()), TaskProgress::getProcessesId, dto.getProductionProcessesId())
                 .eq(TaskProgress::getStatus, 1)
@@ -701,7 +703,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
 
 
         List<ProductionTaskDetailVo> records = page.getRecords();
-        if(ObjectUtil.isEmpty(records)){
+        if (ObjectUtil.isEmpty(records)) {
             return page;
         }
         List<Long> productIds = records.stream().map(ProductionTaskDetail::getProductId).distinct().collect(Collectors.toList());
@@ -744,11 +746,29 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
                     arr.add(ppName);
                 }
 
-                String collect = arr.stream().collect(Collectors.joining("->"));
+                String collect = arr.stream().collect(Collectors.joining(","));
                 record.setProductionProcessesNames(collect);
             }
         }
 
+        //当前工序处理
+        List<Long> ptdIds = records.stream().map(ProductionTaskDetail::getId).collect(Collectors.toList());
+        List<TaskProgress> taskProgressList = taskProgressService.list( q -> q
+                .in(TaskProgress::getProductionTaskDetailId, ptdIds)
+                .ne(TaskProgress::getStatus,2)
+        );
+        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());
+            record.setTaskProgressList(taskProgressVos1);
+        }
+
+
         return page;
     }