From 380908e868b088d62c0e572457bffeea1cbfe8f8 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期四, 23 二月 2023 02:51:45 +0800
Subject: [PATCH] 优化加入智能水电表厂家
---
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java | 206 ++++++++++++++++++++++++++++----------------------
1 files changed, 115 insertions(+), 91 deletions(-)
diff --git a/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java b/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java
index 55b512d..d32b93e 100644
--- a/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java
+++ b/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java
@@ -1,5 +1,6 @@
package com.java110.common.cmd.machineTranslate;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
@@ -18,7 +19,10 @@
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.parkingBoxArea.ParkingBoxAreaDto;
+import com.java110.dto.parkingCouponCar.ParkingCouponCarDto;
import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
+import com.java110.intf.acct.IParkingCouponCarOrderV1InnerServiceSMO;
+import com.java110.intf.acct.IParkingCouponCarV1InnerServiceSMO;
import com.java110.intf.common.ICarInoutDetailV1InnerServiceSMO;
import com.java110.intf.common.ICarInoutPaymentV1InnerServiceSMO;
import com.java110.intf.common.ICarInoutV1InnerServiceSMO;
@@ -41,10 +45,13 @@
import com.java110.po.fee.PayFeeDetailPo;
import com.java110.po.fee.PayFeePo;
import com.java110.po.owner.OwnerPo;
+import com.java110.po.parkingCouponCar.ParkingCouponCarPo;
+import com.java110.po.parkingCouponCarOrder.ParkingCouponCarOrderPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.lock.DistributedLock;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
@@ -115,6 +122,12 @@
@Autowired
private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
+ @Autowired
+ private IParkingCouponCarV1InnerServiceSMO parkingCouponCarV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IParkingCouponCarOrderV1InnerServiceSMO parkingCouponCarOrderV1InnerServiceSMOImpl;
+
@Override
public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
Assert.hasKeyAndValue(reqJson, "machineCode", "蹇呭~锛岃濉啓璁惧缂栫爜");
@@ -173,7 +186,22 @@
tempCarName = tmpOwnerCarDto.getLeaseTypeName();
}
}
+
+ //涓诲壇杞﹁締涓� 鏈変竴涓溅杈嗗湪鍦猴紝杩欎釜杞﹀満褰撳仛涓存椂杞﹀鐞�
+ if (hasInParkingArea(ownerCarDtos.get(0).getCarId(), reqJson.getString("carNum"), reqJson.getString("communityId"), paIds)) {
+ tempCar = CAR_TYPE_NO_DATA;
+ tempCarName = "涓存椂杞�";
+ }
+
+ int day = DateUtil.differentDaysUp(DateUtil.getCurrentDate(),ownerCarDtos.get(0).getEndTime());
+
+ if(day <= -5){
+ tempCar = CAR_TYPE_NO_DATA;
+ tempCarName = "涓存椂杞�";
+ }
}
+
+
//杩涘満澶勭悊
@@ -182,6 +210,50 @@
} else {
carOut(reqJson, machineDtos.get(0), tempCar, tempCarName);
}
+
+ }
+
+ private boolean hasInParkingArea(String carId, String carNum, String communityId, List<String> paIds) {
+ if (StringUtil.isEmpty(carId) || "-1".equals(carId)) {
+ return false;
+ }
+
+ // 鍒ゆ柇鏄惁涓轰富鍓溅杈�
+ OwnerCarDto carDto = new OwnerCarDto();
+ carDto.setPaIds(paIds.toArray(new String[paIds.size()]));
+ carDto.setCarNum(carNum);
+ carDto.setCarId(carId);
+ List<OwnerCarDto> tmpCarDtos = ownerCarV1InnerServiceSMOImpl.queryOwnerCars(carDto);
+ if (tmpCarDtos == null || tmpCarDtos.size() < 2) {
+ return false;
+ }
+
+ List<String> otherCarNums = new ArrayList<>();
+
+ for (OwnerCarDto tempCarDto : tmpCarDtos) {
+ if (tempCarDto.getCarNum().equals(carNum)) {
+ continue;
+ }
+ otherCarNums.add(tempCarDto.getCarNum());
+ }
+
+ if (otherCarNums.size() < 1) {
+ return false;
+ }
+
+ for (String otherCarNum : otherCarNums) {
+ //鍒ゆ柇杞﹁締鏄惁鍦� 鍦哄唴
+ CarInoutDto inoutDto = new CarInoutDto();
+ inoutDto.setCarNum(otherCarNum);
+ inoutDto.setPaIds(paIds.toArray(new String[paIds.size()]));
+ inoutDto.setState(CarInoutDto.STATE_IN);
+ List<CarInoutDto> carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(inoutDto);
+ if (carInoutDtos != null && carInoutDtos.size() > 0) {
+ return true;
+ }
+ }
+
+ return false;
}
@@ -303,54 +375,37 @@
updateCarInoutState(reqJson, carInoutDtos.get(0));
- //鍐欐敮浠樿褰�
-// CarInoutPaymentPo carInoutPaymentPo = new CarInoutPaymentPo();
-// carInoutPaymentPo.setPaymentId(GenerateCodeFactory.getGeneratorId("10"));
-// carInoutPaymentPo.setCommunityId(carInoutDtos.get(0).getCommunityId());
-// carInoutPaymentPo.setInoutId(carInoutDtos.get(0).getInoutId());
-// carInoutPaymentPo.setPaId(carInoutDtos.get(0).getPaId());
-// carInoutPaymentPo.setPayCharge(reqJson.getString("payCharge"));
-// carInoutPaymentPo.setPayType(reqJson.getString("payType"));
-// carInoutPaymentPo.setRealCharge(reqJson.getString("realCharge"));
-// flag = carInoutPaymentV1InnerServiceSMOImpl.saveCarInoutPayment(carInoutPaymentPo);
-// if (flag < 1) {
-// throw new CmdException("鏇存柊鍑哄満鏃堕棿澶辫触");
-// }
-//
-// //鏈堢杞�
-// if (tempCar != CAR_TYPE_NO_DATA && tempCar != CAR_TYPE_TEMP) {
-// return;
-// }
-//
-// //濡傛灉鏈夎垂鐢� 鍒欑即璐�
-// boolean hasFee = hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
-//
-// double realCharge = Double.parseDouble(carInoutPaymentPo.getRealCharge());
-//
-// //鏈夎垂鐢� 鎴栬�� 缂磋垂涓�0 鏃剁粨鏉�
-// if (hasFee || realCharge == 0) {
-// return;
-// }
-// // 鍒ゆ柇鏄惁瀛樺湪 涓存椂杞� 铏氭嫙涓氫富
-// OwnerDto ownerDto = new OwnerDto();
-// ownerDto.setCommunityId(reqJson.getString("communityId"));
-// ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
-// ownerDto.setOwnerFlag(OwnerDto.OWNER_FLAG_FALSE);
-// ownerDto.setName(TEMP_CAR_OWNER);
-// List<OwnerDto> ownerDtos = buildingOwnerV1InnerServiceSMOImpl.queryBuildingOwners(ownerDto);
-// if (ownerDtos == null || ownerDtos.size() < 1) {
-// return;
-// }
-// JSONObject paramIn = new JSONObject();
-// paramIn.put("inTime", carInoutDtos.get(0).getInTime());
-// paramIn.put("carId", reqJson.getString("carId"));
-// paramIn.put("communityId", carInoutDtos.get(0).getCommunityId());
-// paramIn.put("inoutId", carInoutDtos.get(0).getInoutId());
-// paramIn.put("ownerId", ownerDtos.get(0).getMemberId());
-// saveTempCarFee(paramIn, machineDto);
-//
-// //鍐嶅幓缂磋垂
-// hasFeeAndPayFee(carInoutDtos.get(0), reqJson, carInoutPo, carInoutPaymentPo);
+ //澶勭悊鍋滆溅鍔�
+ if (!reqJson.containsKey("pccIds") || reqJson.getJSONArray("pccIds").size() < 1) {
+ return;
+ }
+
+ JSONArray pccIds = reqJson.getJSONArray("pccIds");
+ String pccId = "";
+ ParkingCouponCarPo parkingCouponCarPo = null;
+ ParkingCouponCarOrderPo parkingCouponCarOrderPo = null;
+ for (int pccIdIndex = 0; pccIdIndex < pccIds.size(); pccIdIndex++) {
+ pccId = pccIds.getString(pccIdIndex);
+
+ parkingCouponCarPo = new ParkingCouponCarPo();
+ parkingCouponCarPo.setPccId(pccId);
+ parkingCouponCarPo.setState(ParkingCouponCarDto.STATE_FINISH);
+ parkingCouponCarV1InnerServiceSMOImpl.updateParkingCouponCar(parkingCouponCarPo);
+
+ parkingCouponCarOrderPo = new ParkingCouponCarOrderPo();
+ parkingCouponCarOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId("11"));
+ parkingCouponCarOrderPo.setCarNum(reqJson.getString("carNum"));
+ parkingCouponCarOrderPo.setCarOutId(carInoutDetailPo.getDetailId());
+ parkingCouponCarOrderPo.setCommunityId(reqJson.getString("communityId"));
+ parkingCouponCarOrderPo.setMachineId(machineDto.getMachineId());
+ parkingCouponCarOrderPo.setMachineName(machineDto.getMachineName());
+ parkingCouponCarOrderPo.setPaId(carInoutDtos.get(0).getPaId());
+ parkingCouponCarOrderPo.setPccId(pccId);
+ parkingCouponCarOrderPo.setRemark("杞﹁締鍑哄彛鏍搁攢鍋滆溅鍔�");
+
+ parkingCouponCarOrderV1InnerServiceSMOImpl.saveParkingCouponCarOrder(parkingCouponCarOrderPo);
+ }
+
}
private void updateCarInoutState(JSONObject reqJson, CarInoutDto carInoutDto) {
@@ -372,8 +427,8 @@
});
List<CarInoutDto> carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(newCarInoutDto);
- if(carInoutDtos == null || carInoutDtos.size()<1){
- return ;
+ if (carInoutDtos == null || carInoutDtos.size() < 1) {
+ return;
}
CarInoutPo carInoutPo = new CarInoutPo();
@@ -390,47 +445,6 @@
} finally {
DistributedLock.releaseDistributedLock(requestId, key);
}
- }
-
- private boolean hasFeeAndPayFee(CarInoutDto carInoutDto, JSONObject reqJson, CarInoutPo carInoutPo, CarInoutPaymentPo carInoutPaymentPo) {
-
- FeeAttrDto feeAttrDto = new FeeAttrDto();
- feeAttrDto.setCommunityId(carInoutPo.getCommunityId());
- feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_CAR_INOUT_ID);
- feeAttrDto.setValue(carInoutPo.getInoutId());
- feeAttrDto.setState(FeeDto.STATE_DOING);
- List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFeeByAttr(feeAttrDto);
- if (feeDtos == null || feeDtos.size() < 1) {
- return false;
- }
- PayFeePo payFeePo = new PayFeePo();
- payFeePo.setState(FeeDto.STATE_FINISH);
- payFeePo.setFeeId(feeDtos.get(0).getFeeId());
- payFeePo.setEndTime(carInoutPo.getOutTime());
- payFeePo.setCommunityId(feeDtos.get(0).getCommunityId());
- int flag = feeInnerServiceSMOImpl.updateFee(payFeePo);
- if (flag < 1) {
- throw new CmdException("鏇存柊璐圭敤澶辫触");
- }
-
-
- PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
- payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
- payFeeDetailPo.setPrimeRate("1.00");
- FeeDto feeDto = feeDtos.get(0);
- payFeeDetailPo.setStartTime(DateUtil.getFormatTimeString(feeDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_A));
- payFeeDetailPo.setEndTime(carInoutPo.getOutTime());
- payFeeDetailPo.setCommunityId(carInoutDto.getCommunityId());
- payFeeDetailPo.setCycles("1");
- payFeeDetailPo.setReceivableAmount(carInoutPaymentPo.getPayCharge());
- payFeeDetailPo.setReceivedAmount(carInoutPaymentPo.getRealCharge());
- payFeeDetailPo.setFeeId(feeDto.getFeeId());
-
- flag = feeDetailInnerServiceSMOImpl.saveFeeDetail(payFeeDetailPo);
- if (flag < 1) {
- throw new CmdException("鏇存柊璐圭敤澶辫触");
- }
- return true;
}
/**
@@ -672,6 +686,16 @@
*/
private void saveTempCar(JSONObject reqJson, MachineDto machineDto) {
+ OwnerCarDto ownerCarDto = new OwnerCarDto();
+ ownerCarDto.setCarNum(reqJson.getString("carNum"));
+ ownerCarDto.setCommunityId(reqJson.getString("communityId"));
+ List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+ if (ownerCarDtos != null && ownerCarDtos.size() > 0) {
+ reqJson.put("carId", ownerCarDtos.get(0).getCarId());
+ return;
+ }
+
OwnerCarPo ownerCarPo = new OwnerCarPo();
ownerCarPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
ownerCarPo.setCarId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_carId));
--
Gitblit v1.8.0