From 2c0addb285f4cc4d03bd2c1510356b97be4c4892 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 26 一月 2020 11:49:36 +0800
Subject: [PATCH] 开发完成车辆道闸代码

---
 Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java |   66 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java b/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
index e2bfd50..f40bcf0 100644
--- a/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
+++ b/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
@@ -5,21 +5,27 @@
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
+import com.java110.core.smo.fee.IFeeInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.ICarBlackWhiteInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.ICarInoutInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
+import com.java110.dto.FeeConfigDto;
+import com.java110.dto.FeeDto;
 import com.java110.dto.hardwareAdapation.CarBlackWhiteDto;
 import com.java110.dto.hardwareAdapation.CarInoutDto;
 import com.java110.dto.hardwareAdapation.MachineDto;
+import com.java110.dto.owner.OwnerCarDto;
 import com.java110.entity.center.AppService;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.FeeTypeConstant;
 import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
-import com.java110.utils.util.StringUtil;
 import com.java110.vo.api.machine.MachineResDataVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
@@ -57,6 +63,15 @@
 
     @Autowired
     private ICarBlackWhiteInnerServiceSMO carBlackWhiteInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO carInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
@@ -170,9 +185,56 @@
         }
 
         //鍒ゆ柇杞﹁締鍑虹鍜屽嚭鍞� 鏃堕棿鏄惁鍒版湡
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setCarNum(carNum);
+        ownerCarDto.setCommunityId(tmpCarInoutDto.getCommunityId());
+        List<OwnerCarDto> ownerCarDtos = carInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+        //杩欓噷鑾峰彇鏈�鏂扮殑涓�鏉¤褰� 鎴戜滑璁や负 涓�涓皬鍖轰腑涓�杈嗚溅涓嶈兘鍚屾椂鏈変袱涓溅浣�
+        OwnerCarDto tmpOwnerCarDto = ownerCarDtos.get(0);
+        FeeDto feeDto = new FeeDto();
+        feeDto.setPayerObjId(tmpOwnerCarDto.getPsId());
+        feeDto.setCommunityId(tmpCarInoutDto.getCommunityId());
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
 
+        FeeDto tmpFeeDto = feeDtos.get(0);
 
-        context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "杞﹁締鏈敮浠橈紝璇峰厛鏀粯"));
+        Date endTime = tmpFeeDto.getEndTime();
+        Date nowTime = new Date();
+        long betweenTime = (endTime.getTime() - nowTime.getTime());
+
+        if (betweenTime > 0) {
+            long day = betweenTime / (60 * 60 * 24 * 1000);
+            JSONObject data = new JSONObject();
+            data.put("day", day);//杩樺墿浣欏灏戝ぉ
+            modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto);
+            context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "鎴愬姛", data));
+            return;
+        }
+
+        //璁$畻缂磋垂閲戦
+
+        Date inTime = tmpCarInoutDto.getInTime();
+
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(tmpCarInoutDto.getCommunityId());
+        feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+
+        FeeConfigDto tmpFeeConfigDto = feeConfigDtos.get(0);
+        Double hour = Math.ceil((nowTime.getTime() - inTime.getTime()) / (60 * 60 * 1000));
+        double money = 0.00;
+        if (hour <= 2) {
+            money = Double.parseDouble(tmpFeeConfigDto.getAdditionalAmount());
+        } else {
+            double lastHour = hour - 2;
+            money = lastHour * Double.parseDouble(tmpFeeConfigDto.getSquarePrice()) + Double.parseDouble(tmpFeeConfigDto.getAdditionalAmount());
+        }
+
+        JSONObject data = new JSONObject();
+        data.put("money", money);//缂磋垂閲戦
+        data.put("hour", hour);//鍋滆溅鏃堕棿
+
+        context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "杞﹁締鏈敮浠橈紝璇峰厛鏀粯", data));
     }
 
     private void modifyCarInoutInfo(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {

--
Gitblit v1.8.0