From 8b1dffc0ce5787d74020ac8a1c6ed00f16a7a0f4 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 17 五月 2025 18:28:55 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/core/utils/DateUtil.java                             |  226 +++++++++++++++++-----------
 server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java                 |   10 
 server/service/src/main/java/com/doumee/dao/business/model/SolutionsBase.java                |    4 
 server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java    |   33 ++++
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |    5 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java   |  183 ++++++++++++++++++++++
 server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java              |    7 
 server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java                    |    2 
 server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java             |    2 
 server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java                |    6 
 10 files changed, 377 insertions(+), 101 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java b/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
index 18f0c15..43f74a6 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -126,6 +126,13 @@
     }
 
 
+    @ApiOperation("鏌ヨ浜哄憳鍙姤妗堟暟鎹�")
+    @GetMapping("/getMemberSettleClaimsList")
+    public ApiResponse<List<ApplyDetail>> getMemberSettleClaimsList(@RequestParam Integer memberId) {
+        return ApiResponse.success(applyDetailService.getMemberSettleClaimsList(memberId));
+    }
+
+
 
 
 }
diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
index fa297b0..6860dfb 100644
--- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -113,6 +113,33 @@
         }
     }
 
+    public static long getBetweenMin(Date fromDate, Date toDate) {
+        long m_intervalday = 0;// 鍒濆鍖栨椂闂撮棿闅旂殑鍊间负0
+        // 浣跨敤鐨勬椂闂存牸寮忎负yyyy-MM-dd
+        try {
+            m_intervalday = toDate.getTime() - fromDate.getTime();// 璁$畻鎵�寰椾负寰鏁�
+            m_intervalday = m_intervalday / 1000 / 60 ;// 璁$畻鎵�寰楃殑澶╂暟
+
+            return m_intervalday + 1;
+        } catch (Exception e) {
+            return Integer.MIN_VALUE;
+        }
+    }
+
+
+    public static long getBetweenDay(Date fromDate, Date toDate) {
+        long m_intervalday = 0;// 鍒濆鍖栨椂闂撮棿闅旂殑鍊间负0
+        // 浣跨敤鐨勬椂闂存牸寮忎负yyyy-MM-dd
+        try {
+            m_intervalday = toDate.getTime() - fromDate.getTime();// 璁$畻鎵�寰椾负寰鏁�
+            m_intervalday = m_intervalday / 1000 / 60 / 60 / 24 ;// 璁$畻鎵�寰楃殑澶╂暟
+
+            return m_intervalday + 1;
+        } catch (Exception e) {
+            return Integer.MIN_VALUE;
+        }
+    }
+
     /**
      * @author Pablo Descrption:取锟矫碉拷前锟斤拷锟斤拷getgetg get Date format
      *         Example锛�2008.03.15
@@ -889,95 +916,95 @@
      * @return 杞崲寰楀埌鐨勬棩鏈�
      */
     @SuppressWarnings("unchecked")
