|
@@ -320,8 +320,13 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
ValidSAPOrderNoAndMaterialReq reqValid = new ValidSAPOrderNoAndMaterialReq();
|
|
|
reqValid.setMaterialId(req.getMaterialId());
|
|
|
reqValid.setSapOrderNo(req.getSapOrderNo());
|
|
|
+ reqValid.setApplyNumber(req.getQrNumber());
|
|
|
ValidSAPOrderNoAndMaterialRes validSAPOrderNoAndMaterialRes = validSAPOrderNoAndMaterial(reqValid);
|
|
|
- if (Objects.nonNull(validSAPOrderNoAndMaterialRes) && CollectionUtil.isNotEmpty(validSAPOrderNoAndMaterialRes.getPackageBeanList())) {
|
|
|
+ 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)
|
|
@@ -329,7 +334,7 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
Long id = validSAPOrderNoAndMaterialRes.getPackageBeanList().get(0).getId();
|
|
|
throw new BusinessException("该SAP订单号和物料与码包" + id + "重复,若仍需申请需要提交额外码包申请原因");
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
//查询物料信息
|
|
@@ -430,12 +435,12 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
GetQrPackageDetailRes res = PojoConverterUtils.copy(qrPackage, GetQrPackageDetailRes.class);
|
|
|
|
|
|
//查询码包对应活动单条数据
|
|
|
- PackageActiveVO packageActive = baseActiveMapper.getPackageActive(qrPackage.getId());
|
|
|
+ //PackageActiveVO packageActive = baseActiveMapper.getPackageActive(qrPackage.getMaterialId());
|
|
|
|
|
|
//存在活动数据
|
|
|
- if (ObjectUtils.isNotEmpty(packageActive)) {
|
|
|
- getBrandCodeName(res,packageActive);
|
|
|
- }
|
|
|
+// if (ObjectUtils.isNotEmpty(packageActive)) {
|
|
|
+// getBrandCodeName(res,packageActive);
|
|
|
+// }
|
|
|
return res;
|
|
|
}
|
|
|
|
|
@@ -444,35 +449,36 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
* @param res
|
|
|
* @param packageActive
|
|
|
*/
|
|
|
- private void getBrandCodeName(GetQrPackageDetailRes res,PackageActiveVO packageActive){
|
|
|
|
|
|
- res.setActiveCode(packageActive.getActiveCode());
|
|
|
- res.setActiveName(packageActive.getActiveName());
|
|
|
- res.setActiveUrl(packageActive.getActiveUrl());
|
|
|
- res.setActiveType(packageActive.getActiveType());
|
|
|
- res.setBeginTime(packageActive.getBeginTime());
|
|
|
- res.setEndTime(packageActive.getEndTime());
|
|
|
- //多品牌名称
|
|
|
- StringBuffer brandNames = new StringBuffer();
|
|
|
- //查询品牌一级列表
|
|
|
- QueryWrapper<BaseBrand> baseBrandQW = new QueryWrapper<>();
|
|
|
- baseBrandQW.eq("brand_level",1);
|
|
|
- List<BaseBrand> baseBrands = baseBrandMapper.selectList(baseBrandQW);
|
|
|
- Map<String, String> brandCodeMap = baseBrands.stream().collect(Collectors.toMap(BaseBrand::getBrandCode, BaseBrand::getBrandName));
|
|
|
-
|
|
|
- //品牌名称获取
|
|
|
- String[] brandCodeArray = packageActive.getBrandCode().split(",");
|
|
|
- for (String brandCode : brandCodeArray) {
|
|
|
- String codeName = brandCodeMap.get(brandCode);
|
|
|
- if (StringUtils.isNotBlank(codeName)) {
|
|
|
- brandNames.append(codeName).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
+ private void getBrandCodeName(GetQrPackageDetailRes res,PackageActiveVO packageActive){
|
|
|
|
|
|
- if (brandNames.length()>0){
|
|
|
- brandNames.deleteCharAt(brandNames.length()-1);
|
|
|
- res.setBrandNames(brandNames.toString());
|
|
|
- }
|
|
|
+// res.setActiveCode(packageActive.getActiveCode());
|
|
|
+// res.setActiveName(packageActive.getActiveName());
|
|
|
+// res.setActiveUrl(packageActive.getActiveUrl());
|
|
|
+// res.setActiveType(packageActive.getActiveType());
|
|
|
+// res.setBeginTime(packageActive.getBeginTime());
|
|
|
+// res.setEndTime(packageActive.getEndTime());
|
|
|
+// //多品牌名称
|
|
|
+// StringBuffer brandNames = new StringBuffer();
|
|
|
+// //查询品牌一级列表
|
|
|
+// QueryWrapper<BaseBrand> baseBrandQW = new QueryWrapper<>();
|
|
|
+// baseBrandQW.eq("brand_level",1);
|
|
|
+// List<BaseBrand> baseBrands = baseBrandMapper.selectList(baseBrandQW);
|
|
|
+// Map<String, String> brandCodeMap = baseBrands.stream().collect(Collectors.toMap(BaseBrand::getBrandCode, BaseBrand::getBrandName));
|
|
|
+//
|
|
|
+// //品牌名称获取
|
|
|
+// String[] brandCodeArray = packageActive.getBrandCode().split(",");
|
|
|
+// for (String brandCode : brandCodeArray) {
|
|
|
+// String codeName = brandCodeMap.get(brandCode);
|
|
|
+// if (StringUtils.isNotBlank(codeName)) {
|
|
|
+// brandNames.append(codeName).append(",");
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// if (brandNames.length()>0){
|
|
|
+// brandNames.deleteCharAt(brandNames.length()-1);
|
|
|
+// res.setBrandNames(brandNames.toString());
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -614,12 +620,30 @@ public class QrPackageServiceImpl implements QrPackageService {
|
|
|
qrPackageQuery.eq("sap_order_no", req.getSapOrderNo());
|
|
|
qrPackageQuery.eq("is_delete", 0);
|
|
|
List<QrPackage> qrPackages = qrPackageMapper.selectList(qrPackageQuery);
|
|
|
-
|
|
|
+ long num = 0;
|
|
|
+ //根据物料id,sap订单编号,计算历史订单总数
|
|
|
+ if (CollectionUtil.isNotEmpty(qrPackages)) {
|
|
|
+ num = qrPackages.stream().mapToInt(x -> Math.toIntExact(x.getQrNumber())).sum();
|
|
|
+ }
|
|
|
+ //根据物料,获取sap物料code
|
|
|
+ BaseMaterial baseMaterial = baseMaterialMapper.selectById(req.getMaterialId());
|
|
|
+ AssertUtil.isNull(baseMaterial, "物料信息不存在");
|
|
|
+ //入参获取sap订单表中采购数量
|
|
|
+ QueryWrapper<QrPackageSapOrderItem> item = new QueryWrapper<>();
|
|
|
+ item.eq("sap_order_no", req.getSapOrderNo());
|
|
|
+ item.eq("sap_material_id", baseMaterial.getMaterialCode());
|
|
|
+ QrPackageSapOrderItem qrPackageSapOrderItem = qrPackageSapOrderItemMapper.selectOne(item);
|
|
|
+ AssertUtil.isNull(qrPackageSapOrderItem, "sap订单不存在");
|
|
|
+ //之前采购数量+当前申请数量
|
|
|
+ long number = num + req.getApplyNumber();
|
|
|
//构造出参
|
|
|
ValidSAPOrderNoAndMaterialRes res = new ValidSAPOrderNoAndMaterialRes();
|
|
|
- List<ValidSAPOrderNoAndMaterialRes.PackageBean> packageBeanList = PojoConverterUtils.copyList(qrPackages, ValidSAPOrderNoAndMaterialRes.PackageBean.class);
|
|
|
- res.setPackageBeanList(packageBeanList);
|
|
|
-
|
|
|
+ //判断是否超出sap订单中的采购数量
|
|
|
+ if (number > qrPackageSapOrderItem.getPurchaseCount()) {
|
|
|
+ res.setIsOverstepNum(TrueFalseEnum.TRUE.getCode());
|
|
|
+ } else {
|
|
|
+ res.setIsOverstepNum(TrueFalseEnum.FALSE.getCode());
|
|
|
+ }
|
|
|
return res;
|
|
|
}
|
|
|
|