From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 04 七月 2025 17:56:41 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/core/utils/Constants.java |  537 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 471 insertions(+), 66 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index cf0fd7d..e50d3aa 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -2,12 +2,21 @@
 
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.IdcardUtil;
+import com.aliyun.auth.credentials.Credential;
+import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
+import com.aliyun.sdk.service.cloudauth20190307.AsyncClient;
+import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyRequest;
+import com.aliyun.sdk.service.cloudauth20190307.models.Id2MetaVerifyResponse;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.dao.business.dto.ApplyPowerDTO;
 import com.doumee.dao.business.dto.CountCyclePriceDTO;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.ApplyPowerVO;
 import com.doumee.dao.business.vo.ChangeDealTypeVO;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
+import com.google.gson.Gson;
+import darabonba.core.client.ClientOverrideConfiguration;
 import io.swagger.models.auth.In;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.compress.archivers.zip.Zip64Mode;
@@ -21,12 +30,38 @@
 import java.math.RoundingMode;
 import java.net.URL;
 import java.net.URLDecoder;
+import java.time.Instant;
 import java.time.LocalDate;
+import java.time.Period;
+import java.time.ZoneId;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.Date;
+import java.util.concurrent.CompletableFuture;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+
+import com.aliyun.auth.credentials.Credential;
+import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
+import com.aliyun.core.http.HttpClient;
+import com.aliyun.core.http.HttpMethod;
+import com.aliyun.core.http.ProxyOptions;
+import com.aliyun.httpcomponent.httpclient.ApacheAsyncHttpClientBuilder;
+import com.aliyun.sdk.service.cloudauth20190307.models.*;
+import com.aliyun.sdk.service.cloudauth20190307.*;
+import com.google.gson.Gson;
+import darabonba.core.RequestConfiguration;
+import darabonba.core.client.ClientOverrideConfiguration;
+import darabonba.core.utils.CommonUtil;
+import darabonba.core.TeaPair;
+
+//import javax.net.ssl.KeyManager;
+//import javax.net.ssl.X509TrustManager;
+import java.net.InetSocketAddress;
+import java.time.Duration;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.io.*;
 
 public class Constants {
 
@@ -99,6 +134,7 @@
     public static final String COMPANY_USER_APPLY ="COMPANY_USER_APPLY" ;
     public static final String INSURANCE ="INSURANCE" ;
     public static final String CONTRACT ="CONTRACT" ;
+    public static final String DISCUSS_PROBLEM_TYPE ="DISCUSS_PROBLEM_TYPE" ;
 
     public static final String SETTLE_FILE ="SETTLE_FILE" ;
     public static final String DU_FILE ="DU_FILE" ;
@@ -194,6 +230,13 @@
                 return  Constants.equalsInteger(model.getStatus(), UnionApplyStatus.FINISH.getKey())?"淇濋櫓鐢熸晥姝㈡湡":"棰勮鐢熸晥姝㈡湡";
         }
 
