Prechádzať zdrojové kódy

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

luyanwen 3 rokov pred
rodič
commit
0a86e1cb97

+ 3 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/vo/result/QrPackageVO.java

@@ -98,4 +98,7 @@ public class QrPackageVO implements Serializable {
 	@ApiModelProperty(value = "修改人id")
 	private Long updateBy;
 
+	@ApiModelProperty(value = "码包批次列表")
+	private List<QrPackageBatchVO> qrPackageBatchVOList;
+
 }

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

@@ -75,6 +75,9 @@ public class SaveQrPackageReq implements Serializable {
 	@ApiModel(value = "SaveQrPackageReq_PackageBatchBean")
 	public static class PackageBatchBean implements Serializable {
 
+		@ApiModelProperty("批次号id")
+		private Long id;
+
 		@NotEmpty(message = "批次号为空")
 		@ApiModelProperty(value = "批次号")
 		private String batchNumber;

+ 28 - 7
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/res/GetQrPackageDetailRes.java

@@ -1,5 +1,6 @@
 package com.abi.qms.platform.dto.res;
 
+import com.abi.qms.platform.dao.vo.result.QrPackageBatchVO;
 import com.abi.qms.platform.dao.vo.result.QrPackageDownloadRecordVO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
@@ -23,11 +24,26 @@ public class GetQrPackageDetailRes implements Serializable {
 	@ApiModelProperty("码包id")
 	private Long id;
 
+	@ApiModelProperty(value = "物料id")
+	private Long materialId;
+
+	@ApiModelProperty("物料名称")
+	private String materialName;
+
 	@ApiModelProperty(value = "包材厂id")
-	private Long factoryId;
+	private Long factoryCoverId;
 
 	@ApiModelProperty("包材厂名称")
-	private String factoryName;
+	private String factoryCoverName;
+
+	@ApiModelProperty(value = "啤酒厂id")
+	private Long factoryBeerId;
+
+	@ApiModelProperty("啤酒厂名称")
+	private String factoryBeerName;
+
+	@ApiModelProperty(value = "备用码包")
+	private String standbyRatio;
 
 	@ApiModelProperty("箱码幅面id")
 	private Long boxCodeFormatId;
@@ -44,11 +60,8 @@ public class GetQrPackageDetailRes implements Serializable {
 	@ApiModelProperty("码库类型")
 	private Integer qrRepertoryType;
 
-	@ApiModelProperty("批次号")
-	private String batchNumber;
-
-	@ApiModelProperty("码包名称")
-	private String name;
+	@ApiModelProperty("SAP单号")
+	private String sapOrderNo;
 
 	@ApiModelProperty("码数量")
 	private Long qrNumber;
@@ -59,9 +72,15 @@ public class GetQrPackageDetailRes implements Serializable {
 	@ApiModelProperty("生成状态 0-未生成 1-生成中 2-已生成 3-失败")
 	private Integer generateStatus;
 
+	@ApiModelProperty(value = "申请原因")
+	private String reasonApply;
+
 	@ApiModelProperty("下载路径")
 	private String downloadPath;
 
+	@ApiModelProperty("是否已下载")
+	private Integer isDownload;
+
 	@ApiModelProperty(value = "创建时间")
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private LocalDateTime createTime;
@@ -82,4 +101,6 @@ public class GetQrPackageDetailRes implements Serializable {
 	@ApiModelProperty(value = "码包下载记录")
 	private List<QrPackageDownloadRecordVO> qrPackageDownloadRecordList;
 
+	@ApiModelProperty(value = "码包批次列表")
+	private List<QrPackageBatchVO> qrPackageBatchVOList;
 }

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

@@ -23,9 +23,12 @@ import com.abi.qms.platform.infrastructure.util.PageUtil;
 import com.abi.qms.platform.infrastructure.util.UserUtil;
 import com.abi.qms.platform.service.QrPackageService;
 import com.abi.task.common.api.exception.BusinessException;
+import com.abi.task.common.api.exception.ErrorCodeEnum;
+import com.abi.task.common.utils.ICollectionUtil;
 import com.abi.task.common.utils.PojoConverterUtils;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import lombok.extern.slf4j.Slf4j;
@@ -37,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -137,18 +141,72 @@ public class QrPackageServiceImpl implements QrPackageService {
 			// 修改时,需要重置码包的状态为待审核
 			qrPackage.setApplyStatus(QrPackageApplyStatusEnum.WAIT_REVIEW.getCode());
 			qrPackageMapper.updateById(qrPackage);
-			//Todo:批次号和码包关联
 			//更新批次号的数据
 			QueryWrapper<QrPackageBatch> qrPackageBatchQuery = new QueryWrapper<>();
 			qrPackageBatchQuery.eq("package_id", qrPackageId);
 			qrPackageBatchQuery.eq("is_delete", 0);
 			List<QrPackageBatch> qrPackageBatches = qrPackageBatchMapper.selectList(qrPackageBatchQuery);
-
+			List<Long> batchOldId = qrPackageBatches.stream().map(QrPackageBatch::getId).collect(Collectors.toList());
+			if(CollectionUtil.isNotEmpty(req.getPackageBatchBeanList())) {
+				//提取出更新的批次数据
+				List<Long> batchNewId = req.getPackageBatchBeanList().stream().map(SaveQrPackageReq.PackageBatchBean::getId).collect(Collectors.toList());
+				//整理需删除的数据
+				List<Long> deleteBatch = new ArrayList<>(batchOldId);
+				deleteBatch.removeAll(batchNewId);
+				if(CollectionUtil.isNotEmpty(deleteBatch)){
+					UpdateWrapper<QrPackageBatch> qrPackageBatchDeleteParam = new UpdateWrapper<>();
+					qrPackageBatchDeleteParam.in("id", deleteBatch)
+							.set("is_delete", 1);
+					qrPackageBatchMapper.update(null, qrPackageBatchDeleteParam);
+				}
+				//循环添加或更新
+				for(SaveQrPackageReq.PackageBatchBean packageBatchBean: req.getPackageBatchBeanList()) {
+					if(packageBatchBean.getId() == null){
+						QrPackageBatch qrPackageBatch = new QrPackageBatch();
+						qrPackageBatch.setPackageId(qrPackage.getId());
+						qrPackageBatch.setBatchNumber(packageBatchBean.getBatchNumber());
+						qrPackageBatch.setBatchQrNumber(packageBatchBean.getBatchQrNumber());
+						qrPackageBatch.setUpdateBy(userId);
+						qrPackageBatch.setCreateBy(userId);
+						qrPackageBatchMapper.insert(qrPackageBatch);
+					}else{
+						QueryWrapper<QrPackageBatch> qrPackageBatchQ = new QueryWrapper<>();
+						qrPackageBatchQ.eq("id", packageBatchBean.getId());
+						qrPackageBatchQ.eq("is_delete", 0);
+						QrPackageBatch qrPackageBatch = qrPackageBatchMapper.selectOne(qrPackageBatchQ);
+						if(Objects.isNull(qrPackageBatch)){
+							throw new BusinessException(ErrorCodeEnum.NO_EXISTS_DATA.getCode(), "批次对象不存在");
+						}
+						qrPackageBatch.setBatchQrNumber(packageBatchBean.getBatchQrNumber());
+						qrPackageBatch.setBatchNumber(packageBatchBean.getBatchNumber());
+						qrPackageBatch.setUpdateBy(userId);
+						qrPackageBatchMapper.updateById(qrPackageBatch);
+					}
+				}
+			}else{
+				//入参没有批次信息,数据库有,则全删除
+				if(CollectionUtil.isNotEmpty(qrPackageBatches)){
+					UpdateWrapper<QrPackageBatch> qrPackageBatchDeleteParam = new UpdateWrapper<>();
+					qrPackageBatchDeleteParam.in("id", batchOldId)
+							.set("is_delete", 1);
+					qrPackageBatchMapper.update(null, qrPackageBatchDeleteParam);
+				}
+			}
 		} else {
 			qrPackage.setCreateBy(userId);
 			int insert = qrPackageMapper.insert(qrPackage);
-			//插入批次号的数据
-
+			if(CollectionUtil.isNotEmpty(req.getPackageBatchBeanList())) {
+				//插入批次号的数据
+				for(SaveQrPackageReq.PackageBatchBean packageBatchBean: req.getPackageBatchBeanList()) {
+					QrPackageBatch qrPackageBatch = new QrPackageBatch();
+					qrPackageBatch.setPackageId(qrPackage.getId());
+					qrPackageBatch.setBatchNumber(packageBatchBean.getBatchNumber());
+					qrPackageBatch.setBatchQrNumber(packageBatchBean.getBatchQrNumber());
+					qrPackageBatch.setUpdateBy(userId);
+					qrPackageBatch.setCreateBy(userId);
+					qrPackageBatchMapper.insert(qrPackageBatch);
+				}
+			}
 		}
 
 	}

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

@@ -35,6 +35,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <result property="createTime" column="download_time"/>
             <result property="createByName" column="download_user_name"/>
         </collection>
+
+        <!-- 码包批次列表 -->
+        <collection property="qrPackageBatchVOList" javaType="java.util.List" ofType="com.abi.qms.platform.dao.vo.result.QrPackageBatchVO">
+            <result property="id" column="batch_id"/>
+            <result property="packageId" column="package_id"/>
+            <result property="batchNumber" column="batch_number"/>
+            <result property="batchQrNumber" column="batch_qr_number"/>
+        </collection>
     </resultMap>
 
     <select id="listQrPackage" resultType="com.abi.qms.platform.dao.vo.result.QrPackageVO">
@@ -105,7 +113,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             qr.name AS qr_repertory_name,
             qr.type AS qr_repertory_type,
             qpdr.create_time AS download_time,
-            ui.user_name AS download_user_name
+            ui.user_name AS download_user_name,
+            qpb.id as batch_id,
+            qpb.package_id,
+            qpb.batch_number,
+            qpb.batch_qr_number
         FROM
             qr_package qp
         LEFT JOIN qr_box_code_format bcf ON qp.box_code_format_id = bcf.id
@@ -114,6 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN base_factory bfc ON qp.factory_cover_id = bfc.id
         LEFT JOIN base_factory bfb ON qp.factory_beer_id = bfb.id
         LEFT JOIN qr_package_download_record qpdr ON qpdr.qr_package_id = qp.id
+        LEFT JOIN qr_package_batch qpb ON qpb.package_id = qp.id
         LEFT JOIN user_info ui ON ui.id = qpdr.create_by
         WHERE qp.id = #{id}
     </select>