| | |
| | | |
| | | 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; |
| | |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.ListUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Java110Cmd(serviceCode = "fee.updateFee") |
| | |
| | | @Autowired |
| | | private FeeAttrInnerServiceSMOImpl feeAttrInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IPayFeeMonth payFeeMonthImpl; |
| | | |
| | | @Override |
| | | public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException { |
| | | |
| | |
| | | Assert.hasKeyAndValue(reqJson, "feeId", "未包含feeId"); |
| | | Assert.hasKeyAndValue(reqJson, "startTime", "未包含开始时间"); |
| | | Assert.hasKeyAndValue(reqJson, "endTime", "未包含结束时间"); |
| | | Assert.hasKeyAndValue(reqJson, "maxEndTime", "未包含结束时间"); |
| | | if(!reqJson.getString("maxEndTime").contains(":")){ |
| | | reqJson.put("maxEndTime",reqJson.getString("maxEndTime")+" 23:59:59"); |
| | | } |
| | | |
| | | FeeDto feeDto = new FeeDto(); |
| | | feeDto.setCommunityId(reqJson.getString("communityId")); |
| | |
| | | List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto); |
| | | |
| | | Assert.listOnlyOne(feeDtos, "未查询到费用信息 或查询到多条" + reqJson); |
| | | |
| | | |
| | | } |
| | | |
| | | @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("computingFormula") |
| | | || !FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(reqJson.getString("computingFormula"))){ |
| | | return ; |
| | | // todo 重新计算离散月 |
| | | payFeeMonthImpl.deleteFeeMonth(payFeePo.getFeeId(),payFeePo.getCommunityId()); |
| | | payFeeMonthImpl.doGeneratorOrRefreshFeeMonth(payFeePo.getFeeId(),payFeePo.getCommunityId()); |
| | | |
| | | // todo 欠费重新生成 |
| | | List<String> feeIds= new ArrayList<>(); |
| | | feeIds.add(payFeePo.getFeeId()); |
| | | payFeeMonthImpl.doGeneratorOweFees(feeIds,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")); |
| | | feeAttrPo.setCommunityId(reqJson.getString("communityId")); |
| | | if (ListUtil.isNull(feeAttrDtos)) { |
| | | feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId)); |
| | | feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo); |
| | | } else { |
| | | feeAttrInnerServiceSMOImpl.updateFeeAttr(feeAttrPo); |
| | | } |
| | | } |
| | | |
| | | if(reqJson.containsKey("rate")) { |
| | | if (!reqJson.containsKey("computingFormula") |
| | | || !FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(reqJson.getString("computingFormula"))) { |
| | | return; |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | } |