|
@@ -48,11 +48,7 @@ import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.text.MessageFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -123,6 +119,9 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
@Autowired
|
|
|
private FactoryService factoryService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private QrBoxCodeFormatMapper qrBoxCodeFormatMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 保存码包
|
|
|
*/
|
|
@@ -199,7 +198,17 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
}
|
|
|
|
|
|
//3-如果是盖码,那么查询盖码得默认箱码幅面,并放入入参
|
|
|
- //TODO
|
|
|
+ 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查询物料类型,判断码类型,保存至码包表中
|
|
|
BaseMaterial material = baseMaterialMapper.selectById(req.getMaterialId());
|
|
@@ -319,29 +328,18 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
}
|
|
|
|
|
|
//如果SAP订单号和物料有重复数据,需提交额外申请原因
|
|
|
- if(StringUtils.isNotBlank(req.getSapOrderNo())){
|
|
|
+ if(StringUtils.isNotBlank(req.getSapOrderNo()) && req.getReasonApply()==null){
|
|
|
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 (Objects.isNull(req.getReasonApply())) {
|
|
|
- throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
|
|
|
- }
|
|
|
- }
|
|
|
- if (!id.equals(req.getId())) {
|
|
|
- if (Objects.isNull(req.getReasonApply())) {
|
|
|
- throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
|
|
|
- }
|
|
|
- }
|
|
|
+ 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 + "重复,若仍需申请需要提交额外码包申请原因");
|
|
|
}
|
|
|
}
|
|
|
}
|