| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- package com.java110.job.task.fee;
- import com.java110.core.factory.GenerateCodeFactory;
- import com.java110.core.smo.IComputeFeeSMO;
- import com.java110.dto.community.CommunityDto;
- import com.java110.dto.fee.FeeAttrDto;
- import com.java110.dto.fee.FeeConfigDto;
- import com.java110.dto.fee.FeeDto;
- import com.java110.dto.logSystemError.LogSystemErrorDto;
- import com.java110.dto.reportOweFee.ReportOweFeeDto;
- import com.java110.dto.task.TaskDto;
- import com.java110.intf.common.ILogSystemErrorInnerServiceSMO;
- import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
- import com.java110.intf.community.IRoomInnerServiceSMO;
- import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
- import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
- import com.java110.intf.fee.IFeeInnerServiceSMO;
- import com.java110.intf.report.IReportOweFeeInnerServiceSMO;
- import com.java110.intf.user.IOwnerCarInnerServiceSMO;
- import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
- import com.java110.job.quartz.TaskSystemQuartz;
- import com.java110.po.logSystemError.LogSystemErrorPo;
- import com.java110.po.reportOweFee.ReportOweFeePo;
- import com.java110.service.smo.ISaveSystemErrorSMO;
- import com.java110.utils.util.DateUtil;
- import com.java110.utils.util.ExceptionUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.List;
- /**
- * @ClassName GenerateOwnerBillTemplate
- * @Description TODO 房屋费用账单生成
- * @Author wuxw
- * @Date 2020/6/4 8:33
- * @Version 1.0
- * add by wuxw 2020/6/4
- **/
- @Component
- public class GenerateOweFeeTemplate extends TaskSystemQuartz {
- public static final double DEFAULT_ROW = 200.0;
- @Autowired
- private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
- @Autowired
- private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
- @Autowired
- private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
- @Autowired
- private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
- @Autowired
- private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
- @Autowired
- private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
- @Autowired
- private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
- @Autowired
- private IReportOweFeeInnerServiceSMO reportOweFeeInnerServiceSMOImpl;
- @Autowired
- private IComputeFeeSMO computeFeeSMOImpl;
- @Autowired
- private ILogSystemErrorInnerServiceSMO logSystemErrorInnerServiceSMOImpl;
- @Autowired
- private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
- @Override
- protected void process(TaskDto taskDto) throws Exception {
- // 获取小区
- List<CommunityDto> communityDtos = getAllCommunity();
- for (CommunityDto communityDto : communityDtos) {
- GenerateOweFee(taskDto, communityDto);
- }
- }
- /**
- * 根据小区生成账单
- *
- * @param communityDto
- */
- private void GenerateOweFee(TaskDto taskDto, CommunityDto communityDto) {
- //查询费用项
- FeeConfigDto feeConfigDto = new FeeConfigDto();
- feeConfigDto.setCommunityId(communityDto.getCommunityId());
- List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
- for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) {
- try {
- GenerateOweFeeByFeeConfig(taskDto, tmpFeeConfigDto);
- } catch (Exception e) {
- LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
- logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
- logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
- logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
- saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
- logger.error("费用出账失败" + tmpFeeConfigDto.getConfigId(), e);
- }
- }
- }
- /**
- * 按费用项来出账
- *
- * @param taskDto
- * @param feeConfigDto
- */
- private void GenerateOweFeeByFeeConfig(TaskDto taskDto, FeeConfigDto feeConfigDto) throws Exception {
- //当前费用项是否
- FeeDto feeDto = new FeeDto();
- feeDto.setConfigId(feeConfigDto.getConfigId());
- feeDto.setCommunityId(feeConfigDto.getCommunityId());
- //先查询总数
- int count = feeInnerServiceSMOImpl.queryFeesCount(feeDto);
- double record = Math.ceil(count / DEFAULT_ROW);
- for (int page = 1; page <= record; page++) {
- try {
- feeDto.setPage(page);
- feeDto.setRow(new Double(DEFAULT_ROW).intValue());
- List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
- //没有关联费用
- if (feeDto == null || feeDtos.size() < 1) {
- continue;
- }
- for (FeeDto tmpFeeDto : feeDtos) {
- try {
- generateFee(tmpFeeDto, feeConfigDto);
- } catch (Exception e) {
- LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
- logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
- logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
- logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
- saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
- logger.error("生成费用失败", e);
- }
- }
- } catch (Exception e) {
- LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
- logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
- logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
- logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
- saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
- logger.error("费用出账失败" + feeConfigDto.getConfigId(), e);
- }
- }
- }
- /**
- * 生成 费用
- *
- * @param feeDto
- */
- private void generateFee(FeeDto feeDto, FeeConfigDto feeConfigDto) {
- //刷入欠费金额
- computeFeeSMOImpl.computeEveryOweFee(feeDto);
- //保存数据
- ReportOweFeePo reportOweFeePo = new ReportOweFeePo();
- reportOweFeePo.setAmountOwed(feeDto.getFeePrice() + "");
- reportOweFeePo.setCommunityId(feeDto.getCommunityId());
- reportOweFeePo.setConfigId(feeConfigDto.getConfigId());
- reportOweFeePo.setConfigName(feeConfigDto.getFeeName());
- reportOweFeePo.setDeadlineTime(DateUtil.getFormatTimeString(feeDto.getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A));
- reportOweFeePo.setEndTime(DateUtil.getFormatTimeString(feeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
- reportOweFeePo.setFeeId(feeDto.getFeeId());
- reportOweFeePo.setFeeName(feeDto.getFeeName());
- reportOweFeePo.setOwnerId(FeeAttrDto.getFeeAttrValue(feeDto, FeeAttrDto.SPEC_CD_OWNER_ID));
- reportOweFeePo.setOwnerName(FeeAttrDto.getFeeAttrValue(feeDto, FeeAttrDto.SPEC_CD_OWNER_NAME));
- reportOweFeePo.setOwnerTel(FeeAttrDto.getFeeAttrValue(feeDto, FeeAttrDto.SPEC_CD_OWNER_LINK));
- reportOweFeePo.setPayerObjId(feeDto.getPayerObjId());
- reportOweFeePo.setPayerObjName(computeFeeSMOImpl.getFeeObjName(feeDto));
- reportOweFeePo.setPayerObjType(feeDto.getPayerObjType());
- reportOweFeePo.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
- ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
- reportOweFeeDto.setFeeId(feeDto.getFeeId());
- reportOweFeeDto.setPayerObjId(feeDto.getPayerObjId());
- List<ReportOweFeeDto> reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
- if (reportOweFeeDtos == null || reportOweFeeDtos.size() < 1) {
- reportOweFeePo.setOweId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_oweId));
- reportOweFeeInnerServiceSMOImpl.saveReportOweFee(reportOweFeePo);
- } else {
- reportOweFeePo.setOweId(reportOweFeeDtos.get(0).getOweId());
- reportOweFeeInnerServiceSMOImpl.updateReportOweFee(reportOweFeePo);
- }
- }
- }
|