-    public static Date stringToDate(String strDate, String oracleFormat) {
-        if (strDate == null)
-            return null;
-        Hashtable<Integer, String> h = new Hashtable<Integer, String>();
-        String javaFormat = new String();
-        String s = oracleFormat.toLowerCase();
-        if (s.indexOf("yyyy") != -1)
-            h.put(new Integer(s.indexOf("yyyy")), "yyyy");
-        else if (s.indexOf("yy") != -1)
-            h.put(new Integer(s.indexOf("yy")), "yy");
-        if (s.indexOf("mm") != -1)
-            h.put(new Integer(s.indexOf("mm")), "MM");
-
-        if (s.indexOf("dd") != -1)
-            h.put(new Integer(s.indexOf("dd")), "dd");
-        if (s.indexOf("hh24") != -1)
-            h.put(new Integer(s.indexOf("hh24")), "HH");
-        if (s.indexOf("mi") != -1)
-            h.put(new Integer(s.indexOf("mi")), "mm");
-        if (s.indexOf("ss") != -1)
-            h.put(new Integer(s.indexOf("ss")), "ss");
-
-        int intStart = 0;
-        while (s.indexOf("-", intStart) != -1) {
-            intStart = s.indexOf("-", intStart);
-            h.put(new Integer(intStart), "-");
-            intStart++;
-        }
-
-        intStart = 0;
-        while (s.indexOf("/", intStart) != -1) {
-            intStart = s.indexOf("/", intStart);
-            h.put(new Integer(intStart), "/");
-            intStart++;
-        }
-
-        intStart = 0;
-        while (s.indexOf(" ", intStart) != -1) {
-            intStart = s.indexOf(" ", intStart);
-            h.put(new Integer(intStart), " ");
-            intStart++;
-        }
-
-        intStart = 0;
-        while (s.indexOf(":", intStart) != -1) {
-            intStart = s.indexOf(":", intStart);
-            h.put(new Integer(intStart), ":");
-            intStart++;
-        }
-
-        if (s.indexOf("骞�") != -1)
-            h.put(new Integer(s.indexOf("骞�")), "骞�");
-        if (s.indexOf("鏈�") != -1)
-            h.put(new Integer(s.indexOf("鏈�")), "鏈�");
-        if (s.indexOf("鏃�") != -1)
-            h.put(new Integer(s.indexOf("鏃�")), "鏃�");
-        if (s.indexOf("鏃�") != -1)
-            h.put(new Integer(s.indexOf("鏃�")), "鏃�");
-        if (s.indexOf("鍒�") != -1)
-            h.put(new Integer(s.indexOf("鍒�")), "鍒�");
-        if (s.indexOf("绉�") != -1)
-            h.put(new Integer(s.indexOf("绉�")), "绉�");
-
-        int i = 0;
-        while (h.size() != 0) {
-            Enumeration e = h.keys();
-            int n = 0;
-            while (e.hasMoreElements()) {
-                i = ((Integer) e.nextElement()).intValue();
-                if (i >= n)
-                    n = i;
-            }
-            String temp = (String) h.get(new Integer(n));
-            h.remove(new Integer(n));
-
-            javaFormat = temp + javaFormat;
-        }
-        SimpleDateFormat df = new SimpleDateFormat(javaFormat);
-
-        Date myDate = new Date();
-        try {
-            myDate = df.parse(strDate);
-        } catch (Exception e) {
-            // e.printStackTrace();
-            return null;
-        }
-
-        return myDate;
-    }
+//    public static Date stringToDate(String strDate, String oracleFormat) {
+//        if (strDate == null)
+//            return null;
+//        Hashtable<Integer, String> h = new Hashtable<Integer, String>();
+//        String javaFormat = new String();
+//        String s = oracleFormat.toLowerCase();
+//        if (s.indexOf("yyyy") != -1)
+//            h.put(new Integer(s.indexOf("yyyy")), "yyyy");
+//        else if (s.indexOf("yy") != -1)
+//            h.put(new Integer(s.indexOf("yy")), "yy");
+//        if (s.indexOf("mm") != -1)
+//            h.put(new Integer(s.indexOf("mm")), "MM");
+//
+//        if (s.indexOf("dd") != -1)
+//            h.put(new Integer(s.indexOf("dd")), "dd");
+//        if (s.indexOf("hh24") != -1)
+//            h.put(new Integer(s.indexOf("hh24")), "HH");
+//        if (s.indexOf("mi") != -1)
+//            h.put(new Integer(s.indexOf("mi")), "mm");
+//        if (s.indexOf("ss") != -1)
+//            h.put(new Integer(s.indexOf("ss")), "ss");
+//
+//        int intStart = 0;
+//        while (s.indexOf("-", intStart) != -1) {
+//            intStart = s.indexOf("-", intStart);
+//            h.put(new Integer(intStart), "-");
+//            intStart++;
+//        }
+//
+//        intStart = 0;
+//        while (s.indexOf("/", intStart) != -1) {
+//            intStart = s.indexOf("/", intStart);
+//            h.put(new Integer(intStart), "/");
+//            intStart++;
+//        }
+//
+//        intStart = 0;
+//        while (s.indexOf(" ", intStart) != -1) {
+//            intStart = s.indexOf(" ", intStart);
+//            h.put(new Integer(intStart), " ");
+//            intStart++;
+//        }
+//
+//        intStart = 0;
+//        while (s.indexOf(":", intStart) != -1) {
+//            intStart = s.indexOf(":", intStart);
+//            h.put(new Integer(intStart), ":");
+//            intStart++;
+//        }
+//
+//        if (s.indexOf("骞�") != -1)
+//            h.put(new Integer(s.indexOf("骞�")), "骞�");
+//        if (s.indexOf("鏈�") != -1)
+//            h.put(new Integer(s.indexOf("鏈�")), "鏈�");
+//        if (s.indexOf("鏃�") != -1)
+//            h.put(new Integer(s.indexOf("鏃�")), "鏃�");
+//        if (s.indexOf("鏃�") != -1)
+//            h.put(new Integer(s.indexOf("鏃�")), "鏃�");
+//        if (s.indexOf("鍒�") != -1)
+//            h.put(new Integer(s.indexOf("鍒�")), "鍒�");
+//        if (s.indexOf("绉�") != -1)
+//            h.put(new Integer(s.indexOf("绉�")), "绉�");
+//
+//        int i = 0;
+//        while (h.size() != 0) {
+//            Enumeration e = h.keys();
+//            int n = 0;
+//            while (e.hasMoreElements()) {
+//                i = ((Integer) e.nextElement()).intValue();
+//                if (i >= n)
+//                    n = i;
+//            }
+//            String temp = (String) h.get(new Integer(n));
+//            h.remove(new Integer(n));
+//
+//            javaFormat = temp + javaFormat;
+//        }
+//        SimpleDateFormat df = new SimpleDateFormat(javaFormat);
+//
+//        Date myDate = new Date();
+//        try {
+//            myDate = df.parse(strDate);
+//        } catch (Exception e) {
+//            // e.printStackTrace();
+//            return null;
+//        }
+//
+//        return myDate;
+//    }
 
     public static Date StringToDate(String DATE1) {
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
@@ -3084,7 +3111,25 @@
         return cal.getTime();
     }
 
