From 2f11d139696c485494ea0a9213e550e20601d939 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 30 七月 2023 17:40:23 +0800
Subject: [PATCH] 优化修改费用没有缴费记录
---
service-fee/src/main/java/com/java110/fee/cmd/fee/UpdateFeeCmd.java | 80 ++++++++++++++++++++++++++++++++++------
1 files changed, 68 insertions(+), 12 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/UpdateFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/UpdateFeeCmd.java
index b252a69..55ab13b 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/fee/UpdateFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/UpdateFeeCmd.java
@@ -2,12 +2,15 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.fee.FeeAttrDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
+import com.java110.fee.feeMonth.IPayFeeMonth;
import com.java110.fee.smo.impl.FeeAttrInnerServiceSMOImpl;
import com.java110.intf.community.IRoomInnerServiceSMO;
import com.java110.intf.fee.IFeeInnerServiceSMO;
@@ -40,6 +43,9 @@
@Autowired
private FeeAttrInnerServiceSMOImpl feeAttrInnerServiceSMOImpl;
+ @Autowired
+ private IPayFeeMonth payFeeMonthImpl;
+
@Override
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
@@ -56,53 +62,103 @@
List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
Assert.listOnlyOne(feeDtos, "鏈煡璇㈠埌璐圭敤淇℃伅 鎴栨煡璇㈠埌澶氭潯" + reqJson);
+
+ if(FeeDto.FEE_FLAG_CYCLE.equals(feeDtos.get(0).getFeeFlag()) && reqJson.containsKey("maxEndTime")){
+ reqJson.remove("maxEndTime");
+ }
}
@Override
+ @Java110Transactional
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
int flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
- if(flag < 1){
+ if (flag < 1) {
throw new CmdException("淇敼璐圭敤");
}
- if(reqJson.containsKey("maxEndTime") && !StringUtil.isEmpty(reqJson.getString("maxEndTime"))){
+ // todo 閲嶆柊璁$畻绂绘暎鏈�
+ payFeeMonthImpl.deleteFeeMonth(payFeePo.getFeeId(),payFeePo.getCommunityId());
+ payFeeMonthImpl.doGeneratorOrRefreshFeeMonth(payFeePo.getFeeId(),payFeePo.getCommunityId());
+
+
+ if (reqJson.containsKey("maxEndTime") && !StringUtil.isEmpty(reqJson.getString("maxEndTime"))) {
+ FeeAttrDto feeAttrDto = new FeeAttrDto();
+ feeAttrDto.setFeeId(payFeePo.getFeeId());
+ feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
+ List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
FeeAttrPo feeAttrPo = new FeeAttrPo();
feeAttrPo.setFeeId(payFeePo.getFeeId());
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
feeAttrPo.setValue(reqJson.getString("maxEndTime"));
- feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+ } else {
+ feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ }
}
- if(!reqJson.containsKey("computingFormula")
- || !FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(reqJson.getString("computingFormula"))){
- return ;
+ if (!reqJson.containsKey("computingFormula")
+ || !FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(reqJson.getString("computingFormula"))) {
+ return;
}
- if(reqJson.containsKey("rate")) {
+ if (reqJson.containsKey("rate")) {
+ FeeAttrDto feeAttrDto = new FeeAttrDto();
+ feeAttrDto.setFeeId(payFeePo.getFeeId());
+ feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_RATE);
+ List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
FeeAttrPo feeAttrPo = new FeeAttrPo();
feeAttrPo.setFeeId(payFeePo.getFeeId());
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_RATE);
feeAttrPo.setValue(reqJson.getString("rate"));
- feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+ } else {
+ feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ }
}
- if(reqJson.containsKey("rateCycle")) {
+ if (reqJson.containsKey("rateCycle")) {
+ FeeAttrDto feeAttrDto = new FeeAttrDto();
+ feeAttrDto.setFeeId(payFeePo.getFeeId());
+ feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_RATE_CYCLE);
+ List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
FeeAttrPo feeAttrPo = new FeeAttrPo();
feeAttrPo.setFeeId(payFeePo.getFeeId());
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_RATE_CYCLE);
feeAttrPo.setValue(reqJson.getString("rateCycle"));
- feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+ } else {
+ feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ }
}
- if(reqJson.containsKey("rateStartTime")) {
+ if (reqJson.containsKey("rateStartTime")) {
+ FeeAttrDto feeAttrDto = new FeeAttrDto();
+ feeAttrDto.setFeeId(payFeePo.getFeeId());
+ feeAttrDto.setSpecCd(FeeAttrDto.SPEC_CD_RATE_START_TIME);
+ List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto);
FeeAttrPo feeAttrPo = new FeeAttrPo();
feeAttrPo.setFeeId(payFeePo.getFeeId());
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_RATE_START_TIME);
feeAttrPo.setValue(reqJson.getString("rateStartTime"));
- feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ if (feeAttrDtos == null || feeAttrDtos.size() < 1) {
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
+ } else {
+ feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo);
+ }
}
}
}
--
Gitblit v1.8.0