Selaa lähdekoodia

物联网用户编号教研

sunyize 2 vuotta sitten
vanhempi
commit
24b6df4ad4

+ 41 - 1
tnc-sms/src/main/java/org/jeecg/modules/smscheck/controller/SmsCheckTaskController.java

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
@@ -392,6 +393,44 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
         Map<String, SysUser> userMap
                 = userList.stream().collect(Collectors.toMap(SysUser::getWorkNo, Function.identity(), (o, n) -> o));
 
+        AtomicInteger compareNum = new AtomicInteger(0);
+        Set<String>set =new HashSet<>();
+        SmsCheckTask byId = taskService.getById(taskId);
+        if (byId.getType()==2){
+            //客户信息所属类型:1:行短稽核 2:物联网业务稽核 3.复开审批 4.中继线稽核'
+
+            Map<Integer,SmsCheckCustomerInfoError>mapError = new HashMap<>();
+            Map<Integer,SmsCheckCustomerInfoVo> mapNormal =new HashMap<>();
+            Map<Integer,SmsCheckCustomerInfoVo> mapErrorVo =new HashMap<>();
+            int setSize =0;
+            int keys=0;
+            for (SmsCheckCustomerInfoVo smsCheckCustomerInfoVo : list) {
+                keys++;
+                String[] split = smsCheckCustomerInfoVo.getUserNo().trim().split("、");
+                String errNo="";
+                for (String s : split) {
+                    setSize++;
+                    set.add(s);
+                    if (setSize!=set.size()){
+                        setSize--;
+                        errNo+=s+"  ";
+                        smsCheckCustomerInfoVo.setResult("0");
+                        smsCheckCustomerInfoVo.setErrorMsg("用户编号"+errNo+"重复");
+                        mapErrorVo.put(keys,smsCheckCustomerInfoVo);
+                    }else {
+                        if (StringUtils.isBlank(errNo)){
+                            mapNormal.put(keys,smsCheckCustomerInfoVo);
+                        }
+                    }
+                }
+            }
+            List<SmsCheckCustomerInfoVo> errorListVo =new ArrayList<>(mapErrorVo.values());
+            List<SmsCheckCustomerInfoError> errorList = new ArrayList<>(mapError.values());
+
+            list= new ArrayList<>(mapNormal.values());
+            list.addAll(errorListVo);
+        }
+
         // 每20条数据开启一条线程
         int threadSize = 20;
         // 总数据条数
@@ -419,7 +458,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
                 mapData.put(""+i,list.subList(  threadSize * i,  threadSize * (i + 1)));
             }
         }
-        AtomicInteger compareNum = new AtomicInteger(0);
+
         for (String key : mapData.keySet()) {
             List<SmsCheckCustomerInfoVo> smsCheckCustomerInfoVos = mapData.get(key);
             ImportCustomerDataTask importCustomerDataTask = new ImportCustomerDataTask();
@@ -455,6 +494,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
                 }
 
             }
+            //smsCheckCustomerInfoErrors.addAll(errorList);
             boolean b = smsCheckCustomerInfoErrorService.saveOrUpdateBatch(smsCheckCustomerInfoErrors);
         }
         executorService.shutdown();

