瀏覽代碼

修改活动相关接口
修改物料接口

tanzhongran 4 年之前
父節點
當前提交
53d7c1abf0

+ 8 - 9
abi-cloud-qr-platform-common/src/main/java/com/abi/task/common/excel/preperties/MaterialProperty.java

@@ -13,20 +13,19 @@ import lombok.Data;
 @Data
 public class MaterialProperty implements AbstractExcelProperty {
 
-    @ExcelHeadAlias(value = "物料类型(必填)(枚举:瓶子、PET、罐子、瓶盖、纸板箱、塑箱、小桶&叉子、托盘)")
-    private String materialType;
-
     @ExcelHeadAlias(value = "物料号(必填)")
     private String materialCode;
 
-    @ExcelHeadAlias(value = "物料名称(必填)")
-    private String materialName;
+    @ExcelHeadAlias(value = "物料类型(必填)(枚举:瓶盖、纸板箱、塑箱)")
+    private String materialType;
+
+    @Schema(name = "二维码(必填)(枚举:是、否)")
+    private String hasQr;
 
-    //603版 已作废
-    /*@ExcelHeadAlias(value = "SKU名称 (必填)")
-    private String skuName;*/
+    @Schema(name = "活动(选填)")
+    private String activeName;
 
-    @ExcelHeadAlias(value = "描述")
+    @ExcelHeadAlias(value = "描述(选填)")
     private String description;
 
 }

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/controller/console/SapBaseQueryController.java

@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/sap/query")
 @Api(tags = "sap基础数据查询")
