From 949cd8af9dcb6a5a8872c1b1c7d71bad92081d7d Mon Sep 17 00:00:00 2001
From: duxuecheng <641367895@qq.com>
Date: Tue, 5 Mar 2024 17:38:23 +0800
Subject: [PATCH] =?UTF-8?q?feature:=202024=E5=B9=B43=E6=9C=885=E6=97=A517:?=
 =?UTF-8?q?38:15?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../web/dto/result/SalaryConfigResult.java    |  15 ++
 .../web/dto/utils/Md5Utils.java               |  41 ++++
 .../dto/ThirdOperateSalaryDeclare.java        | 190 ++++++++++++++++++
 .../business/enums/ConfigKeyEnum.java         |  16 ++
 .../ChildCareFeeConfigServiceImpl.java        |  28 +++
 .../service/ThirdSalaryServiceImpl.java       |  18 ++
 6 files changed, 308 insertions(+)
 create mode 100644 ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/utils/Md5Utils.java
 create mode 100644 ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dto/ThirdOperateSalaryDeclare.java

diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/SalaryConfigResult.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/SalaryConfigResult.java
index c2f0e34..1252b9d 100644
--- a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/SalaryConfigResult.java
+++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/result/SalaryConfigResult.java
@@ -33,22 +33,37 @@ public class SalaryConfigResult {
      * 钖祫鐢虫姤棰勭畻棰濆害缂栧彿
      */
     private String salaryBudgetAmountCode;
+
     /**
      * 钖祫鐢虫姤閮ㄩ棬
      */
     private String salaryDepartment;
+
     /**
      * 钖祫鐢虫姤宸ヨ祫椤�
      */
     private String salaryItem;
+
     /**
      * 钖祫鐢虫姤鍙戞斁閾惰
      */
     private String salaryBank;
+
+    /**
+     * 鏄惁绾夸笂瀹℃壒
+     */
+    private Boolean salaryIsThree;
+
     /**
      * 钖祫鐢虫姤鎺ㄩ€佸湴鍧€
      */
     private String salarySendRequestUrl;
 
 
+    private String salarySystemId;
+
+
+    private String salaryPrivateKey;
+
+
 }