+    /**
+     * 鑾峰彇鏌愪釜鏃堕棿X鍒嗛挓鍚庣殑鏃堕棿
+     * @param minutes
+     * @param date
+     * @return
+     */
+    public static Date afterMinutesByDate(Integer minutes,Date date){
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.add(Calendar.MINUTE,minutes);
+        return cal.getTime();
+    }
 
+    public static Date afterDayByDate(Integer days,Date date){
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        cal.add(Calendar.DATE,days);
+        return cal.getTime();
+    }
     /**
      * 璁$畻澶氬皯鑷劧骞�/鏈�/鏃ュ悗鐨勬棩鏈�
      * @param startDate 寮�濮嬫棩鏈�
@@ -3157,7 +3202,8 @@
 
 
     public static void main(String[] args) throws Exception{
-        System.out.println(DateUtil.getLongDateTime(new Date()));;
+        System.out.println(DateUtil.StringToDate("2025-05-16 13:49:40").getTime());
+//        System.out.println(DateUtil.getLongDateTime(new Date()));;
     }
 
     /**
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java
index ac7fa87..9a61e6d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/SettleClaimsDTO.java
@@ -23,6 +23,12 @@
     @ApiModelProperty(value = "鍑洪櫓浜�")
     private Integer memberId;
 
+    @ApiModelProperty(value = "鎶曚繚鐢宠缂栫爜", example = "1")
+    private Integer insuranceApplyId;
+
+    @ApiModelProperty(value = "鎶曚繚鐢宠鏄庣粏缂栫爜", example = "1")
+    private Integer applyDetailId;
+
     @ApiModelProperty(value = "鍑洪櫓浜�")
     private String idcardNo;
 
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
index aad4123..d88ad9c 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
@@ -182,19 +182,19 @@
     private String syProblemOpts;
     @ApiModelProperty(value = "鏄惁椋庨櫓妗堜欢 0鍚� 1鏄�")
     @ExcelColumn(name="鏄惁椋庨櫓妗堜欢 0鍚� 1鏄�")
-    private String isRisk;
+    private Integer isRisk;
     @ApiModelProperty(value = "鏄惁澶氭鍑洪櫓椋庨櫓 0鍚�1鏄� ")
     @ExcelColumn(name="鏄惁澶氭鍑洪櫓椋庨櫓 0鍚�1鏄� ")
-    private String riskTimesCx;
+    private Integer riskTimesCx;
     @ApiModelProperty(value = "鏄惁鐤戜技閲嶅鎶ユ椋庨櫓 0鍚�1鏄� ")
     @ExcelColumn(name="鏄惁鐤戜技閲嶅鎶ユ椋庨櫓 0鍚�1鏄� ")
-    private String riskRepeat;
+    private Integer riskRepeat;
     @ApiModelProperty(value = "鏄惁绱㈣禂澶氭杩囧椋庨櫓 0鍚�1鏄�")
     @ExcelColumn(name="鏄惁绱㈣禂澶氭杩囧椋庨櫓 0鍚�1鏄�")
-    private String riskTimesSp;
+    private Integer riskTimesSp;
     @ApiModelProperty(value = "鏄惁鏂板憳宸ュ嚭闄╅闄� 0鍚�1鏄�")
     @ExcelColumn(name="鏄惁鏂板憳宸ュ嚭闄╅闄� 0鍚�1鏄�")
-    private String riskNewUser	;
+    private Integer riskNewUser	;
     @ApiModelProperty(value = "璁捐鏁忔劅璇嶏紝澶氫釜鑻辨枃閫楀彿闅斿紑")
     @ExcelColumn(name="璁捐鏁忔劅璇嶏紝澶氫釜鑻辨枃閫楀彿闅斿紑")
     private String riskSensitive;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SolutionsBase.java b/server/service/src/main/java/com/doumee/dao/business/model/SolutionsBase.java
index 7abb3c8..d8e1c54 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SolutionsBase.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SolutionsBase.java
@@ -158,8 +158,8 @@
     @ApiModelProperty(value = "椋庨櫓璁剧疆-鍏佽瀵规柊鍛樺伐宸叉姇淇濇湭鐢熸晥淇濋櫓杩涜淇濋殰 0涓嶅厑璁� 1鍏佽")
     @ExcelColumn(name="椋庨櫓璁剧疆-鍏佽瀵规柊鍛樺伐宸叉姇淇濇湭鐢熸晥淇濋櫓杩涜淇濋殰 0涓嶅厑璁� 1鍏佽")
     private Integer riskNewUserStatus;
-    @ApiModelProperty(value = "椋庨櫓璁剧疆-鍏佽鏂板憳宸ュ嚭闄╂椂闂存彁鍓嶆椂闂村崟浣� 0鍒嗛挓 1灏忔椂 2澶�")
-    @ExcelColumn(name="椋庨櫓璁剧疆-鍏佽鏂板憳宸ュ嚭闄╂椂闂存彁鍓嶆椂闂村崟浣� 0鍒嗛挓 1灏忔椂 2澶�")
+    @ApiModelProperty(value = "椋庨櫓璁剧疆-鍏佽鏂板憳宸ュ嚭闄╂椂闂存彁鍓嶆椂闂村崟浣� 1灏忔椂 2澶�")
+    @ExcelColumn(name="椋庨櫓璁剧疆-鍏佽鏂板憳宸ュ嚭闄╂椂闂存彁鍓嶆椂闂村崟浣� 1灏忔椂 2澶�")
     private Integer riskNewUserUnit;
     @ApiModelProperty(value = "椋庨櫓璁剧疆-鍏佽鏂板憳宸ュ嚭闄╂椂闂存彁鍓嶆椂闂�")
     @ExcelColumn(name="椋庨櫓璁剧疆-鍏佽鏂板憳宸ュ嚭闄╂椂闂存彁鍓嶆椂闂�")
diff --git a/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java b/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java
index a912c72..87aec30 100644
--- a/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/vo/RiskConfigVO.java
@@ -19,7 +19,7 @@
     private String riskTimesReportTimes;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-閲嶅鎶ユ鏄惁寮�鍚細0=鍚︼紱1=鏄�", example = "1")
     private String riskRepeatReportOpen;
-    @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-閲嶅鎶ユ鏃堕棿鍗曚綅锛�0鍒嗛挓 1灏忔椂 2澶�", example = "1")
+    @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-閲嶅鎶ユ鏃堕棿鍗曚綅锛�1灏忔椂 2澶�", example = "1")
     private String riskRepeatReportTimeUnit;
     @ApiModelProperty(value = "椋庨櫓鎻愰啋璁剧疆-閲嶅鎶ユ鏃堕棿", example = "1")
     private String riskRepeatReportTime;
diff --git a/server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java b/server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java
index 2395b87..2d83d49 100644
--- a/server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java
@@ -107,4 +107,6 @@
      * @return
      */
     List<ApplyDetail> getMemberApplyList(Integer memberId);
