浏览代码

删除待办

Administrator 9 月之前
父节点
当前提交
56ec07e963

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OcrController.java

@@ -67,4 +67,16 @@ public class OcrController {
     public AjaxResult ocrSampleAliYun(@RequestBody SysUserIdcardVo sysUserIdcardVo) {
         return IdCardUtil.ocrSampleAliYun(sysUserIdcardVo);
     }
+
+    /**
+     * 手写识别
+     *
+     * @return
+     */
+    @PostMapping("/ocrHandWriting")
+    @RepeatSubmit(interval = 1000, message = "请求过于频繁")
+    public AjaxResult ocrHandWriting(@RequestBody IdCardVo idCardVo) {
+        return IdCardUtil.ocrHandWriting(idCardVo.getImage());
+    }
+
 }

+ 106 - 51
ruoyi-common/src/main/java/com/ruoyi/common/utils/IdCardUtil.java

@@ -980,16 +980,16 @@ public class IdCardUtil {
                 for (int p = 0; p < wordsResult.size(); p++) {
                     String b = wordsResult.get(p).toString();
                     if (b.contains("交易日期")) {
-                        String result = wordsResult.get(p+1).toString();
+                        String result = wordsResult.get(p + 1).toString();
                         String[] split = result.split(":");
-                        String actuallyTime = split[1].replace("}", "").replace("\"","");
+                        String actuallyTime = split[1].replace("}", "").replace("\"", "");
                         map.put("actuallyTime", actuallyTime);
                     }
                     if (b.contains("放款金额")) {
-                        String result = wordsResult.get(p+1).toString();
+                        String result = wordsResult.get(p + 1).toString();
                         String[] split = result.split(":");
                         //"20240808"}
-                        String cny = split[1].replace("}", "").replace("\"","");
+                        String cny = split[1].replace("}", "").replace("\"", "");
                         double actuallyAmount = Double.parseDouble(cny) / 10000;
                         map.put("actuallyAmount", actuallyAmount);
                     }
@@ -1028,12 +1028,13 @@ public class IdCardUtil {
 
     /**
      * 图片文字识别
-     * @param filePath     本地文件路径
+     *
+     * @param filePath 本地文件路径
      * @return
      */
-    public static Map<String,Object> accurateBasicCj(String filePath) {
+    public static Map<String, Object> accurateBasicCj(String filePath) {
         String imgParam = getFileContentAsBase64(filePath, true);
-        String param = "image=" + imgParam+"&detect_direction=true";
+        String param = "image=" + imgParam + "&detect_direction=true";
         MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
         // image 可以通过 getFileContentAsBase64("C:\fakepath\zhizhao.jpg") 方法获取,如果Content-Type是application/x-www-form-urlencoded时,第二个参数传true
         RequestBody body = RequestBody.create(mediaType, param);
@@ -1155,7 +1156,7 @@ public class IdCardUtil {
             }*/
             Response response = HTTP_CLIENT.newCall(request).execute();
             String result = response.body().string();
-            if (StringUtils.isNotBlank(result)){
+            if (StringUtils.isNotBlank(result)) {
                 JSONObject jsonObject = JSONObject.parseObject(result);
                 JSONArray wordsResult = jsonObject.getJSONArray("words_result");
                 Map<String, Object> bankMap = bankCj(wordsResult);
@@ -1293,125 +1294,179 @@ public class IdCardUtil {
 
     /**
      * 从图片识别中提取数据
+     *
      * @param wordsResult
      * @return
      */
-    public static Map<String,Object> bankCj(JSONArray wordsResult){
-        Map<String,Object> map  = new HashMap<>(2);
-        map.put("dkdw","");
-        map.put("jkr","");
-        map.put("jkje","");
-        map.put("jkytsm","");
-        map.put("hksj","");
+    public static Map<String, Object> bankCj(JSONArray wordsResult) {
+        Map<String, Object> map = new HashMap<>(2);
+        map.put("dkdw", "");
+        map.put("jkr", "");
+        map.put("jkje", "");
+        map.put("jkytsm", "");
+        map.put("hksj", "");
         int hksj = 0;
         String strTime = null;
         String endTime = null;
         for (int i = 0; i < wordsResult.size(); i++) {
             String o = wordsResult.get(i).toString();
-            if (o.contains("\"words\":\"中国银行\"")){
+            if (o.contains("\"words\":\"中国银行\"")) {
                 for (int p = 0; p < wordsResult.size(); p++) {
                     String b = wordsResult.get(p).toString();
-                    if (b.contains("收款人开户行")){
+                    if (b.contains("收款人开户行")) {
                         String[] split = b.split(":");
                         String cny = split[1];
-                        map.put("dkdw",cny);
+                        map.put("dkdw", cny);
                     }
-                    if (b.contains("借款人名称")){
+                    if (b.contains("借款人名称")) {
                         String[] split = b.split(":");
                         String cny = split[1];
-                        map.put("jkr",cny);
+                        map.put("jkr", cny);
                     }
-                    if (b.contains("合同金额")){
+                    if (b.contains("合同金额")) {
                         String[] split = b.split(":");
-                        String cny = split[1].replace("CNY", "").replace("\"}", "").replace(",","");
+                        String cny = split[1].replace("CNY", "").replace("\"}", "").replace(",", "");
                         double actuallyAmount = Double.parseDouble(cny) / 10000;
-                        map.put("jkje",actuallyAmount);
+                        map.put("jkje", actuallyAmount);
                     }
-                    if (b.contains("起息日")){
+                    if (b.contains("起息日")) {
                         String[] split = b.split(":");
                         strTime = split[1].replace("\"}", "").replace("/", "-");
                     }
-                    if (b.contains("到期日")){
+                    if (b.contains("到期日")) {
                         String[] split = b.split(":");
                         endTime = split[1].replace("\"}", "").replace("/", "-");
                     }
                 }
                 break;
-            }else if (o.contains("\"words\":\"安徽农金\"")){
+            } else if (o.contains("\"words\":\"安徽农金\"")) {
 
                 for (int p = 0; p < wordsResult.size(); p++) {
                     String b = wordsResult.get(p).toString();
-                    if (b.contains("贷款单位")){
+                    if (b.contains("贷款单位")) {
                         String[] split = b.split(":");
                         String cny = split[1];
-                        map.put("dkdw",cny);
+                        map.put("dkdw", cny);
                     }
-                    if (b.contains("借款人")){
+                    if (b.contains("借款人")) {
                         String[] split = b.split(":");
                         String cny = split[1];
-                        map.put("jkr",cny);
+                        map.put("jkr", cny);
                     }
-                    if (b.contains("(小写)")){
+                    if (b.contains("(小写)")) {
                         String[] split = b.split(":");
-                        String cny = split[1].replace("¥", "").replace("\"}", "").replace(",","");
+                        String cny = split[1].replace("¥", "").replace("\"}", "").replace(",", "");
                         double actuallyAmount = Double.parseDouble(cny) / 10000;
-                        map.put("jkje",actuallyAmount);
+                        map.put("jkje", actuallyAmount);
                     }
-                    if (b.contains("借款用途说明")){
+                    if (b.contains("借款用途说明")) {
                         String[] split = b.split(":");
                         String cny = split[1];
-                        map.put("jkytsm",cny);
+                        map.put("jkytsm", cny);
                     }
                     //计算还款时间
-                    if (b.contains("借款日期")){
+                    if (b.contains("借款日期")) {
                         String[] split = b.split(":");
                         strTime = split[1].replace("\"}", "").replace("年", "-").replace("月", "-").replace("日", "");
                     }
-                    if (b.contains("借款到日期")){
+                    if (b.contains("借款到日期")) {
                         String[] split = b.split(":");
                         endTime = split[1].replace("\"}", "").replace("年", "-").replace("月", "-").replace("日", "");
                     }
                 }
 
                 break;
-            }else if (o.contains("\"words\":\"中国建设银行\"")) {
+            } else if (o.contains("\"words\":\"中国建设银行\"")) {
                 //[{"words":"中国建设银行"},{"words":"China Construction Bank"},{"words":"贷款开户放款复核单"},{"words":"交易日期:"},{"words":"20240808"},{"words":"交易流水号:"},{"words":"102015LN21723106881097611"},{"words":"客户编号:"},{"words":"033811000008657356"},{"words":"产品编码:"},{"words":"00000082"},{"words":"客户名称:"},{"words":"潜山县华达实业有限公司"},{"words":"产品名称:"},{"words":"流动资金贷款"},{"words":"币种名称:人民币"},{"words":"币种代码:156"},{"words":"贷款账号:"},{"words":"34050368430800000726"},{"words":"放款金额:"},{"words":"1000000.00"},{"words":"内部账号:"},{"words":"贷转存账号:"},{"words":"中建设银行股份有限公司"},{"words":"34050168480800000976"},{"words":"利率(%):3.750000"},{"words":"贷款放款日期:20240808"},{"words":"到期日期:"},{"words":"潜山支行"},{"words":"20250807"},{"words":"业务专用章"},{"words":"授权:"},{"words":"复核:"},{"words":"经办:"},{"words":"53596089vM"}]
-                map.put("dkdw","中国建设银行");
+                map.put("dkdw", "中国建设银行");
                 for (int p = 0; p < wordsResult.size(); p++) {
                     String b = wordsResult.get(p).toString();
-                    if (b.contains("客户名称")){
-                        String result = wordsResult.get(p+1).toString();
+                    if (b.contains("客户名称")) {
+                        String result = wordsResult.get(p + 1).toString();
                         String[] split = result.split(":");
                         String cny = split[1];
-                        map.put("jkr",cny);
+                        map.put("jkr", cny);
                     }
                     if (b.contains("放款金额")) {
-                        String result = wordsResult.get(p+1).toString();
+                        String result = wordsResult.get(p + 1).toString();
                         String[] split = result.split(":");
                         //"20240808"}
-                        String cny = split[1].replace("}", "").replace("\"","");
+                        String cny = split[1].replace("}", "").replace("\"", "");
                         double actuallyAmount = Double.parseDouble(cny) / 10000;
                         map.put("jkje", actuallyAmount);
                     }
-                    if (b.contains("产品名称")){
-                        String result = wordsResult.get(p+1).toString();
+                    if (b.contains("产品名称")) {
+                        String result = wordsResult.get(p + 1).toString();
                         String[] split = result.split(":");
                         String cny = split[1];
-                        map.put("jkytsm",cny);
+                        map.put("jkytsm", cny);
                     }
                 }
                 break;
             }
         }
-        if(StringUtils.isNotEmpty(strTime) && StringUtils.isNotEmpty(endTime)){
-            hksj = DateUtils.calculateMonths(strTime,endTime);
+        if (StringUtils.isNotEmpty(strTime) && StringUtils.isNotEmpty(endTime)) {
+            hksj = DateUtils.calculateMonths(strTime, endTime);
         }
-        if(hksj!=0){
-            map.put("hksj",hksj);
+        if (hksj != 0) {
+            map.put("hksj", hksj);
         }
         return map;
     }
 
+    /**
+     * 手写文字识别
+     */
+    /**
+     * 重要提示代码中所需工具类
+     * FileUtil,Base64Util,HttpUtil,GsonUtils请从
+     * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
+     * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
+     * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
+     * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
+     * 下载
+     */
+    public static AjaxResult ocrHandWriting(String filePath) {
+        // 请求url
+        String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/handwriting";
+        try {
+            // 本地文件路径
+            byte[] imgData = FileUtil.readFileByBytes(filePath);
+            String imgStr = Base64Util.encodeBase64(imgData);
+            String imgParam = URLEncoder.encode(imgStr, "UTF-8");
+
+            String param = "image=" + imgParam;
+
+            // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
+            String accessToken = getAccessToken("TvvuZOOh7MgnlDFnw11ln67n", "CY47OI0eKAzYBD2LO55SM3OITzsyq6DK");
+
+            String result = HttpUtils.post(url, accessToken, param);
+            /**
+             * {
+             *     "log_id": 620759800,
+             *     "words_result": [
+             *         {
+             *             "location": {
+             *                 "left": 56,
+             *                 "top": 0,
+             *                 "width": 21,
+             *                 "height": 210
+             *             },
+             *             "words": "今天"
+             *         }
+             *     ],
+             *     "words_result_num": 1
+             * }
+             */
+            System.out.println(result);
+            return AjaxResult.success();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+
+    }
+
 
     static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
 }

+ 136 - 13
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/LoanApplicationServiceImpl.java

@@ -695,6 +695,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             loanApplication.setAuditType(FOR);
             loanApplication.setLoanApplicationType(TWO);
             loanApplicationMapper.updateLoanApplication(loanApplication);
+            //删除已处理的待办信息
+            WaitRemind waitRemindDelete = new WaitRemind();
+            waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+            waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+            waitRemindDelete.setRemindType(TWO);
+            waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
             //给A角色,审核管理员发送待办
             WaitRemind waitRemind = new WaitRemind();
             waitRemind.setLoanApplicationId(loanApplicationId);
@@ -707,13 +713,18 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             waitRemindList.add(waitRemind);
             if (sysUserRoles != null && sysUserRoles.size() > 0) {
                 for (SysUserRole sysUserRole : sysUserRoles) {
+                    //删除已处理的待办信息
+                    waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                    waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                    waitRemindDelete.setRemindType(TWO);
+                    waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                     WaitRemind waitRemindManager = new WaitRemind();
                     waitRemindManager.setLoanApplicationId(loanApplicationId);
                     waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
                     waitRemindManager.setRemindTitle("有一条【" + enterpriseName + "】的审核信息未通过");
                     waitRemindManager.setRemindTime(DateUtils.getNowDate());
                     waitRemindManager.setRemindType(TWO);
-                    waitRemindManager.setReadUserId(loanApplication.getaUserId().toString());
                     waitRemindManager.setRemindContent(enterpriseName + "有一条贷款申请进入未通过需及时查看");
                     //给管理员发送待办提醒
                     waitRemindManager.setReadUserId(sysUserRole.getUserId().toString());
@@ -727,6 +738,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             //进入到A角色申诉状态保留当前项目状态,只把audit_type改为申诉
             loanApplication.setAuditType(FOR);
             loanApplicationMapper.updateLoanApplication(loanApplication);
+            //删除已处理的待办信息
+            WaitRemind waitRemindDelete = new WaitRemind();
+            waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+            waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+            waitRemindDelete.setRemindType(TWO);
+            waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
             //给A角色发送待办提醒
             WaitRemind waitRemind = new WaitRemind();
             waitRemind.setLoanApplicationId(loanApplicationId);
@@ -739,6 +756,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             waitRemindList.add(waitRemind);
             if (sysUserRoles != null && sysUserRoles.size() > 0) {
                 for (SysUserRole sysUserRole : sysUserRoles) {
+                    //删除已处理的待办信息
+                    waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                    waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                    waitRemindDelete.setRemindType(TWO);
+                    waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                     WaitRemind waitRemindManager = new WaitRemind();
                     waitRemindManager.setLoanApplicationId(loanApplicationId);
                     waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -757,6 +780,13 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
         }
         //通过,进入到下一个步骤
         if (TWO.equals(auditType)) {
+            //删除已处理的待办信息
+            WaitRemind waitRemindDelete = new WaitRemind();
+            waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+            waitRemindDelete.setReadUserId(reviewComments.getaUserId().toString());
+            waitRemindDelete.setRemindType(TWO);
+            waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
             WaitRemind waitRemind = new WaitRemind();
             waitRemind.setLoanApplicationId(loanApplicationId);
             waitRemind.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -777,6 +807,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 waitRemindList.add(waitRemind);
                 if (sysUserRoles != null && sysUserRoles.size() > 0) {
                     for (SysUserRole sysUserRole : sysUserRoles) {
+                        //删除已处理的待办信息
+                        waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                        waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                        waitRemindDelete.setRemindType(TWO);
+                        waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                         WaitRemind waitRemindManager = new WaitRemind();
                         waitRemindManager.setLoanApplicationId(loanApplicationId);
                         waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -801,12 +837,24 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 loanApplication.setAuditSchedule(String.valueOf(Integer.parseInt(auditSchedule) + 1));
                 loanApplication.setAuditType(ONE);
                 if (auditSchedule.equals(TWO)) {
+                    //删除已处理的待办信息
+
+                    waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                    waitRemindDelete.setReadUserId(loanApplication.getbUserId().toString());
+                    waitRemindDelete.setRemindType(TWO);
+                    waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                     //给B角色发送待办提醒
                     waitRemind.setReadUserId(loanApplication.getbUserId().toString());
                     waitRemind.setRemindContent(enterpriseName + "有一条贷款申请需及时处理");
                     waitRemindList.add(waitRemind);
                     if (sysUserRoles != null && sysUserRoles.size() > 0) {
                         for (SysUserRole sysUserRole : sysUserRoles) {
+                            //删除已处理的待办信息
+                            waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                            waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                            waitRemindDelete.setRemindType(TWO);
+                            waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                             WaitRemind waitRemindManager = new WaitRemind();
                             waitRemindManager.setLoanApplicationId(loanApplicationId);
                             waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -822,12 +870,24 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                     }
                 }
                 if (auditSchedule.equals(THR)) {
+                    //删除已处理的待办信息
+
+                    waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                    waitRemindDelete.setReadUserId(loanApplication.getfUserId().toString());
+                    waitRemindDelete.setRemindType(TWO);
+                    waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                     //给风险角色发送待办提醒
                     waitRemind.setReadUserId(loanApplication.getfUserId().toString());
                     waitRemind.setRemindContent(enterpriseName + "有一条贷款申请需及时处理");
                     waitRemindList.add(waitRemind);
                     if (sysUserRoles != null && sysUserRoles.size() > 0) {
                         for (SysUserRole sysUserRole : sysUserRoles) {
+                            //删除已处理的待办信息
+                            waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                            waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                            waitRemindDelete.setRemindType(TWO);
+                            waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                             WaitRemind waitRemindManager = new WaitRemind();
                             waitRemindManager.setLoanApplicationId(loanApplicationId);
                             waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -847,19 +907,30 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 loanApplication.setLoanSchedule(String.valueOf(Integer.parseInt(loanScheduleOld) + 1));
                 loanApplication.setAuditSchedule(String.valueOf(Integer.parseInt(auditSchedule) + 1));
                 loanApplication.setAuditType(ONE);
+                //删除已处理的待办信息
+
+                waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+                waitRemindDelete.setRemindType(loanApplication.getLoanSchedule());
+                waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                 //给A角色发送待办提醒
+                waitRemind.setRemindType(loanApplication.getLoanSchedule());
                 waitRemind.setReadUserId(loanApplication.getaUserId().toString());
                 waitRemind.setRemindContent(enterpriseName + "的审核信息申请通过进入到下一阶段");
                 waitRemindList.add(waitRemind);
                 if (sysUserRoles != null && sysUserRoles.size() > 0) {
                     for (SysUserRole sysUserRole : sysUserRoles) {
+                        //删除已处理的待办信息
+                        waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                        waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                        waitRemindDelete.setRemindType(TWO);
+                        waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                         WaitRemind waitRemindManager = new WaitRemind();
                         waitRemindManager.setLoanApplicationId(loanApplicationId);
                         waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
                         waitRemindManager.setRemindTitle("有一条【" + enterpriseName + "】的审核信息进入到下一阶段");
                         waitRemindManager.setRemindTime(DateUtils.getNowDate());
-                        waitRemindManager.setRemindType(TWO);
-                        waitRemindManager.setReadUserId(loanApplication.getaUserId().toString());
+                        waitRemindManager.setRemindType(loanApplication.getLoanSchedule());
                         waitRemindManager.setRemindContent(enterpriseName + "的审核信息申请通过进入到下一阶段");
                         //给管理员发送待办提醒
                         waitRemindManager.setReadUserId(sysUserRole.getUserId().toString());
@@ -877,9 +948,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             loanSchedule.setLoanScheduleTime(DateUtils.getNowDate());
             loanScheduleMapper.insertLoanSchedule(loanSchedule);
             //插入审核通过的待办提醒
-            if (waitRemindList.size() > 0) {
-                waitRemindMapper.batchWaitRemind(waitRemindList);
-            }
+            waitRemindMapper.batchWaitRemind(waitRemindList);
 
         }
         return AjaxResult.success();
@@ -987,13 +1056,19 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             return AjaxResult.error("当前项目状态异常,不允许上会");
         }
         int rows = loanApplicationMapper.updateLoanApplication(loanApplication);
+        //删除所有状态小于的待办事项
+        WaitRemind waitRemindDelete = new WaitRemind();
+        waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+        waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+        waitRemindDelete.setRemindType(SIX);
+        waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
         //给A角色发送上会审核信息
         WaitRemind waitRemindManager = new WaitRemind();
         waitRemindManager.setLoanApplicationId(loanApplication.getLoanApplicationId());
         waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
         waitRemindManager.setRemindTitle("有一条【" + loanApplication.getEnterpriseName() + "】的上会审核信息");
         waitRemindManager.setRemindTime(DateUtils.getNowDate());
-        waitRemindManager.setRemindType(FIV);
+        waitRemindManager.setRemindType(SIX);
         waitRemindManager.setReadUserId(loanApplication.getaUserId().toString());
         String result = "通过";
         if (TWO.equals(reviewSchedule)) {
@@ -1031,7 +1106,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             application.setAuditSchedule(TEN);
         }
         loanApplicationMapper.updateLoanApplication(application);
-
+        //删除所有状态小于的待办事项
+        WaitRemind waitRemindDelete = new WaitRemind();
+        waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+        waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+        waitRemindDelete.setRemindType(loanSchedule);
+        waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
         //给A角色发送待办提醒
         //待办信息集合
         //查询审核管理员用户id
@@ -1048,6 +1128,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
         waitRemindList.add(waitRemind);
         if (sysUserRoles != null && sysUserRoles.size() > 0) {
             for (SysUserRole sysUserRole : sysUserRoles) {
+                //删除所有状态小于的待办事项
+                waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                waitRemindDelete.setRemindType(loanSchedule);
+                waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                 WaitRemind waitRemindManager = new WaitRemind();
                 waitRemindManager.setLoanApplicationId(loanApplication.getLoanApplicationId());
                 waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -1148,6 +1234,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
 
             //如果退到 A角色审核 B角色审核 还需要插入待办提醒
             if (loanApplication.getAuditSchedule().equals(TWO)) {
+                //删除所有状态小于的待办事项
+                WaitRemind waitRemindDelete = new WaitRemind();
+                waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                waitRemindDelete.setReadUserId(loanApplicationOld.getaUserId().toString());
+                waitRemindDelete.setRemindType(TWO);
+                waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                 WaitRemind waitRemind = new WaitRemind();
                 waitRemind.setLoanApplicationId(loanApplicationId);
                 waitRemind.setLoanApplicationNumber(loanApplicationNumber);
@@ -1160,6 +1252,12 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 waitRemindList.add(waitRemind);
             }
             if (loanApplication.getAuditSchedule().equals(THR)) {
+                //删除所有状态小于的待办事项
+                WaitRemind waitRemindDelete = new WaitRemind();
+                waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                waitRemindDelete.setReadUserId(loanApplicationOld.getbUserId().toString());
+                waitRemindDelete.setRemindType(TWO);
+                waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                 WaitRemind waitRemind = new WaitRemind();
                 waitRemind.setLoanApplicationId(loanApplicationId);
                 waitRemind.setLoanApplicationNumber(loanApplicationNumber);
@@ -1180,6 +1278,13 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
         //查询审核管理员用户id
         List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectRoleListNoDataScope();
         if (ObjectUtils.isNotEmpty(loanApplication.getaUserId())) {
+            //删除所有状态小于的待办事项
+            WaitRemind waitRemindDelete = new WaitRemind();
+            waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+            waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+            waitRemindDelete.setRemindType(loanSchedule);
+            waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
             WaitRemind waitRemind = new WaitRemind();
             waitRemind.setLoanApplicationId(loanApplication.getLoanApplicationId());
             waitRemind.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
@@ -1191,13 +1296,20 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
             waitRemindList.add(waitRemind);
             if (sysUserRoles != null && sysUserRoles.size() > 0) {
                 for (SysUserRole sysUserRole : sysUserRoles) {
+
+                    //删除所有状态小于的待办事项
+
+                    waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                    waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                    waitRemindDelete.setRemindType(loanSchedule);
+                    waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
+
                     WaitRemind waitRemindManager = new WaitRemind();
                     waitRemindManager.setLoanApplicationId(loanApplication.getLoanApplicationId());
                     waitRemindManager.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
                     waitRemindManager.setRemindTitle("有一条【" + loanApplication.getEnterpriseName() + "】的信息进行了撤销");
                     waitRemindManager.setRemindTime(DateUtils.getNowDate());
                     waitRemindManager.setRemindType(loanSchedule);
-                    waitRemindManager.setReadUserId(loanApplication.getaUserId().toString());
                     waitRemindManager.setRemindContent(loanApplication.getEnterpriseName() + "的信息进行了撤销");
                     //给管理员发送待办提醒
                     waitRemindManager.setReadUserId(sysUserRole.getUserId().toString());
@@ -1335,7 +1447,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
         loanApplicationFjMapper.insertLoanApplicationFj(loanApplicationFj);
         loanApplicationMapper.updateLoanApplication(loanApplication);
 
-        //给A角色发送待办提醒
+/*        //给A角色发送待办提醒
         //待办信息集合
         //查询审核管理员用户id
         List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectRoleListNoDataScope();
@@ -1364,7 +1476,7 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
                 waitRemindList.add(waitRemindManager);
             }
         }
-        waitRemindMapper.batchWaitRemind(waitRemindList);
+        waitRemindMapper.batchWaitRemind(waitRemindList);*/
 
         //业务审核意见
         ReviewComments reviewComments = new ReviewComments();
@@ -1387,12 +1499,18 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
      */
     @Override
     public AjaxResult zanHuan(LoanApplication loanApplication) {
+        //删除所有状态小于的待办事项
+        WaitRemind waitRemindDelete = new WaitRemind();
+        waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+        waitRemindDelete.setReadUserId(loanApplication.getaUserId().toString());
+        waitRemindDelete.setRemindType(EIG);
+        waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
         WaitRemind waitRemind = new WaitRemind();
         waitRemind.setLoanApplicationId(loanApplication.getLoanApplicationId());
         waitRemind.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
         waitRemind.setRemindTitle("您有一条风险部暂缓出具【" + loanApplication.getEnterpriseName() + "】放款合规表的申请");
         waitRemind.setRemindTime(DateUtils.getNowDate());
-        waitRemind.setRemindType(SIX);
+        waitRemind.setRemindType(EIG);
         //给A角色发送待办提醒
         waitRemind.setReadUserId(loanApplication.getaUserId().toString());
         //getRemark()风险部暂缓出具的原因
@@ -1402,12 +1520,17 @@ public class LoanApplicationServiceImpl implements ILoanApplicationService {
         List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectRoleListNoDataScope();
         if (sysUserRoles != null && sysUserRoles.size() > 0) {
             for (SysUserRole sysUserRole : sysUserRoles) {
+                //删除所有状态小于的待办事项
+                waitRemindDelete.setLoanApplicationId(loanApplication.getLoanApplicationId());
+                waitRemindDelete.setReadUserId(sysUserRole.getUserId().toString());
+                waitRemindDelete.setRemindType(EIG);
+                waitRemindMapper.deleteWaitRemindByLoanApplicationId(waitRemindDelete);
                 WaitRemind waitRemindRole = new WaitRemind();
                 waitRemindRole.setLoanApplicationId(loanApplication.getLoanApplicationId());
                 waitRemindRole.setLoanApplicationNumber(loanApplication.getLoanApplicationNumber());
                 waitRemindRole.setRemindTitle("您有一条风险部暂缓出具【" + loanApplication.getEnterpriseName() + "】放款合规表的申请");
                 waitRemindRole.setRemindTime(DateUtils.getNowDate());
-                waitRemindRole.setRemindType(SIX);
+                waitRemindRole.setRemindType(EIG);
                 //给管理员发送待办提醒
                 waitRemindRole.setReadUserId(sysUserRole.getUserId().toString());
                 //getRemark()风险部暂缓出具的原因

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/WaitRemindMapper.java

@@ -56,6 +56,7 @@ public interface WaitRemindMapper
      */
     public int deleteWaitRemindByRemindId(Integer remindId);
     public int deleteWaitRemindByReadUserId(WaitRemind waitRemind);
+    public int deleteWaitRemindByLoanApplicationId(WaitRemind waitRemind);
 
     /**
      * 批量删除待办提醒

+ 4 - 0
ruoyi-system/src/main/resources/mapper/system/WaitRemindMapper.xml

@@ -128,4 +128,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <delete id="deleteWaitRemindByReadUserId" parameterType="WaitRemind">
         delete from wait_remind where loan_application_id = #{loanApplicationId} and read_user_id = #{readUserId}
     </delete>
+    <delete id="deleteWaitRemindByLoanApplicationId" parameterType="WaitRemind">
+        delete from wait_remind where loan_application_id = #{loanApplicationId} and read_user_id = #{readUserId} and remind_type != #{remindType}
+
+    </delete>
 </mapper>