diff --git a/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/utils/Md5Utils.java b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/utils/Md5Utils.java
new file mode 100644
index 0000000..2a06c3b
--- /dev/null
+++ b/ServiceSiteCommon/facade/src/main/java/com/seasky/nurseryFeesclaims/web/dto/utils/Md5Utils.java
@@ -0,0 +1,41 @@
+package com.seasky.nurseryFeesclaims.web.dto.utils;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @author 64136
+ * @date 2024/03/05 16:37
+ **/
+public class Md5Utils {
+
+    /**
+     * Md5 鍔犲瘑
+     *
+     * @param plainText
+     * @return
+     */
+    public static String stringToMd5(String plainText) {
+        String re = null;
+        byte encrypt[];
+        try {
+            byte[] tem = plainText.getBytes();
+            MessageDigest md5 = MessageDigest.getInstance("md5");
+            md5.reset();
+            md5.update(tem);
+            encrypt = md5.digest();
+            StringBuilder sb = new StringBuilder();
+            for (byte t : encrypt) {
+                String s = Integer.toHexString(t & 0xFF);
+                if (s.length() == 1) {
+                    s = "0" + s;
+                }
+                sb.append(s);
+            }
+            re = sb.toString();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        return re;
+    }
+}
diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dto/ThirdOperateSalaryDeclare.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dto/ThirdOperateSalaryDeclare.java
new file mode 100644
index 0000000..134522a
--- /dev/null
+++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/dto/ThirdOperateSalaryDeclare.java
@@ -0,0 +1,190 @@
+package com.seasky.nurseryFeesclaims.business.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 鍒涘缓钖祫鍗曟嵁
+ *
+ * @author 64136
+ * @date 2024/03/05 16:41
+ **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ThirdOperateSalaryDeclare {
+
+    /**
+     * 绯荤粺ID
+     */
+    private String SystemID;
+
+    /**
+     * 鐢虫姤鍗�
+     */
+    private InputModel inputModel;
+
+    /**
+     * 鐢虫姤鍗曟槑缁�
+     */
+    private List<InputDetailModel> inputDetailModel;
+
+    private String Token;
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class InputModel {
+        /**
+         * 璐﹀鍚嶇О
+         */
+        private String LatoryName;
+        /**
+         * 鐢虫姤鏈熼棿骞翠唤
+         */
+        private Integer Year;
+        /**
+         * 鐢虫姤鏈熼棿鏈堜唤
+         */
+        private Integer Month;
+        /**
+         * 鐢虫姤浜哄憳鍒嗙被
+         * (0鏁欏伐锛�1瀛︾敓锛�2鏍″)
+         */
+        private Integer PersonCategory;
+        /**
+         * 鍙戞斁閮ㄩ棬缂栫爜
+         */
+        private String DeptCode;
+        /**
+         * 鍙戞斁閾惰鍚嶇О
+         */
+        private String BankName;
+
+        /**
+         * 鐢虫姤浜哄伐鍙�
+         */
+        private String Creater;
+        /**
+         * 椤圭洰缂栧彿
+         */
+        private String ProjectCode;
+        /**
+         * 椤圭洰鍚嶇О (浼犵┖)
+         */
+        private String ProjectName;
+        /**
+         * 椤圭洰璐熻矗浜哄悕绉� 锛堜紶绌猴級
+         */
+        private String ChargeName;
+        /**
+         * 鍙戞斁鍐呭 锛堬級
+         */
+        private String GrantContent;
+        /**
+         * 棰濆害缂栧彿
+         */
+        private String ControlsCode;
+        /**
+         * 鍙戞斁绫诲瀷鍚嶇О (涓虹┖)
+         */
+        private String GrantClassName;
+        /**
+         * 鏄惁绾夸笂瀹℃壒
+         */
+        private boolean IsThree;
+    }
+
+
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class InputDetailModel {
+        /**
+         * 宸ュ彿
+         */
+        private String Code;
+        /**
+         * 濮撳悕
+         */
+        private String PersonName;
+        /**
+         * 浜哄憳绫诲瀷鍚嶇О
+         */
+        private String PersonType;
+        /**
+         * 澶囨敞
+         */
+        private String Remark;
+        private String Remark1;
+        private String Remark2;
+        private String Remark3;
+        private String Remark4;
+        private String Remark5;
+        private String Remark6;
+        private String Remark7;
+        private String Remark8;
+        private String Remark9;
+        private String Remark10;
+
+        /**
+         * 宸ヨ祫椤�1
+         */
+        private BigDecimal Col1;
+        private BigDecimal Col2;
+        private BigDecimal Col3;
+        private BigDecimal Col4;
+        private BigDecimal Col5;
+        private BigDecimal Col6;
+        private BigDecimal Col7;
+        private BigDecimal Col8;
+        private BigDecimal Col9;
+        private BigDecimal Col10;
+        private BigDecimal Col11;
+        private BigDecimal Col12;
+        private BigDecimal Col13;
+        private BigDecimal Col14;
+        private BigDecimal Col15;
+        private BigDecimal Col16;
+        private BigDecimal Col17;
+        private BigDecimal Col18;
+        private BigDecimal Col19;
+        private BigDecimal Col20;
+        private BigDecimal Col21;
+        private BigDecimal Col22;
+        private BigDecimal Col23;
+        private BigDecimal Col24;
+        private BigDecimal Col25;
+        private BigDecimal Col26;
+        private BigDecimal Col27;
+        private BigDecimal Col28;
+        private BigDecimal Col29;
+        private BigDecimal Col30;
+        private BigDecimal Col31;
+        private BigDecimal Col32;
+        private BigDecimal Col33;
+        private BigDecimal Col34;
+        private BigDecimal Col35;
+        private BigDecimal Col36;
+        private BigDecimal Col37;
+        private BigDecimal Col38;
+        private BigDecimal Col39;
+        private BigDecimal Col40;
+        private BigDecimal Col41;
+        private BigDecimal Col42;
+        private BigDecimal Col43;
+        private BigDecimal Col44;
+        private BigDecimal Col45;
+        private BigDecimal Col46;
+        private BigDecimal Col47;
+        private BigDecimal Col48;
+        private BigDecimal Col49;
+        private BigDecimal Col50;
+
+    }
+
+}
diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/enums/ConfigKeyEnum.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/enums/ConfigKeyEnum.java
index 7907194..25d386c 100644
--- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/enums/ConfigKeyEnum.java
+++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/enums/ConfigKeyEnum.java
@@ -57,6 +57,22 @@ public enum ConfigKeyEnum {
      */
     钖祫鐢虫姤鎺ㄩ€佸湴鍧€("钖祫鐢虫姤鎺ㄩ€佸湴鍧€"),
 
+    /**
+     * 钖祫SystemId
+     */
+    钖祫SystemId("钖祫SystemId"),
+
+
+    /**
+     * 钖祫PrivateKey
+     */
+    钖祫PrivateKey("钖祫PrivateKey"),
+
+    /**
+     * 鏄惁绾夸笂瀹℃壒
+     */
+    鏄惁绾夸笂瀹℃壒("鏄惁绾夸笂瀹℃壒"),
+
     /**
      * ocrInstanceId 璋冪敤OCR 瀹炰緥ID
      */
diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeConfigServiceImpl.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeConfigServiceImpl.java
index f10c129..bf8068a 100644
--- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeConfigServiceImpl.java
+++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ChildCareFeeConfigServiceImpl.java
@@ -115,6 +115,13 @@ public class ChildCareFeeConfigServiceImpl extends AbstractService<ChildCareFeeC
                     break;
                 case 钖祫鐢虫姤鎺ㄩ€佸湴鍧€:
                     configResult.setSalarySendRequestUrl(configEntity.getValue());
+                    break;
+                case 钖祫SystemId:
+                    configResult.setSalarySystemId(configEntity.getValue());
+                    break;
+                case 钖祫PrivateKey:
+                    configResult.setSalaryPrivateKey(configEntity.getValue());
+                    break;
                 default:
                     break;
             }
@@ -155,6 +162,10 @@ public class ChildCareFeeConfigServiceImpl extends AbstractService<ChildCareFeeC
     public Integer updateEntity(ChildCareFeeConfigRequest request) {
 
         ChildCareFeeConfigEntity entity = check(request, false);
+
+        ChildCareFeeConfigEntity entityById = getEntityById(entity.getId());
+        // 鎻忚堪涓嶅厑璁镐慨鏀� 涓嶇劧 涓嶇煡閬撴瘡涓€� 瀵瑰簲鐫€鍟�
+        entity.setDescription(entityById.getDescription());
         return this.mapper.updateById(entity);
     }
 
@@ -217,6 +228,23 @@ public class ChildCareFeeConfigServiceImpl extends AbstractService<ChildCareFeeC
             } catch (Exception e) {
                 throw ExceptionUtil.getException(ResponseCode.BUNISESS_EXCEPTION, "褰搆ey涓�" + enumByKey.getKey() + "锛屽繀椤讳负Long绫诲瀷锛�");
             }
