Browse Source

Merge remote-tracking branch 'origin/feature/1.0.0' into feature/1.0.0

luyanwen-001 3 years ago
parent
commit
42901c0678

+ 31 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/dao/enums/ValidatorEnum.java

@@ -0,0 +1,31 @@
+package com.abi.qms.platform.dao.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.EnumSet;
+import java.util.Set;
+
+/**
+ * @className: com.abi.qms.platform.dao.enums-> ValidatorEnums
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-21 18:12
+ * @version: 1.0
+ * @todo:
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum ValidatorEnum {
+
+    EMAIL("email", "邮箱"),
+    PHONE("phone", "手机号"),
+    ;
+    @EnumValue
+    private String validatorCode;
+    private String validatorName;
+
+}

+ 3 - 3
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/infrastructure/event/ListenerAsyncConfiguration.java

@@ -21,9 +21,9 @@ public class ListenerAsyncConfiguration implements AsyncConfigurer
         //使用Spring内置线程池任务对象
         ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
         //设置线程池参数
-        taskExecutor.setCorePoolSize(5);
-        taskExecutor.setMaxPoolSize(10);
-        taskExecutor.setQueueCapacity(25);
+        taskExecutor.setCorePoolSize(1);
+        taskExecutor.setMaxPoolSize(1);
+        taskExecutor.setQueueCapacity(100);
         taskExecutor.initialize();
         return taskExecutor;
     }

+ 93 - 109
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/FactoryServiceImpl.java

@@ -2,15 +2,7 @@ package com.abi.qms.platform.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.abi.qms.platform.dao.entity.*;
-import com.abi.qms.platform.dao.entity.BaseFactory;
-import com.abi.qms.platform.dao.entity.QrBoxCodeFormat;
-import com.abi.qms.platform.dao.entity.QrPackage;
-import com.abi.qms.platform.dao.entity.UserInfo;
-import com.abi.qms.platform.dao.enums.DataLimitEnum;
-import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
-import com.abi.qms.platform.dao.enums.FirstFactoryEnum;
-import com.abi.qms.platform.dao.enums.TrueFalseEnum;
-import com.abi.qms.platform.dao.enums.ValidEnum;
+import com.abi.qms.platform.dao.enums.*;
 import com.abi.qms.platform.dao.mapper.*;
 import com.abi.qms.platform.dto.req.*;
 import com.abi.qms.platform.dto.res.*;
@@ -37,6 +29,8 @@ import java.util.List;
 import java.util.Objects;
 import java.util.regex.Pattern;
 
+import static com.abi.qms.platform.valid.PropertyValidator.checkPattern;
+
 /**
  * <p>
  * 供应商管理
@@ -365,115 +359,105 @@ public class FactoryServiceImpl implements FactoryService {
         if (StringUtils.isBlank(factoryProperty.getFactoryName())) {
             errorMessage.append("供应商名称").append("为空,");
         }
-        if (StringUtils.isNotBlank(factoryProperty.getFactoryType())) {
-            if(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()) == null){
-                errorMessage.append("供应商类型").append("枚举值不正确,");
-            }else {
-                //包材厂校验
-                if (FactoryTypeEnum.COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))){
-                    if (StringUtils.isNotBlank(factoryProperty.getIsFirstFactory())) {
-                        if(FirstFactoryEnum.getCode(factoryProperty.getIsFirstFactory()) == null){
-                            errorMessage.append("是否一级供应商").append("枚举值不正确,");
-                        }
-                    }else {
-                        errorMessage.append("是否一级供应商").append("为空,");
-                    }
-                    //查询包材厂id名称是否匹配
-                    if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
-                        QueryWrapper<BaseSapCoverFactory> sapCoverFactoryQW = new QueryWrapper<>();
-                        sapCoverFactoryQW.eq("sap_cover_factory_id", factoryProperty.getFactoryCode());
-                        sapCoverFactoryQW.eq("is_delete", 0);
-                        BaseSapCoverFactory baseSapCoverFactory = baseSapCoverFactoryMapper.selectOne(sapCoverFactoryQW);
-                        if (ObjectUtils.isEmpty(baseSapCoverFactory)){
-                            errorMessage.append("供应商在包材厂中").append("不存在,");
-                        }else {
-                            if (!StringUtils.isBlank(factoryProperty.getFactoryName())
-                                    && !factoryProperty.getFactoryName().equals(baseSapCoverFactory.getSapCoverFactoryName())){
-                                errorMessage.append("供应商名称").append("与供应商id不匹配,");
-                            }
-                        }
-                    }
+        //描述
+        if (StringUtils.isBlank(factoryProperty.getDescription()) && factoryProperty.getDescription().length() > 50) {
+            errorMessage.append("描述").append("超出50限制,");
+        }
+
+        if(StringUtils.isBlank(factoryProperty.getFactoryType())){
+            errorMessage.append("供应商类型").append("为空,");
+            return errorMessage.toString();
+        }
+        if(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()) == null){
+            errorMessage.append("供应商类型").append("枚举值不正确,");
+            return errorMessage.toString();
+        }
+
+
+
+        //包材厂校验
+        if (FactoryTypeEnum.COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))){
+            if (StringUtils.isNotBlank(factoryProperty.getIsFirstFactory())) {
+                if(FirstFactoryEnum.getCode(factoryProperty.getIsFirstFactory()) == null){
+                    errorMessage.append("是否一级供应商").append("枚举值不正确,");
                 }
-                //二级包材厂ID格式校验
-                if (FactoryTypeEnum.TWO_COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))
-                        && !StringUtils.isBlank(factoryProperty.getFactoryCode())){
-                    String factoryCodeFormatString = "[0-9]*";
-                    Pattern factoryCodeFormat = Pattern.compile(factoryCodeFormatString);
-                    if (!factoryCodeFormat.matcher(factoryProperty.getFactoryCode()).matches()) {
-                        errorMessage.append("包材厂ID").append("格式不正确,");
+            }else {
+                errorMessage.append("是否一级供应商").append("为空,");
+            }
+            //查询包材厂id名称是否匹配
+            if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
+                QueryWrapper<BaseSapCoverFactory> sapCoverFactoryQW = new QueryWrapper<>();
+                sapCoverFactoryQW.eq("sap_cover_factory_id", factoryProperty.getFactoryCode());
+                sapCoverFactoryQW.eq("is_delete", 0);
+                BaseSapCoverFactory baseSapCoverFactory = baseSapCoverFactoryMapper.selectOne(sapCoverFactoryQW);
+                if (ObjectUtils.isEmpty(baseSapCoverFactory)){
+                    errorMessage.append("供应商在包材厂中").append("不存在,");
+                }else {
+                    if (!StringUtils.isBlank(factoryProperty.getFactoryName())
+                            && !factoryProperty.getFactoryName().equals(baseSapCoverFactory.getSapCoverFactoryName())){
+                        errorMessage.append("供应商名称").append("与供应商id不匹配,");
                     }
                 }
+            }
+        }
+        //二级包材厂ID格式校验
+        if (FactoryTypeEnum.TWO_COVER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))
+                && !StringUtils.isBlank(factoryProperty.getFactoryCode())){
+            String factoryCodeFormatString = "[0-9]*";
+            Pattern factoryCodeFormat = Pattern.compile(factoryCodeFormatString);
+            if (!factoryCodeFormat.matcher(factoryProperty.getFactoryCode()).matches()) {
+                errorMessage.append("包材厂ID").append("格式不正确,");
+            }
+        }
 
-                //包材厂与二级包材厂参数校验
-                if (!FactoryTypeEnum.BEER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))) {
-                    //邮箱判空或格式校验
-                    if (StringUtils.isBlank(factoryProperty.getEmail())) {
-                        errorMessage.append("邮箱").append("为空,");
-                    }else {
-                        String emailFormatString = "^[a-z0-9A-Z]{1,50}+[- | a-z0-9A-Z . _]{0,50}+@([a-z0-9A-Z]{0,50}+(-[a-z0-9A-Z]+)?\\.)+[a-z]{1,10}$";
-                        Pattern emailFormat = Pattern.compile(emailFormatString);
-                        if (!emailFormat.matcher(factoryProperty.getEmail()).matches()) {
-                            errorMessage.append("邮箱").append("格式不正确,");
-                        }
-                    }
-                    //详细地址判空或格式校验
-                    if (StringUtils.isBlank(factoryProperty.getAddress())) {
-                        errorMessage.append("详细地址").append("为空,");
-                    }else {
-                        if (factoryProperty.getAddress().length() > 50){
-                            errorMessage.append("详细地址").append("超出5o限制,");
-                        }
-                    }
-                    //手机号判空或格式校验
-                    if (StringUtils.isBlank(factoryProperty.getKeymanMobile())) {
-                        errorMessage.append("联系人手机号").append("为空,");
-                    }else {
-                        //手机号格式校验
-                        String keymanMobileFormatString = "^1[0-9]{10}$";
-                        Pattern keymanMobileFormat = Pattern.compile(keymanMobileFormatString);
-                        if (!keymanMobileFormat.matcher(factoryProperty.getKeymanMobile()).matches()){
-                            errorMessage.append("联系人手机号").append("格式不正确,");
-                        }
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getProvince())) {
-                        errorMessage.append("省").append("为空,");
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getCity())) {
-                        errorMessage.append("市").append("为空,");
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getDistrict())) {
-                        errorMessage.append("区").append("为空,");
-                    }
-                    if (StringUtils.isBlank(factoryProperty.getKeymanName())) {
-                        errorMessage.append("联系人姓名").append("为空,");
-                    }
+        //包材厂与二级包材厂参数校验
+        if (!FactoryTypeEnum.BEER.is(FactoryTypeEnum.getCode(factoryProperty.getFactoryType()))) {
+            //邮箱判空或格式校验
+            if (!checkPattern(ValidatorEnum.EMAIL, factoryProperty.getEmail())){
+                errorMessage.append("邮箱").append("格式不正确,");
+            }
+
+            //详细地址判空或格式校验
+            if (StringUtils.isBlank(factoryProperty.getAddress())) {
+                errorMessage.append("详细地址").append("为空,");
+            }else {
+                if (factoryProperty.getAddress().length() > 50){
+                    errorMessage.append("详细地址").append("超出5o限制,");
+                }
+            }
+            //手机号判空或格式校验
+            if (!checkPattern(ValidatorEnum.PHONE,factoryProperty.getKeymanMobile())){
+                errorMessage.append("联系人手机号").append("格式不正确,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getProvince())) {
+                errorMessage.append("省").append("为空,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getCity())) {
+                errorMessage.append("市").append("为空,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getDistrict())) {
+                errorMessage.append("区").append("为空,");
+            }
+            if (StringUtils.isBlank(factoryProperty.getKeymanName())) {
+                errorMessage.append("联系人姓名").append("为空,");
+            }
+        }else {
+            //查询啤酒厂id名称是否匹配
+            if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
+                QueryWrapper<BaseSapBeerFactory> sapBeerFactoryQW = new QueryWrapper<>();
+                sapBeerFactoryQW.eq("sap_beer_factory_id", factoryProperty.getFactoryCode());
+                sapBeerFactoryQW.eq("is_delete", 0);
+                BaseSapBeerFactory baseSapBeerFactory = baseSapBeerFactoryMapper.selectOne(sapBeerFactoryQW);
+                if (ObjectUtils.isEmpty(baseSapBeerFactory)){
+                    errorMessage.append("供应商在啤酒厂中").append("不存在,");
                 }else {
-                    //查询啤酒厂id名称是否匹配
-                    if (!StringUtils.isBlank(factoryProperty.getFactoryCode())) {
-                        QueryWrapper<BaseSapBeerFactory> sapBeerFactoryQW = new QueryWrapper<>();
-                        sapBeerFactoryQW.eq("sap_beer_factory_id", factoryProperty.getFactoryCode());
-                        sapBeerFactoryQW.eq("is_delete", 0);
-                        BaseSapBeerFactory baseSapBeerFactory = baseSapBeerFactoryMapper.selectOne(sapBeerFactoryQW);
-                        if (ObjectUtils.isEmpty(baseSapBeerFactory)){
-                            errorMessage.append("供应商在啤酒厂中").append("不存在,");
-                        }else {
-                            if (!StringUtils.isBlank(factoryProperty.getFactoryName())
-                                    && !factoryProperty.getFactoryName().equals(baseSapBeerFactory.getSapBeerFactoryName())){
-                                errorMessage.append("供应商名称").append("与供应商id不匹配,");
-                            }
-                        }
+                    if (!StringUtils.isBlank(factoryProperty.getFactoryName())
+                            && !factoryProperty.getFactoryName().equals(baseSapBeerFactory.getSapBeerFactoryName())){
+                        errorMessage.append("供应商名称").append("与供应商id不匹配,");
                     }
                 }
             }
-        }else {
-            errorMessage.append("供应商类型").append("为空,");
         }
-
-        //描述
-        if (StringUtils.isBlank(factoryProperty.getDescription()) && factoryProperty.getDescription().length() > 50) {
-            errorMessage.append("描述").append("超出50限制,");
-        }
-
         return errorMessage.toString();
     }
 

+ 39 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/valid/EmailValidator.java

@@ -0,0 +1,39 @@
+package com.abi.qms.platform.valid;
+
+import com.abi.qms.platform.dao.enums.ValidatorEnum;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.regex.Pattern;
+
+/**
+ * @className: com.abi.qms.platform.valid-> EmailValidator
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-21 18:02
+ * @version: 1.0
+ * @todo:
+ */
+@Component
+public class EmailValidator extends PropertyValidator{
+
+
+    @Override
+    public Boolean doCheck(String email){
+        if (StringUtils.isBlank(email)) {
+            return false;
+        }
+        String emailFormatString = "^[a-z0-9A-Z]{1,50}+[- | a-z0-9A-Z . _]{0,50}+@([a-z0-9A-Z]{0,50}+(-[a-z0-9A-Z]+)?\\.)+[a-z]{1,10}$";
+        Pattern emailFormat = Pattern.compile(emailFormatString);
+        if (!emailFormat.matcher(email).matches()) {
+            return false;
+        }
+        return true;
+    }
+
+    @PostConstruct
+    public void init(){
+        validatorMap.put(ValidatorEnum.EMAIL, this);
+    }
+}

