Переглянути джерело

Merge remote-tracking branch 'origin/feature/1.0.0' into feature/1.0.0

luyanwen-001 3 роки тому
батько
коміт
c72a904740

+ 7 - 2
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/entity/QrPackage.java

@@ -8,6 +8,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -48,9 +49,15 @@ public class QrPackage implements Serializable {
 	@Schema(name = "箱码幅面id")
 	private Long boxCodeFormatId;
 
+	@Schema(name = "订单类型: 1-SAP订单 2-预订单")
+	private Integer orderType;
+
 	@Schema(name = "SAP单号")
 	private String sapOrderNo;
 
+	@Schema(name = "预订单号")
+	private String bookingOrder;
+
 	@Schema(name = "备用码包")
 	private Integer standbyRatio;
 
@@ -107,6 +114,4 @@ public class QrPackage implements Serializable {
 	@Schema(name = "是否作废 0-未作废 1-已作废")
 	private Integer invalid;
 
-	@Schema(name = "预订单号")
-	private String bookingOrder;
 }

+ 48 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/enums/CodePackageOrderTypeEnum.java

@@ -0,0 +1,48 @@
+package com.abi.qms.platform.dao.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * 码包订单类型
+ * @Author AndyTan
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum CodePackageOrderTypeEnum {
+
+	//码包订单类型: 1-SAP订单 2-预订单
+	SAP_ORDER(1,"SAP订单"),
+	BOOKING_ORDER(2,"预订单");
+
+	@EnumValue
+	private Integer code;
+	private String name;
+
+	private static final Set<CodePackageOrderTypeEnum> ALL = EnumSet.allOf(CodePackageOrderTypeEnum.class);
+
+    public static String getName(Integer code) {
+        return ALL.stream()
+                .filter(o -> o.code.equals(code))
+                .map(o -> o.getName())
+                .findAny().orElse(null);
+    }
+
+    public static Integer getCode(String name) {
+        return ALL.stream()
+                .filter(o -> o.name.equals(name))
+                .map(o -> o.getCode())
+                .findAny().orElse(null);
+    }
+
+	public boolean is(Integer code){
+		return getCode().equals(code);
+	}
+
+}

+ 10 - 6
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/SaveQrPackageReq.java

@@ -1,6 +1,5 @@
 package com.abi.qms.platform.dto.req;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -11,10 +10,8 @@ import lombok.ToString;
 
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
-import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -30,11 +27,18 @@ public class SaveQrPackageReq implements Serializable {
 	@ApiModelProperty("码包id")
 	private Long id;
 
-	@NotEmpty(message = "SAP单号为空")
+	@NotEmpty(message = "订单类型为空")
+	@ApiModelProperty(value = "订单类型: 1-SAP订单 2-预订单")
+	private Integer orderType;
+
 	@Size(max = 20, message = "SAP单号不能超过20字")
-	@ApiModelProperty("SAP单号")
+	@ApiModelProperty(value = "SAP单号")
 	private String sapOrderNo;
 
+	@Size(max = 20, message = "预订单号不能超过20字")
+	@ApiModelProperty(value = "预订单号")
+	private String bookingOrder;
+
 	@NotNull(message = "物料为空")
 	@ApiModelProperty(value = "物料id")
 	private Long materialId;
@@ -64,7 +68,7 @@ public class SaveQrPackageReq implements Serializable {
 	@ApiModelProperty(value = "申请原因")
 	private String reasonApply;
 
-	@Schema(name = "二维码类型 1-箱码 2-盖码 前端不用传")
+	@ApiModelProperty(value = "二维码类型 1-箱码 2-盖码 前端不用传")
 	private Integer qrType;
 
 	@ApiModelProperty(value = "批次列表")

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

@@ -309,27 +309,38 @@ public class QrPackageServiceImpl implements QrPackageService {
                 throw new BusinessException("码包不可编辑");
             }
         }
+
+        //根据类型判断订单号不能为空
+        if(CodePackageOrderTypeEnum.SAP_ORDER.is(req.getOrderType()) && StringUtils.isBlank(req.getSapOrderNo())){
+            throw new BusinessException("SAP订单号不能为空");
+        }
+        if(CodePackageOrderTypeEnum.BOOKING_ORDER.is(req.getOrderType()) && StringUtils.isBlank(req.getBookingOrder())){
+            throw new BusinessException("预订单号不能为空");
+        }
+
         //如果SAP订单号和物料有重复数据,需提交额外申请原因
-        ValidSAPOrderNoAndMaterialReq reqValid = new ValidSAPOrderNoAndMaterialReq();
-        reqValid.setMaterialId(req.getMaterialId());
-        reqValid.setSapOrderNo(req.getSapOrderNo());
-        ValidSAPOrderNoAndMaterialRes validSAPOrderNoAndMaterialRes = validSAPOrderNoAndMaterial(reqValid);
-        if (Objects.nonNull(validSAPOrderNoAndMaterialRes) && CollectionUtil.isNotEmpty(validSAPOrderNoAndMaterialRes.getPackageBeanList())) {
-            Long id = validSAPOrderNoAndMaterialRes.getPackageBeanList().get(0).getId();
-            if (validSAPOrderNoAndMaterialRes.getPackageBeanList().size() > 1) {
-                if (Objects.isNull(req.getReasonApply())) {
-                    throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
-                }
-            }
-            if (validSAPOrderNoAndMaterialRes.getPackageBeanList().size() == 1) {
-                if (req.getId() == null) {
+        if(StringUtils.isNotBlank(req.getSapOrderNo())){
+            ValidSAPOrderNoAndMaterialReq reqValid = new ValidSAPOrderNoAndMaterialReq();
+            reqValid.setMaterialId(req.getMaterialId());
+            reqValid.setSapOrderNo(req.getSapOrderNo());
+            ValidSAPOrderNoAndMaterialRes validSAPOrderNoAndMaterialRes = validSAPOrderNoAndMaterial(reqValid);
+            if (Objects.nonNull(validSAPOrderNoAndMaterialRes) && CollectionUtil.isNotEmpty(validSAPOrderNoAndMaterialRes.getPackageBeanList())) {
+                Long id = validSAPOrderNoAndMaterialRes.getPackageBeanList().get(0).getId();
+                if (validSAPOrderNoAndMaterialRes.getPackageBeanList().size() > 1) {
                     if (Objects.isNull(req.getReasonApply())) {
                         throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
                     }
                 }
-                if (!id.equals(req.getId())) {
-                    if (Objects.isNull(req.getReasonApply())) {
-                        throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
+                if (validSAPOrderNoAndMaterialRes.getPackageBeanList().size() == 1) {
+                    if (req.getId() == null) {
+                        if (Objects.isNull(req.getReasonApply())) {
+                            throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
+                        }
+                    }
+                    if (!id.equals(req.getId())) {
+                        if (Objects.isNull(req.getReasonApply())) {
+                            throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
+                        }
                     }
                 }
             }

+ 2 - 1
abi-cloud-qr-platform-server/src/main/resources/dao/mapper/QrBoxCodeFormatSplitMapper.xml

@@ -45,7 +45,8 @@
         qrc.id as repertoryColumnId,
         qrc.sort_number,
         qrc.alias,
-        qbs.split_num
+        qbs.split_num,
+        qbs.id as splitId
         from qr_box_code_format_split qbs
         inner join qr_repertory qr on qr.id=qbs.qr_repertory_id
         inner join qr_repertory_column qrc on qr.id=qrc.qr_repertory_id