From b6184e2ddf3db37a94f7efb3b619bbc64642a292 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期二, 27 一月 2026 18:12:48 +0800
Subject: [PATCH] Z四
---
service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java | 206 ++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 169 insertions(+), 37 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java b/service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java
index 83890cf..a3f299d 100644
--- a/service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java
+++ b/service-api/src/main/java/com/java110/api/importData/adapt/ImportPropertyWhiteListfFlowAdapt.java
@@ -4,10 +4,13 @@
import com.java110.api.importData.DefaultImportDataAdapt;
import com.java110.api.importData.IImportDataCleaningAdapt;
import com.java110.dto.PropertyWhiteListFlowDto;
+import com.java110.dto.community.CommunityDto;
import com.java110.dto.importData.ImportRoomFee;
import com.java110.dto.system.ComponentValidateResult;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.meter.MeterWaterPo;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ImportExcelUtils;
@@ -17,10 +20,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.List;
-@Service("importPropertyWhiteListfFlowDataCleaning")
+@Service("importPropertyWhiteListFlowDataCleaning")
public class ImportPropertyWhiteListfFlowAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt {
@@ -29,6 +34,9 @@
@Autowired
private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+ @Autowired
+ private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
@Override
@@ -45,51 +53,83 @@
return whiteLists;
}
+
+ public String getCommunityId(Object[] os) {
+ CommunityDto d = new CommunityDto();
+ d.setCommunityCode(defaultValue(os[1]));
+ d.setName(defaultValue(os[2]));
+ List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(d);
+ if (communityDtos.isEmpty()) {
+ throw new IllegalArgumentException("鏈煡璇㈠埌灏忓尯锛�" + d.getCommunityCode() + d.getName());
+ }
+ else if (communityDtos.size() > 1) {
+ throw new IllegalArgumentException("鏌ヨ灏忓尯寮傚父:瀛樺湪澶氫釜绗﹀悎鏉′欢鐨勫皬鍖猴細" + d.getCommunityCode() + d.getName());
+ }
+ return communityDtos.get(0).getCommunityId();
+ }
+
+
+ public String defaultValue(Object o) {
+ return o == null ? "" : o.toString();
+ }
+
private void getPropertyWhiteListFlowDtos(Workbook workbook, List<PropertyWhiteListFlowDto> whiteLists) {
Sheet sheet = null;
- sheet = ImportExcelUtils.getSheet(workbook, "鐧藉崟娴佹按锛堝綊妗f暟鎹級");
+ sheet = ImportExcelUtils.getSheet(workbook, "鐧藉崟娴佹按 瀵煎叆鏂版ā鏉�");
List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
PropertyWhiteListFlowDto white = null;
for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
Object[] os = oList.get(osIndex);
- if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
+ if (osIndex == 1) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
continue;
}
- if (StringUtil.isNullOrNone(os[0])) {
+ if (StringUtil.isNullOrNone(os[3])) {
continue;
}
- Assert.hasValue(os[0], (osIndex + 1) + "琛屾敹璐规棩鏈熶笉鑳戒负绌�");
+ Assert.hasValue(os[3], (osIndex + 1) + "琛屾敹璐规棩鏈熶笉鑳戒负绌�");
+
white = new PropertyWhiteListFlowDto();
- String chargeTime = excelDoubleToDate(os[0].toString());
- String changeStart = os[21] == null ? null : excelDoubleToDate(os[21].toString());
- String changeEnd = os[22] == null ? null : excelDoubleToDate(os[22].toString());
- String bankDepositDate = os[8] == null ? null : excelDoubleToDate(os[8].toString());
+ String chargeTime = excelDoubleToDate(os[3].toString());
+ String changeStart = defaultValueToDate(os[11]);
+ String changeEnd = defaultValueToDate(os[12]);
+ String bankDepositDate = defaultValueToDate(os[16]);
String inputTime = null;
- if(os[16] != null){
- inputTime = excelDoubleToDate(os[16].toString().split("\\.")[0]);
+ if(os[24] != null){
+ inputTime = defaultValueToDate(os[24]);
}
- white.setChargeTime(chargeTime);
- white.setInvoiceReceiptNo(os[1] == null ? null : os[1].toString());
- white.setRoomId(os[2] == null ? null : os[2].toString());
- white.setPropertyAddress(os[3] == null ? null : os[3].toString());
- white.setDoorRoomNum(os[4] == null ? null : os[4].toString());
- white.setSecondaryFeeTypeCd(os[5] == null ? null : os[5].toString());
- white.setChargeAmount(os[6] == null ? null : os[6].toString());
- white.setCharger(os[7] == null ? null : os[7].toString());
- white.setBankDepositDate(bankDepositDate);
- white.setBankDepositor(os[9] == null ? null : os[9].toString());
- white.setSplitBankDepositAmount(os[10] == null ? null : os[10].toString());
- white.setBankDepositAmount(os[11] == null ? null : os[11].toString());
- white.setCheckAmount(os[12] == null ? null : os[12].toString());
- white.setWhiteListArchiveNo(os[13] == null ? null : os[13].toString());
- white.setSheetCount(os[14] == null ? null : os[14].toString());
- white.setFinancialReceiver(os[15] == null ? null : os[15].toString());
- white.setInputTime(inputTime);
- white.setInputPerson(os[17] == null ? null : os[17].toString());
- white.setOrderNo(os[18] == null ? null : os[18].toString());
- white.setLicensePlate(os[19] == null ? null : os[19].toString());
- white.setCategory22(os[20] == null ? null : os[20].toString());
+ white.setChargeTime(chargeTime);//鏀惰垂鏃堕棿
+ white.setInvoiceReceiptNo(defaultValueToDate(os[4]));//鍙戠エ
+ white.setRoomId(os[5] == null ? null : os[5].toString());//鎴垮彿
+ white.setPropertyAddress(os[5] == null ? null : os[5].toString());//涓氫富鍦板潃
+ white.setDoorRoomNum((os[6] == null ? "" : os[6].toString() + "-") + (os[7] == null ? "" : os[7].toString() + "-") + (os[8] == null ? "" : os[8].toString()) );//闂ㄥ競鍙�
+ if (white.getDoorRoomNum().isEmpty()){
+ white.setDoorRoomNum(null);
+ }
+ white.setCommunityId(getCommunityId(os));
+ white.setSecondaryFeeTypeCd(os[13] == null ? null : os[13].toString());//鏀惰垂鍐呭
+ white.setChargeAmount(os[14] == null ? null : os[14].toString());//鏀惰垂閲戦
+ white.setCharger(os[15] == null ? null : os[15].toString());//鏀惰垂浜�
+ white.setBankDepositDate(bankDepositDate);//閾惰瑙f鏃ユ湡
+ white.setBankDepositor(os[17] == null ? null : os[17].toString());//閾惰瑙f浜�
+ white.setSplitBankDepositAmount(os[18] == null ? null : os[18].toString());//鎷嗗垎鍚庨摱琛岃В娆鹃噾棰�
+ white.setBankDepositAmount(os[19] == null ? null : os[19].toString());//閾惰瑙f閲戦
+ white.setCheckAmount(os[20] == null ? null : os[20].toString());//鏍稿閲戦
+ white.setWhiteListArchiveNo(os[21] == null ? null : os[21].toString());//鐧藉崟瀛樻。缂栧彿
+ white.setSheetCount(os[22] == null ? null : os[22].toString());//寮犳暟
+ white.setFinancialReceiver(os[23] == null ? null : os[23].toString());//璐㈠姟鏀惰处浜�
+ white.setInputTime(inputTime);//杈撳叆鏃堕棿
+ white.setInputPerson(os[25] == null ? null : os[25].toString());//杈撳叆浜哄憳
+ white.setOrderNo(os[28] == null ? null : os[28].toString());//鍗曞彿
+ white.setLicensePlate(os[29] == null ? null : os[29].toString());//杞︾墝鍙�
+ white.setCategory22(os[31] == null ? null : os[31].toString());//25椤规敹璐瑰垎绫�
+ white.setRoomNumber(os[9] == null ? null : os[9].toString());
+ white.setReceiptYear(os[27] == null ? null : os[27].toString());
+ white.setReceiptYearMonth(defaultValueToDate(os[26]));
+ white.setPendingProblem(os[30] == null ? null : os[30].toString());
+// if (os.length > 23){
+// white.setFrequency(os[23] == null ? null : os[23].toString());
+// }
white.setChargeStart(changeStart);
white.setChargeEnd(changeEnd);
white.setRow(osIndex + 1);
@@ -97,11 +137,103 @@
}
}
- /**
- * 鐢熸垚鎵规鍙�
- *
- * @param reqJson
- */
+ public static Object[] removeElement(Object[] original, int index) {
+ // 鏍¢獙鍘熸暟缁勬槸鍚︿负绌烘垨绱㈠紩瓒婄晫
+ if (original == null || index < 0 || index >= original.length) {
+ return original; // 鎴栨姏鍑哄紓甯革紝鏍规嵁闇�姹傚鐞�
+ }
+ // 鍒涘缓鏂版暟缁勶紙闀垮害 = 鍘熸暟缁勯暱搴� - 1锛�
+ Object[] newArray = new Object[original.length - 1];
+ // 澶嶅埗绱㈠紩4涔嬪墠鐨勫厓绱狅紙0~3锛�
+ System.arraycopy(original, 0, newArray, 0, index);
+
+ // 澶嶅埗绱㈠紩4涔嬪悗鐨勫厓绱狅紙5~鏈熬锛夛紝浠庢柊鏁扮粍鐨刬ndex浣嶇疆寮�濮�
+ System.arraycopy(original, index + 1, newArray, index, original.length - index - 1);
+
+ return newArray;
+ }
+//
+// private void getPropertyWhiteListFlowDtosV1(Workbook workbook, List<PropertyWhiteListFlowDto> whiteLists) {
+// Sheet sheet = null;
+// sheet = ImportExcelUtils.getSheet(workbook, "鐧藉崟娴佹按锛堝綊妗f暟鎹級");
+// List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
+// PropertyWhiteListFlowDto white = null;
+// for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
+// Object[] os = oList.get(osIndex);
+// if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
+// continue;
+// }
+// if (StringUtil.isNullOrNone(os[0])) {
+// continue;
+// }
+// Assert.hasValue(os[0], (osIndex + 1) + "琛屾敹璐规棩鏈熶笉鑳戒负绌�");
+//
+// white = new PropertyWhiteListFlowDto();
+// String chargeTime = excelDoubleToDate(os[0].toString());
+// String changeStart = os[21] == null ? null : excelDoubleToDate(os[21].toString());
+// String changeEnd = os[22] == null ? null : excelDoubleToDate(os[22].toString());
+// String bankDepositDate = os[8] == null ? null : excelDoubleToDate(os[8].toString());
+// String inputTime = null;
+// if(os[16] != null){
+// inputTime = excelDoubleToDate(os[16].toString().split("\\.")[0]);
+// }
+// white.setChargeTime(chargeTime);
+// white.setInvoiceReceiptNo(os[1] == null ? null : os[1].toString());
+// white.setRoomId(os[2] == null ? null : os[2].toString());
+// white.setPropertyAddress(os[3] == null ? null : os[3].toString());
+// white.setDoorRoomNum(defaultValueToDate(os[4]));
+// white.setSecondaryFeeTypeCd(os[5] == null ? null : os[5].toString());
+// white.setChargeAmount(os[6] == null ? null : os[6].toString());
+// white.setCharger(os[7] == null ? null : os[7].toString());
+// white.setBankDepositDate(bankDepositDate);
+// white.setBankDepositor(os[9] == null ? null : os[9].toString());
+// white.setSplitBankDepositAmount(os[10] == null ? null : os[10].toString());
+// white.setBankDepositAmount(os[11] == null ? null : os[11].toString());
+// white.setCheckAmount(os[12] == null ? null : os[12].toString());
+// white.setWhiteListArchiveNo(os[13] == null ? null : os[13].toString());
+// white.setSheetCount(os[14] == null ? null : os[14].toString());
+// white.setFinancialReceiver(os[15] == null ? null : os[15].toString());
+// white.setInputTime(inputTime);
+// white.setInputPerson(os[17] == null ? null : os[17].toString());
+// white.setOrderNo(os[18] == null ? null : os[18].toString());
+// white.setLicensePlate(os[19] == null ? null : os[19].toString());
+// white.setCategory22(os[20] == null ? null : os[20].toString());
+// if (os.length > 23){
+// white.setFrequency(os[23] == null ? null : os[23].toString());
+// }
+// white.setChargeStart(changeStart);
+// white.setChargeEnd(changeEnd);
+// white.setRow(osIndex + 1);
+// whiteLists.add(white);
+// }
+// }
+
+ private String defaultValueToDate(Object o) {
+ // 绌哄�肩洿鎺ヨ繑鍥瀗ull锛堝師鏈夐�昏緫锛�
+ if (o == null) {
+ return null;
+ }
+
+ try {
+ // 灏濊瘯灏嗗璞¤浆鎹负鏁板瓧锛堝吋瀹笶xcel鏃ユ湡搴忓垪鍙凤紝濡�44747锛�
+ double excelDateNum = Double.parseDouble(o.toString());
+
+ // Excel 1900鏃ユ湡绯荤粺鍩哄噯锛堜慨姝i棸鏃ug锛屽疄闄呭熀鍑嗘槸1899-12-30锛�
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(1899, 11, 30, 0, 0, 0); // 鏈堜唤浠�0寮�濮嬶紝11浠h〃12鏈�
+ calendar.set(Calendar.MILLISECOND, 0);
+
+ // 璁$畻瀵瑰簲鐨勫疄闄呮棩鏈�
+ calendar.add(Calendar.DAY_OF_MONTH, (int) excelDateNum);
+
+ // 鏍煎紡鍖栦负yyyy-MM-dd鐨勬棩鏈熷瓧绗︿覆
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ return sdf.format(calendar.getTime());
+ } catch (NumberFormatException e) {
+ // 闈炴暟瀛楃被鍨嬶紝鎵ц鍘熸湁閫昏緫杩斿洖toString()
+ return o.toString();
+ }
+ }
}
--
Gitblit v1.8.0