+ 37 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/valid/PhoneNoValidator.java

@@ -0,0 +1,37 @@
+package com.abi.qms.platform.valid;
+
+import com.abi.qms.platform.dao.enums.ValidatorEnum;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.annotation.PostConstruct;
+import java.util.regex.Pattern;
+
+/**
+ * @className: com.abi.qms.platform.valid-> PhoneNoValidator
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-25 17:52
+ * @version: 1.0
+ * @todo:
+ */
+public class PhoneNoValidator extends PropertyValidator{
+
+    @Override
+    public Boolean doCheck(String phone){
+
+        if (StringUtils.isBlank(phone)){
+            return false;
+        }
+        //手机号格式校验
+        String keymanMobileFormatString = "^1[0-9]{10}$";
+        Pattern keymanMobileFormat = Pattern.compile(keymanMobileFormatString);
+        if (!keymanMobileFormat.matcher(phone).matches()){
+            return false;
+        }
+        return true;
+    }
+    @PostConstruct
+    public void init(){
+        validatorMap.put(ValidatorEnum.PHONE, this);
+    }
+}

+ 51 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/valid/PropertyValidator.java

@@ -0,0 +1,51 @@
+package com.abi.qms.platform.valid;
+
+import com.abi.qms.platform.dao.enums.ValidatorEnum;
+import com.abi.task.common.api.exception.BusinessException;
+import com.google.common.collect.Maps;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.HashMap;
+
+/**
+ * @className: com.abi.qms.platform.valid-> FactoryPropertyValidator
+ * @description:
+ * @author: Marko.W
+ * @createDate: 2021-06-21 11:59
+ * @version: 1.0
+ * @todo:
+ */
+public abstract class PropertyValidator {
+
+
+    public static final HashMap<ValidatorEnum,PropertyValidator> validatorMap = Maps.newHashMap();
+
+
+    public static Boolean checkPattern(ValidatorEnum validatorName,String content){
+        PropertyValidator validator = getValidator(validatorName);
+        return validator.doCheck(content);
+    }
+
+
+    private static PropertyValidator getValidator(ValidatorEnum validatorName){
+        PropertyValidator validator = validatorMap.get(validatorName);
+        if (ObjectUtils.isEmpty(validator)){
+            throw new BusinessException("暂不支持的验证类型");
+        }
+        return validator;
+    }
+
+
+
+    /**
+     * valid 校验格式
+     * default
+     * @param str
+     * @return
+     */
+    public Boolean doCheck(String str) {
+        return null;
+    }
+
+}

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