+        } else if (enumByKey == ConfigKeyEnum.鏄惁绾夸笂瀹℃壒) {
+            try {
+                boolean i = Boolean.parseBoolean(entity.getValue());
+            } catch (Exception e) {
+                throw ExceptionUtil.getException(ResponseCode.BUNISESS_EXCEPTION, "褰搆ey涓�" + enumByKey.getKey() + "锛屽彧鍏佽true 鎴栬€協alse锛�");
+            }
+        } else if (enumByKey == ConfigKeyEnum.钖祫鐢虫姤宸ヨ祫椤�) {
+            int i;
+            try {
+                i = Integer.parseInt(entity.getValue());
+            } catch (Exception e) {
+                throw ExceptionUtil.getException(ResponseCode.BUNISESS_EXCEPTION, "褰搆ey涓�" + enumByKey.getKey() + "锛屽繀椤讳负鏁板瓧锛�");
+            }
+
+            if (i < 1 || i > 50) {
+                throw ExceptionUtil.getException(ResponseCode.BUNISESS_EXCEPTION, "褰搆ey涓�" + enumByKey.getKey() + "锛屽繀椤�1-50涔嬮棿锛�");
+            }
         }
 
 
diff --git a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ThirdSalaryServiceImpl.java b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ThirdSalaryServiceImpl.java
index f14547b..77215c4 100644
--- a/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ThirdSalaryServiceImpl.java
+++ b/ServiceSiteCommon/src/main/java/com/seasky/nurseryFeesclaims/business/service/ThirdSalaryServiceImpl.java
@@ -1,6 +1,10 @@
 package com.seasky.nurseryFeesclaims.business.service;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.seasky.nurseryFeesclaims.business.api.ThirdSalaryService;
+import com.seasky.nurseryFeesclaims.web.dto.result.SalaryConfigResult;
+import com.seasky.nurseryFeesclaims.web.dto.utils.Md5Utils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -33,4 +37,18 @@ public class ThirdSalaryServiceImpl implements ThirdSalaryService {
     public boolean query() {
         return true;
     }
+
+
+    String salaryToken(SalaryConfigResult salaryConfigResult) {
+        // 鍔犲瘑浠ょ墝锛圱oken锛夌畻娉曪細MD5(SystemID|褰撳墠鏃堕棿(yyyy-MM-dd-HH)|PrivateKey)
+        String platext = salaryConfigResult.getSalarySystemId() + "|" + new DateTime().toString("yyyy-MM-dd-HH") + "|" + salaryConfigResult.getSalaryPrivateKey();
+        log.info("鍔犲瘑浠ょ墝锛圱oken锛� 鏄庢枃锛�" + platext);
+
+        String s = Md5Utils.stringToMd5(platext);
+        log.info("鍔犲瘑浠ょ墝锛圱oken锛� 瀵嗘枃:" + s);
+
+        return s;
+
+    }
+
 }
-- 
GitLab