Selaa lähdekoodia

流转添加附件上传

yzc 1 vuosi sitten
vanhempi
commit
145bf441fd

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

@@ -1,5 +1,7 @@
 package com.fjhx.mes.controller.production;
 
+import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
@@ -53,7 +55,7 @@ public class ProductionTaskDetailController {
      */
     @PostMapping("/productStorage")
     public void productStorage(@RequestBody ProductionTaskDetailDto productionTaskDetailDto) {
-        productionTaskDetailService.productStorage(productionTaskDetailDto.getId());
+        productionTaskDetailService.productStorage(productionTaskDetailDto);
     }
 
 
@@ -116,4 +118,12 @@ public class ProductionTaskDetailController {
     Page<ProductionTaskDetailVo> taskProgress(@RequestBody ProductionTaskDetailSelectDto dto){
         return productionTaskDetailService.taskProgressPage(dto);
     }
+
+    /**
+     * 生产任务明细
+     */
+    @PostMapping("/detail")
+    public ProductionTaskDetail detail(@RequestBody BaseSelectDto dto) {
+        return productionTaskDetailService.detail(dto.getId());
+    }
 }

+ 6 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailDto.java

@@ -1,9 +1,12 @@
 package com.fjhx.mes.entity.production.dto;
 
+import com.fjhx.file.entity.ObsFile;
 import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 生产任务明细新增编辑入参实体
  *
@@ -14,4 +17,7 @@ import lombok.Setter;
 @Setter
 public class ProductionTaskDetailDto extends ProductionTaskDetail {
 
+    /**文件列表*/
+    List<ObsFile> fileList;
+
 }

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

@@ -5,6 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 生产任务明细列表查询返回值实体
@@ -60,6 +61,11 @@ public class ProductionTaskDetailVo extends ProductionTaskDetail {
      */
     private String personLiableName;
 
+    /**
+     * 任务操作记录明细
+     */
+    private List<ProductionTaskDetailRecordVo> productionTaskDetailRecordList;
+
     //-------------------生产进度--------------------------
     /**
      * 销售合同号

+ 6 - 1
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailService.java

@@ -36,7 +36,7 @@ public interface ProductionTaskDetailService extends BaseService<ProductionTaskD
     /**
      * 生产任务流转入库
      */
-    void productStorage(Long id);
+    void productStorage(ProductionTaskDetailDto productionTaskDetailDto);
 
     /**
      * 生产任务接收分页
@@ -69,4 +69,9 @@ public interface ProductionTaskDetailService extends BaseService<ProductionTaskD
      * 生产进度
      */
     Page<ProductionTaskDetailVo> taskProgressPage(ProductionTaskDetailSelectDto dto);
+
+    /**
+     * 任务明细
+     */
+    ProductionTaskDetail detail(Long id);
 }

+ 55 - 12
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -1,23 +1,24 @@
 package com.fjhx.mes.service.production.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.enums.PushBusinessTypeEnum;
 import com.fjhx.common.utils.Assert;
+import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.mes.entity.production.dto.ProductionTaskDetailDto;
 import com.fjhx.mes.entity.production.dto.ProductionTaskDetailSelectDto;
 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.work.po.WorkOrder;
 import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
 import com.fjhx.mes.entity.work.vo.WorkOrderVo;
 import com.fjhx.mes.mapper.production.ProductionTaskDetailMapper;
-import com.fjhx.mes.service.applicable.ApplicableProductsService;
 import com.fjhx.mes.service.production.*;
-import com.fjhx.mes.service.technology.TechnologyService;
 import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
 import com.fjhx.mes.service.work.WorkOrderService;
 import com.fjhx.socket.core.PushTypeEnum;
@@ -36,10 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -65,10 +63,6 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
     @Autowired
     private WorkOrderProductionProcessesService workOrderProductionProcessesService;
     @Autowired
-    private ApplicableProductsService applicableProductsService;
-    @Autowired
-    private TechnologyService technologyService;
-    @Autowired
     private StockWaitService stockWaitService;
     @Autowired
     private StockWaitDetailsService stockWaitDetailsService;
@@ -133,6 +127,7 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         //获取工序id列表
         List<Long> productionProcessesIds = records.stream().map(ProductionTaskDetail::getProductionProcessesId).collect(Collectors.toList());
         productionProcessesIds.addAll(records.stream().map(ProductionTaskDetail::getNextProductionProcessesId).collect(Collectors.toList()));
+        productionProcessesIds.addAll(records.stream().map(ProductionTaskDetail::getPreviousProcessesId).collect(Collectors.toList()));
         //获取基本工序map
         Map<Long, String> stringMap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName,
                 q -> q.in(ProductionProcesses::getId, productionProcessesIds));
@@ -214,6 +209,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         productionTaskDetailRecord.setReceivedTime(productionTaskDetail.getReceivedTime());
         productionTaskDetailRecordService.save(productionTaskDetailRecord);
 
+        //保存附件
+        ObsFileUtil.saveFile(productionTaskDetailDto.getFileList(),productionTaskDetailRecord.getId());
+
         //推送消息给下一工序的用户有单可以抢了
         Long nextProductionProcessesId = productionTaskDetail.getNextProductionProcessesId();
         List<Long> userIds = productionTaskProcessesDetailService.listObject(ProductionTaskProcessesDetail::getUserId, q -> q
@@ -227,8 +225,8 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
      * 完工入库
      */
     @Override
-    public void productStorage(Long id) {
-        ProductionTaskDetail productionTaskDetail = getById(id);
+    public void productStorage(ProductionTaskDetailDto productionTaskDetailDto) {
+        ProductionTaskDetail productionTaskDetail = getById(productionTaskDetailDto.getId());
         if (ObjectUtil.isEmpty(productionTaskDetail)) {
             throw new ServiceException("未查询到任务明细信息");
         }
@@ -247,6 +245,9 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         productionTaskDetailRecord.setReceivedTime(productionTaskDetail.getReceivedTime());
         productionTaskDetailRecordService.save(productionTaskDetailRecord);
 
+        //保存附件
+        ObsFileUtil.saveFile(productionTaskDetailDto.getFileList(),productionTaskDetailRecord.getId());
+
         StockWait stockWait = new StockWait();
         stockWait.setType(1);//入库
         stockWait.setStatus(0);//待入库
@@ -425,4 +426,46 @@ public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskD
         return page;
     }
 
+    /**
+     * 生产任务明细
+     */
+    @Override
+    public ProductionTaskDetail detail(Long id) {
+        ProductionTaskDetail productionTaskDetail = this.getById(id);
+        ProductionTask productionTask = productionTaskService.getById(productionTaskDetail.getProductionTaskId());
+        ProductionPlan productionPlan = productionPlanService.getById(productionTask.getProductionPlanId());
+        WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
+
+        List<Long> processesIds = Arrays.asList(productionTaskDetail.getPreviousProcessesId(),
+                productionTaskDetail.getProductionProcessesId(),
+                productionTaskDetail.getNextProductionProcessesId()
+        );
+
+        Map<Long,String> productionProcessesMap;
+        if (Objects.equals(workOrder.getIsCustomized(),1)){
+            //定制
+            productionProcessesMap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId,
+                    WorkOrderProductionProcesses::getName, q -> q.in(WorkOrderProductionProcesses::getId, processesIds));
+        }else {
+            //非定制
+            productionProcessesMap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName,
+                    q -> q.in(ProductionProcesses::getId, processesIds));
+        }
+
+        ProductionTaskDetailVo productionTaskDetailVo = BeanUtil.copyProperties(productionTaskDetail, ProductionTaskDetailVo.class);
+
+        productionTaskDetailVo.setProductionProcessesName(productionProcessesMap.get(productionTaskDetail.getProductionProcessesId()));
+        productionTaskDetailVo.setNextProductionProcessesName(productionProcessesMap.get(productionTaskDetail.getNextProductionProcessesId()));
+        productionTaskDetailVo.setPreviousProcessesName(productionProcessesMap.get(productionTaskDetail.getPreviousProcessesId()));
+
+        List<ProductionTaskDetailRecord> productionTaskDetailRecordList = productionTaskDetailRecordService.list(q -> q
+                .eq(ProductionTaskDetailRecord::getProductionTaskDetailId, id)
+                .orderByDesc(ProductionTaskDetailRecord::getCreateTime)
+        );
+        List<ProductionTaskDetailRecordVo> productionTaskDetailRecordVos = BeanUtil.copyToList(productionTaskDetailRecordList, ProductionTaskDetailRecordVo.class);
+        productionTaskDetailVo.setProductionTaskDetailRecordList(productionTaskDetailRecordVos);
+
+        return productionTaskDetailVo;
+    }
+
 }