@@ -33,34 +33,34 @@
     </sql>
 
     <select id="listActivePage" resultType="com.abi.qms.platform.dao.vo.result.ListActiveVO">
-        select active.id, active.active_name, active.active_type, active.audit_status,
-            active.apply_time, active.apply_user_name, active.begin_time, active.end_time,
-            active.active_url, active.valid, active.is_modify_apply,
-            active.url_tab,
-            apply.audit_status as apply_audit_status
-        from base_active active
-        left join base_active_modify_apply apply on active.id = apply.active_id and apply.is_delete = 0
+        select ac.id, ac.active_name, ac.active_type, ac.audit_status,
+        ac.apply_time, ac.apply_user_name, ac.begin_time, ac.end_time,
+        ac.active_url, ac.valid, ac.is_modify_apply,
+        ac.url_tab,
+        ac.audit_status as apply_audit_status
+        from base_active ac
+        left join base_active_modify_apply ap on ac.id = ap.active_id and ap.is_delete = 0
         <where>
-            active.is_delete = 0
+            ac.is_delete = 0
             <if test="param.activeName != null and param.activeName != ''">
-                AND active.active_name like concat('%',#{param.activeName},'%')
+                AND ac.active_name like concat('%',#{param.activeName},'%')
             </if>
             <if test="param.activeType != null">
-                AND active.active_type = #{param.activeType}
+                AND ac.active_type = #{param.activeType}
             </if>
             <if test="param.auditStatus != null ">
-                AND active.audit_status = #{param.auditStatus}
+                AND ac.audit_status = #{param.auditStatus}
             </if>
             <if test="param.valid==1 or param.valid==0 ">
-                AND active.valid = #{param.valid}
-                AND active.audit_status = 2
+                AND ac.valid = #{param.valid}
+                AND ac.audit_status = 2
             </if>
             <if test="param.valid==9">
-                AND active.valid = 1
-                AND active.audit_status in (1,9)
+                AND ac.valid = 1
+                AND ac.audit_status in (1,9)
             </if>
         </where>
-        order by active.apply_time desc
+        order by ac.apply_time desc
     </select>
 
     <select id="getPackageActive" resultType="com.abi.qms.platform.dao.vo.result.PackageActiveVO">