+    }
+
+    public static BigDecimal getBigDecimalNoNull(BigDecimal bigDecimal){
+        if(Objects.isNull(bigDecimal)){
+            return  BigDecimal.ZERO;
+        }
+        return bigDecimal;
     }
 
     /**
@@ -308,6 +351,38 @@
         }
         return Constants.countPriceVO(countCyclePriceDTO.getStartDate(),countCyclePriceDTO.getSolutions());
     }
+
+    public static int calculateAge(String idCard,Date dateDate) {
+        try{
+            Integer happenYear = Integer.valueOf(DateUtil.dateToString(dateDate,"yyyy"));
+            Integer birthYear = Integer.valueOf(idCard.substring(6,10));
+            return happenYear - birthYear;
+        }catch (Exception e){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"骞撮緞淇℃伅閿欒");
+        }
+
+
+
+
+
+//        if (idCard == null || idCard.length() != 18) {
+//            throw new IllegalArgumentException("韬唤璇佸彿鐮佸繀椤绘槸18浣�");
+//        }
+//
+//        // 鎻愬彇鍑虹敓鏃ユ湡
+//        String birthDateStr = idCard.substring(6, 14); // 渚嬪锛�19900101
+//        LocalDate birthDate = LocalDate.parse(birthDateStr);
+//        Instant instant = dateDate.toInstant();
+//        // 鑾峰彇褰撳墠鏃ユ湡
+//        LocalDate currentDate = instant.atZone(ZoneId.systemDefault()).toLocalDate(); // 杞崲涓� LocalDate
+//
+//        // 璁$畻骞撮緞
+//        Period period = Period.between(birthDate, currentDate);
+//        int age = period.getYears(); // 鐩存帴鑾峰彇骞翠唤宸嵆涓哄勾榫�
+
+//        return age;
+    }
+
 
     public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){
         CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
@@ -768,6 +843,9 @@
         LP_STAMP_FILE(31, "淇濋櫓鍏徃鐞嗚禂鐩栫珷鏂囦欢", "淇濋櫓鍏徃鐞嗚禂鐩栫珷鏂囦欢"),
         LP_FILE(32, "淇濋櫓鍏徃涓婁紶鐞嗚禂鏉愭枡涓�瑙堣〃", "淇濋櫓鍏徃涓婁紶鐞嗚禂鏉愭枡涓�瑙堣〃"),
         LP_OTHER_FILE(33, "鐞嗚禂鍏朵粬鏉愭枡", "鐞嗚禂鍏朵粬鏉愭枡"),
+        LP_PAY_FILE(34, "鎵撴鍑瘉", "鎵撴鍑瘉"),
+        LP_DZBD_FILE(35, "鐢靛瓙淇濆崟", "鐢靛瓙淇濆崟"),
+        LP_SUPPLEMENT_FILE(36, "琛ュ厖鏉愭枡", "琛ュ厖鏉愭枡"),
 
         ;
         // 鎴愬憳鍙橀噺
@@ -884,14 +962,7 @@
 
     }
 
-    public static void main(String[] args) {
-         System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_HALF_UP));
-        System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_DOWN));
-//        System.out.println(IdcardUtil.isValidCard("340621199310134818"));
-//        System.out.println(IdcardUtil.isValidCard("341621199310134818"));
 
-//        System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}");
-    }
     /**
      * 鐢ㄦ埛绫诲瀷 0绯荤粺鐢ㄦ埛 1浼佷笟鐢ㄦ埛 2鏈嶅姟鏈烘瀯绠$悊鍛� 3鏈嶅姟鏈烘瀯瀛愯处鍙� 4缁煎悎鏈嶅姟鍗曚綅绠$悊鍛� 5缁煎悎鏈嶅姟鍗曚綅瀛愯处鍙� 6涓撳 7鍘垮尯鐢ㄦ埛 8甯傚眬鐢ㄦ埛
      */
@@ -1621,10 +1692,11 @@
         CHANGE_FACTORY(2, "鍛樺伐鎹㈠巶鐢宠","淇濋櫓鏂规"),
         DISPATCH_UNIT(3, "娲鹃仯鍗曚綅鐢宠","娲鹃仯鍗曚綅"),
         TAXES(4, "寮�绁ㄧ敵璇�","寮�绁ㄩ噾棰�"),
-        SETTLE_CLAIMS(5, "鎶ユ鐞嗚禂","鎶ユ浜�"),
+        SETTLE_CLAIMS(5, "鐞嗚禂鎻愰啋","鎶ユ淇℃伅"),
         CONTRACT(6, "鍚堝悓绛剧讲","鍚堝悓绛剧讲"),
         SOLUTIONS(7, "鏂规绛剧讲","鏂规绛剧讲"),
         COMPANY_USER_APPLY(8, "闆嗗洟鐢宠","闆嗗洟鐢宠"),
+        SETTLE_CLAIMS_APPLY_ADMIN(9, "鎶ユ鐞嗚禂","寰呯珛妗�"),
         ;
         // 鎴愬憳鍙橀噺
         private int key;
