Parcourir la source

1.特审复开审批BUG修改

liuhy il y a 2 ans
Parent
commit
fcbd326206
17 fichiers modifiés avec 619 ajouts et 44 suppressions
  1. 0 0
      db/电信北区稽核.pdma.json
  2. 0 2
      tnc-base/tnc-base-api/tnc-system-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java
  3. 5 1
      tnc-sms/pom.xml
  4. 249 38
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/controller/SpecialExaminationContrller.java
  5. 4 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmcLotCheckLog.java
  6. 110 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmcSpecialCheckLog.java
  7. 41 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmcSpecialCheckLogStateVo.java
  8. 32 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmsCheckCustomerInfo.java
  9. 10 1
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SpecialExamination.java
  10. 10 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/mapper/SmcSpecialCheckLogMapper.java
  11. 19 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/SmcSpecialCheckLogService.java
  12. 2 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/SpecialExaminationService.java
  13. 4 1
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/impl/SmcLotCheckLogServiceImpl.java
  14. 42 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/impl/SmcSpecialCheckLogServiceImpl.java
  15. 4 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/impl/SpecialExaminationServiceImpl.java
  16. 1 1
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/vo/SmsCheckCustomerInfoVo.java
  17. 86 0
      tnc-sms/src/main/java/org/jeecg/modules/smscheck/vo/SpecialExaminationCustomerVo.java

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
db/电信北区稽核.pdma.json


+ 0 - 2
tnc-base/tnc-base-api/tnc-system-api/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java