-public class SapBaseQueryController {
+public class BaseSapQueryController {
 
     @Autowired
     private SapBaseQueryService sapBaseQueryService;

+ 5 - 9
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/AddMaterialReq.java

@@ -19,21 +19,17 @@ public class AddMaterialReq implements Serializable {
     @Schema(name = "物料号")
     private String materialCode;
 
-    @NotEmpty(message = "物料名称为空")
-    @Schema(name = "物料名称")
-    private String materialName;
-
     @NotNull
-    @Schema(name = "物料类型: 1-瓶子 2-PET 3-罐子 4-瓶盖 5-纸板箱 6-塑箱 7-小桶&叉子 8-托盘")
+    @Schema(name = "物料类型: 3-罐子 4-瓶盖 5-纸板箱")
     private Integer materialType;
 
-    @Schema(name = "描述")
-    private String description;
+    @Schema(name = "是否有二维码 0-没有 1-有")
+    private Integer hasQr;
 
     @Schema(name = "活动ID")
     private Long activeId;
 
-    @Schema(name = "是否有二维码 0-没有 1-有")
-    private Integer hasQr;
+    @Schema(name = "描述")
+    private String description;
 
 }

+ 6 - 12
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dto/req/UpdateMaterialReq.java

@@ -15,25 +15,19 @@ public class UpdateMaterialReq implements Serializable {
     @Schema(name = "id")
     private Long id;
 
-    @Schema(name = "物料名称")
-    private String materialName;
-
-    @Schema(name = "物料类型: 1-瓶子 2-PET 3-罐子 4-瓶盖 5-纸板箱 6-塑箱 7-小桶&叉子 8-托盘")
+    @Schema(name = "物料类型: 4-瓶盖 5-纸板箱 6-塑箱")
     private Integer materialType;
 
-    @Schema(name = "品牌")
-    private String brandCode;
-
-    @Schema(name = "描述")
-    private String description;
+    @Schema(name = "是否有二维码 0-没有 1-有")
+    private Integer hasQr;
 
     @Schema(name = "是否有效 0-无效 1-有效")
     private Integer valid;
 
+    @Schema(name = "描述")
+    private String description;
+
     @Schema(name = "活动ID")
     private Long activeId;
 
-    @Schema(name = "是否有二维码 0-没有 1-有")
-    private Integer hasQr;
-
 }

+ 5 - 2
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/ActiveService.java

@@ -27,10 +27,13 @@ public interface ActiveService{
      */
     void updateActive(UpdateActiveReq updateActiveReq);
 
-
+    /**
+     * 删除活动
+     * @param deleteActiveReq
+     * @throws Exception
+     */
     void deleteActive(DeleteActiveReq deleteActiveReq) throws Exception;
 
-
     /**
      * 修改码活动(已审核通过)
      * @param req

+ 6 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/SapBaseQueryService.java

@@ -13,6 +13,12 @@ import com.abi.qms.platform.dto.res.*;
  */
 public interface SapBaseQueryService{
 
+    /**
+     * 查询SAP物料列表
+     * @param listSapMaterialReq
+     * @return
+     * @throws Exception
+     */
     ListSapMaterialRes listSapMaterial(ListSapMaterialReq listSapMaterialReq) throws Exception;
 
     ListSapCoverFactoryRes listSapCoverFactory(ListSapCoverFactoryReq listSapCoverFactoryReq) throws Exception;

+ 0 - 10
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/ActiveServiceImpl.java

@@ -70,22 +70,12 @@ public class ActiveServiceImpl implements ActiveService {
         active.setApplyUserName(userUtil.getUser().getUserName());
         active.setBeginTime(req.getBeginTime());
         active.setEndTime(req.getEndTime());
-        //    6.03已废弃
-//        active.setBrandCode(CollectionUtil.isNotEmpty(req.getBrandCodeList()) ? String.join(",", req.getBrandCodeList()) : null);
         active.setUrlTab(req.getUrlTab());
         active.setActiveUrl(req.getActiveUrl());
         active.setCreateBy(userId);
         active.setUpdateBy(userId);
         baseActiveMapper.insert(active);
 
-        //    6.03已废弃
-//        //添加码活动和码包的关联
-//        List<QrPackage> qrPackages = searchReviewPassPackageByPackageIds(req.getQrPackageIdList());
-//        List<Long> qrPackageIdsAdd = qrPackages.stream().map(QrPackage::getId).collect(Collectors.toList());
-//        if(CollectionUtil.isNotEmpty(qrPackageIdsAdd)) {
-//            baseActiveQrPackageMappingMapper.batchInsert(active.getId(), qrPackageIdsAdd, userId);
-//        }
-
     }
 
     /**

+ 48 - 46
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/MaterialServiceImpl.java

@@ -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("为空,");

+ 1 - 1
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/SapBaseQueryServiceImpl.java

@@ -33,7 +33,7 @@ public class SapBaseQueryServiceImpl implements SapBaseQueryService {
     public ListSapMaterialRes listSapMaterial(ListSapMaterialReq req) {
         //查询
         QueryWrapper<BaseSapMaterial> sapMaterialQw = new QueryWrapper<>();
-        sapMaterialQw.eq(StringUtils.isNotBlank(req.getSapMaterialId()),"sap_material_id",req.getSapMaterialId());
+        sapMaterialQw.like(StringUtils.isNotBlank(req.getSapMaterialId()),"sap_material_id","%"+req.getSapMaterialId()+"%");
         List<BaseSapMaterial> sapMaterialList = baseSapMaterialMapper.selectList(sapMaterialQw);
 
         //构造出参

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

@@ -55,7 +55,7 @@
                 AND active.valid = #{param.valid}
             </if>
         </where>
-        order by active.apply_time
+        order by active.apply_time desc
     </select>
 
     <select id="getPackageActive" resultType="com.abi.qms.platform.dao.vo.result.PackageActiveVO">

+ 13 - 6
abi-cloud-qr-platform-server/src/test/java/com/abi/qms/platform/ReactBeanTest.java

@@ -1,8 +1,11 @@
 package com.abi.qms.platform;
 
 import com.abi.qms.platform.dao.vo.result.QrRepertorySelectDetailVO;
+import com.abi.qms.platform.dto.res.ListSapMaterialRes;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
@@ -15,10 +18,8 @@ import java.util.Map;
 @Slf4j
 public class ReactBeanTest {
 
-
-    @Test
-    public void testGenerateBean() {
-        Class clz = QrRepertorySelectDetailVO.class;
+    public static void main(String[] args) {
+        Class clz = ListSapMaterialRes.SapMaterialBean.class;
 
         Map<Class,String> classMap = new HashMap<>();
         classMap.put(String.class,"string");
@@ -30,8 +31,13 @@ public class ReactBeanTest {
 
         Field[] declaredFields = clz.getDeclaredFields();
         for(Field field:declaredFields){
-            ApiModelProperty annotation = field.getAnnotation(ApiModelProperty.class);
-            String desc = annotation==null?"":annotation.value();
+            ApiModelProperty apiModelProperty = field.getAnnotation(ApiModelProperty.class);
+            String desc = apiModelProperty==null?"":apiModelProperty.value();
+            if(StringUtils.isBlank(desc)){
+                Schema schema = field.getAnnotation(Schema.class);
+                desc = schema==null?"":schema.name();
+            }
+
 //            System.out.println(field.getName());
 //            System.out.println(classMap.get(field.getType()));
 //            System.out.println(desc);
@@ -42,4 +48,5 @@ public class ReactBeanTest {
         System.out.println(sb.toString());
     }
 
+
 }