From f2fbd22d4e9322271ce22aa08747cd5a773411f9 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 29 八月 2022 01:55:17 +0800
Subject: [PATCH] 优化 临时停车费 数据不全问题
---
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarPaymentCmd.java | 150 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 147 insertions(+), 3 deletions(-)
diff --git a/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarPaymentCmd.java b/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarPaymentCmd.java
index 72ab936..df48c2b 100644
--- a/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarPaymentCmd.java
+++ b/service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadCarPaymentCmd.java
@@ -7,10 +7,17 @@
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;
+import com.java110.dto.carInoutPayment.CarInoutPaymentDto;
import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDetailDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.machine.CarInoutDto;
import com.java110.dto.machine.MachineDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.tempCarFeeConfig.TempCarFeeConfigDto;
import com.java110.intf.common.ICarInoutPaymentV1InnerServiceSMO;
import com.java110.intf.common.ICarInoutV1InnerServiceSMO;
import com.java110.intf.common.IMachineInnerServiceSMO;
@@ -19,10 +26,12 @@
import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
import com.java110.intf.fee.IFeeInnerServiceSMO;
import com.java110.intf.fee.ITempCarFeeConfigInnerServiceSMO;
+import com.java110.intf.user.IBuildingOwnerV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
import com.java110.po.car.CarInoutPo;
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.utils.exception.CmdException;
@@ -30,6 +39,7 @@
import com.java110.utils.util.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -45,6 +55,7 @@
@Java110Cmd(serviceCode = "machineTranslate.machineUploadCarPaymentCmd")
public class MachineUploadCarPaymentCmd extends Cmd {
+ public static final String TEMP_CAR_OWNER = "涓存椂杞﹁溅涓�";
@Autowired
private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
@@ -75,6 +86,9 @@
@Autowired
private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
+
+ @Autowired
+ private IBuildingOwnerV1InnerServiceSMO buildingOwnerV1InnerServiceSMOImpl;
/**
* data.put("carNum", carInoutDto.getCarNum());
@@ -151,7 +165,46 @@
throw new CmdException("鏇存柊鍑哄満鏃堕棿澶辫触");
}
- //缂磋垂
+ //濡傛灉鏈夎垂鐢� 鍒欑即璐�
+ boolean hasFee = hasFeeAndPayFee(carInoutPo, carInoutPaymentPo);
+
+ double realCharge = Double.parseDouble(carInoutPaymentPo.getRealCharge());
+
+ //鏈夎垂鐢� 鎴栬�� 缂磋垂涓�0 鏃剁粨鏉�
+ if (hasFee || realCharge == 0) {
+ return;
+ }
+
+ OwnerCarDto ownerCarDto = new OwnerCarDto();
+ ownerCarDto.setCarNum(reqJson.getString("carNum"));
+ ownerCarDto.setCommunityId(reqJson.getString("communityId"));
+ ownerCarDto.setCarType(OwnerCarDto.CAR_TYPE_TEMP);
+ List<OwnerCarDto> ownerCarDtos = ownerCarV1InnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+ if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+ 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("carNum", reqJson.getString("carNum"));
+ paramIn.put("carId", ownerCarDtos.get(0).getCarId());
+ paramIn.put("communityId", carInoutDtos.get(0).getCommunityId());
+ paramIn.put("inoutId", carInoutDtos.get(0).getInoutId());
+ paramIn.put("ownerId", ownerDtos.get(0).getMemberId());
+ saveTempCarFee(paramIn, machineDto,carInoutDtos.get(0));
+
+ //鍐嶅幓缂磋垂
hasFeeAndPayFee(carInoutPo, carInoutPaymentPo);
}
@@ -179,11 +232,17 @@
PayFeeDetailPo payFeeDetailPo = new PayFeeDetailPo();
payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
- payFeeDetailPo.setPrimeRate("1.00");
+ if(CarInoutPaymentDto.PAY_TYPE_CRASH.equals(carInoutPaymentPo.getPayType())) {
+ payFeeDetailPo.setPrimeRate(FeeDetailDto.PRIME_REATE_CRASH);
+ }else if(CarInoutPaymentDto.PAY_TYPE_WECHAT.equals(carInoutPaymentPo.getPayType())){
+ payFeeDetailPo.setPrimeRate(FeeDetailDto.PRIME_REATE_WECHAT_QRCODE);
+ }else{
+ payFeeDetailPo.setPrimeRate(FeeDetailDto.PRIME_REATE_ALI_QRCODE);
+ }
FeeDto feeDto = feeDtos.get(0);
payFeeDetailPo.setStartTime(DateUtil.getFormatTimeString(feeDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_A));
payFeeDetailPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
- payFeeDetailPo.setCommunityId(carInoutPaymentPo.getCommunityId());
+ payFeeDetailPo.setCommunityId(carInoutPo.getCommunityId());
payFeeDetailPo.setCycles("1");
payFeeDetailPo.setReceivableAmount(carInoutPaymentPo.getPayCharge());
payFeeDetailPo.setReceivedAmount(carInoutPaymentPo.getRealCharge());
@@ -195,4 +254,89 @@
}
return true;
}
+
+ private void saveTempCarFee(JSONObject reqJson, MachineDto machineDto,CarInoutDto carInoutDto) {
+
+
+
+ //鍒涘缓璐圭敤
+ TempCarFeeConfigDto tempCarFeeConfigDto = new TempCarFeeConfigDto();
+ tempCarFeeConfigDto.setCommunityId(reqJson.getString("communityId"));
+ tempCarFeeConfigDto.setPaId(carInoutDto.getPaId());
+ 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);
+ communityMemberDto.setAuditStatusCd(CommunityMemberDto.AUDIT_STATUS_NORMAL);
+ List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+
+ Assert.listOnlyOne(communityMemberDtos, "灏忓尯鎴愬憳涓嶅瓨鍦�");
+ List<PayFeePo> payFeePos = new ArrayList<>();
+ List<FeeAttrPo> feeAttrPos = new ArrayList<>();
+ PayFeePo payFeePo = new PayFeePo();
+ payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+ payFeePo.setEndTime(reqJson.getString("inTime"));
+ payFeePo.setState(FeeDto.STATE_DOING);
+ payFeePo.setCommunityId(reqJson.getString("communityId"));
+ payFeePo.setConfigId(tempCarFeeConfigDto.getFeeConfigId());
+ payFeePo.setPayerObjId(reqJson.getString("carId"));
+ payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_CAR);
+ payFeePo.setUserId("-1");
+ payFeePo.setIncomeObjId(communityMemberDtos.get(0).getMemberId());
+ payFeePo.setFeeTypeCd(FeeConfigDto.FEE_TYPE_CD_PARKING);
+ payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+ payFeePo.setAmount("-1");
+ payFeePo.setBatchId("-1");
+ //payFeePo.setStartTime(importRoomFee.getStartTime());
+ payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ payFeePos.add(payFeePo);
+ FeeAttrPo feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
+ feeAttrPo.setValue(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+ 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_OWNER_ID);
+ feeAttrPo.setValue(reqJson.getString("ownerId"));
+ 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_OWNER_NAME);
+ feeAttrPo.setValue(TEMP_CAR_OWNER);
+ 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_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);
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨涓存椂杞﹁垂鐢ㄥけ璐�");
+ }
+ flag = feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos);
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨涓存椂杞﹁垂鐢ㄥ睘鎬уけ璐�");
+ }
+ }
}
--
Gitblit v1.8.0