From 68ae4c8d8737d2d43211d04d16c72ec81f8f0789 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 26 八月 2022 10:36:01 +0800
Subject: [PATCH] 优化显示 月租车还是临时车
---
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java | 190 +++++++++++++++++++++++++++++++++--------------
1 files changed, 134 insertions(+), 56 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 94af0ea..d7c6d01 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
@@ -16,12 +16,14 @@
import com.java110.dto.machine.MachineDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.parkingBoxArea.ParkingBoxAreaDto;
import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
import com.java110.intf.common.ICarInoutDetailV1InnerServiceSMO;
import com.java110.intf.common.ICarInoutPaymentV1InnerServiceSMO;
import com.java110.intf.common.ICarInoutV1InnerServiceSMO;
import com.java110.intf.common.IMachineInnerServiceSMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IParkingBoxAreaV1InnerServiceSMO;
import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
import com.java110.intf.fee.IFeeInnerServiceSMO;
@@ -58,9 +60,9 @@
@Java110Cmd(serviceCode = "machineTranslate.machineUploadCarLog")
public class MachineUploadCarLogCmd extends Cmd {
- public static final int CAR_TYPE_MONTH = 0; //鏈堢杞�
+ public static final int CAR_TYPE_MONTH = 1001; //鏈堢杞�
public static final int CAR_TYPE_SUB = 1; //鎴愬憳杞﹁締
- public static final int CAR_TYPE_TEMP = 2; //涓存椂杞﹁締
+ public static final int CAR_TYPE_TEMP = 1003; //涓存椂杞﹁締
public static final int CAR_TYPE_NO_DATA = 3; //娌℃湁鏁版嵁
public static final String TEMP_CAR_OWNER = "涓存椂杞﹁溅涓�";
@@ -104,6 +106,9 @@
@Autowired
private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+ @Autowired
+ private IParkingBoxAreaV1InnerServiceSMO parkingBoxAreaV1InnerServiceSMOImpl;
+
@Override
public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
Assert.hasKeyAndValue(reqJson, "machineCode", "蹇呭~锛岃濉啓璁惧缂栫爜");
@@ -141,7 +146,12 @@
if (OwnerCarDto.CAR_TYPE_TEMP.equals(ownerCarDtos.get(0).getCarTypeCd())) {
tempCar = CAR_TYPE_TEMP;
}
+ // 鏈堢杞﹁繃鏈� 鍚庡氨鏄复鏃惰溅
+ if (ownerCarDtos.get(0).getEndTime().before(DateUtil.getCurrentDate())) {
+ tempCar = CAR_TYPE_TEMP;
+ }
}
+
//杩涘満澶勭悊
if (MachineDto.DIRECTION_IN.equals(machineDtos.get(0).getDirection())) {
@@ -161,10 +171,28 @@
*/
private void carOut(JSONObject reqJson, MachineDto machineDto, int tempCar) {
+ String state = CarInoutDto.STATE_OUT;
+ //杩涘満澶辫触璁板綍
+ if (reqJson.containsKey("state") && "5".equals(reqJson.getString("state"))) {
+ state = CarInoutDto.STATE_IN_FAIL;
+ }
+
+
+ String paId = "";
+ if (MachineDto.MACHINE_TYPE_CAR.equals(machineDto.getMachineTypeCd())) {
+ ParkingBoxAreaDto parkingBoxAreaDto = new ParkingBoxAreaDto();
+ parkingBoxAreaDto.setBoxId(machineDto.getLocationObjId());
+ List<ParkingBoxAreaDto> parkingBoxAreaDtos = parkingBoxAreaV1InnerServiceSMOImpl.queryParkingBoxAreas(parkingBoxAreaDto);
+ if (parkingBoxAreaDtos == null || parkingBoxAreaDtos.size() < 1) {
+ throw new CmdException("宀椾涵鏈厤缃仠杞﹀満" + machineDto.getLocationObjId());
+ }
+ paId = parkingBoxAreaDtos.get(0).getPaId();
+ }
+
CarInoutDto carInoutDto = new CarInoutDto();
carInoutDto.setCommunityId(reqJson.getString("communityId"));
carInoutDto.setCarNum(reqJson.getString("carNum"));
- carInoutDto.setPaId(machineDto.getLocationObjId());
+ carInoutDto.setPaId(paId);
carInoutDto.setStates(new String[]{
CarInoutDto.STATE_IN,
CarInoutDto.STATE_PAY,
@@ -172,11 +200,32 @@
});
List<CarInoutDto> carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(carInoutDto);
+ // 娌℃湁杩涘満璁板綍
if (carInoutDtos == null || carInoutDtos.size() < 1) {
//鍙兘杞﹁締寮傚父鎯呭喌 娌℃湁 杩涘満 琛ュ厖杩涘満璁板綍
reqJson.put("inTime", reqJson.getString("outTime"));
- carIn(reqJson, machineDto, tempCar);
- carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(carInoutDto);
+ //carIn(reqJson, machineDto, tempCar);
+ //淇濆瓨鍑哄満鏄庣粏
+ CarInoutDetailPo carInoutDetailPo = new CarInoutDetailPo();
+ carInoutDetailPo.setCarInout(CarInoutDetailDto.CAR_INOUT_OUT);
+ carInoutDetailPo.setCarNum(reqJson.getString("carNum"));
+ carInoutDetailPo.setCommunityId(reqJson.getString("communityId"));
+ carInoutDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+ carInoutDetailPo.setInoutId("-1");
+ carInoutDetailPo.setMachineCode(machineDto.getMachineCode());
+ carInoutDetailPo.setMachineId(machineDto.getMachineId());
+ carInoutDetailPo.setPaId(paId);
+ carInoutDetailPo.setRemark(reqJson.getString("remark"));
+ carInoutDetailPo.setState(state);
+ carInoutDetailPo.setCarType(tempCar == CAR_TYPE_NO_DATA ? CAR_TYPE_TEMP + "" : tempCar + "");
+ int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨鍑鸿褰曟槑缁嗗け璐�");
+ }
+ //鍑哄満澶辫触浜�
+ if (CarInoutDto.STATE_IN_FAIL.equals(state)) {
+ return;
+ }
}
//淇濆瓨鍑哄満鏄庣粏
@@ -188,11 +237,19 @@
carInoutDetailPo.setInoutId(carInoutDtos.get(0).getInoutId());
carInoutDetailPo.setMachineCode(machineDto.getMachineCode());
carInoutDetailPo.setMachineId(machineDto.getMachineId());
- carInoutDetailPo.setPaId(machineDto.getLocationObjId());
+ carInoutDetailPo.setPaId(carInoutDtos.get(0).getPaId());
+ carInoutDetailPo.setRemark(reqJson.getString("remark"));
+ carInoutDetailPo.setState(state);
+ carInoutDetailPo.setCarType(tempCar == CAR_TYPE_NO_DATA ? CAR_TYPE_TEMP + "" : tempCar + "");
int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
if (flag < 1) {
throw new CmdException("淇濆瓨鍑鸿褰曟槑缁嗗け璐�");
+ }
+
+ //鍑哄満澶辫触浜�
+ if (CarInoutDto.STATE_IN_FAIL.equals(state)) {
+ return;
}
//灏嗙姸鎬佹洿鏂颁负 鍑哄満鐘舵��
@@ -210,53 +267,53 @@
}
//鍐欐敮浠樿褰�
- 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);
+// 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);
}
private boolean hasFeeAndPayFee(CarInoutDto carInoutDto, JSONObject reqJson, CarInoutPo carInoutPo, CarInoutPaymentPo carInoutPaymentPo) {
@@ -308,14 +365,32 @@
* @param tempCar
*/
private void carIn(JSONObject reqJson, MachineDto machineDto, int tempCar) {
+ String state = CarInoutDto.STATE_IN;
+ //杩涘満澶辫触璁板綍
+ if (reqJson.containsKey("state") && "5".equals(reqJson.getString("state"))) {
+ state = CarInoutDto.STATE_IN_FAIL;
+ }
+
+ String paId = machineDto.getLocationObjId();
+
+ if (MachineDto.MACHINE_TYPE_CAR.equals(machineDto.getMachineTypeCd())) {
+ ParkingBoxAreaDto parkingBoxAreaDto = new ParkingBoxAreaDto();
+ parkingBoxAreaDto.setBoxId(machineDto.getLocationObjId());
+ List<ParkingBoxAreaDto> parkingBoxAreaDtos = parkingBoxAreaV1InnerServiceSMOImpl.queryParkingBoxAreas(parkingBoxAreaDto);
+ if (parkingBoxAreaDtos == null || parkingBoxAreaDtos.size() < 1) {
+ throw new CmdException("宀椾涵鏈厤缃仠杞﹀満" + machineDto.getLocationObjId());
+ }
+ paId = parkingBoxAreaDtos.get(0).getPaId();
+ }
+
//淇濆瓨
CarInoutPo carInoutPo = new CarInoutPo();
carInoutPo.setCarNum(reqJson.getString("carNum"));
carInoutPo.setCommunityId(reqJson.getString("communityId"));
carInoutPo.setInoutId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
carInoutPo.setInTime(reqJson.getString("inTime"));
- carInoutPo.setState(CarInoutDto.STATE_IN);
- carInoutPo.setPaId(machineDto.getLocationObjId());
+ carInoutPo.setState(state);
+ carInoutPo.setPaId(paId);
int flag = carInoutV1InnerServiceSMOImpl.saveCarInout(carInoutPo);
if (flag < 1) {
@@ -332,7 +407,10 @@
carInoutDetailPo.setInoutId(carInoutPo.getInoutId());
carInoutDetailPo.setMachineCode(machineDto.getMachineCode());
carInoutDetailPo.setMachineId(machineDto.getMachineId());
- carInoutDetailPo.setPaId(machineDto.getLocationObjId());
+ carInoutDetailPo.setPaId(paId);
+ carInoutDetailPo.setState(state);
+ carInoutDetailPo.setRemark(reqJson.getString("remark"));
+ carInoutDetailPo.setCarType(tempCar == CAR_TYPE_NO_DATA ? CAR_TYPE_TEMP + "" : tempCar + "");
flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
if (flag < 1) {
--
Gitblit v1.8.0