From 8db876498c0179e8ffab848237eccd66436ccacc Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 15 六月 2022 13:46:12 +0800
Subject: [PATCH] 优化疫情上报功能
---
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarLogCmd.java | 141 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 109 insertions(+), 32 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 2c4d3d1..94af0ea 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
@@ -4,7 +4,7 @@
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.context.ICmdDataFlowContext;
-import com.java110.core.event.cmd.AbstractServiceCmdListener;
+import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.CommunityMemberDto;
@@ -23,6 +23,7 @@
import com.java110.intf.common.IMachineInnerServiceSMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
import com.java110.intf.fee.IFeeInnerServiceSMO;
import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
import com.java110.intf.user.IBuildingOwnerV1InnerServiceSMO;
@@ -33,6 +34,7 @@
import com.java110.po.car.OwnerCarPo;
import com.java110.po.carInoutPayment.CarInoutPaymentPo;
import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.fee.PayFeeDetailPo;
import com.java110.po.fee.PayFeePo;
import com.java110.po.owner.OwnerPo;
import com.java110.utils.exception.CmdException;
@@ -54,7 +56,7 @@
* // modify by 寮犱笁 at 2021-09-12 绗�10琛屽湪鏌愮鍦烘櫙涓嬪瓨鍦ㄦ煇绉峛ug 闇�瑕佷慨澶嶏紝娉ㄩ噴10鑷�20琛� 鍔犲叆 20琛岃嚦30琛�
*/
@Java110Cmd(serviceCode = "machineTranslate.machineUploadCarLog")
-public class MachineUploadCarLogCmd extends AbstractServiceCmdListener {
+public class MachineUploadCarLogCmd extends Cmd {
public static final int CAR_TYPE_MONTH = 0; //鏈堢杞�
public static final int CAR_TYPE_SUB = 1; //鎴愬憳杞﹁締
@@ -99,6 +101,9 @@
@Autowired
private ICarInoutPaymentV1InnerServiceSMO carInoutPaymentV1InnerServiceSMOImpl;
+ @Autowired
+ private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
@Override
public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
Assert.hasKeyAndValue(reqJson, "machineCode", "蹇呭~锛岃濉啓璁惧缂栫爜");
@@ -118,7 +123,6 @@
MachineDto machineDto = new MachineDto();
machineDto.setMachineCode(reqJson.getString("machineCode"));
machineDto.setCommunityId(reqJson.getString("communityId"));
- machineDto.setMachineTypeCd(MachineDto.MACHINE_TYPE_CAR);
List<MachineDto> machineDtos = machineInnerServiceSMOImpl.queryMachines(machineDto);
Assert.listOnlyOne(machineDtos, "璁惧涓嶅瓨鍦�");
@@ -134,7 +138,7 @@
tempCar = CAR_TYPE_NO_DATA;
} else {
reqJson.put("carId", ownerCarDtos.get(0).getCarId());
- if (OwnerCarDto.CAR_TYPE_TEMP.equals(ownerCarDtos.get(0).getCarType())) {
+ if (OwnerCarDto.CAR_TYPE_TEMP.equals(ownerCarDtos.get(0).getCarTypeCd())) {
tempCar = CAR_TYPE_TEMP;
}
}
@@ -169,18 +173,9 @@
List<CarInoutDto> carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(carInoutDto);
if (carInoutDtos == null || carInoutDtos.size() < 1) {
- //鍙兘杞﹁締寮傚父鎯呭喌 娌℃湁 杩涘満 璁板綍 琛ヤ竴鏉� carInout
- 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("outTime"));
- carInoutPo.setState(CarInoutDto.STATE_IN);
- carInoutPo.setPaId(machineDto.getLocationObjId());
- int flag = carInoutV1InnerServiceSMOImpl.saveCarInout(carInoutPo);
- if (flag < 1) {
- throw new CmdException("鍑哄満淇濆瓨璁板綍澶辫触");
- }
+ //鍙兘杞﹁締寮傚父鎯呭喌 娌℃湁 杩涘満 琛ュ厖杩涘満璁板綍
+ reqJson.put("inTime", reqJson.getString("outTime"));
+ carIn(reqJson, machineDto, tempCar);
carInoutDtos = carInoutV1InnerServiceSMOImpl.queryCarInouts(carInoutDto);
}
@@ -216,6 +211,7 @@
//鍐欐敮浠樿褰�
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());
@@ -226,6 +222,82 @@
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) {
+
+ 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;
}
/**
@@ -249,6 +321,7 @@
if (flag < 1) {
throw new CmdException("淇濆瓨鍏ヨ褰曞け璐�");
}
+ reqJson.put("inoutId", carInoutPo.getInoutId());
//淇濆瓨鏄庣粏
CarInoutDetailPo carInoutDetailPo = new CarInoutDetailPo();
@@ -292,18 +365,7 @@
saveTempCar(reqJson, machineDto);
}
- //鍒涘缓璐圭敤
- TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
- tempCarFeeConfigDto.setCommunityId(reqJson.getString("communityId"));
- tempCarFeeConfigDto.setPaId(machineDto.getLocationObjId());
-
- List<TempCarFeeConfigDto> tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
-
- if (tempCarFeeConfigDtos == null || tempCarFeeConfigDtos.size() < 1) { // 鍋滆溅鍦烘湭閰嶇疆鏀惰垂瑙勫垯 鍒欎笉鍒涘缓璐圭敤
- return;
- }
-
- saveTempCarFee(reqJson, machineDto, tempCarFeeConfigDtos.get(0));
+ saveTempCarFee(reqJson, machineDto);
}
/**
@@ -311,9 +373,19 @@
*
* @param reqJson
* @param machineDto
- * @param tempCarFeeConfigDto
*/
- private void saveTempCarFee(JSONObject reqJson, MachineDto machineDto, TempCarFeeConfigDto tempCarFeeConfigDto) {
+ private void saveTempCarFee(JSONObject reqJson, MachineDto machineDto) {
+
+ //鍒涘缓璐圭敤
+ TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+ tempCarFeeConfigDto.setCommunityId(reqJson.getString("communityId"));
+ tempCarFeeConfigDto.setPaId(machineDto.getLocationObjId());
+ List<TempCarFeeConfigDto> tempCarFeeConfigDtos = tempCarFeeConfigInnerServiceSMOImpl.queryTempCarFeeConfigs(tempCarFeeConfigDto);
+
+ if (tempCarFeeConfigDtos == null || tempCarFeeConfigDtos.size() < 1) { // 鍋滆溅鍦烘湭閰嶇疆鏀惰垂瑙勫垯 鍒欎笉鍒涘缓璐圭敤
+ return;
+ }
+
CommunityMemberDto communityMemberDto = new CommunityMemberDto();
communityMemberDto.setCommunityId(reqJson.getString("communityId"));
communityMemberDto.setMemberTypeCd(CommunityMemberDto.MEMBER_TYPE_PROPERTY);
@@ -366,6 +438,13 @@
feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
feeAttrPo.setValue("11111111111");
+ feeAttrPo.setFeeId(payFeePo.getFeeId());
+ feeAttrPos.add(feeAttrPo);
+ feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_CAR_INOUT_ID);
+ feeAttrPo.setValue(reqJson.getString("inoutId"));
feeAttrPo.setFeeId(payFeePo.getFeeId());
feeAttrPos.add(feeAttrPo);
int flag = feeInnerServiceSMOImpl.saveFee(payFeePos);
@@ -439,7 +518,5 @@
}
reqJson.put("carId", ownerCarPo.getCarId());
-
-
}
}
--
Gitblit v1.8.0