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 |   65 +++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 22 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 bf0a0eb..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,14 +2,15 @@
 
 
 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;
@@ -18,7 +19,6 @@
 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;
@@ -113,26 +113,32 @@
 
     @Override
     public List<CarInoutDto> computeTempCarFee(@RequestBody List<CarInoutDto> carInoutDtos) {
-        TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
-        tempCarFeeConfigDto.setPaId(carInoutDtos.get(0).getPaId());
-        tempCarFeeConfigDto.setCommunityId(carInoutDtos.get(0).getCommunityId());
-        List<TempCarFeeConfigDto> tempCarFeeConfigDtos = queryTempCarFeeConfigs(tempCarFeeConfigDto);
-
-        if (tempCarFeeConfigDtos == null || tempCarFeeConfigDtos.size() < 1) {
-            return carInoutDtos;
-        }
-        TempCarFeeConfigAttrDto tempCarFeeConfigAttrDto = new TempCarFeeConfigAttrDto();
-        tempCarFeeConfigAttrDto.setConfigId(tempCarFeeConfigDto.getConfigId());
-        tempCarFeeConfigAttrDto.setCommunityId(tempCarFeeConfigDto.getCommunityId());
-
-        List<TempCarFeeConfigAttrDto> tempCarFeeConfigAttrDtos = tempCarFeeConfigAttrInnerServiceSMOImpl.queryTempCarFeeConfigAttrs(tempCarFeeConfigAttrDto);
-        IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
         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());
-                carInoutDto.setPayCharge(result.getPayCharge() + "");
+                if (CarInoutDto.CAR_TYPE_MONTH.equals(carInoutDto.getCarType())) {
+                    carInoutDto.setPayCharge("0.00");
+                } else {
+                    carInoutDto.setPayCharge(result.getPayCharge() + "");
+                }
             } catch (Exception e) {
                 logger.error("涓存椂杞︾畻璐瑰け璐�", e);
             }
@@ -159,7 +165,16 @@
         IComputeTempCarFee computeTempCarFee = ApplicationContextFactory.getBean(tempCarFeeConfigDtos.get(0).getRuleId(), IComputeTempCarFee.class);
         for (CarInoutDetailDto carInoutDto : carInoutDtos) {
             try {
-                if (CarInoutDetailDto.CAR_INOUT_IN.equals(carInoutDto.getCarInout())) {
+                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());
@@ -167,7 +182,13 @@
                 } else {
                     //鑾峰彇鍋滆溅鏃堕棿
                     Date stateDate = DateUtil.getDateFromString(carInoutDto.getInTime(), DateUtil.DATE_FORMATE_STRING_A);
-                    Date endDate = DateUtil.getDateFromString(carInoutDto.getOutTime(), 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;

--
Gitblit v1.8.0