|
@@ -1,19 +1,17 @@
|
|
|
package com.abi.qms.platform.service.impl;
|
|
|
|
|
|
+import com.abi.qms.platform.dao.entity.BaseActive;
|
|
|
import com.abi.qms.platform.dao.entity.BaseMaterial;
|
|
|
+import com.abi.qms.platform.dao.entity.BaseSapMaterial;
|
|
|
import com.abi.qms.platform.dao.entity.BaseSku;
|
|
|
-import com.abi.qms.platform.dao.enums.MaterialTypeEnum;
|
|
|
-import com.abi.qms.platform.dao.enums.QrRepertoryTypeEnum;
|
|
|
-import com.abi.qms.platform.dao.enums.QrTypeEnum;
|
|
|
-import com.abi.qms.platform.dao.enums.ValidEnum;
|
|
|
+import com.abi.qms.platform.dao.enums.*;
|
|
|
+import com.abi.qms.platform.dao.mapper.BaseActiveMapper;
|
|
|
import com.abi.qms.platform.dao.mapper.BaseMaterialMapper;
|
|
|
+import com.abi.qms.platform.dao.mapper.BaseSapMaterialMapper;
|
|
|
import com.abi.qms.platform.dao.mapper.BaseSkuMapper;
|
|
|
import com.abi.qms.platform.dao.vo.result.MaterialVO;
|
|
|
import com.abi.qms.platform.dto.req.*;
|
|
|
-import com.abi.qms.platform.dto.res.ExcelImportRes;
|
|
|
-import com.abi.qms.platform.dto.res.GetMaterialRes;
|
|
|
-import com.abi.qms.platform.dto.res.ListMaterialForSelectRes;
|
|
|
-import com.abi.qms.platform.dto.res.ListMaterialRes;
|
|
|
+import com.abi.qms.platform.dto.res.*;
|
|
|
import com.abi.qms.platform.infrastructure.util.AssertUtil;
|
|
|
import com.abi.qms.platform.infrastructure.util.PageUtil;
|
|
|
import com.abi.qms.platform.service.MaterialService;
|
|
@@ -46,33 +44,37 @@ public class MaterialServiceImpl implements MaterialService {
|
|
|
@Autowired
|
|
|
private BaseSkuMapper baseSkuMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BaseSapMaterialMapper baseSapMaterialMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BaseActiveMapper baseActiveMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 新增物料
|
|
|
*/
|
|
|
@Override
|
|
|
public void addMaterial(AddMaterialReq req){
|
|
|
//校验入参
|
|
|
- //查询是否存在相同名称的物料
|
|
|
- QueryWrapper<BaseMaterial> materialQw = new QueryWrapper<>();
|
|
|
- materialQw.eq("material_name",req.getMaterialName());
|
|
|
- materialQw.eq("is_delete", 0);
|
|
|
- List<BaseMaterial> materialList = baseMaterialMapper.selectList(materialQw);
|
|
|
- if(CollectionUtils.isNotEmpty(materialList)){
|
|
|
- throw new BusinessException("物料"+req.getMaterialName()+"已存在,请勿重复创建");
|
|
|
- }
|
|
|
//查询是否存在物料号
|
|
|
- materialQw = new QueryWrapper<>();
|
|
|
+ QueryWrapper<BaseMaterial> materialQw = new QueryWrapper<>();
|
|
|
materialQw.eq("material_code",req.getMaterialCode());
|
|
|
materialQw.eq("is_delete", 0);
|
|
|
- materialList = baseMaterialMapper.selectList(materialQw);
|
|
|
+ List<BaseMaterial> materialList = baseMaterialMapper.selectList(materialQw);
|
|
|
if(CollectionUtils.isNotEmpty(materialList)){
|
|
|
throw new BusinessException("物料号"+req.getMaterialCode()+"已存在,请勿重复创建");
|
|
|
}
|
|
|
+ //查询SAP物料,因为新增QMS物料需要选择SAP物料来匹配
|
|
|
+ QueryWrapper<BaseSapMaterial> baseSapMaterialQw = new QueryWrapper<>();
|
|
|
+ baseSapMaterialQw.eq("sap_material_id",req.getMaterialCode());
|
|
|
+ baseSapMaterialQw.eq("is_delete",0);
|
|
|
+ BaseSapMaterial baseSapMaterial = baseSapMaterialMapper.selectOne(baseSapMaterialQw);
|
|
|
+ AssertUtil.isNull(baseSapMaterial,"SAP物料不存在!");
|
|
|
|
|
|
//1-新增
|
|
|
BaseMaterial material = new BaseMaterial();
|
|
|
material.setMaterialCode(req.getMaterialCode());
|
|
|
- material.setMaterialName(req.getMaterialName());
|
|
|
+ material.setMaterialName(baseSapMaterial.getSapMaterialName());
|
|
|
material.setMaterialType(req.getMaterialType());
|
|
|
material.setDescription(req.getDescription());
|
|
|
material.setActiveId(req.getActiveId());
|
|
@@ -91,20 +93,6 @@ public class MaterialServiceImpl implements MaterialService {
|
|
|
BaseMaterial material = baseMaterialMapper.selectById(req.getId());
|
|
|
AssertUtil.isNull(material,"物料不存在");
|
|
|
|
|
|
- //校验物料名称
|
|
|
- if(Objects.nonNull(req.getMaterialName())){
|
|
|
- if(!material.getMaterialName().equals(req.getMaterialName())){
|
|
|
- QueryWrapper<BaseMaterial> materialQw = new QueryWrapper<>();
|
|
|
- materialQw.eq("material_name",req.getMaterialName());
|
|
|
- materialQw.eq("is_delete", 0);
|
|
|
- List<BaseMaterial> materialList = baseMaterialMapper.selectList(materialQw);
|
|
|
- if(CollectionUtils.isNotEmpty(materialList)){
|
|
|
- throw new BusinessException("物料"+req.getMaterialName()+"已存在,请勿重复创建");
|
|
|
- }
|
|
|
- material.setMaterialName(req.getMaterialName());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
//2-修改物料
|
|
|
material.setMaterialType(req.getMaterialType());
|
|
|
material.setDescription(req.getDescription());
|
|
@@ -235,22 +223,32 @@ public class MaterialServiceImpl implements MaterialService {
|
|
|
try {
|
|
|
//1-校验必填与枚举
|
|
|
Map<String, Object> returnMap = checkMaterialProperty(materialProperty);
|
|
|
- String errotMessage = String.valueOf(returnMap.get("errorMessage"));
|
|
|
- //603版 已作废
|
|
|
- //BaseSku baseSku = (BaseSku) returnMap.get("baseSku");
|
|
|
- if (StringUtils.isNotBlank(errotMessage) /*|| null == baseSku*//*603版 已作废*/) {
|
|
|
- throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), errotMessage);
|
|
|
+ String errorMessage = String.valueOf(returnMap.get("errorMessage"));
|
|
|
+ if (StringUtils.isNotBlank(errorMessage)) {
|
|
|
+ throw new BusinessException(ErrorCodeEnum.ERROR_PARAM.getCode(), errorMessage);
|
|
|
}
|
|
|
- //2-调用业务代码新增
|
|
|
+
|
|
|
+ //2-查询活动
|
|
|
+ Long activeId = null;
|
|
|
+ if(StringUtils.isNotBlank(materialProperty.getActiveName())){
|
|
|
+ QueryWrapper<BaseActive> activeQw = new QueryWrapper<>();
|
|
|
+ activeQw.eq("active_name",materialProperty.getActiveName());
|
|
|
+ activeQw.eq("is_delete",0);
|
|
|
+ BaseActive baseActive = baseActiveMapper.selectOne(activeQw);
|
|
|
+ AssertUtil.isNull(baseActive,"活动不存在");
|
|
|
+ activeId = baseActive.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ //3-调用业务代码新增
|
|
|
AddMaterialReq req = new AddMaterialReq();
|
|
|
req.setMaterialCode(materialProperty.getMaterialCode());
|
|
|
- req.setMaterialName(materialProperty.getMaterialName());
|
|
|
req.setMaterialType(MaterialTypeEnum.getCode(materialProperty.getMaterialType()));
|
|
|
req.setDescription(materialProperty.getDescription());
|
|
|
- //603版 已作废
|
|
|
- //req.setSkuId(baseSku.getId());
|
|
|
+ req.setActiveId(activeId);
|
|
|
+ req.setHasQr(TrueFalseEnum.getCode(materialProperty.getHasQr()));
|
|
|
|
|
|
addMaterial(req);
|
|
|
+
|
|
|
} catch (BusinessException e) {
|
|
|
failList.add(new ExcelImportRes.FailBean(i + 2, e.getMessage()));
|
|
|
}
|
|
@@ -269,6 +267,9 @@ public class MaterialServiceImpl implements MaterialService {
|
|
|
Map<String,Object> returnMap = new HashMap<>();
|
|
|
StringBuffer errorMessage = new StringBuffer();
|
|
|
//逐个字段校验
|
|
|
+ if (StringUtils.isBlank(materialProperty.getMaterialCode())) {
|
|
|
+ errorMessage.append("物料号").append("为空,");
|
|
|
+ }
|
|
|
if (StringUtils.isBlank(materialProperty.getMaterialType())) {
|
|
|
errorMessage.append("物料类型").append("为空,");
|
|
|
}
|
|
@@ -276,11 +277,12 @@ public class MaterialServiceImpl implements MaterialService {
|
|
|
&& MaterialTypeEnum.getCode(materialProperty.getMaterialType()) == null) {
|
|
|
errorMessage.append("物料类型").append("枚举值不正确,");
|
|
|
}
|
|
|
- if (StringUtils.isBlank(materialProperty.getMaterialCode())) {
|
|
|
- errorMessage.append("物料号").append("为空,");
|
|
|
+ if(StringUtils.isBlank(materialProperty.getHasQr())){
|
|
|
+ errorMessage.append("二维码").append("为空,");
|
|
|
}
|
|
|
- if (StringUtils.isBlank(materialProperty.getMaterialName())) {
|
|
|
- errorMessage.append("物料名称").append("为空,");
|
|
|
+ if(StringUtils.isNotBlank(materialProperty.getHasQr())
|
|
|
+ && TrueFalseEnum.getCode(materialProperty.getHasQr())==null){
|
|
|
+ errorMessage.append("二维码").append("枚举值不正确,");
|
|
|
}
|
|
|
if (StringUtils.isBlank(materialProperty.getDescription())) {
|
|
|
errorMessage.append("描述").append("为空,");
|