+ 155 - 4
tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/ImportCustomerDataTask.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.smscheck.entity;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.api.ISysBaseAPI;
@@ -30,6 +31,9 @@ public class ImportCustomerDataTask implements Callable {
     private ISmsCheckTaskService taskService;
     
     private ISmsCheckCustomerInfoService customerInfoService;
+
+    private List<SmsCheckCustomerInfoVo> smsCheckCustomerInfoVos;
+
     
     private ISmsCheckCompanyService companyService;
     
@@ -56,10 +60,15 @@ public class ImportCustomerDataTask implements Callable {
 
     @Override
     public List<SmsCheckCustomerInfoVo> call() throws Exception {
-        return  test();
+        SmsCheckTask byId = taskService.getById(taskId);
+        //客户信息所属类型:1:行短稽核 2:物联网业务稽核 3.复开审批 4.中继线稽核'
+        if (byId.getType()==2){
+            return  lotCustomer();
+        }
+        return  start();
     }
 
-    public List<SmsCheckCustomerInfoVo>  test(){
+    public List<SmsCheckCustomerInfoVo>  start(){
 
         List<SmsCheckCustomerInfoVo> listErro = new ArrayList<>();
 
@@ -126,13 +135,13 @@ public class ImportCustomerDataTask implements Callable {
             long count = customerInfoService.count(
                     new LambdaQueryWrapper<SmsCheckCustomerInfo>()
                             .eq(SmsCheckCustomerInfo::getTaskId, info.getTaskId())
-                            .eq(SmsCheckCustomerInfo::getUserNo, info.getUserNo())
+                            .eq(SmsCheckCustomerInfo::getUserNo, info.getUserNo().trim())
                             .eq(SmsCheckCustomerInfo::getDelFlag, CommonConstant.DEL_FLAG_0));
 
             long counted = customerInfoService.count(
                     new LambdaQueryWrapper<SmsCheckCustomerInfo>()
                             .eq(SmsCheckCustomerInfo::getTaskId, info.getTaskId())
-                            .eq(SmsCheckCustomerInfo::getCustomerNo, info.getCustomerNo())
+                            .eq(SmsCheckCustomerInfo::getCustomerNo, info.getCustomerNo().trim())
                             .eq(SmsCheckCustomerInfo::getDelFlag, CommonConstant.DEL_FLAG_0));
 
             if (count > 0 && counted > 0) {
@@ -201,4 +210,146 @@ public class ImportCustomerDataTask implements Callable {
         }
         return listErro;
     }
+
+    //物联网
+    public List<SmsCheckCustomerInfoVo>  lotCustomer(){
+
+        List<SmsCheckCustomerInfoVo> listErro = new ArrayList<>();
+
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        for (int i = 0; i < list.size(); i++) {
+            SmsCheckCustomerInfoVo infoVo = list.get(i);
+            infoVo.setBatchNo(uuid.toString());
+            infoVo.setTaskId(taskId);
+            SmsCheckCustomerInfo info = new SmsCheckCustomerInfo();
+            BeanUtil.copyProperties(infoVo, info, true);
+
+//            SysUser user = sysUserService.getOne(new LambdaQueryWrapper<SysUser>()
+//                    .eq(SysUser::getWorkNo, infoVo.getStaffNo()));
+            //放入用户信息
+            SysUser user =userMap.get( infoVo.getStaffNo());
+            if (user == null) {
+                infoVo.setResult("0");
+                infoVo.setErrorMsg("系统无此员工");
+                listErro.add(infoVo);
+                compareNum.getAndIncrement();
+                continue;
+            }
+            if (StringUtils.isNotBlank(infoVo.getResult())&& infoVo.getResult().equals("0")){
+                infoVo.setResult("0");
+                listErro.add(infoVo);
+                compareNum.getAndIncrement();
+                continue;
+            }
+            info.setStaffUsername(user.getUsername());
+            if (info.getSysOrgCode()!=null){
+                // 转派 可以根据页面传 orgCOde进行 判断    撤回不可以 所以在这让撤回只走 原逻辑    去掉 if (info.getSysOrgCode()!=null){
+                if (info.getSysOrgCode()==null){
+                    infoVo.setResult("0");
+                    infoVo.setErrorMsg("机构未查到");
+                    compareNum.getAndIncrement();
+                    listErro.add(infoVo);
+                    continue;
+                }
+                List<String> deptNameByUserId = taskService.getDeptNameByUserId(user.getWorkNo());
+                if (!deptNameByUserId.contains(info.getSysOrgCode())){
+                    infoVo.setResult("0");
+                    infoVo.setErrorMsg("此员工机构选择错误");
+                    compareNum.getAndIncrement();
+                    listErro.add(infoVo);
+                    continue;
+                }
+            }
+            if (info.getStaffDeptLevel2Name()==null || info.getStaffDeptLevel2No()==null) {
+                infoVo.setResult("0");
+                infoVo.setErrorMsg("二级部门信息为空");
+                compareNum.getAndIncrement();
+                listErro.add(infoVo);
+                continue;
+            }
+            if (info.getStaffDeptLevel3Name()==null || info.getStaffDeptLevel3No()==null) {
+                infoVo.setResult("0");
+                infoVo.setErrorMsg("三级部门信息为空");
+                compareNum.getAndIncrement();
+                listErro.add(infoVo);
+                continue;
+            }
+
+            info.setDelFlag(CommonConstant.DEL_FLAG_0);
+            // 0:未处理;1:未完善;2:待稽核;3:待整改;4:已整改;5:稽核通过 6 未上传;
+            info.setCheckState(CheckStateCode.CHECK_STSTE_0);
+            SmsCheckTask byId = taskService.getById(taskId);
+            info.setType(byId.getType());
+            //dataList.add(info);
+            info.setTaskId(taskId);
+
+            String[] split = info.getUserNo().split("、");
+            String errNo="";
+            for (String s : split) {
+                errNo="";
+                long count = customerInfoService.count(
+                        new LambdaQueryWrapper<SmsCheckCustomerInfo>()
+                                .eq(SmsCheckCustomerInfo::getTaskId, info.getTaskId())
+                                .eq(SmsCheckCustomerInfo::getUserNo, s)
+                                .eq(SmsCheckCustomerInfo::getDelFlag, CommonConstant.DEL_FLAG_0));
+                if (count > 0) {
+                    errNo+= s+"  ";
+                }
+            }
+//            long counted = customerInfoService.count(
+//                    new LambdaQueryWrapper<SmsCheckCustomerInfo>()
+//                            .eq(SmsCheckCustomerInfo::getTaskId, info.getTaskId())
+//                            .eq(SmsCheckCustomerInfo::getCustomerNo, info.getCustomerNo())
+//                            .eq(SmsCheckCustomerInfo::getDelFlag, CommonConstant.DEL_FLAG_0));
+                if (StringUtils.isNotBlank(errNo)) {
+                    infoVo.setResult("0");
+                    compareNum.getAndIncrement();
+                    infoVo.setErrorMsg("用户"+errNo+"编号重复");
+                    listErro.add(infoVo);
+                    // TODO 重复处理,放校验里面?
+//				 return Result.error("客户[" + info.getCustomerNo() + "]已存在!");
+                } else {
+                    //customerCount++;
+                    customerInfoService.save(info);
+                    infoVo.setResult("1");
+                    listErro.add(infoVo);
+                }
+            // 添加公司信息 start
+            long companyCount = companyService.count(new LambdaQueryWrapper<SmsCheckCompany>()
+                    .eq(SmsCheckCompany::getCustomerNo, infoVo.getCustomerNo())
+                    .eq(SmsCheckCompany::getCustomerName, infoVo.getCustomerName()));
+            if (companyCount == 0) {
+                SmsCheckCompany company = new SmsCheckCompany();
+                company.setCustomerNo(infoVo.getCustomerNo());
+                company.setCustomerName(infoVo.getCustomerName());
+                company.setManager(infoVo.getStaffName());
+                company.setSysOrgCode(sysUser.getOrgCode());
+                company.setCreateBy(sysUser.getUsername());
+                company.setCreateTime(new Date());
+                companyService.save(company);
+            }
+            // 添加公司信息 end
+
+            // 添加服务号码 start
+            long smsNumberCount = smsNumberService.count(new LambdaQueryWrapper<SmsCheckSmsNumber>()
+                    .eq(SmsCheckSmsNumber::getCustomerNo, infoVo.getCustomerNo())
+                    .eq(SmsCheckSmsNumber::getSmsNumber, infoVo.getSmsNumber()));
+
+            if (smsNumberCount == 0) {
+                SmsCheckSmsNumber smsNumber = new SmsCheckSmsNumber();
+                smsNumber.setCustomerNo(infoVo.getCustomerNo());
+                smsNumber.setUserNo(infoVo.getUserNo());
+                smsNumber.setNetworkAccessTime(infoVo.getNetworkAccessTime());
+                smsNumber.setSmsNumber(infoVo.getSmsNumber());
+                smsNumber.setUserState(infoVo.getUserState());
+                smsNumber.setSysOrgCode(sysUser.getOrgCode());
+                smsNumber.setCreateBy(sysUser.getUsername());
+                smsNumber.setCreateTime(new Date());
+                smsNumberService.save(smsNumber);
+            }
+            // 添加服务号码 end
+
+        }
+        return listErro;
+    }
 }