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