sqg před 4 roky
rodič
revize
d2e8e5cdbd

+ 51 - 6
sc-service/src/main/java/com/huyi/service/rel/controller/OwnCompanyRelController.java

@@ -327,13 +327,21 @@ public class OwnCompanyRelController extends BaseController
         if(CommonUtil.isEmpty(scyName)){
             throw new Exception("企业名称不能为空");
         }
+        //企业名称正则校验
+        String checkScyName = "^([\\u4e00-\\u9fa5]+|[a-zA-Z0-9]+)$";
+        Pattern regeScyName = Pattern.compile(checkScyName);
+        Matcher matcherScyName = regeScyName.matcher(scyName);
+        boolean isMatScyName = matcherScyName.matches();
+        if(!isMatScyName){
+            throw new Exception("企业名称格式错误,不能含有特殊字符");
+        }
         //统一社会信用代码
         String scySocialCode = CommonUtil.objToString(map.get("scySocialCode"));
         if(CommonUtil.isEmpty(scySocialCode)){
             throw new Exception("统一信用代码不能为空");
         }
         //统一信用代码正则校验
-        String checkSocialCode = "^([0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\\d{14})$";
+        String checkSocialCode = "^([0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\\d{14})||([1-9]\\d{15})$";
         Pattern regeSocialCode = Pattern.compile(checkSocialCode);
         Matcher matcherSocialCode = regeSocialCode.matcher(scySocialCode);
         boolean isMatSocialCode = matcherSocialCode.matches();
@@ -342,8 +350,18 @@ public class OwnCompanyRelController extends BaseController
         }
         //链属联系人
         String scrContarct = CommonUtil.objToString(map.get("scrContarct"));
-        if(scrContarct.length() > 30){
-            throw new Exception("联系人过长");
+        if(CommonUtil.isNotEmpty(scrContarct)) {
+            if (scrContarct.length() > 30) {
+                throw new Exception("联系人过长");
+            }
+            //联系人正则校验
+            String checkNickName = "^([\\u4e00-\\u9fa5]+|[a-zA-Z0-9]+)$";
+            Pattern regeNickName = Pattern.compile(checkNickName);
+            Matcher matcherNickName = regeNickName.matcher(scrContarct);
+            boolean isMatNickName = matcherNickName.matches();
+            if (!isMatNickName) {
+                throw new Exception("联系人格式错误,不能含有特殊字符");
+            }
         }
         //链属联系人手机号
         String scrContarctPhone = CommonUtil.objToString(map.get("scrContarctPhone"));
@@ -373,11 +391,21 @@ public class OwnCompanyRelController extends BaseController
         //创建主键
         String scrId = IdUtils.fastSimpleUUID();
         //链属企业Id
-        String scyId = CommonUtil.objToString(map.get("scyId"));
-        if(scyId.equals(companyId)){
-            throw new Exception("不可同自己链属");
+        String scyId = "";
+        //查询有无企业信息
+        LambdaQueryWrapper<SysCompany> companyLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        companyLambdaQueryWrapper.eq(SysCompany::getScyName,scyName);
+        companyLambdaQueryWrapper.eq(SysCompany::getScySocialCode,scySocialCode);
+        companyLambdaQueryWrapper.eq(SysCompany::getScyStatus,"00");
+        List<SysCompany> companyList = iSysCompanyService.findSysCompanys(companyLambdaQueryWrapper);
+        //获取企业Id
+        if(companyList.size() > 0){
+            scyId = companyList.get(0).getScyId();
         }
         if(CommonUtil.isNotEmpty(scyId)) {
+            if(scyId.equals(companyId)){
+                throw new Exception("不可同自己链属");
+            }
             String finalScyId = scyId;
             //判断两者是否已经链属
             LambdaQueryWrapper<SysCompanyRel> wrapper = new LambdaQueryWrapper<>();
@@ -456,6 +484,23 @@ public class OwnCompanyRelController extends BaseController
             if(list.size() > 0){
                 throw new Exception("企业名称已存在,不可关联本企业");
             }
+            LambdaQueryWrapper<SysCompanySpare> spareLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            spareLambdaQueryWrapper.eq(SysCompanySpare::getScpCompanyId,companyId);
+            spareLambdaQueryWrapper.ne(SysCompanySpare::getScpStatus,"99");
+            spareLambdaQueryWrapper.and(i->i.eq(SysCompanySpare::getScpName, scyName).or().eq(SysCompanySpare::getScpSocialCode, scySocialCode));
+            List<SysCompanySpare> spareList = iSysCompanySpareService.findSysCompanySpares(spareLambdaQueryWrapper);
+            if(spareList.size() > 0){
+                String invite = spareList.get(0).getScpInvite();
+                BigDecimal bigDecimal = new BigDecimal(invite);
+                BigDecimal tow = new BigDecimal("1");
+                if(bigDecimal.compareTo(tow) > -1){
+                    throw new Exception("该企业已邀请");
+                }
+                String status = spareList.get(0).getScpStatus();
+                if("01".equals(status)){
+                    throw new Exception("与该企业已是链属关系");
+                }
+            }
             //新增链属公司信息
             SysCompanySpare sysCompanySpare = new SysCompanySpare();
             sysCompanySpare.setScpId(scrId);