From cf4f4310b0b392f72d2e29ac7ddff801c760a289 Mon Sep 17 00:00:00 2001
From: cgf <2156125618@qq.com>
Date: 星期四, 25 九月 2025 20:45:07 +0800
Subject: [PATCH] 切割溢胶2025/09/25
---
service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java | 96 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 76 insertions(+), 20 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
index bb87efb..00ec98e 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportHistoryFeeDetailQueueDataAdapt.java
@@ -288,9 +288,10 @@
importRoomFee.setContractId(data.getString("licensePlate"));
importRoomFee.setInvoiceNo(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N");
importRoomFee.setObjType("7777");
- LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter);
- LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter);
- importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate)));
+ importRoomFee.setCycle((DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFee.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFee.getEndTime())
+ )) + "");
if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){
importRoomFee.setCycle("-"+importRoomFee.getCycle());
}
@@ -311,9 +312,10 @@
importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N");
// if(importRoomFee.getPayerObjName())
importRoomFee.setObjType("6666");
- LocalDateTime startDate = LocalDateTime.parse(importRoomFee.getStartTime(), formatter);
- LocalDateTime endDate = LocalDateTime.parse(importRoomFee.getEndTime(), formatter);
- importRoomFee.setCycle(String.valueOf(ChronoUnit.MONTHS.between(startDate, endDate)));
+ importRoomFee.setCycle((DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFee.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFee.getEndTime())
+ )) + "");
if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){
importRoomFee.setCycle("-"+importRoomFee.getCycle());
}
@@ -330,6 +332,13 @@
importRoomFee.setAmount(data.getString("chargeAmount"));
importRoomFee.setStaffName(data.getString("charger"));
importRoomFee.setOpenInv(data.containsKey("invoiceReceiptNo") && data.getString("invoiceReceiptNo") != null ? "Y" : "N");
+ importRoomFee.setCycle((DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFee.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFee.getEndTime())
+ )) + "");
+ if (new BigDecimal(importRoomFee.getAmount()).doubleValue() < 0){
+ importRoomFee.setCycle("-"+importRoomFee.getCycle());
+ }
// if(importRoomFee.getPayerObjName())
importRoomFees.add(importRoomFee);
}
@@ -369,19 +378,45 @@
importRoomFees.add(importRoomFee1);
importRoomFees.add(importRoomFee2);
}
-// ImportRoomFee importRoomFeeLast = importRoomFees.get(importRoomFees.size()-1);
-// if (DateUtil.getDateFromStringB(data.getString("chargeEnd").split(" ")[0]).getTime() < DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime().split(" ")[0]).getTime() && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300"))
+ if (DateUtil.getDateFromStringB(data.getString("chargeEnd").split(" ")[0]).getTime() > DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime().split(" ")[0]).getTime()
+ && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){
+ ImportRoomFee importRoomFeeLast = importRoomFees.get(importRoomFees.size()-1);
+ double cycle = Double.parseDouble(importRoomFeeLast.getCycle());
+ double amount = Double.parseDouble(importRoomFeeLast.getAmount());
+
+ ImportRoomFee importRoomFeeEnd = (ImportRoomFee) importRoomFeeLast.clone();
+
+ importRoomFeeLast.setEndTime(assetImportLogDetailDto.getOutTime() + " 23:59:59");
+ double cycle1 = (DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFeeLast.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFeeLast.getEndTime())
+ ));
+ double amount1 = amount/cycle * cycle1;
+
+ importRoomFeeEnd.setStartTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime()),1) + " 00:00:00");
+ importRoomFeeEnd.setCycle(DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFeeEnd.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFeeEnd.getEndTime())
+ ) + "");
+ importRoomFeeEnd.setAmount(amount - amount1 + "");
+ importRoomFeeEnd.setState("1900");
+ importRoomFees.add(importRoomFeeEnd);
+ }
importFeeDetails(importRoomFees.get(0).getStoreId(), importRoomFees.get(0).getUserId(), importRoomFees, importRoomFees.get(0).getBatchId());
}
if(!(ListUtil.isNull(importCarFees))){
- if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() <= DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime()){
- importRoomFees = importCarFees;
- ImportRoomFee importRoomFee1 = importRoomFees.get(0);
- ImportRoomFee importRoomFee2 = importRoomFees.get(0);
+ importRoomFees = importCarFees;
+ if (DateUtil.getDateFromStringB(data.getString("chargeStart").split(" ")[0]).getTime() < DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]).getTime() && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){
+ ImportRoomFee original = importRoomFees.get(0);
+ ImportRoomFee importRoomFee1 = (ImportRoomFee) original.clone(); // 鍏嬮殕鏂板璞�
+ ImportRoomFee importRoomFee2 = (ImportRoomFee) original.clone(); // 鍏嬮殕鍙︿竴涓柊瀵硅薄
+ double cycle = (DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFee1.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFee1.getEndTime())
+ )) ;
+ double amount = Double.parseDouble(importRoomFee1.getAmount());
importRoomFees = new ArrayList<>();
importRoomFee1.setEndTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getTakeTime().split(" ")[0]),-1) + " 23:59:59");
- double cycle = Double.parseDouble(importRoomFee1.getCycle());
- double amount = Double.parseDouble(importRoomFee1.getAmount());
importRoomFee1.setCycle((DateUtil.dayCompare(
DateUtil.getDateFromStringA(importRoomFee1.getStartTime()),
DateUtil.getDateFromStringA(importRoomFee1.getEndTime())
@@ -398,11 +433,32 @@
importRoomFees.add(importRoomFee1);
importRoomFees.add(importRoomFee2);
- importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importRoomFees, importCarFees.get(0).getBatchId());
}
- else{
- importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importCarFees, importCarFees.get(0).getBatchId());
+ if (DateUtil.getDateFromStringB(data.getString("chargeEnd").split(" ")[0]).getTime() > DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime().split(" ")[0]).getTime()
+ && !assetImportLogDetailDto.getState().equals("1100") && !assetImportLogDetailDto.getState().equals("1300")){
+ ImportRoomFee importRoomFeeLast = importRoomFees.get(importRoomFees.size()-1);
+ double cycle = Double.parseDouble(importRoomFeeLast.getCycle());
+ double amount = Double.parseDouble(importRoomFeeLast.getAmount());
+
+ ImportRoomFee importRoomFeeEnd = (ImportRoomFee) importRoomFeeLast.clone();
+
+ importRoomFeeLast.setEndTime(assetImportLogDetailDto.getOutTime() + " 23:59:59");
+ double cycle1 = (DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFeeLast.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFeeLast.getEndTime())
+ ));
+ double amount1 = amount/cycle * cycle1;
+
+ importRoomFeeEnd.setStartTime(DateUtil.getAddDayStringB(DateUtil.getDateFromStringB(assetImportLogDetailDto.getOutTime()),1) + " 00:00:00");
+ importRoomFeeEnd.setCycle(DateUtil.dayCompare(
+ DateUtil.getDateFromStringA(importRoomFeeEnd.getStartTime()),
+ DateUtil.getDateFromStringA(importRoomFeeEnd.getEndTime())
+ ) + "");
+ importRoomFeeEnd.setAmount(amount - amount1 + "");
+ importRoomFeeEnd.setState("1900");
+ importRoomFees.add(importRoomFeeEnd);
}
+ importCarFeeDetails2(importCarFees.get(0).getStoreId(), importCarFees.get(0).getUserId(), importRoomFees, importCarFees.get(0).getBatchId());
}
}catch (IllegalStateException e){
throw new IllegalArgumentException(e.getMessage());
@@ -576,7 +632,7 @@
}
}
feeDto2.setCommunityId(importRoomFee.getCommunityId());
- if (importRoomFee.getState().equals("1100") || importRoomFee.getState().equals("1300") || importRoomFee.getState().equals("1600")) {
+ if (importRoomFee.getState().equals("1100") || importRoomFee.getState().equals("1300") || importRoomFee.getState().equals("1600") || importRoomFee.getState().equals("1900")) {
}
else {
@@ -588,7 +644,7 @@
if (!(importRoomFee.getFrequency().equals("閫�璐�"))) {
feeDtos.removeIf(feeDto -> "2009001".equals(feeDto.getState()));
}
- if(feeDtos.size() == 0 && (importRoomFee.getState() == null || !importRoomFee.getState().equals("1600"))){
+ if(feeDtos.size() == 0 && (importRoomFee.getState() == null || !importRoomFee.getState().equals("1600")|| importRoomFee.getState().equals("1900"))){
updateImportLogDetailState(importRoomFee.getDetailId(),new IllegalArgumentException("璐圭敤椤�"+importRoomFee.getFeeName()+"涓嶅瓨鍦�"));
throw new IllegalArgumentException("璐圭敤璁板綍"+importRoomFee.getFeeName()+"涓嶅瓨鍦�");
@@ -685,7 +741,7 @@
// feeInnerServiceSMOImpl.updateFee(payFeePo);
// return;
// } else
- if (importRoomFee.getState() != null && importRoomFee.getState().equals("1600")){
+ if (importRoomFee.getState() != null && (importRoomFee.getState().equals("1600") || importRoomFee.getState().equals("1900"))){
payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
payFeeDetailPo.setReceivableAmount(computeFeeByCycle(tmpFeeDto,importRoomFee)+"");
payFeeDetailPo.setDiscountAmount("0");
--
Gitblit v1.8.0