From 9ec0a61f90ac2464eebc643bfe2d93ac9ba6e569 Mon Sep 17 00:00:00 2001
From: cgf <2156125618@qq.com>
Date: 星期六, 23 八月 2025 10:59:18 +0800
Subject: [PATCH] 折扣已完成现有需求2025/08/09
---
service-job/src/main/java/com/java110/job/importData/adapt/ImportCarHistoryFeeDetailQueueDataAdapt.java | 148 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 108 insertions(+), 40 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/importData/adapt/ImportCarHistoryFeeDetailQueueDataAdapt.java b/service-job/src/main/java/com/java110/job/importData/adapt/ImportCarHistoryFeeDetailQueueDataAdapt.java
index d15b35d..25b6484 100644
--- a/service-job/src/main/java/com/java110/job/importData/adapt/ImportCarHistoryFeeDetailQueueDataAdapt.java
+++ b/service-job/src/main/java/com/java110/job/importData/adapt/ImportCarHistoryFeeDetailQueueDataAdapt.java
@@ -1,13 +1,16 @@
package com.java110.job.importData.adapt;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.fee.FeeAttrDto;
import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDetailDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.importData.ImportRoomFee;
import com.java110.dto.log.AssetImportLogDetailDto;
import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.fee.api.FeeDiscountApi;
import com.java110.intf.community.IRoomInnerServiceSMO;
import com.java110.intf.fee.*;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
@@ -17,14 +20,17 @@
import com.java110.po.fee.FeeAttrPo;
import com.java110.po.fee.PayFeeDetailPo;
import com.java110.po.fee.PayFeePo;
+import com.java110.po.payFee.PayFeeDetailDiscountPo;
import com.java110.utils.constant.StatusConstant;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ListUtil;
import com.java110.utils.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
@@ -37,6 +43,8 @@
@Service("importCarHistoryFeeDetailQueueData")
public class ImportCarHistoryFeeDetailQueueDataAdapt extends DefaultImportData implements IImportDataAdapt {
+ @Autowired
+ private IPayFeeDetailDiscountNewV1InnerServiceSMO payFeeDetailDiscountNewV1InnerServiceSMOImpl;
@Autowired
private IImportFeeDetailInnerServiceSMO importFeeDetailInnerServiceSMOImpl;
@@ -50,6 +58,8 @@
@Autowired
private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+ @Autowired
+ private FeeDiscountApi feeDiscountApi;
@Autowired
private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
@@ -85,7 +95,7 @@
importCarFeeDetails(importRoomFees.get(0).getStoreId(), importRoomFees.get(0).getUserId(), importRoomFees, importRoomFees.get(0).getBatchId());
}
- private void importCarFeeDetails(String storeId, String userId, List<ImportRoomFee> importCarFees, String batchId) {
+ public void importCarFeeDetails(String storeId, String userId, List<ImportRoomFee> importCarFees, String batchId) {
importCarFees = ownerCarInnerServiceSMOImpl.freshCarIds(importCarFees);
for (ImportRoomFee importCarFee : importCarFees) {
@@ -109,6 +119,19 @@
*/
private void importCarFeeDetail(ImportRoomFee importRoomFee, String storeId, String userId, String batchId) {
+ PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
+ payFeeDetailPo.setPayOrderId(importRoomFee.getRoomId());
+ payFeeDetailPo.setCycles(importRoomFee.getCycle());
+ payFeeDetailPo.setCreateTime(importRoomFee.getCreateTime());
+ payFeeDetailPo.setCommunityId(importRoomFee.getCommunityId());
+ payFeeDetailPo.setPayOrderId(importRoomFee.getRoomId());
+ int count = feeDetailInnerServiceSMOImpl.queryFeeDetailsCountByVo(payFeeDetailPo);
+
+ if (count > 0) {
+ throw new IllegalStateException("閲嶅鐨勭即璐硅褰�");
+ }
+
+
FeeConfigDto feeConfigDto = new FeeConfigDto();
feeConfigDto.setFeeNameEq(importRoomFee.getFeeName().trim());
feeConfigDto.setCommunityId(importRoomFee.getCommunityId());
@@ -126,46 +149,49 @@
feeDto.setPayerObjId(importRoomFee.getCarId());
feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-
List<PayFeePo> payFeePos = null;
if (ListUtil.isNull(feeDtos)) {
- PayFeePo payFeePo = new PayFeePo();
- payFeePo.setCommunityId(importRoomFee.getCommunityId());
- payFeePo.setConfigId(feeDto.getConfigId());
- payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
- payFeePo.setStartTime(importRoomFee.getStartTime());
- payFeePo.setEndTime(importRoomFee.getEndTime());
- payFeePo.setAmount(importRoomFee.getAmount());
- payFeePo.setFeeFlag(tmpFeeConfigDto.getFeeFlag());
- payFeePo.setFeeTypeCd(tmpFeeConfigDto.getFeeTypeCd());
- payFeePo.setIncomeObjId(storeId);
- payFeePo.setBatchId(batchId);
- if (FeeDto.FEE_FLAG_ONCE.equals(tmpFeeConfigDto.getFeeFlag())) {
- payFeePo.setState(FeeDto.STATE_FINISH);
- } else {
- payFeePo.setState(FeeDto.STATE_DOING);
- }
- payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
- payFeePo.setPayerObjId(importRoomFee.getCarId());
- payFeePo.setUserId(userId);
- payFeePo.setCreateTime(importRoomFee.getCreateTime());
- payFeePos = new ArrayList<>();
- payFeePos.add(payFeePo);
- feeInnerServiceSMOImpl.saveFee(payFeePos);
- List<FeeAttrPo> feeAttrsPos = new ArrayList<>();
- //鏌ヨ涓氫富淇℃伅
- if (!FeeDto.FEE_FLAG_CYCLE.equals(tmpFeeConfigDto.getFeeFlag())) {
- feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME,
- importRoomFee.getEndTime()));
- }
- feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_OWNER_ID, importRoomFee.getOwnerId()));
- feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_OWNER_LINK, importRoomFee.getOwnerLink()));
- feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_OWNER_NAME, importRoomFee.getOwnerName()));
- feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrsPos);
- feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+ throw new IllegalArgumentException("涓嶅瓨鍦ㄥ搴旂殑缂磋垂璁板綍");
+// PayFeePo payFeePo = new PayFeePo();
+// payFeePo.setCommunityId(importRoomFee.getCommunityId());
+// payFeePo.setConfigId(feeDto.getConfigId());
+// payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
+// payFeePo.setStartTime(importRoomFee.getStartTime());
+// payFeePo.setEndTime(importRoomFee.getEndTime());
+// payFeePo.setAmount(importRoomFee.getAmount());
+// payFeePo.setFeeFlag(tmpFeeConfigDto.getFeeFlag());
+// payFeePo.setFeeTypeCd(tmpFeeConfigDto.getFeeTypeCd());
+// payFeePo.setIncomeObjId(storeId);
+// payFeePo.setBatchId(batchId);
+// if (FeeDto.FEE_FLAG_ONCE.equals(tmpFeeConfigDto.getFeeFlag())) {
+// payFeePo.setState(FeeDto.STATE_FINISH);
+// } else {
+// payFeePo.setState(FeeDto.STATE_DOING);
+// }
+// payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+// payFeePo.setPayerObjId(importRoomFee.getCarId());
+// payFeePo.setUserId(userId);
+// payFeePo.setCreateTime(importRoomFee.getCreateTime());
+// payFeePos = new ArrayList<>();
+// payFeePos.add(payFeePo);
+// feeInnerServiceSMOImpl.saveFee(payFeePos);
+// List<FeeAttrPo> feeAttrsPos = new ArrayList<>();
+// //鏌ヨ涓氫富淇℃伅
+// if (!FeeDto.FEE_FLAG_CYCLE.equals(tmpFeeConfigDto.getFeeFlag())) {
+// feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME,
+// importRoomFee.getEndTime()));
+// }
+// feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_OWNER_ID, importRoomFee.getOwnerId()));
+// feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_OWNER_LINK, importRoomFee.getOwnerLink()));
+// feeAttrsPos.add(addFeeAttr(payFeePo, FeeAttrDto.SPEC_CD_OWNER_NAME, importRoomFee.getOwnerName()));
+// feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrsPos);
+// feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
}
for (FeeDto tmpFeeDto : feeDtos) {
+// if(tmpFeeDto.getEndTime() < importRoomFee.){
+//
+// }
doImportFeeDetail(tmpFeeDto, importRoomFee);
}
@@ -191,6 +217,7 @@
payFeeDetailPo.setPrimeRate("1.0");
payFeeDetailPo.setFeeId(tmpFeeDto.getFeeId());
payFeeDetailPo.setStartTime(importRoomFee.getStartTime());
+ importRoomFee.setPayObjId(payFeeDetailPo.getPayOrderId() != null ? importRoomFee.getPayObjId() : importRoomFee.getRoomId());
String endTime = importRoomFee.getEndTime();
//todo 鍛ㄦ湡鎬ц垂鐢ㄦ椂鏃堕棿鑷姩鍔犱竴澶╋紝鍥犱负鐗╀笟缁熻鐨凟xcel 涓�鑸皯涓�澶�
if (!FeeDto.FEE_FLAG_ONCE.equals(tmpFeeDto.getFeeFlag())) {
@@ -207,7 +234,52 @@
payFeeDetailPo.setState("1400");
payFeeDetailPo.setCashierName(importRoomFee.getStaffName());
payFeeDetailPo.setPayableAmount(importRoomFee.getAmount());
+ payFeeDetailPo.setPayOrderId(payFeeDetailPo.getPayOrderId() !=null ? payFeeDetailPo.getPayOrderId() : importRoomFee.getRoomId());
+ payFeeDetailPo.setbId(importRoomFee.getBatchId());
+
+ PayFeeDetailDiscountPo payFeeDetailDiscount = new PayFeeDetailDiscountPo();
+ ResponseEntity<String> resultVo = null;
+ try {
+ resultVo = feeDiscountApi.computeFeeDiscount(tmpFeeDto.getFeeId(), tmpFeeDto.getCommunityId(), 105, importRoomFee.getPayObjId(),
+ tmpFeeDto.getPayerObjType(), importRoomFee.getEndTime(), importRoomFee.getEndTime(), importRoomFee.getStartTime(), 1, 20);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+
+
+
+// 2. 浠� ResultVo 涓幏鍙� data 骞跺己杞负鐩爣绫诲瀷
+ if (resultVo != null) {
+ // 鍋囪 data 瀛楁瀛樺偍鐨勬槸 List<ComputeDiscountDto>
+ JSONArray data = (JSONArray) JSONObject.parseObject(resultVo.getBody()).get("data");
+
+ if(data.size() > 0) {
+ JSONObject o = (JSONObject) data.get(0);
+ String discountPrice = o.get("discountPrice").toString();
+ String discountId = o.get("discountId").toString();
+ payFeeDetailPo.setDiscountAmount(discountPrice);
+ payFeeDetailPo.setReceivableAmount((Double.parseDouble(payFeeDetailPo.getReceivedAmount()) + Double.parseDouble(payFeeDetailPo.getDiscountAmount()))+"");
+ payFeeDetailDiscount.setDiscountId(discountId);
+ payFeeDetailDiscount.setDiscountPrice(discountPrice);
+ }
+ }
+
int saved = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
+
+ FeeDetailDto feeDetailDto = new FeeDetailDto();
+ feeDetailDto.setDetailId(payFeeDetailPo.getDetailId());
+
+ List<FeeDetailDto> feeDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
+
+ if (payFeeDetailDiscount.getDiscountId() != null) {
+ payFeeDetailDiscount.setDetailId(payFeeDetailPo.getDetailId());
+ payFeeDetailDiscount.setStatusCd("0");
+ payFeeDetailDiscount.setCommunityId(feeDtos.get(0).getCommunityId());
+ payFeeDetailDiscount.setFeeId(feeDtos.get(0).getFeeId());
+ payFeeDetailDiscount.setDetailDiscountId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_discountId));
+ }
+
+ payFeeDetailDiscountNewV1InnerServiceSMOImpl.savePayFeeDetailDiscountNew(payFeeDetailDiscount);
if (saved < 1) {
return;
@@ -216,7 +288,6 @@
if (tmpFeeDto.getEndTime().getTime() >= DateUtil.getDateFromStringB(importRoomFee.getEndTime()).getTime()) {
return;
}
-
//濡傛灉缁撴潫鏃堕棿灏忎簬 缂磋垂缁撴潫鏃堕棿鍒欏欢鏈�
PayFeePo payFeePo = new PayFeePo();
payFeePo.setCommunityId(importRoomFee.getCommunityId());
@@ -226,9 +297,6 @@
if (FeeDto.FEE_FLAG_ONCE.equals(tmpFeeDto.getFeeFlag())) {
payFeePo.setState(FeeDto.STATE_FINISH);
}
-
feeInnerServiceSMOImpl.updateFee(payFeePo);
}
-
-
}
--
Gitblit v1.8.0