+
+    List<ApplyDetail> getMemberSettleClaimsList(Integer memberId);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
index 2303812..bbf26b0 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
@@ -18,6 +19,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -366,6 +368,37 @@
     }
 
 
+    /**
+     * 鏌ヨ浜哄憳鍙姤妗堟暟鎹�
+     * @param memberId
+     * @return
+     */
+    @Override
+    public List<ApplyDetail> getMemberSettleClaimsList(Integer memberId){
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        List<ApplyDetail>  applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
+                new MPJLambdaWrapper<ApplyDetail>()
+                        .selectAll(ApplyDetail.class)
+                        .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode)
+                        .selectAs(InsuranceApply::getStartTime,ApplyDetail::getParentStartTime)
+                        .selectAs(InsuranceApply::getEndTime,ApplyDetail::getParentEndTime)
+                        .selectAs(Company::getName,ApplyDetail::getCompanyName)
+                        .selectAs(Solutions::getName,ApplyDetail::getSolutionName)
+                        .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName)
+                        .selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
+                        .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+                        .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+                        .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+                        .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
+                        .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
+                        .in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),
+                                Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+                        .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
+                        .eq(InsuranceApply::getCompanyId,user.getCompanyId())
+                        .eq(ApplyDetail::getMemberId,memberId)
+        );
+        return applyDetailList;
+    }
 
 
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 71b3d50..ac0a8a6 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -3776,6 +3776,11 @@
         return applyPowerVO;
     }
 
