Kaynağa Gözat

修改预校验条件

luyanwen-001 3 yıl önce
ebeveyn
işleme
7e80a8f32d

+ 18 - 6
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageBookingOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.abi.qms.platform.dto.res.ListQrVariableRes;
 import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
 import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
 import com.abi.qms.platform.infrastructure.util.PageUtil;
+import com.abi.qms.platform.service.MaterialService;
 import com.abi.qms.platform.service.QrPackageBookingOrderService;
 import com.abi.task.common.api.exception.BusinessException;
 import com.abi.task.common.utils.PojoConverterUtils;
@@ -46,6 +47,9 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
     @Autowired
     private QrPackageSapOrderItemMapper qrPackageSapOrderItemMapper;
 
+    @Autowired
+    private MaterialService materialService;
+
     /**
      * 新增修改预订单
      * @author ludashi
@@ -135,17 +139,17 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
     @Override
     public void associateSapOrder(AssociateSapOrderReq associateSapOrderReq) {
         //1根据物料code查询id保存
-        QueryWrapper<BaseMaterial> baseMaterial = new QueryWrapper<>();
-        baseMaterial.eq("material_code",associateSapOrderReq.getMaterialCode());
-        baseMaterial.eq("is_delete",0);
-        BaseMaterial baseMaterials = baseMaterialMapper.selectOne(baseMaterial);
+        BaseMaterial baseMaterials = materialService.getMaterialByCode(associateSapOrderReq.getMaterialCode());
+        if(ObjectUtils.isEmpty(baseMaterials)){
+            new BusinessException("该SAP订单号内未找到需要打码的物料,请维护物料数据后重试");
+        }
         //关联SAP订单 校验
         QueryWrapper<QrPackageSapOrderItem> qrPackageSapOrderItem = new QueryWrapper<>();
         qrPackageSapOrderItem.eq("sap_order_no",associateSapOrderReq.getSapOrder());
-        qrPackageSapOrderItem.eq("sap_material_id",baseMaterials.getId());
+        qrPackageSapOrderItem.eq("sap_material_id",baseMaterials.getMaterialCode());
         QrPackageSapOrderItem queryQrPackageSapOrderItem = qrPackageSapOrderItemMapper.selectOne(qrPackageSapOrderItem);
         if(ObjectUtils.isEmpty(queryQrPackageSapOrderItem)){
-            new BusinessException("该SAP订单号内未找到需要打码的物料,请维护物料数据后重试");
+            new BusinessException("关联的SAP订单不存在。");
         }
         //2修改预订单名称
         QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectById(associateSapOrderReq.getId());
@@ -161,6 +165,14 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
         if(!queryQrPackageSapOrderItem.getSapCoverFactoryId().equals(qrPackageBookingOrder.getFactoryCoverId().toString())){
             new BusinessException("关联的SAP订单内包材厂信息与原预订单不符,请确认后重试。");
         }
+        //  物料类型 3-罐子 4-瓶盖 5-纸板箱
+        BaseMaterial materialByCode = materialService.getMaterialByCode(queryQrPackageSapOrderItem.getSapMaterialId());
+        if(ObjectUtils.isEmpty(materialByCode)){
+            new BusinessException("关联的SAP订单内物料查询为空,请确认后重试。");
+        }
+        if(!materialByCode.getMaterialType().equals(baseMaterials.getMaterialType())){
+            new BusinessException("关联的SAP订单内物料类型与原预订单码类型不符,请确认后重试。");
+        }
         qrPackageBookingOrderMapper.updateById(qrPackageBookingOrder);
         qrPackageMapper.updateById(qrPackage);
     }