@@ -12,8 +12,6 @@ import java.util.Set;
 
 /**
  * @Description  底层共通业务API,提供其他独立模块调用
- * @Author  scott
- * @Date 2019-4-20
  * @Version V1.0
  */
 public interface ISysBaseAPI extends CommonAPI {

+ 5 - 1
tnc-sms/pom.xml

@@ -7,8 +7,8 @@
         <groupId>org.jeecgframework.boot</groupId>
         <version>3.2.0</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
+    <modelVersion>4.0.0</modelVersion>
     <artifactId>tnc-sms</artifactId>
 
     <dependencies>
@@ -20,6 +20,10 @@
             <groupId>org.jeecgframework.boot</groupId>
             <artifactId>tnc-system-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 249 - 38
tnc-sms/src/main/java/org/jeecg/modules/smscheck/controller/SpecialExaminationContrller.java

@@ -1,6 +1,10 @@
 package org.jeecg.modules.smscheck.controller;
 
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Dict;
+import cn.hutool.core.lang.Tuple;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,16 +17,21 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.api.ISysBaseAPI;
+import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.MinioUtil;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.config.shiro.ShiroRealm;
 import org.jeecg.modules.smscheck.configs.CheckStateCode;
 import org.jeecg.modules.smscheck.entity.*;
-import org.jeecg.modules.smscheck.service.ISmsCheckCustomerInfoService;
-import org.jeecg.modules.smscheck.service.ISmsCheckTaskService;
-import org.jeecg.modules.smscheck.service.SpecialExaminationService;
+import org.jeecg.modules.smscheck.service.*;
+import org.jeecg.modules.smscheck.vo.SmsCheckCustomerInfoVo;
+import org.jeecg.modules.smscheck.vo.SpecialExaminationCustomerVo;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -30,6 +39,9 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Api(tags = "特审复开审批")
@@ -41,22 +53,35 @@ public class SpecialExaminationContrller {
     @Resource
     private SpecialExaminationService specialExaminationService;
 
+
     @Autowired
-    private ShiroRealm shiroRealm;
+    private ISmsCheckCustomerInfoService customerInfoService;
 
+    @Autowired
+    private ISmsCheckTaskService taskService;
 
+    /**
+     * 特审复开审批稽核业务
+     */
+    @Autowired
+    private SmcSpecialCheckLogService smcSpecialCheckLogService;
     /**
      * 客户信息业务
      */
     @Autowired
     private ISmsCheckCustomerInfoService infoService;
+    /**
+     * 底层共通业务API,提供其他独立模块调用
+     */
+    @Autowired
+    private ISysBaseAPI sysBaseApi;
 
 
     @ApiOperation(value = "客户资料-信息查询查询", notes = "客户资料-个人列表查询")
     @PostMapping(value = "/find/user/id")
-    public  Result<?> findUserId(@RequestBody SpecialExamination specialExamination) {
+    public Result<?> findUserId(@RequestBody SpecialExamination specialExamination) {
         String infoId = specialExamination.getInfoId();
-        if(StrUtil.isBlank(infoId)){
+        if (StrUtil.isBlank(infoId)) {
             return Result.error("查询失败");
         }
         LambdaQueryWrapper<SpecialExamination> queryWrapperData = new LambdaQueryWrapper<>();
@@ -66,25 +91,22 @@ public class SpecialExaminationContrller {
     }
 
     @PostMapping(value = "/find/id")
-    public  Result<?> findId(@RequestBody SpecialExamination specialExamination) {
+    public Result<?> findId(@RequestBody SpecialExamination specialExamination) {
         String infoId = specialExamination.getInfoId();
-        if(StrUtil.isBlank(infoId)){
+        if (StrUtil.isBlank(infoId)) {
             return Result.error("查询失败");
         }
         LambdaQueryWrapper<SpecialExamination> queryWrapperData = new LambdaQueryWrapper<>();
         queryWrapperData.eq(SpecialExamination::getInfoId, specialExamination.getInfoId());
-        SpecialExamination byId = specialExaminationService.getOne(queryWrapperData);
+        SpecialExamination byId = specialExaminationService.getOne(queryWrapperData, false);
         return Result.ok(byId);
     }
 
-
-
-
     @ApiOperation(value = "客户资料-个人列表查询", notes = "客户资料-个人列表查询")
     @PostMapping(value = "/remove/user/id")
-    public  Result<?> removeId(@RequestBody SpecialExamination specialExamination) {
+    public Result<?> removeId(@RequestBody SpecialExamination specialExamination) {
         String id = specialExamination.getId();
-        if(StrUtil.isBlank(id)){
+        if (StrUtil.isBlank(id)) {
             return Result.error("删除失败");
         }
         LambdaQueryWrapper<SpecialExamination> queryWrapperData = new LambdaQueryWrapper<>();
@@ -92,20 +114,19 @@ public class SpecialExaminationContrller {
         String staffNo = byId.getStaffNo();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         String workNo = sysUser.getWorkNo();
-        if (StrUtil.isNotBlank(staffNo) && workNo.equals(staffNo)){
+        if (StrUtil.isNotBlank(staffNo) && workNo.equals(staffNo)) {
             specialExaminationService.removeById(byId.getId());
             return Result.ok("删除成功");
-        }else {
+        } else {
             return Result.error("删除失败");
         }
     }
 
-
     @ApiOperation(value = "客户资料-个人列表查询", notes = "客户资料-个人列表查询")
     @PostMapping(value = "/remove")
-    public  Result<?> remove(@RequestBody SpecialExamination specialExamination) {
+    public Result<?> remove(@RequestBody SpecialExamination specialExamination) {
         String id = specialExamination.getId();
-        if(StrUtil.isBlank(id)){
+        if (StrUtil.isBlank(id)) {
             return Result.error("删除失败");
         }
         specialExaminationService.removeById(id);
@@ -115,14 +136,14 @@ public class SpecialExaminationContrller {
     @ApiOperation(value = "客户资料-个人列表查询", notes = "客户资料-个人列表查询")
     @GetMapping(value = "/list/page")
     public Result<IPage<SpecialExamination>> queryList(SpecialExamination specialExamination,
-            @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-            @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize
+                                                       @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                       @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize
     ) {
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         LambdaQueryWrapper<SpecialExamination> queryWrapperData = new LambdaQueryWrapper<>();
-        queryWrapperData.eq(specialExamination.getStatus() != null,SpecialExamination::getStatus, specialExamination.getStatus());
-        queryWrapperData.like(StrUtil.isNotBlank(specialExamination.getCustomerName()),SpecialExamination::getCustomerName, specialExamination.getCustomerName());
-        queryWrapperData.eq(SpecialExamination::getStaffNo,sysUser.getWorkNo());
+        queryWrapperData.eq(specialExamination.getStatus() != null, SpecialExamination::getStatus, specialExamination.getStatus());
+        queryWrapperData.like(StrUtil.isNotBlank(specialExamination.getCustomerName()), SpecialExamination::getCustomerName, specialExamination.getCustomerName());
+        queryWrapperData.eq(SpecialExamination::getStaffNo, sysUser.getWorkNo());
         queryWrapperData.orderByDesc(SpecialExamination::getCreateTime);
         Page<SpecialExamination> page = new Page<>(pageNo, pageSize);
         IPage<SpecialExamination> pageList = specialExaminationService.page(page, queryWrapperData);
@@ -137,15 +158,14 @@ public class SpecialExaminationContrller {
                                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize
     ) {
         LambdaQueryWrapper<SpecialExamination> queryWrapperData = new LambdaQueryWrapper<>();
-        queryWrapperData.eq(specialExamination.getStatus() != null,SpecialExamination::getStatus, specialExamination.getStatus());
-        queryWrapperData.like(StrUtil.isNotBlank(specialExamination.getCustomerName()),SpecialExamination::getCustomerName, specialExamination.getCustomerName());
+        queryWrapperData.eq(specialExamination.getStatus() != null, SpecialExamination::getStatus, specialExamination.getStatus());
+        queryWrapperData.like(StrUtil.isNotBlank(specialExamination.getCustomerName()), SpecialExamination::getCustomerName, specialExamination.getCustomerName());
         queryWrapperData.orderByDesc(SpecialExamination::getCreateTime);
         Page<SpecialExamination> page = new Page<>(pageNo, pageSize);
         IPage<SpecialExamination> pageList = specialExaminationService.page(page, queryWrapperData);
         return Result.OK(pageList);
     }
 
-
     @AutoLog(value = "特审复开审批号-添加")
     @ApiOperation(value = "特审复开审批号-添加", notes = "特审复开审批号-添加")
     @PostMapping(value = "/upload/files")
@@ -195,6 +215,7 @@ public class SpecialExaminationContrller {
         //申请复开原因
         String reasonReopening = request.getParameter("reasonReopening");
 
+
         String filePathIdCard = null;
         List<MultipartFile> fileListIdCard = multipartRequest.getFiles("fileListIdCard");
         for (MultipartFile file : fileListIdCard) {
@@ -287,6 +308,26 @@ public class SpecialExaminationContrller {
             }
         }
 
+        MultipartFile specialReviewForm = multipartRequest.getFile("specialReviewForm");
+        String filePathSpecialReviewForm = null;
+        if (specialReviewForm != null) {
+            filePathSpecialReviewForm = MinioUtil.upload(specialReviewForm, bizPath);
+            if (oConvertUtils.isEmpty(filePathSpecialReviewForm)) {
+                return Result.error("上传失败,请检查配置信息是否正确!");
+            }
+        }
+
+        MultipartFile nameFindCompliance = multipartRequest.getFile("nameFindCompliance");
+        String filePathNameFindCompliance = null;
+        if (nameFindCompliance != null) {
+            filePathNameFindCompliance = MinioUtil.upload(nameFindCompliance, bizPath);
+            if (oConvertUtils.isEmpty(filePathNameFindCompliance)) {
+                return Result.error("上传失败,请检查配置信息是否正确!");
+            }
+        }
+        //系统实名制备注信息
+        String nameFindComplianceRemark = request.getParameter("nameFindComplianceRemark");
+
         SpecialExamination specialExamination = new SpecialExamination();
         specialExamination.setInfoId(infoId);
         specialExamination.setShutdownLabel(shutdownLabelInt);
@@ -306,15 +347,26 @@ public class SpecialExaminationContrller {
         specialExamination.setUserCertificate(filePathUserCertificate);
         specialExamination.setConsumptionVoucher(filePathVoucher);
         specialExamination.setCommitmentVideo(filePathVideo);
+        specialExamination.setNameFindCompliance(filePathNameFindCompliance);
+        specialExamination.setSpecialReviewForm(filePathSpecialReviewForm);
+        //系统实名制备注信息
+        specialExamination.setNameFindComplianceRemark(nameFindComplianceRemark);
 
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         specialExamination.setCreateUser(sysUser.getUsername());
         specialExamination.setStaffNo(sysUser.getWorkNo());
 
         specialExamination.setStatus(0);
-        boolean save = specialExaminationService.save(specialExamination);
-        if (!save) {
-            Result.error("申请失败");
+
+        LambdaQueryWrapper<SpecialExamination> queryWrapperData = new LambdaQueryWrapper<>();
+        queryWrapperData.eq(SpecialExamination::getInfoId, infoId);
+
+        List<SpecialExamination> list = specialExaminationService.list(queryWrapperData);
+        if (list.size() == 0) {
+            specialExaminationService.save(specialExamination);
+        } else {
+            specialExamination.setId(list.get(0).getId());
+            specialExaminationService.updateById(specialExamination);
         }
         SmsCheckCustomerInfo customerInfo = infoService.getById(infoId);
         customerInfo.setCheckState(CheckStateCode.CHECK_STSTE_2);
@@ -322,7 +374,6 @@ public class SpecialExaminationContrller {
         return Result.OK("已成功提交申请");
     }
 
-
     @AutoLog(value = "特审复开审批号-添加")
     @ApiOperation(value = "特审复开审批号-添加", notes = "特审复开审批号-添加")
     @PostMapping(value = "/add")
@@ -342,18 +393,17 @@ public class SpecialExaminationContrller {
         return Result.OK("添加成功!");
     }
 
-
     @PostMapping(value = "/status/adopt")
-    public  Result<?> adopt(@RequestBody SpecialExamination specialExamination) {
+    public Result<?> adopt(@RequestBody SpecialExamination specialExamination) {
         String infoId = specialExamination.getInfoId();
         Integer status = specialExamination.getStatus();
-        if(StrUtil.isBlank(infoId)){
+        if (StrUtil.isBlank(infoId)) {
             return Result.error("修改失败");
         }
         SmsCheckCustomerInfo customerInfo = infoService.getById(infoId);
-        if (status == 5){
+        if (status == 5) {
             customerInfo.setCheckState(CheckStateCode.CHECK_STSTE_5);
-        }else {
+        } else {
             customerInfo.setCheckState(CheckStateCode.CHECK_STSTE_4);
         }
         infoService.updateById(customerInfo);
@@ -366,9 +416,9 @@ public class SpecialExaminationContrller {
     }
 
     @PostMapping(value = "/status/refuse")
-    public  Result<?> refuse(@RequestBody SpecialExamination specialExamination) {
+    public Result<?> refuse(@RequestBody SpecialExamination specialExamination) {
         String id = specialExamination.getId();
-        if(StrUtil.isBlank(id)){
+        if (StrUtil.isBlank(id)) {
             return Result.error("修改失败");
         }
         specialExamination.setStatus(2);
@@ -376,5 +426,166 @@ public class SpecialExaminationContrller {
         return Result.ok("驳回成功");
     }
 
+    /**
+     * 通过excel导入数据
+     *
+     * @param file 请求
+     * @return 导入结果
+     */
+    @PostMapping(value = "/importCustomerExcel")
+    public Result<?> importCustomerExcel(@RequestPart("file") MultipartFile file) {
+        String filename = file.getOriginalFilename();
+        if (!filename.endsWith(".xlsx") && !filename.endsWith(".xls")) {
+            return Result.error("文件类型不正确!请导入文件类型->.xlsx或.xls");
+        }
+        Dict dict = new Dict();
+
+        ImportParams params = new ImportParams();
+        params.setTitleRows(0);
+        try {
+            // 工具类缺陷,默认导入全部sheet页,会导致
+            List<SpecialExaminationCustomerVo> list = ExcelImportUtil.importExcel(
+                    file.getInputStream(), SpecialExaminationCustomerVo.class, params);
+            List<SpecialExaminationCustomerVo> voList = new ArrayList<>();
+            int errorCount = 0;
+
+            // 获取所有字典值
+            List<DictModel> dictModels = sysBaseApi.getDictItems("user_type");
+            Dict dictItemMap = Dict.create();
+            dictModels.forEach(model -> {
+                dictItemMap.put(model.getValue(), model.getText());
+            });
+
+            Tuple dictTuple = new Tuple(dictItemMap);
+
+            for (SpecialExaminationCustomerVo vo : list) {
+                if (ObjectUtil.isNotNull(vo)) {
+                    if (StrUtil.isNotBlank(vo.getErrorMsg())) {
+                        errorCount++;
+                    }
+                    voList.add(vo);
+                }
+            }
+            dict.put("errorCount", errorCount);
+            dict.put("data", voList);
+        } catch (Exception e) {
+            log.error("客户信息导入失败", e);
+        }
+
+        return Result.ok(dict);
+    }
+
+
+    /**
+     * 通过excel导入数据
+     *
+     * @param taskId 任务id
+     * @param list   数据
+     * @return 导入结果
+     */
+    @PostMapping(value = "/{taskId}/importCustomerData")
+    public Result<?> importCustomerData(@PathVariable String taskId, @RequestBody List<SpecialExaminationCustomerVo> list) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        List<SmsCheckCustomerInfo> dataList = new ArrayList<>();
+        //导入失败数据
+        List<SpecialExaminationCustomerVo> listErro = new ArrayList<>();
+        int customerCount = 0;
+        for (int i = 0; i < list.size(); i++) {
+            SpecialExaminationCustomerVo infoVo = list.get(i);
+            infoVo.setTaskId(taskId);
+            SmsCheckCustomerInfo info = new SmsCheckCustomerInfo();
+            BeanUtil.copyProperties(infoVo, info, true);
+            info.setStaffUsername(sysUser.getUsername());
+            info.setStaffName(sysUser.getRealname());
+            info.setDelFlag(CommonConstant.DEL_FLAG_0);
+            // 0:未处理;1:未完善;2:待稽核;3:待整改;4:已整改;5:稽核通过;
+            info.setCheckState(0);
+            dataList.add(info);
+            info.setTaskId(taskId);
+            long count = customerInfoService.count(
+                    new LambdaQueryWrapper<SmsCheckCustomerInfo>()
+                            .eq(SmsCheckCustomerInfo::getTaskId, info.getTaskId())
+                            .eq(SmsCheckCustomerInfo::getUserNo, info.getUserNo())
+                            .eq(SmsCheckCustomerInfo::getDelFlag, CommonConstant.DEL_FLAG_0));
+            if (count > 0) {
+                infoVo.setResult("0");
+                infoVo.setErrorMsg("公司信息已存在");
+                listErro.add(infoVo);
+                // TODO 重复处理,放校验里面?
+//				 return Result.error("客户[" + info.getCustomerNo() + "]已存在!");
+            } else {
+                customerCount++;
+                customerInfoService.save(info);
+                infoVo.setResult("1");
+                listErro.add(infoVo);
+            }
+        }
+        SmsCheckTask task = taskService.getById(taskId);
+        // 更新导入
+        if (customerCount > 0) {
+            task.setCustomerCount(task.getCustomerCount() + customerCount);
+            taskService.updateById(task);
+        }
+        return Result.OK("导入成功!导入条数" + customerCount, listErro);
+    }
+
+
+    @AutoLog(value = "特审复开审批稽核-插入修改")
+    @ApiOperation(value = "特审复开审批稽核-插入修改", notes = "特审复开审批稽核-插入修改")
+    @PostMapping(value = "/check/info")
+    public Result<String> editLotLog(@RequestBody SmcSpecialCheckLog smcSpecialCheckLog) {
+        try {
+            //客户信息ID
+            String infoId = smcSpecialCheckLog.getInfoId();
+            //客户资料ID
+            String dataId = smcSpecialCheckLog.getDataId();
+            if (StringUtils.isEmpty(infoId) || StringUtils.isEmpty(dataId)) {
+                return Result.error("客户编码不能为空");
+            }
+            SmsCheckCustomerInfo info = infoService.getById(infoId);
+            if (null == infoService.getById(infoId)) {
+                return Result.error("客户信息不存在");
+            }
+            //任务ID
+            String taskId = info.getTaskId();
+            smcSpecialCheckLog.setTaskId(taskId);
+            LambdaQueryWrapper<SmcSpecialCheckLog> queryWrapperData = new LambdaQueryWrapper<>();
+            queryWrapperData.eq(SmcSpecialCheckLog::getDataId, smcSpecialCheckLog.getDataId());
+            List<SmcSpecialCheckLog> lotList = smcSpecialCheckLogService.list(queryWrapperData);
+            if (lotList.size() == 0) {
+                smcSpecialCheckLogService.save(smcSpecialCheckLog);
+            } else {
+                String id = lotList.get(0).getId();
+                smcSpecialCheckLog.setId(id);
+                smcSpecialCheckLogService.updateById(smcSpecialCheckLog);
+            }
+            SmcSpecialCheckLogStateVo smcSpecialCheckLogStateVo = new SmcSpecialCheckLogStateVo();
+            BeanUtil.copyProperties(smcSpecialCheckLog, smcSpecialCheckLogStateVo);
+            Boolean stateBoolean = smcSpecialCheckLogService.reflectCheck(smcSpecialCheckLogStateVo);
+            int lotStatus = stateBoolean ? 5 : 4;
+            //修改客户信息稽核结果
+            info.setCheckState(lotStatus);
+            infoService.updateById(info);
+            return Result.OK("稽核成功!");
+        } catch (IllegalAccessException e) {
+            log.error(e.getMessage());
+            return Result.error("特审复开稽核失败");
+        }
+    }
+
+    @AutoLog(value = "特审复开审批稽核-资料结果查询")
+    @ApiOperation(value = "特审复开审批稽核-资料结果查询", notes = "特审复开审批稽核-资料结果查询")
+    @PostMapping(value = "/find/check/log")
+    public Result<SmcSpecialCheckLog> findCheckLog(@RequestBody SmcSpecialCheckLog smcSpecialCheckLog) {
+        String dataId = smcSpecialCheckLog.getDataId();
+        if (StringUtils.isEmpty(dataId)) {
+            return Result.error("客户资料ID不能为空");
+        }
+        LambdaQueryWrapper<SmcSpecialCheckLog> queryWrapperData = new LambdaQueryWrapper<>();
+        queryWrapperData.eq(SmcSpecialCheckLog::getDataId, smcSpecialCheckLog.getDataId());
+        SmcSpecialCheckLog one = smcSpecialCheckLogService.getOne(queryWrapperData, false);
+        return Result.ok(one);
+    }
+
 
 }

+ 4 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmcLotCheckLog.java

@@ -73,6 +73,10 @@ public class SmcLotCheckLog {
     private Integer priceApprovalState;
     /**省/集团价格审批表稽核结果*/
     private String priceApprovalNote;
+    /**承诺函、其它材料 稽核结果*/
+    private Integer commitmentState;
+    /**承诺函、其它材料 稽核备注*/
+    private String commitmentNote;
 
     /** 创建人 */
     @ApiModelProperty(value = "创建人")

+ 110 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmcSpecialCheckLog.java

@@ -0,0 +1,110 @@
+package org.jeecg.modules.smscheck.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 特审复开审批稽核表
+ */
+@Data
+@TableName("smc_special_check_log")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="smc_special_check_log", description="特审复开审批稽核表")
+public class SmcSpecialCheckLog  implements Serializable {
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /** 任务ID */
+    private String taskId;
+    /** 客户信息ID */
+    private String infoId;
+    /** 客户资料ID */
+    private String dataId;
+    /** 基础信息稽核结果 */
+    private Integer basicInfoState;
+    /**  */
+    private String basicInfoNote;
+    /** 系统实名制截图 */
+    private Integer nameFindComplianceState;
+    /**  */
+    private String nameFindComplianceNote;
+    /** 特审单 */
+    private Integer specialReviewFormState;
+    /**  */
+    private String specialReviewFormNote;
+    /** 身份证照片/正反面 */
+    private Integer idCardState;
+    /**  */
+    private String idCardNote;
+    /** 手持证件半身照片 */
+    private Integer handCertificateState;
+    /**  */
+    private String handCertificateNote;
+    /** 号卡 */
+    private Integer numberCardState;
+    /**  */
+    private String numberCardNote;
+    /** 防诈骗承诺函 */
+    private Integer letterCommitmentState;
+    /**  */
+    private String letterCommitmentNote;
+    /** 营业执照副本 */
+    private Integer businessLicenseState;
+    /**  */
+    private String businessLicenseNote;
+    /** 介绍信 */
+    private Integer letterIntroductionState;
+    /**  */
+    private String letterIntroductionNote;
+    /** 使用人证件 */
+    private Integer userCertificateState;
+    /**  */
+    private String userCertificateNote;
+    /** 防诈骗承诺 */
+    private Integer fraudPreventionState;
+    /**  */
+    private String fraudPreventionNote;
+    /** 消费凭证 */
+    private Integer consumptionVoucherState;
+    /**  */
+    private String consumptionVoucherNote;
+    /** 承诺视频 */
+    private Integer commitmentVideoState;
+    /**  */
+    private String commitmentVideoNote;
+    /** 员工编号 */
+    private String staffNo;
+    /** 创建人 */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    /** 创建日期 */
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+    /** 更新人 */
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+    /** 更新日期 */
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+    /** 所属部门 */
+    @ApiModelProperty(value = "所属部门")
+    private String sysOrgCode;
+
+}

+ 41 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmcSpecialCheckLogStateVo.java

@@ -0,0 +1,41 @@
+package org.jeecg.modules.smscheck.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * 特审复开审批稽核判断表
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class SmcSpecialCheckLogStateVo {
+
+    /** 基础信息稽核结果 */
+    private Integer basicinfoState;
+    /** 系统实名制截图 */
+    private Integer nameFindComplianceState;
+    /** 特审单 */
+    private Integer specialReviewFormState;
+    /** 身份证照片/正反面 */
+    private Integer idCardState;
+    /** 手持证件半身照片 */
+    private Integer handCertificateState;
+    /** 号卡 */
+    private Integer numberCardState;
+    /** 防诈骗承诺函 */
+    private Integer letterCommitmentState;
+    /** 营业执照副本 */
+    private Integer businessLicenseState;
+    /** 介绍信 */
+    private Integer letterIntroductionState;
+    /** 使用人证件 */
+    private Integer userCertificateState;
+    /** 防诈骗承诺 */
+    private Integer fraudPreventionState;
+    /** 消费凭证 */
+    private Integer consumptionVoucherState;
+    /** 承诺视频 */
+    private Integer commitmentVideoState;
+}

+ 32 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SmsCheckCustomerInfo.java

@@ -209,5 +209,37 @@ public class SmsCheckCustomerInfo implements Serializable {
     @ApiModelProperty(value = "所属部门")
     private String sysOrgCode;
 
+
+    /**提交材料日期*/
+    @Excel(name = "提交材料日期", width = 15)
+    @ApiModelProperty(value = "提交材料日期")
+    private String submitSpecialDate;
+
+    /**关停标签*/
+    @Excel(name = "关停标签", width = 15)
+    @ApiModelProperty(value = "关停标签)")
+    private String shutdownLabel;
+
+    /**漫游被关停日期(ABM查询)*/
+    @Excel(name = "漫游被关停日期(ABM查询)", width = 15)
+    @ApiModelProperty(value = "漫游被关停日期(ABM查询))")
+    private Date shutdownLabelDate;
+
+    /** 复开时间 */
+    @Excel(name = "复开时间", width = 15)
+    @ApiModelProperty(value = "复开时间")
+    private String reopenTime;
+
+    /** 有无特审单 */
+    @Excel(name = "有无特审单", width = 15)
+    @ApiModelProperty(value = "有无特审单")
+    private String materialLabel;
+
+    /** 有无特审单 */
+    @Excel(name = "是否自查实名制合规", width = 15)
+    @ApiModelProperty(value = "是否自查实名制合规")
+    private String nameFindCompliance;
+
+
 }
 

+ 10 - 1
tnc-sms/src/main/java/org/jeecg/modules/smscheck/entity/SpecialExamination.java

@@ -105,9 +105,18 @@ public class SpecialExamination {
     @ApiModelProperty(value = "复开时间")
     private Date reopenTime;
 
-    //驳回理由
+    @ApiModelProperty(value = "驳回理由")
     private String specialNote;
 
+    @ApiModelProperty(value = "系统实名制截图")
+    private String nameFindCompliance;
+
+    @ApiModelProperty(value = "系统实名制截图备注")
+    private String nameFindComplianceRemark;
+
+    @ApiModelProperty(value = "特审单")
+    private String specialReviewForm;
+
 
 
 }

+ 10 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/mapper/SmcSpecialCheckLogMapper.java

@@ -0,0 +1,10 @@
+package org.jeecg.modules.smscheck.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.jeecg.modules.smscheck.entity.SmcLotCheckLog;
+import org.jeecg.modules.smscheck.entity.SmcSpecialCheckLog;
+
+@Mapper
+public interface SmcSpecialCheckLogMapper  extends BaseMapper<SmcSpecialCheckLog> {
+}

+ 19 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/SmcSpecialCheckLogService.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.smscheck.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.smscheck.entity.SmcSpecialCheckLog;
+import org.jeecg.modules.smscheck.entity.SmcSpecialCheckLogStateVo;
+
+
+/**
+ *  特审复开审稽核业务
+ */
+public interface SmcSpecialCheckLogService extends IService<SmcSpecialCheckLog> {
+    /**
+     * 特审复开审资料稽核
+     * @param SmcSpecialCheckLogStateVo
+     * @return
+     * @throws IllegalAccessException
+     */
+    Boolean reflectCheck(SmcSpecialCheckLogStateVo SmcSpecialCheckLogStateVo) throws IllegalAccessException;
+}

+ 2 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/SpecialExaminationService.java

@@ -9,4 +9,6 @@ import java.util.Map;
 
 public interface SpecialExaminationService extends IService<SpecialExamination> {
 
+
+
 }

+ 4 - 1
tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/impl/SmcLotCheckLogServiceImpl.java

@@ -17,8 +17,11 @@ public class SmcLotCheckLogServiceImpl extends ServiceImpl<SmcLotCheckLogMapper,
         Integer customerIdState = smcLotCheckLog.getCustomerIdState() == null ?  999: smcLotCheckLog.getCustomerIdState();
         Integer riskState = smcLotCheckLog.getRiskState() == null ?  999 :  smcLotCheckLog.getRiskState();
         Integer priceApprovalState = smcLotCheckLog.getPriceApprovalState() == null ?  999 : smcLotCheckLog.getPriceApprovalState();
+        //其他材料
+        Integer commitmentState = smcLotCheckLog.getCommitmentState() == null ? 999 : smcLotCheckLog.getCommitmentState();
         if (contractState == 0 || testCardApplicationState == 0 || empowerState == 0
-                || idCardState == 0 || customerIdState == 0 || riskState == 0 || priceApprovalState == 0){
+                || idCardState == 0 || customerIdState == 0 || riskState == 0 ||
+                priceApprovalState == 0 || commitmentState == 0){
             return false;
         }
         return true;

+ 42 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/impl/SmcSpecialCheckLogServiceImpl.java

@@ -0,0 +1,42 @@
+package org.jeecg.modules.smscheck.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.smscheck.entity.SmcSpecialCheckLog;
+import org.jeecg.modules.smscheck.entity.SmcSpecialCheckLogStateVo;
+import org.jeecg.modules.smscheck.mapper.SmcSpecialCheckLogMapper;
+import org.jeecg.modules.smscheck.service.SmcSpecialCheckLogService;
+import org.springframework.stereotype.Service;
+
+import java.lang.reflect.Field;
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicReference;
+
+@Service
+public class SmcSpecialCheckLogServiceImpl extends ServiceImpl<SmcSpecialCheckLogMapper, SmcSpecialCheckLog> implements SmcSpecialCheckLogService {
+    /**
+     * 特审复开审批资料稽核业务
+     *
+     * @param e
+     * @return
+     * @throws IllegalAccessException
+     */
+    @Override
+    public Boolean reflectCheck(SmcSpecialCheckLogStateVo e) throws IllegalAccessException {
+        AtomicReference<Boolean> stateBoolean = new AtomicReference<>(true);
+        Class cls = e.getClass();
+        Field[] fields = cls.getDeclaredFields();
+        for (int i = 0; i < fields.length; i++) {
+            Field f = fields[i];
+            f.setAccessible(true);
+            Integer state = (Integer) f.get(e);
+            Optional.ofNullable(state).ifPresent(u->{
+                if (u == 0) {
+                    stateBoolean.set(false);
+                }
+            });
+            System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(e));
+        }
+        return stateBoolean.get();
+    }
+
+}

+ 4 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/service/impl/SpecialExaminationServiceImpl.java

@@ -6,7 +6,11 @@ import org.jeecg.modules.smscheck.mapper.SpecialExaminationMapper;
 import org.jeecg.modules.smscheck.service.SpecialExaminationService;
 import org.springframework.stereotype.Service;
 
+/**
+ * 特审复开审批
+ */
 @Service
 public class SpecialExaminationServiceImpl extends ServiceImpl<SpecialExaminationMapper, SpecialExamination> implements SpecialExaminationService {
 
+
 }

+ 1 - 1
tnc-sms/src/main/java/org/jeecg/modules/smscheck/vo/SmsCheckCustomerInfoVo.java

@@ -97,7 +97,7 @@ public class SmsCheckCustomerInfoVo implements Serializable {
     @ApiModelProperty(value = "员工三级部门名称")
     private String staffDeptLevel3Name;
     /** 导入结果 */
-    @ApiModelProperty(value = "错误信息")
+    @ApiModelProperty(value = "导入结果")
     private String result;
     /** 错误信息 */
     @ApiModelProperty(value = "错误信息")

+ 86 - 0
tnc-sms/src/main/java/org/jeecg/modules/smscheck/vo/SpecialExaminationCustomerVo.java

@@ -0,0 +1,86 @@
+package org.jeecg.modules.smscheck.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 特审复开审批资料导入
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="特审复开审批资料导入", description="客户信息")
+public class SpecialExaminationCustomerVo implements Serializable {
+    /** 序号 */
+    @Excel(name = "序号", width = 15)
+    @ApiModelProperty(value = "序号")
+    private String no;
+    /** 任务id */
+    @Excel(name = "任务id", width = 15)
+    @ApiModelProperty(value = "任务id")
+    private String taskId;
+
+    /**提交材料日期*/
+    @Excel(name = "提交材料日期", width = 15)
+    @ApiModelProperty(value = "提交材料日期")
+    private String submitSpecialDate;
+
+    /** 机主姓名 */
+    @Excel(name = "机主姓名", width = 15)
+    @ApiModelProperty(value = "机主姓名")
+    private String customerName;
+
+    /** 号码 */
+    @Excel(name = "号码", width = 15)
+    @ApiModelProperty(value = "号码)")
+    private String smsNumber;
+
+    /**关停标签*/
+    @Excel(name = "关停标签", width = 15)
+    @ApiModelProperty(value = "关停标签)")
+    private String shutdownLabel;
+
+    /**漫游被关停日期(ABM查询)*/
+    @Excel(name = "漫游被关停日期(ABM查询)", width = 15)
+    @ApiModelProperty(value = "漫游被关停日期(ABM查询))")
+    private Date shutdownLabelDate;
+
+    /** 三级部门 */
+    @Excel(name = "三级部门", width = 15)
+    @ApiModelProperty(value = "三级部门")
+    private String staffDeptLevel3;
+
+    /** 复开时间 */
+    @Excel(name = "复开时间", width = 15)
+    @ApiModelProperty(value = "复开时间")
+    private String reopenTime;
+
+    /** 有无特审单 */
+    @Excel(name = "有无特审单", width = 15)
+    @ApiModelProperty(value = "有无特审单")
+    private String materialLabel;
+
+    /** 有无特审单 */
+    @Excel(name = "是否自查实名制合规", width = 15)
+    @ApiModelProperty(value = "是否自查实名制合规")
+    private String nameFindCompliance;
+
+    /** 导入结果 */
+    @ApiModelProperty(value = "导入结果")
+    private String result;
+    /** 错误信息 */
+    @ApiModelProperty(value = "错误信息")
+    private String errorMsg;
+
+
+
+
+}

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff