Browse Source

创建待采购移到下发生产

yzc 1 year ago
parent
commit
b69a8aa8b7

+ 9 - 13
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java

@@ -211,13 +211,14 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
         Assert.notEmpty(contract, "查询不到合同信息!");
         contractService.update(q -> q.eq(Contract::getId, contractId).set(Contract::getOrderDistributeStatus, 1));
 
-        //创建待采购
-        createMaterialWaitPurchase(contract);
 
         produceOrderDto.setCode(contract.getCode());
         produceOrderDto.setProduceStatus(0);
         this.save(produceOrderDto);
 
+        //创建待采购
+        createMaterialWaitPurchase(produceOrderDto);
+
         //创建生产任务
         createOrderDetails(produceOrderDto);
     }
@@ -272,22 +273,17 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
     /**
      * 创建合同产品 物料待采购信息
      */
-    private void createMaterialWaitPurchase(Contract contract) {
+    private void createMaterialWaitPurchase(ProductionOrderDto productionOrderDto) {
         //根据归属公司将数据赋值给指定公司
-        Long companyId = contract.getCompanyId();
-        SysDept company = deptService.getById(companyId);
-        if (ObjectUtil.isEmpty(company)) {
-            throw new ServiceException("归属公司不存在");
-        }
+        Long companyId = productionOrderDto.getCompanyId();
+        Long contractId = productionOrderDto.getContractId();
 
         //生成物料待采购数据
-        List<ContractProduct> contractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, contract.getId()));
+        List<ContractProduct> contractProductList = contractProductService.list(q -> q.eq(ContractProduct::getContractId, contractId));
 
         //获取物料列表
         List<Long> cpIds = contractProductList.stream().map(ContractProduct::getId).collect(Collectors.toList());
-        Map<Long, List<ContractProductBom>> cpBMap = contractProductBomService.mapKGroup(ContractProductBom::getContractProductId,
-                q -> q.in(ContractProductBom::getContractProductId, cpIds)
-        );
+        Map<Long, List<ContractProductBom>> cpBMap = contractProductBomService.mapKGroup(ContractProductBom::getContractProductId, q -> q.in(ContractProductBom::getContractProductId, cpIds));
 
         //待采购列表
         List<SubscribeDetail> subscribeDetailList = new ArrayList<>();
@@ -345,7 +341,7 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
                     subscribeDetail.setProductId(materialId);
                     subscribeDetail.setCount(requiredQuantity);
                     subscribeDetail.setStatus(15);//待采购
-                    subscribeDetail.setContractId(contract.getId());
+                    subscribeDetail.setContractId(contractId);
                     subscribeDetail.setContractDetailId(contractProduct.getId());
                     subscribeDetail.setDataType(1);
                     subscribeDetail.setCompanyId(companyId);