From 17cc5a434d6acc39eeddfd913f0f0d39edd20e9e Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期四, 14 八月 2025 19:38:25 +0800
Subject: [PATCH] 合同费用导入2025/08/14

---
 service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java b/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
index 3a68048..713fc0f 100644
--- a/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
+++ b/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
@@ -1,11 +1,77 @@
 package com.java110.api.importData;
 
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.payFee.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.payFee.PayFeeBatchPo;
+import com.java110.utils.util.Assert;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 
 public class DefaultImportDataAdapt {
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
 
+    private static final Date EXCEL_EPOCH;
+
+    static {
+        // 鍒濆鍖朎xcel璧峰鏃ユ湡锛�1899-12-30锛屽搴擡xcel鐨�0澶╋級
+        Calendar cal = Calendar.getInstance();
+        cal.set(1899, Calendar.DECEMBER, 30, 0, 0, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        EXCEL_EPOCH = cal.getTime();
+    }
+
+    /**
+     * 灏咵xcel鏃ユ湡鏁板�硷紙濡�45734.0锛夎浆鎹负Date瀵硅薄
+     * @param excelDate Excel鏃ユ湡鏁板��
+     * @return 瀵瑰簲鐨凞ate瀵硅薄
+     */
+    public static Date doubleToDate(double excelDate) {
+        // 澶勭悊Excel 1900骞撮棸骞撮敊璇紙Excel閿欒鍦板皢1900骞磋涓洪棸骞达級
+        long days = (long) Math.floor(excelDate);
+        if (days >= 60) { // 1900-03-01鍙婁箣鍚庣殑鏃ユ湡闇�瑕佸噺1澶�
+            days--;
+        }
+
+        // 璁$畻鎬绘绉掓暟锛堝ぉ鏁伴儴鍒� + 鏃堕棿閮ㄥ垎锛�
+        long totalMillis = (long)(days * 86400000L) // 1澶� = 86400000姣
+                + (long)((excelDate - days) * 86400000L);
+
+        // 浠庡熀鍑嗘棩鏈熷紑濮嬬疮鍔犳绉掓暟
+        return new Date(EXCEL_EPOCH.getTime() + totalMillis);
+    }
+
+    /**
+     * 澶勭悊Excel鏃ユ湡瀛楃涓诧紙濡�"45734.0"锛夛紝杞崲涓�"yyyy-MM-dd"鏍煎紡
+     * @param strDate Excel鏃ユ湡鏁板�煎瓧绗︿覆
+     * @return 鏍煎紡鍖栧悗鐨勬棩鏈熷瓧绗︿覆
+     * @throws ParseException 杞崲澶辫触鏃舵姏鍑�
+     */
+    public String handleExcelDateString(String strDate){
+        // 1. 灏嗗瓧绗︿覆杞崲涓篸ouble锛堝"45734.0" -> 45734.0锛�
+        double excelDateValue = Double.parseDouble(strDate);
+
+        // 2. 灏咵xcel鏁板�艰浆鎹负Date瀵硅薄
+        Date tDate = doubleToDate(excelDateValue);
+
+        // 3. 鏍煎紡鍖栦负"yyyy-MM-dd"
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(tDate);
+    }
+
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
     protected boolean hasSpecialCharacters(String str) {
         if (str.contains("-") || str.contains("#") || str.contains("?") || str.contains("&")) {
             return true;
@@ -48,4 +114,31 @@
         return tDate;
     }
 
+    /**
+     * 鐢熸垚鎵规鍙�
+     *
+     * @param reqJson
+     */
+    public void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "鐢ㄦ埛涓嶅瓨鍦�");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("姝e父");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("鐢熸垚鎵规澶辫触");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
 }

--
Gitblit v1.8.0