|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|