+
+
+
+
+
 }
 
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index 74ad590..d5c68c8 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -8,16 +8,16 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.NoticesMapper;
-import com.doumee.dao.business.SettleClaimsLogMapper;
-import com.doumee.dao.business.SettleClaimsMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.dto.SCSupplementDTO;
 import com.doumee.dao.business.dto.SettleClaimsDTO;
 import com.doumee.dao.business.join.MultifileJoinMapper;
 import com.doumee.dao.business.join.SettleClaimsJoinMapper;
 import com.doumee.dao.business.join.SettleClaimsLogJoinMapper;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.RiskConfigVO;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.SettleClaimsLogService;
 import com.doumee.service.business.SettleClaimsService;
@@ -25,6 +25,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.system.impl.SystemDictDataServiceImpl;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import io.swagger.annotations.ApiModelProperty;
@@ -32,6 +33,7 @@
 import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -73,6 +75,19 @@
 
     @Autowired
     private NoticesMapper noticesMapper;
+
+    @Autowired
+    private InsuranceApplyMapper insuranceApplyMapper;
+
+    @Autowired
+    private SolutionsMapper solutionsMapper;
+
+    @Autowired
+    private SolutionsBaseMapper solutionsBaseMapper;
+
+    @Autowired
+    private ApplyDetailMapper applyDetailMapper;
+
     /**
      * 鍒犻櫎闄勪欢
      * @return
@@ -954,6 +969,7 @@
             || Objects.isNull(settleClaimsDTO.getSaveType())
             || Objects.isNull(settleClaimsDTO.getMemberId())
             ||StringUtils.isBlank(settleClaimsDTO.getIdcardNo())
+            || Objects.isNull(settleClaimsDTO.getInsuranceApplyId())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -993,10 +1009,171 @@
             settleClaimsMapper.insert(settleClaims);
         }
         this.saveFile(settleClaims,settleClaimsDTO,loginUserInfo);
+        //澶勭悊椋庨櫓淇℃伅
 
 
     }
 
+    public void saveRisk(SettleClaims settleClaims, SettleClaimsDTO settleClaimsDTO, SystemDictDataServiceImpl systemDictDataService){
+        //鏍规嵁淇濆崟淇℃伅 鏌ヨ鍑轰富鏂规
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(settleClaims.getInsuranceApplyId());
+        if(Objects.isNull(insuranceApply)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濆崟鏁版嵁");
+        }
+        Date happenTime = DateUtil.StringToDate(settleClaims.getHappenTime());
+        if(happenTime.getTime() < insuranceApply.getStartTime().getTime() || happenTime.getTime() > insuranceApply.getEndTime().getTime()){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓浜嬩欢鏈湪淇濆崟鐢熸晥鑼冨洿鍐�");
+        }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌瀛愭柟妗堜俊鎭�");
+        }
+        SolutionsBase solutionsBase = solutionsBaseMapper.selectById(solutions.getParentId());
+        if(Objects.isNull(solutionsBase)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌涓绘柟妗堜俊鎭�");
+        }
+        List<Map<String,String>> riskList = new ArrayList<>();
+        //鏌ヨ淇濆崟鏄庣粏鏁版嵁
+        ApplyDetail applyDetail = applyDetailMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,settleClaims.getInsuranceApplyId()).eq(ApplyDetail::getId,settleClaimsDTO.getApplyDetailId()).last("limit 1 "));
+        //鏄惁寮�鍚� 鏂板憳宸ユ姤妗� 0涓嶅厑璁� 1鍏佽
+        if(Constants.equalsInteger(solutionsBase.getRiskNewUserStatus(),Constants.ONE)
+                && Objects.nonNull(solutionsBase.getRiskNewUserUnit())
+                && Objects.nonNull(solutionsBase.getRiskNewUserTime())
+        ){
+            if(happenTime.getTime() > applyDetail.getEndTime().getTime()){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
+            }
+            Map<String,String> map = new HashMap<>();
+            map.put("title","淇濆崟宸叉姇淇濇湭鐢熸晥");
+            Date startDate = applyDetail.getStartTime();
+            if(Constants.equalsInteger(solutionsBase.getRiskNewUserUnit(),Constants.ONE)){
+                startDate = DateUtil.afterMinutesByDate(-solutionsBase.getRiskNewUserTime()*60,startDate);
+            }else if(Constants.equalsInteger(solutionsBase.getRiskNewUserUnit(),Constants.TWO)){
+                startDate = DateUtil.afterDayByDate(-solutionsBase.getRiskNewUserTime(),happenTime);
+            }else{
+                if(happenTime.getTime() < applyDetail.getStartTime().getTime() || happenTime.getTime() > applyDetail.getEndTime().getTime()){
+                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
+                }
+            }
+            if(happenTime.getTime() < startDate.getTime() ){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
+            }else{
+                map.put("info","浜嬫晠鍙戠敓鏃堕棿鏃╀簬淇濆崟鐢熸晥鏃堕棿"+solutionsBase.getRiskNewUserUnit()+(Constants.equalsInteger(solutionsBase.getRiskNewUserUnit(),Constants.ONE)?"灏忔椂鍐�":"澶╁唴"));
+                riskList.add(map);
+            }
+        }else{
+            if(happenTime.getTime() < applyDetail.getStartTime().getTime() || happenTime.getTime() > applyDetail.getEndTime().getTime()){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浜嬫晠鍙戠敓鏃堕棿鏈湪浜哄憳淇濋殰鏃ユ湡鑼冨洿鍐�");
+            }
+        }
+
+        //鏄惁寮�鍚� 寤惰繜鎶ユ鎻愰啋鏄惁寮�鍚� 0涓嶅厑璁� 1鍏佽
+        if(Constants.equalsInteger(solutionsBase.getRiskDelayStatus(),Constants.ONE)){
+            Map<String,String> map = new HashMap<>();
+            map.put("title","寤惰繜鎶ユ鎻愰啋");
+            //鏍规嵁閰嶇疆 鏌ヨ 寤惰繜鎶ユ鎻愰啋鏃堕棿鍗曚綅 0鍒嗛挓 1灏忔椂 2澶�
+            if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ZERO)){
+                if(DateUtil.getBetweenMin(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
+                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"鍒嗛挓");
+                    riskList.add(map);
+                }
+            }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.ONE)){
+                if(DateUtil.getBetweenHours(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
+                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"灏忔椂");
+                    riskList.add(map);
+                }
+            }else if(Constants.equalsInteger(solutionsBase.getRiskDelayUnit(),Constants.TWO)){
+                if(DateUtil.getBetweenDay(happenTime,new Date())>solutionsBase.getRiskDelayTime()){
+                    map.put("info","鎶ユ鏃堕棿瓒呰繃妗堝彂鏃堕棿"+solutionsBase.getRiskDelayUnit()+"澶�");
+                    riskList.add(map);
+                }
+            }
+        }
+
+        //鏌ヨ瀛楀吀鍊奸厤缃俊鎭�
+        RiskConfigVO riskConfigVO = systemDictDataService.getRiskConfig();
+        //澶氭鍑洪櫓鎻愰啋
+        if(StringUtils.isNotBlank(riskConfigVO.getRiskTimesOpen()) && StringUtils.equals(riskConfigVO.getRiskTimesOpen(),Constants.ONE+"")
+            && StringUtils.isNotBlank(riskConfigVO.getRiskTimesReportTimes())){
+            Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId())
+                    .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
+                    .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY)  ")
+            );
+            if(cxcs>Integer.valueOf(riskConfigVO.getRiskTimesReportTimes())){
+                Map<String,String> map = new HashMap<>();
+                map.put("title","鐤戜技澶氭鍑洪櫓");
+                map.put("info","鍑洪櫓浜轰竴骞村唴宸插嚭闄�"+cxcs+"娆�");
+                riskList.add(map);
+                settleClaims.setRiskTimesCx(Constants.ONE);
+            };
+        }
+        //鐤戜技閲嶅鎶ユ
+        if(StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportOpen())
+                && StringUtils.equals(riskConfigVO.getRiskRepeatReportOpen(),Constants.ONE+"")
+                && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTimeUnit())
+                && StringUtils.isNotBlank(riskConfigVO.getRiskRepeatReportTime())){
+            Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getMemberId,settleClaimsDTO.getMemberId())
+                    .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
+                    .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" HOUR)  ")
+                    .apply(riskConfigVO.getRiskRepeatReportTimeUnit().equals("2")," HAPPEN_TIME > DATE_SUB(now(), INTERVAL "+riskConfigVO.getRiskRepeatReportTime()+" DAY)  ")
+            );
+            if(cxcs > Constants.TWO){
+                Map<String,String> map = new HashMap<>();
+                map.put("title","鐤戜技閲嶅鎶ユ");
+                map.put("info","璇ュ嚭闄╀汉鍦�"+riskConfigVO.getRiskRepeatReportTime()+(riskConfigVO.getRiskRepeatReportTimeUnit().equals("1")?"灏忔椂":"澶�")+"鍐呭凡鎶ユ"+cxcs+"娆�");
+                riskList.add(map);
+                settleClaims.setRiskRepeat(Constants.ONE);
+            }
+        }
+
+
+        //绱㈣禂娆℃暟杩囧鎻愰啋
+        if(StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimesOpen())
+                && StringUtils.equals(riskConfigVO.getRiskClaimTimesOpen(),Constants.ONE+"")
+                && StringUtils.isNotBlank(riskConfigVO.getRiskClaimTimes())){
+            Integer cxcs = settleClaimsMapper.selectCount(new QueryWrapper<SettleClaims>().lambda()
+                    .eq(SettleClaims::getInsuranceApplyId,settleClaimsDTO.getInsuranceApplyId())
+                    .ne(Objects.nonNull(settleClaims.getId()),SettleClaims::getId,settleClaims.getId())
+                    .apply(" HAPPEN_TIME > DATE_SUB(now(), INTERVAL 365 DAY)  ")
+            );
+            if(cxcs > Integer.valueOf(riskConfigVO.getRiskClaimTimes())){
+                Map<String,String> map = new HashMap<>();
+                map.put("title","璇ヤ繚鍗曠储璧旀鏁拌繃澶�");
+                map.put("info","绱绱㈣禂娆℃暟宸插埌杈�"+cxcs+"娆�");
+                riskList.add(map);
+                settleClaims.setRiskTimesSp(Constants.ONE);
+            }
+        }
+
+        //璁捐鏁忔劅璇嶆眹
+        if(StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWordsOpen())
+                && StringUtils.equals(riskConfigVO.getRiskSensitiveWordsOpen(),Constants.ONE+"")
+                && StringUtils.isNotBlank(riskConfigVO.getRiskSensitiveWords())){
+            String [] words = riskConfigVO.getRiskSensitiveWords().split(",");
+            String sensitiveWord = ""; 
+            for (String word:words) {
+                if(settleClaims.getContent().indexOf(word)>=Constants.ZERO){
+                    if(Constants.equalsInteger(sensitiveWord.length(),Constants.ZERO)){
+                        sensitiveWord = word;
+                    }else{
+                        sensitiveWord = sensitiveWord + "銆�" + word ;
+                    }
+                } 
+            }
+            if(!Constants.equalsInteger(sensitiveWord.length(),Constants.ZERO)){
+                Map<String,String> map = new HashMap<>();
+                map.put("title","娑夊強鏁忔劅璇�");
+                map.put("info","妫�娴嬪埌鏁忔劅璇嶏細"+sensitiveWord);
+                riskList.add(map);
+                settleClaims.setRiskSensitive(sensitiveWord);
+            }
+        }
+
+        //鐤戜技鏂板憳宸ュ嚭闄�
+
+    }
 
     public void saveFile(SettleClaims settleClaims,SettleClaimsDTO settleClaimsDTO,LoginUserInfo loginUserInfo){
         multifileJoinMapper.delete(new QueryWrapper<Multifile>().lambda()

--
Gitblit v1.9.3