@@ -1679,19 +1751,36 @@
 
     public  enum NoticeType {
 
-        ZERO(0, "寰呭鏍�","","","寰呭鏍�","寰呭鐞�","澶勭悊涓�","寰呯缃�","寰呯缃�"),
-        ONE(1, "浼佷笟寰呯缃�","","","宸ョ寰呭鏍�","","宸茬粨妗�","",""),
-        TWO(2, "寰呭嚭鍗�","寰呭鏍�","寰呭鏍�","","","","",""),
-        THREE(3, "鐢宠閫�鍥�","鐢宠閫�鍥�","鐢宠閫�鍥�","","","","",""),
-        FOUR(4, "宸查��鍥�","宸查��鍥�","宸查��鍥�","","","宸叉挙閿�","",""),
-        FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","","","",""),
+        ZERO(0, "寰呭鏍�","","","寰呭鏍�","寰呭鐞�","椋庨櫓妗堜欢寰呭鏍�","寰呯缃�","寰呯缃�"),
+        //鐞嗚禂閫氱煡浼佷笟锛堥潪寰呭姙锛�
+        ONE(1, "浼佷笟寰呯缃�","","","宸ョ寰呭鏍�","","椋庨櫓妗堜欢绔嬫閫�鍥�","",""),
+        TWO(2, "寰呭嚭鍗�","寰呭鏍�","寰呭鏍�","","","宸茬珛妗堝緟鍙楃悊","",""),
+        THREE(3, "鐢宠閫�鍥�","鐢宠閫�鍥�","鐢宠閫�鍥�","","","宸插彈鐞嗭紝闇�瑕佽ˉ鍏呮潗鏂�","",""),
+        //鐞嗚禂閫氱煡浼佷笟锛堥潪寰呭姙锛�
+        FOUR(4, "宸查��鍥�","宸查��鍥�","宸查��鍥�","","","宸叉嫆缁濆彈鐞�","",""),
+        FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","","鍟嗚寰呴瀵煎鎵�","",""),
         //缁繚閫氱煡
-        SIX(6, "","","","","","","",""),
-        //鍟嗘埛绔� 濮旀墭淇� - 鎶曚繚寰呭鏍� 鍔犲噺淇� 鎹㈠巶 寰呭鏍�
-        SEVEN(7, "寰呭鏍�","寰呭鏍�","寰呭鏍�","","","","",""),
+        SIX(6, "","","","","","鍟嗚瀹℃壒鎷掔粷","",""),
+        //鍟嗘埛绔� 濮旀墭淇� - 鎶曚繚寰呭鏍� 鍔犲噺淇� 鎹㈠巶 寰呭鏍�, 鐞嗚禂閫氱煡浼佷笟锛堥潪寰呭姙锛�
+        SEVEN(7, "寰呭鏍�","寰呭鏍�","寰呭鏍�","","","鍟嗚瀹℃壒鎷掔粷閫氱煡","",""),
         //寰呭瀹�
-        EIGHT(8, "寰呭鏍�","","","","","","",""),
-        NINE(9, "","","","","","","",""),
+        EIGHT(8, "寰呭鏍�","","","","","寰呯悊绠�","",""),
+        NINE(9, "","","","","","寰呮牳璧�","",""),
+        TEN(10, "","","","","","寰呮牳璧旂‘璁�","",""),
+        ELEVEN(11, "","","","","","璧斾粯閲戦宸插彉鏇�","",""),
+        TWELVE(12, "","","","","","寰呯粨妗�","",""),
+        //鐞嗚禂閫氱煡骞冲彴锛堥潪浠e姙锛�
+        THIRTEEN(13, "","","","","","宸茬粨妗堬紝璧斾粯娆鹃」灏嗗湪1-3涓伐浣滄棩鍐呭埌璐�","",""),
+        //鐞嗚禂閫氱煡骞冲彴锛堥潪浠e姙锛�
+        FOURTEEN(14, "","","","","","宸叉挙妗�","",""),
+        //鐞嗚禂閫氱煡浼佷笟锛堥潪寰呭姙锛�
+        FIFTEEN(15, "","","","","","宸插彈鐞嗗緟鐞嗙畻","",""),
+        //鐞嗚禂閫氱煡浼佷笟(闈炲緟鍔烇級
+        SIXTEEN(16, "","","","","","鍙楃悊瀹℃壒涓�","",""),
+        //鐞嗚禂閫氱煡浼佷笟(闈炲緟鍔烇級
+        SEVENTEEN(17, "","","","","","宸茬悊绠楀緟鏍歌禂","",""),
+        //鐞嗚禂閫氱煡浼佷笟(闈炲緟鍔烇級
+        EIGHTEEN(18, "","","","","","寰呯粨妗堬紝璧斾粯閲戦宸插彉鏇�","",""),
         ;
 
         // 鎴愬憳鍙橀噺
@@ -1935,32 +2024,32 @@
     public  enum SettleClaimsStatus {
         //鐘舵�� 0鏆傚瓨涓� 1宸叉姤妗� 2寰呯珛妗� 3宸茬珛妗� 4绔嬫閫�鍥� 5寰呭彈鐞� 6鎷掔粷鍙楃悊 7鍟嗚寰呭鎵�
         // 8鍟嗚瀹℃壒鎷掔粷 9宸插彈鐞� 10寰呮牳璧�  11宸叉牳璧� 12宸茬‘璁ら噾棰� 13宸茬粨妗� 14宸叉挙妗�
-        WAIT_ACCEPTANCE(0, "鏆傚瓨涓�"),
-        RETURN_ACCEPTANCE(1, "宸叉姤妗�"),
-        DEAL_ING(2, "寰呯珛妗� 锛堝純鐢級"),
-        CONFIRM_INFORMATION(3, "宸茬珛妗�"),
-        FINISH_ACCEPTANCE(4, "绔嬫閫�鍥�"),
-        WAIT_DEAL(5, "寰呭彈鐞�"),
-        REJECT_DEAL(6, "鎷掔粷鍙楃悊"),
-        WAIT_DISCUSS_AUDIT(7, "寰呭晢璁鎵�"),
-        WAIT_DISCUSS_REJECT(8, "鍟嗚瀹℃壒鎷掔粷"),
-        ACCEPTANCE(9, "宸插彈鐞�"),//寰呯悊绠�
-        WAIT_AUDIT_COMPENSATION(10, "寰呮牳璧�"),
-        COMPENSATION(11, "宸叉牳璧�"),
-        CONFIRM_FEE(12, "宸茬‘璁ら噾棰�"),
-        CLOSE_CASE(13, "宸茬粨妗�"),
-        RETURN(14, "宸叉挙妗�"),
+        WAIT_ACCEPTANCE(0, "鏆傚瓨涓�",0),
+        RETURN_ACCEPTANCE(1, "宸叉姤妗�",1),
+        DEAL_ING(2, "寰呯珛妗�",0),//寮冪敤
+        CONFIRM_INFORMATION(3, "宸茬珛妗�",2),
+        FINISH_ACCEPTANCE(4, "绔嬫閫�鍥�",2),
+        WAIT_DEAL(5, "寰呭彈鐞�",3),//寮冪敤
+        REJECT_DEAL(6, "鎷掔粷鍙楃悊",3),
+        WAIT_DISCUSS_AUDIT(7, "寰呭晢璁鎵�",3),
+        WAIT_DISCUSS_REJECT(8, "鍟嗚瀹℃壒鎷掔粷",3),
+        ACCEPTANCE(9, "宸插彈鐞�",3),//寰呯悊绠�
+        WAIT_AUDIT_COMPENSATION(10, "寰呮牳璧�",4),
+        COMPENSATION(11, "宸叉牳璧�",5),
+        CONFIRM_FEE(12, "寰呯粨妗�",5),
+        CLOSE_CASE(13, "宸茬粨妗�",6),
+        RETURN(14, "宸叉挙妗�",7),
         ;
         // 鎴愬憳鍙橀噺
         private String name;//涓氬姟鎻忚堪
         private int key;//涓氬姟鐘舵��
-        private int companyParentKey;//浼佷笟涓绘祦绋�
-        private int platformParentKey;//骞冲彴涓绘祦绋�
+        private int parentKey;//涓绘祦绋�  1=鎶ユ 2=绔嬫 3=鍙楃悊 4=鐞嗙畻 5=鏍歌禂 6=缁撴/宸叉挙妗�
 
         // 鏋勯�犳柟娉�
-        SettleClaimsStatus(int key, String name) {
+        SettleClaimsStatus(int key, String name,int parentKey) {
             this.name = name;
             this.key = key;
+            this.parentKey = parentKey;
         }
         // 鏅�氭柟娉�
         public static String getName(int index) {
@@ -1987,20 +2076,26 @@
         public void setKey(int key) {
             this.key = key;
         }
+
+        public int getParentKey() {
+            return parentKey;
+        }
+
+        public void setParentKey(int parentKey) {
+            this.parentKey = parentKey;
+        }
     }
-
-
 
     public  enum SettleClaimsLogType {
         UPLOAD(0, "鎻愪氦鎶ユ","鎻愪氦鎰忚锛�${param}"),
         PLATFORM_RETURN(1, "骞冲彴閫�鍥�","鎻愪氦鎰忚锛�${param}"),
         PLATFORM_CONFIRM_INFORMATION(2, "骞冲彴纭璧勬枡",""),
-        PLATFORM_FINISH(3, "缁撴鎻愪氦","鎻愪氦鎰忚锛�${param}"),
+        PLATFORM_FINISH(3, "宸茬粨妗�","鎻愪氦鎰忚锛�${param}"),
         UPDATE_DATA(4, "淇敼淇℃伅","鎻愪氦鎰忚锛�${param}"),
         SUPPLEMENT(5, "琛ュ厖璇存槑","鎻愪氦鎰忚锛�${param}"),
         PLATFORM_LP_DEAL(6, "骞冲彴鐞嗚禂澶勭悊","宸插湪骞冲彴瀹屾垚鐞嗚禂"),
-        PLATFORM_REMARK(7, "骞冲彴澶囨敞鏍囩","${param}"),
-        PLATFORM_ADDCODE(8, "骞冲彴娣诲姞鎶ユ鍙�","澶囨鍙凤細${param}"),
+        PLATFORM_REMARK(7, "澶囨敞鏍囩","${param}"),
+        PLATFORM_ADDCODE(8, "骞冲彴淇敼鎶ユ鍙�","澶囨鍙凤細${param}"),
         PLATFORM_UN_AGREE_BACK(9, "浼佷笟涓嬭浇璧勬枡",""),
         PLATFORM_DOWNLOAD(10, "骞冲彴涓嬭浇璧勬枡",""),
         PLATFORM_CHECK_PASS(11, "骞冲彴涓婁紶璧勬枡",""),
@@ -2017,6 +2112,8 @@
         PLATFORM_UPD_FEE(22, "鏍歌禂-淇敼閲戦",""),
         CONFIRM_FEE(22, "鏍歌禂-瀹㈡埛纭閲戦","宸茬‘璁ら噾棰�"),
         UPD_CASE_TYPE(23, "鍙楃悊-纭妗堜欢绫诲瀷","宸茬‘璁ゆ浠剁被鍨�"),
+        UPD_HURT_TYPE(24, "淇敼浼ゆ畫绫诲瀷淇℃伅","鏄惁浼ゆ畫淇敼涓衡�渰param}鈥�"),
+        UPD_RECEIVE_INFO(25, "鏀舵淇℃伅鍙樻洿","淇敼鏀舵淇℃伅"),
         ;
         // 鎴愬憳鍙橀噺
         private String name;
@@ -2032,7 +2129,7 @@
 
         // 鏅�氭柟娉�
         public static String getName(int index) {
-            for (ApplyLogType c : ApplyLogType.values()) {
+            for (SettleClaimsLogType c : SettleClaimsLogType.values()) {
                 if (c.getKey() == index) {
                     return c.name;
                 }
@@ -2040,7 +2137,7 @@
             return null;
         }
         public static String getInfo(int index) {
-            for (ApplyLogType c : ApplyLogType.values()) {
+            for (SettleClaimsLogType c : SettleClaimsLogType.values()) {
                 if (c.getKey() == index) {
                     return c.info;
                 }
@@ -2072,6 +2169,94 @@
         public void setInfo(String info) {
             this.info = info;
         }
+    }
+
+
+    public  enum SettleClaimsLogParentStatus {
+        BA(1, "鎶ユ","宸叉姤妗�","宸叉姤妗�"),
+        LA(2, "绔嬫","宸茬珛妗�","寰呯珛妗�"),
+        SL(3, "鍙楃悊","宸插彈鐞�","寰呭彈鐞�"),
+        LS(4, "鐞嗙畻","宸茬悊绠�","寰呯悊绠�"),
+        HP(5, "鏍歌禂","宸叉牳璧�","寰呮牳璧�"),
+        JA(6, "缁撴","宸茬粨妗�","寰呯粨妗�"),
+        ;
+        // 鎴愬憳鍙橀噺
+        private String name;
+        private String info;
+        private String waitInfo;
+        private int key;
+
+        // 鏋勯�犳柟娉�
+        SettleClaimsLogParentStatus(int key, String name,String info,String waitInfo) {
+            this.name = name;
+            this.info = info;
+            this.key = key;
+            this.waitInfo = waitInfo;
+        }
+
+        // 鏅�氭柟娉�
+        public static String getName(int index) {
+            for (SettleClaimsLogParentStatus c : SettleClaimsLogParentStatus.values()) {
+                if (c.getKey() == index) {
+                    return c.name;
+                }
+            }
+            return null;
+        }
+
+        // 鏅�氭柟娉�
+        public static SettleClaimsLogParentStatus getAll(int index) {
+            for (SettleClaimsLogParentStatus c : SettleClaimsLogParentStatus.values()) {
+                if (c.getKey() == index) {
+                    return c;
+                }
+            }
+            return null;
+        }
+
+        public static String getInfo(int index) {
+            for (SettleClaimsLogParentStatus c : SettleClaimsLogParentStatus.values()) {
+                if (c.getKey() == index) {
+                    return c.info;
+                }
+            }
+            return null;
+        }
+
+        // get set 鏂规硶
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+
+        public void setInfo(String info) {
+            this.info = info;
+        }
+
+
+        public String getWaitInfo() {
+            return waitInfo;
+        }
+
+        public void setWaitInfo(String waitInfo) {
+            this.waitInfo = waitInfo;
+        }
+
     }
 
 
@@ -2640,28 +2825,36 @@
      * 璧斾粯椤�
      */
     public  enum compensation{
-        YL_COMPENSATION(0, "鍖荤枟鐞嗚禂",1),
-        WG_COMPENSATION(1, "璇伐鐞嗚禂",1),
-        SC_COMPENSATION(2, "浼ゆ畫鐞嗚禂",1),
-        SW_COMPENSATION(3, "姝讳骸鐞嗚禂",1),
-        HSF_FEE(4, "浼欓璐�",2),
-        XY_FEE(5, "缁尰璐�",2),
-        YY_FEE(6, "钀ュ吇璐�",2),
-        HL_FEE(7, "鎶ょ悊璐�",2),
-        ZDJB_FEE(8, "閲嶅ぇ鐤剧梾璧斿伩閲�",2),
-        TB_FEE(9, "鐗瑰埆璐圭敤",2),
-        ZS_FEE(10, "浣忓璐�",2),
-        JT_FEE(11, "娲ヨ创",2),
-        CJ_FEE(12, "娈嬬柧璧斿伩閲�",2),
-        BFYR_FEE(13, "琚姎鍏讳汉鐢熸椿璐�",2),
-        SCF_FEE(14, "涓ц懍璐�",2),
-        JSFXJ_FEE(15, "绮剧鎶氭仱閲�",2),
-        JD_FEE(16, "閴村畾璐�",2),
-        SS_FEE(17, "璇夎璐�",2),
-        LS_FEE(18, "寰嬪笀璐�",2),
-        TRAFFIC_FEE(19, "浜ら�氳垂",2),
-        CJQJ_FEE(20, "娈嬬柧鍣ㄥ叿璐�",2),
-        QT_FEE(21, "鍏朵粬璐圭敤",2),
+        YL_COMPENSATION(0, "鍖荤枟鐞嗚禂",0),
+        WG_COMPENSATION(1, "璇伐鐞嗚禂",0),
+        SC_COMPENSATION(2, "浼ゆ畫鐞嗚禂",0),
+        SW_COMPENSATION(3, "姝讳骸鐞嗚禂",0),
+        HSF_FEE(4, "浼欓璐�",1),
+        XY_FEE(5, "缁尰璐�",1),
+        YY_FEE(6, "钀ュ吇璐�",1),
+        HL_FEE(7, "鎶ょ悊璐�",1),
+        ZDJB_FEE(8, "閲嶅ぇ鐤剧梾璧斿伩閲�",1),
+        TB_FEE(9, "鐗瑰埆璐圭敤",1),
+        ZS_FEE(10, "浣忓璐�",1),
+        JT_FEE(11, "娲ヨ创",1),
+        CJ_FEE(12, "娈嬬柧璧斿伩閲�",1),
+        BFYR_FEE(13, "琚姎鍏讳汉鐢熸椿璐�",1),
+        SCF_FEE(14, "涓ц懍璐�",1),
+        JSFXJ_FEE(15, "绮剧鎶氭仱閲�",1),
+        JD_FEE(16, "閴村畾璐�",1),
+        SS_FEE(17, "璇夎璐�",1),
+        LS_FEE(18, "寰嬪笀璐�",1),
+        TRAFFIC_FEE(19, "浜ら�氳垂",1),
+        CJQJ_FEE(20, "娈嬬柧鍣ㄥ叿璐�",1),
+        QT_FEE(21, "鍏朵粬璐圭敤",1),
+        ZFPJEYPF_FEE(22, "鎬诲彂绁ㄩ噾棰濊嵂鍝佽垂",2),
+        ZL_FEE(23, "璇婄枟璐�",2),
+        CL_FEE(24, "鏉愭枡璐�",2),
+        ZKJJE_FEE(25, "鎬绘墸鍑忛噾棰�",2),
+        BFZF_FEE(26, "閮ㄥ垎鑷垂",2),
+        QZF_FEE(27, "鍏ㄨ嚜璐归噾棰�",2),
+        BHL_FEE(28, "涓嶅悎鐞嗚垂鐢�",2),
+        DSFGF_FEE(29, "绗笁鏂圭粰浠樿垂鐢�",2),
         ;
         // 鎴愬憳鍙橀噺
         private String name;
@@ -2704,5 +2897,217 @@
 
     }
 
+    public static void  initApplyStatus(InsuranceApply apply){
+        apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus()));
+        if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+                || Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())){
+            //濡傛灉宸插畬鎴�
+            if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){
+                apply.setStatusCollect(Constants.THREE);//宸茶繃鏈�
+            }
+        }
+        Constants.setServiceDays(apply);
+        apply.setStatusInfo(Constants.ApplyCollectStatus.getName(apply.getStatusCollect()));
+        if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+                || Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()) ){
+            if(apply.getStartTime().getTime()>System.currentTimeMillis()){
+                apply.setStatusInfo("寰呯敓鏁�");
+            }else if(apply.getEndTime().getTime()<System.currentTimeMillis()){
+                apply.setStatusInfo("宸茶繃鏈�");
+            }else{
+                apply.setStatusInfo("淇濋殰涓�");
+            }
+        }
+    }
+
+    public static void setServiceDays(InsuranceApply insuranceApply) {
+        //璁剧疆鍦ㄤ繚鏃堕暱锛堝ぉ鏁帮級
+        insuranceApply.setServiceDays(Constants.ZERO);
+        if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+                || insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){
+            //濡傛灉褰撳墠鏃堕棿澶т簬缁撴潫鏃ユ湡 鍒欎娇鐢ㄧ粨鏉熸棩鏈熷姣斿紑濮嬫棩鏈�
+            if(DateUtil.compareDate(new Date(),insuranceApply.getEndTime())>=Constants.ZERO){
+                insuranceApply.setServiceDays(
+                        DateUtil.daysBetweenDates(insuranceApply.getEndTime(),insuranceApply.getStartTime())+1
+                );
+            }else if(DateUtil.compareDate(insuranceApply.getStartTime(),new Date())>=Constants.ZERO){
+                //鏈紑濮�
+                insuranceApply.setServiceDays(Constants.ZERO);
+            }else{
+                insuranceApply.setServiceDays(DateUtil.daysBetweenDates(new Date(),insuranceApply.getStartTime())+1);
+            }
+        }
+    }
+
+    public static ApplyPowerVO getApplyPowerStatic(ApplyPowerDTO applyPowerDTO, InsuranceApply insuranceApply, Solutions solutions){
+        if(Objects.isNull(applyPowerDTO)
+                || Objects.isNull(applyPowerDTO.getApplyId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍙傛暟閿欒");
+        }
+        if(Objects.isNull(applyPowerDTO.getBeginDate())){
+            applyPowerDTO.setBeginDate(new Date());
+        }
+        ApplyPowerVO applyPowerVO = new ApplyPowerVO();
+        //鑾峰彇鏂规 缁撴潫鏃堕棿
+        Date endTime = insuranceApply.getEndTime();
+        //鏌ヨ褰撳墠鍘诲姞淇濈殑寮�濮嬫棩鏈�  yyyy-MM-dd HH:mm:ss 2024-10-29 00:00:00
+        Date addStartDate = DateUtil.getMontageDate(
+                DateUtil.afterDateByType(applyPowerDTO.getBeginDate(),Constants.ZERO,solutions.getAddValidDays()),
+                1
+        );
+        applyPowerVO.setAddStartDate(addStartDate);
+        //鍔犱繚鐢熸晥鏃ユ湡澶т簬 淇濆崟缁撴潫鏃ユ湡 鍒欎笉鍙互杩涜鍔犱繚
+        if(addStartDate.getTime()>=endTime.getTime()){
+            applyPowerVO.setAddTrue(Constants.ONE);
+        }else{
+            applyPowerVO.setAddTrue(Constants.ZERO);
+        }
+        //鏌ヨ褰撳墠鍘诲噺淇濈殑寮�濮嬫棩鏈�  yyyy-MM-dd HH:mm:ss 2024-10-29 00:00:00
+        Date delStartDate = DateUtil.getMontageDate(
+                DateUtil.afterDateByType(applyPowerDTO.getBeginDate(),Constants.ZERO,solutions.getAddValidDays()),
+                1
+        );
+        applyPowerVO.setDelStartDate(delStartDate);
+        //鍔犱繚鐢熸晥鏃ユ湡澶т簬 淇濆崟缁撴潫鏃ユ湡 鍒欎笉鍙互杩涜鍑忎繚
+        if(delStartDate.getTime()>=endTime.getTime()){
+            applyPowerVO.setDelTrue(Constants.ONE);
+        }else{
+            applyPowerVO.setDelTrue(Constants.ZERO);
+        }
+        return applyPowerVO;
+    }
+
+    public static void main(String[] args) throws Exception {
+//        System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_HALF_UP));
+//        System.out.println(BigDecimal.valueOf(3.45678).setScale(2,BigDecimal.ROUND_DOWN));
+//        System.out.println(IdcardUtil.isValidCard("340621199310134818"));
+//        System.out.println(IdcardUtil.isValidCard("341621199310134818"));
+
+//        System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}");
+
+//        Constants constants = new Constants();
+//        constants.test("LTAI5tRBTeQKoeUs41yVdW4F","rYHEOw2l7AooAOz88JSZ2aSQxfQQTS","340621199310134818","浠诲悍");
+
+
+
+        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
+                // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
+                .accessKeyId("LTAI5tKzCBb4CU1bwUfSoakP")
+                .accessKeySecret("7HNswKVfXJkSmiQDTT5wL3KjH1oS16")
+                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token
+                .build());
+
+        // Configure the Client
+        AsyncClient client = AsyncClient.builder()
+                .region("cn-hangzhou") // Region ID
+                //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
+                .credentialsProvider(provider)
+                //.serviceConfiguration(Configuration.create()) // Service-level configuration
+                // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
+                .overrideConfiguration(
+                        ClientOverrideConfiguration.create()
+                                // Endpoint 璇峰弬鑰� https://api.aliyun.com/product/Cloudauth
+                                .setEndpointOverride("cloudauth.aliyuncs.com")
+                        //.setConnectTimeout(Duration.ofSeconds(30))
+                )
+                .build();
+
+        // Parameter settings for API request
+        Id2MetaVerifyRequest id2MetaVerifyRequest = Id2MetaVerifyRequest.builder()
+                .identifyNum("340621199310134818")
+                .userName("浠诲悍")
+                .paramType("normal")
+                // Request-level configuration rewrite, can set Http request parameters, etc.
+                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
+                .build();
+
+        // Asynchronously get the return value of the API request
+        CompletableFuture<Id2MetaVerifyResponse> response = client.id2MetaVerify(id2MetaVerifyRequest);
+        // Synchronously get the return value of the API request
+        Id2MetaVerifyResponse resp = response.get();
+        System.out.println(new Gson().toJson(resp));
+        // Asynchronous processing of return values
+        /*response.thenAccept(resp -> {
+            System.out.println(new Gson().toJson(resp));
+        }).exceptionally(throwable -> { // Handling exceptions
+            System.out.println(throwable.getMessage());
+            return null;
+        });*/
+
+        // Finally, close the client
+        client.close();
+    }
+
+    public void test(String accessKeyId,String accessKeySecret,String identifyNum,String name) throws  Exception{
+
+// HttpClient Configuration
+        /*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
+                .connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds
+                .responseTimeout(Duration.ofSeconds(10)) // Set the response timeout time, the default is 20 seconds
+                .maxConnections(128) // Set the connection pool size
+                .maxIdleTimeOut(Duration.ofSeconds(50)) // Set the connection pool timeout, the default is 30 seconds
+                // Configure the proxy
+                .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("<your-proxy-hostname>", 9001))
+                        .setCredentials("<your-proxy-username>", "<your-proxy-password>"))
+                // If it is an https connection, you need to configure the certificate, or ignore the certificate(.ignoreSSL(true))
+                .x509TrustManagers(new X509TrustManager[]{})
+                .keyManagers(new KeyManager[]{})
+                .ignoreSSL(false)
+                .build();*/
+
+        // Configure Credentials authentication information, including ak, secret, token
+        StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
+                // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
+                .accessKeyId(System.getenv(accessKeyId))
+                .accessKeySecret(System.getenv(accessKeySecret))
+                //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token
+                .build());
+
+        // Configure the Client
+        AsyncClient client = AsyncClient.builder()
+                .region("cn-hangzhou") // Region ID
+                //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
+                .credentialsProvider(provider)
+                //.serviceConfiguration(Configuration.create()) // Service-level configuration
+                // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
+                .overrideConfiguration(
+                        ClientOverrideConfiguration.create()
+                                // Endpoint 璇峰弬鑰� https://api.aliyun.com/product/Cloudauth
+                                .setEndpointOverride("cloudauth.aliyuncs.com")
+                        //.setConnectTimeout(Duration.ofSeconds(30))
+                )
+                .build();
+
+        // Parameter settings for API request
+        Id2MetaVerifyRequest id2MetaVerifyRequest = Id2MetaVerifyRequest.builder()
+                .identifyNum(identifyNum)
+                .userName(name)
+                .paramType("normal")
+                // Request-level configuration rewrite, can set Http request parameters, etc.
+                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
+                .build();
+
+        // Asynchronously get the return value of the API request
+        CompletableFuture<Id2MetaVerifyResponse> response = client.id2MetaVerify(id2MetaVerifyRequest);
+        // Synchronously get the return value of the API request
+        Id2MetaVerifyResponse resp = response.get();
+        System.out.println(new Gson().toJson(resp));
+        // Asynchronous processing of return values
+        /*response.thenAccept(resp -> {
+            System.out.println(new Gson().toJson(resp));
+        }).exceptionally(throwable -> { // Handling exceptions
+            System.out.println(throwable.getMessage());
+            return null;
+        });*/
+
+        // Finally, close the client
+        client.close();
+
+    }
+
+
+
+
+
 
 }

--
Gitblit v1.9.3