فهرست منبع

码包相关修改

tanzhongran 3 سال پیش
والد
کامیت
e57cef2c12

+ 6 - 0
abi-cloud-qr-platform-server/pom.xml

@@ -139,6 +139,12 @@
             <artifactId>xxl-job-core</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.abi.ootb.core</groupId>
+            <artifactId>ootb-core</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+
         <!-- rabbitmq(amqp) -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 9 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/QrPackageBookingOrderService.java

@@ -1,5 +1,6 @@
 package com.abi.qms.platform.service;
 
+import com.abi.qms.platform.dao.entity.QrPackageBookingOrder;
 import com.abi.qms.platform.dto.req.*;
 import com.abi.qms.platform.dto.res.QueryOrderFormDetailRes;
 import com.abi.qms.platform.dto.res.QueryOrderFormLimitRes;
@@ -54,4 +55,12 @@ public interface QrPackageBookingOrderService {
      * @param deleteQrPackageBookingOrderReq
      */
     void deleteQrPackageBookingOrder(DeleteQrPackageBookingOrderReq deleteQrPackageBookingOrderReq);
+
+    /**
+     * 获取预订单信息
+     * @param bookingOrder
+     * @return
+     */
+    QrPackageBookingOrder getBookingOrder(String bookingOrder);
+
 }

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

@@ -213,4 +213,18 @@ public class QrPackageBookingOrderServiceImpl implements QrPackageBookingOrderSe
         qrPackageBookingOrder.setIsDelete(1);
         qrPackageBookingOrderMapper.updateById(qrPackageBookingOrder);
     }
+
+    /**
+     * 获取预订单信息
+     * @param bookingOrder
+     * @return
+     */
+    @Override
+    public QrPackageBookingOrder getBookingOrder(String bookingOrder) {
+        QueryWrapper<QrPackageBookingOrder> bookingOrderQw = new QueryWrapper<>();
+        bookingOrderQw.eq("booking_order",bookingOrder);
+        bookingOrderQw.eq("is_delete",0);
+        QrPackageBookingOrder qrPackageBookingOrder = qrPackageBookingOrderMapper.selectOne(bookingOrderQw);
+        return qrPackageBookingOrder;
+    }
 }

+ 36 - 46
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/QrPackageServiceImpl.java

@@ -2,16 +2,7 @@ package com.abi.qms.platform.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.abi.base.foundation.util.RedisClient;
-import com.abi.qms.platform.dao.entity.BaseFactory;
-import com.abi.qms.platform.dao.entity.BaseMaterial;
-import com.abi.qms.platform.dao.entity.QrBoxCodeFormat;
-import com.abi.qms.platform.dao.entity.QrBoxMapping;
-import com.abi.qms.platform.dao.entity.QrPackage;
-import com.abi.qms.platform.dao.entity.QrPackageBatch;
-import com.abi.qms.platform.dao.entity.QrPackageDownloadRecord;
-import com.abi.qms.platform.dao.entity.QrPackageSapOrderItem;
-import com.abi.qms.platform.dao.entity.QrRepertoryColumn;
-import com.abi.qms.platform.dao.entity.UserInfo;
+import com.abi.qms.platform.dao.entity.*;
 import com.abi.qms.platform.dao.enums.BoxMappingActiveStatusEnum;
 import com.abi.qms.platform.dao.enums.CodePackageOrderTypeEnum;
 import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
@@ -75,6 +66,7 @@ import com.abi.qms.platform.infrastructure.util.SmsUtil;
 import com.abi.qms.platform.infrastructure.util.UserUtil;
 import com.abi.qms.platform.service.FactoryService;
 import com.abi.qms.platform.service.MaterialService;
+import com.abi.qms.platform.service.QrPackageBookingOrderService;
 import com.abi.qms.platform.service.QrPackageService;
 import com.abi.task.common.api.exception.BusinessException;
 import com.abi.task.common.api.exception.ErrorCodeEnum;
