yzc 11 месяцев назад
Родитель
Сommit
d9cfc8ac3f

+ 9 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProduceOrderController.java

@@ -107,4 +107,13 @@ public class ProduceOrderController {
         return produceOrderService.contractInfo(dto.getId());
     }
 
+    /**
+     * 未配置工艺产线产品检查
+     */
+    @PostMapping("/notTechnologyCheck")
+    void notTechnologyCheck(@RequestBody BaseSelectDto dto) {
+        produceOrderService.notTechnologyCheck(dto.getId());
+    }
+
+
 }

+ 5 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/ProduceOrderService.java

@@ -62,4 +62,9 @@ public interface ProduceOrderService extends BaseService<ProductionOrder> {
     List<MaterialBalanceBo> materialBalanceList(Long id);
 
     ContractVo contractInfo(Long id);
+
+    /**
+     * 未配置工艺产线产品检查
+     */
+    void notTechnologyCheck(Long orderId);
 }

+ 32 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProduceOrderServiceImpl.java

@@ -785,4 +785,36 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
         return contractService.detail(dto);
     }
 
+    /**
+     * 产品工艺校验
+     */
+    @Override
+    public void notTechnologyCheck(Long orderId) {
+        ProductionOrder poById = this.getById(orderId);
+        Assert.notEmpty(poById, "查询不到生产订单信息!");
+
+        //获取订单所在公司自己的产品
+        List<Long> pIds = contractProductService.listObject(ContractProduct::getProductId, q -> q.eq(ContractProduct::getContractId, poById.getContractId()));
+        List<ProductInfo> list = productInfoService.list(q -> q
+                .in(ProductInfo::getId, pIds)
+                .eq(ProductInfo::getCompanyId, poById.getCompanyId())
+                .isNull(ProductInfo::getTechnologyId)
+        );
+
+        if (ObjectUtil.isNotEmpty(list)) {
+            String collect = list.stream().map(item -> {
+                String productName = ObjectUtil.defaultIfNull(item.getName(), "");
+                String productCode = ObjectUtil.defaultIfNull(item.getCustomCode(), "");
+
+                String productLength = ObjectUtil.isNull(item.getLength()) ? "" : item.getLength().toString();
+                String productWidth = ObjectUtil.isNull(item.getWidth()) ? "" : item.getWidth().toString();
+                String productHeight = ObjectUtil.isNull(item.getHeight()) ? "" : item.getHeight().toString();
+
+
+                return StrUtil.format("{}({}[{}*{}*{}])", productName, productCode, productLength, productWidth, productHeight);
+            }).collect(Collectors.joining(","));
+            throw new ServiceException("以下产品未配置工艺线路:" + collect);
+        }
+    }
+
 }