From 7958f1dddb8a7f4e70d232b07a7703955ecedae0 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期六, 26 八月 2023 12:45:33 +0800
Subject: [PATCH] 优化diamante
---
service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java | 89 ++++++++++++++++++++++++++++++++++++++------
1 files changed, 77 insertions(+), 12 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java b/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java
index 25f1689..4d7d7b9 100755
--- a/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/smo/impl/TempCarFeeConfigInnerServiceSMOImpl.java
@@ -2,26 +2,29 @@
import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.log.LoggerFactory;
import com.java110.dto.PageDto;
import com.java110.dto.fee.TempCarFeeResult;
+import com.java110.dto.machine.CarInoutDetailDto;
import com.java110.dto.machine.CarInoutDto;
-import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigAttrDto;
-import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
-import com.java110.dto.tempCarFeeConfig.TempCarFeeRuleDto;
-import com.java110.dto.tempCarFeeConfig.TempCarFeeRuleSpecDto;
+import com.java110.dto.fee.TempCarFeeConfigAttrDto;
+import com.java110.dto.fee.TempCarFeeConfigDto;
+import com.java110.dto.fee.TempCarFeeRuleDto;
+import com.java110.dto.fee.TempCarFeeRuleSpecDto;
import com.java110.fee.dao.ITempCarFeeConfigServiceDao;
import com.java110.intf.fee.IComputeTempCarFee;
import com.java110.intf.fee.ITempCarFeeConfigAttrInnerServiceSMO;
import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -110,6 +113,42 @@
@Override
public List<CarInoutDto> computeTempCarFee(@RequestBody List<CarInoutDto> carInoutDtos) {
+ for (CarInoutDto carInoutDto : carInoutDtos) {
+ try {
+ TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+ tempCarFeeConfigDto.setPaId(carInoutDto.getPaId());
+ tempCarFeeConfigDto.setCommunityId(carInoutDto.getCommunityId());
+ List<TempCarFeeConfigDto> tempCarFeeConfigDtos = queryTempCarFeeConfigs(tempCarFeeConfigDto);
+
+ if (tempCarFeeConfigDtos == null || tempCarFeeConfigDtos.size() < 1) {
+ continue;
+ }
+ TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto = new TempCarFeeConfigAttrDto();
+ tempCarFeeConfigAttrDto.setConfigId(tempCarFeeConfigDtos.get(0).getConfigId());
+ tempCarFeeConfigAttrDto.setCommunityId(tempCarFeeConfigDto.getCommunityId());
+
+ List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
+ IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
+
+
+ TempCarFeeResult result = computeTempCarFee.computeTempCarFee(carInoutDto, tempCarFeeConfigDtos.get(0), tempCarFeeConfigAttrDtos);
+ carInoutDto.setMin(result.getMin());
+ carInoutDto.setHours(result.getHours());
+ if (CarInoutDto.CAR_TYPE_MONTH.equals(carInoutDto.getCarType())) {
+ carInoutDto.setPayCharge("0.00");
+ } else {
+ carInoutDto.setPayCharge(result.getPayCharge() + "");
+ }
+ } catch (Exception e) {
+ logger.error("涓存椂杞︾畻璐瑰け璐�", e);
+ }
+ }
+
+ return carInoutDtos;
+ }
+
+ @Override
+ public List<CarInoutDetailDto> computeTempCarInoutDetailFee(@RequestBody List<CarInoutDetailDto> carInoutDtos) {
TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
tempCarFeeConfigDto.setPaId(carInoutDtos.get(0).getPaId());
tempCarFeeConfigDto.setCommunityId(carInoutDtos.get(0).getCommunityId());
@@ -123,14 +162,40 @@
tempCarFeeConfigAttrDto.setCommunityId(tempCarFeeConfigDto.getCommunityId());
List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
- long time = 0;
- for (CarInoutDto carInoutDto : carInoutDtos) {
+ IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
+ for (CarInoutDetailDto carInoutDto : carInoutDtos) {
try {
- IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
- TempCarFeeResult result = computeTempCarFee.computeTempCarFee(carInoutDtos.get(0), tempCarFeeConfigDtos.get(0), tempCarFeeConfigAttrDtos);
- carInoutDto.setMin(result.getMin());
- carInoutDto.setHours(result.getHours());
- carInoutDto.setPayCharge(result.getPayCharge() + "");
+ if (CarInoutDetailDto.CAR_INOUT_IN.equals(carInoutDto.getCarInout())
+ && !CarInoutDetailDto.STATE_OUT.equals(carInoutDto.getInState())
+ ) {
+ //杩涘満澶辫触
+ if (CarInoutDetailDto.STATE_IN_FAIL.equals(carInoutDto.getInState())) {
+ carInoutDto.setMin(0);
+ carInoutDto.setHours(0);
+ carInoutDto.setPayCharge(0 + "");
+ continue;
+ }
+ TempCarFeeResult result = computeTempCarFee.computeTempCarFee(carInoutDto, tempCarFeeConfigDtos.get(0), tempCarFeeConfigAttrDtos);
+ carInoutDto.setMin(result.getMin());
+ carInoutDto.setHours(result.getHours());
+ carInoutDto.setPayCharge(result.getPayCharge() + "");
+ } else {
+ //鑾峰彇鍋滆溅鏃堕棿
+ Date stateDate = DateUtil.getDateFromString(carInoutDto.getInTime(), DateUtil.DATE_FORMATE_STRING_A);
+ Date endDate = null;
+ if(carInoutDto.getOutTime() == null){
+ endDate = DateUtil.getCurrentDate();
+ }else{
+ endDate = DateUtil.getDateFromString(carInoutDto.getOutTime(), DateUtil.DATE_FORMATE_STRING_A);
+ }
+
+ long min = (endDate.getTime() - stateDate.getTime()) / (60 * 1000);
+ long hours = min / 60; //鍥犱负涓よ�呴兘鏄暣鏁帮紝浣犲緱鍒颁竴涓猧nt
+ long minutes = min % 60;
+ carInoutDto.setMin(minutes);
+ carInoutDto.setHours(hours);
+ carInoutDto.setPayCharge(carInoutDto.getRealCharge());
+ }
} catch (Exception e) {
logger.error("涓存椂杞︾畻璐瑰け璐�", e);
}
--
Gitblit v1.8.0