@@ -175,6 +167,9 @@ public class QrPackageServiceImpl implements QrPackageService {
     @Autowired
     private QrBoxCodeFormatMapper qrBoxCodeFormatMapper;
 
+    @Autowired
+    private QrPackageBookingOrderService qrPackageBookingOrderService;
+
     /**
      * 保存码包
      */
@@ -250,24 +245,26 @@ public class QrPackageServiceImpl implements QrPackageService {
             req.setPackageBatchBeanList(batchBeanList);
         }
 
-        //3-如果是盖码,那么查询盖码得默认箱码幅面,并放入入参
-        QueryWrapper<QrBoxCodeFormat> formatQw = new QueryWrapper<>();
-        formatQw.eq("is_sys", 1);
-        //1-盖码默认幅面
-        formatQw.eq("sys_type", 1);
-        formatQw.eq("is_delete", 0);
-        List<QrBoxCodeFormat> beerFormatList = qrBoxCodeFormatMapper.selectList(formatQw);
-        if (CollectionUtil.isEmpty(beerFormatList)) {
-            throw new BusinessException("盖码默认幅面与码格式不存在,请检查初始数据");
-        }
-        QrBoxCodeFormat beerFormat = beerFormatList.get(0);
-        req.setBoxCodeFormatId(beerFormat.getId());
-
-        //4-根据物料ID查询物料类型,判断码类型,保存至码包表中
+        //3-根据物料ID查询物料类型,判断码类型,保存至码包表中
         BaseMaterial material = baseMaterialMapper.selectById(req.getMaterialId());
         AssertUtil.isNull(material, "物料信息不存在");
         req.setQrType(getPackageCode(material.getMaterialType()));
 
+        //4-如果是盖码,那么查询盖码得默认箱码幅面,并放入入参
+        if(QrTypeEnum.CAP.is(req.getQrType())){
+            QueryWrapper<QrBoxCodeFormat> formatQw = new QueryWrapper<>();
+            formatQw.eq("is_sys", 1);
+            //1-盖码默认幅面
+            formatQw.eq("sys_type", 1);
+            formatQw.eq("is_delete", 0);
+            List<QrBoxCodeFormat> beerFormatList = qrBoxCodeFormatMapper.selectList(formatQw);
+            if (CollectionUtil.isEmpty(beerFormatList)) {
+                throw new BusinessException("盖码默认幅面与码格式不存在,请检查初始数据");
+            }
+            QrBoxCodeFormat beerFormat = beerFormatList.get(0);
+            req.setBoxCodeFormatId(beerFormat.getId());
+        }
+
     }
 
     /**
@@ -391,23 +388,23 @@ public class QrPackageServiceImpl implements QrPackageService {
             if (TrueFalseEnum.TRUE.is(validSAPOrderNoAndMaterialRes.getIsOverstepNum())) {
                 throw new BusinessException("该SAP订单号和物料已超额申请码包,若仍需申请需要提交额外码包申请原因");
             }
-
-            /*if (Objects.nonNull(validSAPOrderNoAndMaterialRes) && CollectionUtil.isNotEmpty(validSAPOrderNoAndMaterialRes.getPackageBeanList())) {
-                Set<Long> validQrPackageIdSet = validSAPOrderNoAndMaterialRes.getPackageBeanList().stream().map(bean -> bean.getId()).collect(Collectors.toSet());
-                if(validQrPackageIdSet.size()>1
-                ||(isAdd && validQrPackageIdSet.size()==1)
-                ||(!isAdd && !validQrPackageIdSet.contains(req.getId()))){
-                    Long id = validSAPOrderNoAndMaterialRes.getPackageBeanList().get(0).getId();
-                    throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
-                }
-            }*/
         }
 
-        //查询物料信息
-        BaseMaterial material = baseMaterialMapper.selectById(req.getMaterialId());
-        AssertUtil.isNull(material, "物料信息不存在");
-        if (QrTypeEnum.CARTON.is(getPackageCode(material.getMaterialType()))
-                && req.getBoxCodeFormatId() == null) {
+        //是否箱码
+        boolean isCarton = false;
+        if(CodePackageOrderTypeEnum.SAP_ORDER.is(req.getOrderType())){
+            //查询sap订单,物料信息必填
+            BaseMaterial material = baseMaterialMapper.selectById(req.getMaterialId());
+            AssertUtil.isNull(material, "物料信息不存在");
+            isCarton = QrTypeEnum.CARTON.is(getPackageCode(material.getMaterialType()));
+        }else{
+            //查询预订单
+            QrPackageBookingOrder bookingOrder = qrPackageBookingOrderService.getBookingOrder(req.getBookingOrder());
+            AssertUtil.isNull(bookingOrder, "预订单不存在");
+            isCarton = QrTypeEnum.CARTON.is(bookingOrder.getQrType());
+        }
+        //如果是箱码则必传箱码幅面
+        if (isCarton && req.getBoxCodeFormatId() == null) {
             throw new BusinessException("箱码幅面为空");
         }
 
@@ -446,14 +443,7 @@ public class QrPackageServiceImpl implements QrPackageService {
 
         //校验批次号
         if (CollectionUtil.isNotEmpty(req.getPackageBatchBeanList())) {
-            //同一个码包内,不同批次的批次号不一样
             List<SaveQrPackageReq.PackageBatchBean> packageBatchBeanList = req.getPackageBatchBeanList();
-            //聚合批次号(不用校验重复 by andy)
-//            List<String> batchNumberList = packageBatchBeanList.stream().map(SaveQrPackageReq.PackageBatchBean::getBatchNumber).distinct().collect(Collectors.toList());
-//            if (batchNumberList.size() < req.getPackageBatchBeanList().size()) {
-//                throw new BusinessException("批次号重复,请确认后重试");
-//            }
-            //同一个码包内,批次加起来的总数量和码包数量一致
             //计算码包数量总和
             long sum = packageBatchBeanList.stream().mapToLong(SaveQrPackageReq.PackageBatchBean::getBatchQrNumber).sum();
             if (sum != req.getQrNumber()) {