| | |
| | | package com.java110.report.smo.impl; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.factory.GenerateCodeFactory; |
| | | import com.java110.core.smo.IComputeFeeSMO; |
| | | import com.java110.dto.RoomDto; |
| | | 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.report.ReportCarDto; |
| | | import com.java110.dto.report.ReportFeeDetailDto; |
| | | import com.java110.dto.log.LogSystemErrorDto; |
| | | import com.java110.dto.report.ReportFeeDto; |
| | | import com.java110.dto.report.ReportRoomDto; |
| | | import com.java110.dto.reportFeeMonthStatistics.ReportFeeMonthStatisticsDto; |
| | | import com.java110.dto.reportFeeYearCollection.ReportFeeYearCollectionDto; |
| | | import com.java110.dto.reportFeeYearCollectionDetail.ReportFeeYearCollectionDetailDto; |
| | | import com.java110.dto.reportOweFee.ReportOweFeeDto; |
| | | import com.java110.dto.task.TaskDto; |
| | | import com.java110.intf.report.IGeneratorFeeYearStatisticsInnerServiceSMO; |
| | | import com.java110.dto.reportFee.ReportOweFeeDto; |
| | | import com.java110.intf.community.ICommunityInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeAttrInnerServiceSMO; |
| | | import com.java110.intf.report.IGeneratorOweFeeInnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerCarInnerServiceSMO; |
| | | import com.java110.po.logSystemError.LogSystemErrorPo; |
| | | import com.java110.po.reportFeeMonthStatistics.ReportFeeMonthStatisticsPo; |
| | | import com.java110.po.reportFeeYearCollection.ReportFeeYearCollectionPo; |
| | | import com.java110.po.reportFeeYearCollectionDetail.ReportFeeYearCollectionDetailPo; |
| | | import com.java110.po.reportOweFee.ReportOweFeePo; |
| | | import com.java110.po.log.LogSystemErrorPo; |
| | | import com.java110.po.reportFee.ReportFeeMonthStatisticsPo; |
| | | import com.java110.po.reportFee.ReportOweFeePo; |
| | | import com.java110.report.dao.IReportCommunityServiceDao; |
| | | import com.java110.report.dao.IReportFeeServiceDao; |
| | | import com.java110.report.dao.IReportFeeYearCollectionDetailServiceDao; |
| | | import com.java110.report.dao.IReportFeeYearCollectionServiceDao; |
| | | import com.java110.report.dao.IReportOweFeeServiceDao; |
| | | import com.java110.service.smo.ISaveSystemErrorSMO; |
| | | import com.java110.utils.cache.CommonCache; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | | import com.java110.utils.util.ExceptionUtil; |
| | | import com.java110.utils.util.ListUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import com.java110.utils.util.*; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import com.java110.core.log.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.annotation.Async; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.ParseException; |
| | | import java.util.Calendar; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | @Autowired |
| | | private IReportOweFeeServiceDao reportOweFeeServiceDaoImpl; |
| | | |
| | | @Autowired |
| | | private ICommunityInnerServiceSMO communityInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl; |
| | | |
| | | @Override |
| | | public int generatorOweData(@RequestBody ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo) { |
| | | |
| | | doGeneratorData(reportFeeMonthStatisticsPo); |
| | | CommunityDto communityDto = new CommunityDto(); |
| | | |
| | | // List<CommunityDto> communityDtos = BeanConvertUtil.covertBeanList( |
| | | // reportCommunityServiceDaoImpl.getCommunitys(BeanConvertUtil.beanCovertMap(communityDto)), CommunityDto.class); |
| | | |
| | | List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto); |
| | | |
| | | for (CommunityDto tmpCommunityDto : communityDtos) { |
| | | reportFeeMonthStatisticsPo.setCommunityId(tmpCommunityDto.getCommunityId()); |
| | | doGeneratorData(reportFeeMonthStatisticsPo); |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | @Async |
| | | private void doGeneratorData(ReportFeeMonthStatisticsPo reportFeeMonthStatisticsPo) { |
| | |
| | | |
| | | Assert.hasLength(communityId, "未包含小区信息"); |
| | | |
| | | // |
| | | feeDataFiltering(communityId); |
| | | |
| | | //查询费用项 |
| | | FeeConfigDto feeConfigDto = new FeeConfigDto(); |
| | | feeConfigDto.setCommunityId(communityId); |
| | | |
| | | List<FeeConfigDto> feeConfigDtos = reportFeeServiceDaoImpl.getFeeConfigs(feeConfigDto); |
| | | List<FeeConfigDto> feeConfigDtos = BeanConvertUtil.covertBeanList(reportFeeServiceDaoImpl.getFeeConfigs( |
| | | BeanConvertUtil.beanCovertMap(feeConfigDto)), FeeConfigDto.class); |
| | | |
| | | for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) { |
| | | try { |
| | |
| | | |
| | | } |
| | | |
| | | private void feeDataFiltering(String communityId) { |
| | | |
| | | Map reportFeeDto = new HashMap(); |
| | | reportFeeDto.put("communityId", communityId); |
| | | |
| | | reportOweFeeServiceDaoImpl.deleteReportOweFeeInfo(reportFeeDto); |
| | | // List<Map> feeDtos = reportOweFeeServiceDaoImpl.queryInvalidOweFee(reportFeeDto); |
| | | // |
| | | // List<String> feeIds = new ArrayList<>(); |
| | | // for (Map feeDto : feeDtos) { |
| | | // if (!feeDto.containsKey("feeId") || StringUtil.isNullOrNone(feeDto.get("feeId"))) { |
| | | // continue; |
| | | // } |
| | | // |
| | | // feeIds.add(feeDto.get("feeId").toString()); |
| | | // |
| | | // if (feeIds.size() >= 50) { |
| | | // reportFeeDto.put("feeIds", feeIds); |
| | | // reportOweFeeServiceDaoImpl.deleteInvalidFee(reportFeeDto); |
| | | // feeIds = new ArrayList<>(); |
| | | // } |
| | | // } |
| | | // reportFeeDto.put("feeIds", feeIds); |
| | | // if (feeIds.size() > 0) { |
| | | // reportOweFeeServiceDaoImpl.deleteInvalidFee(reportFeeDto); |
| | | // } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 按费用项来出账 |
| | | * |
| | |
| | | List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(feeDto); |
| | | |
| | | //没有关联费用 |
| | | if (feeDto == null || feeDtos.size() < 1) { |
| | | if (feeDtos == null || feeDtos.size() < 1) { |
| | | return; |
| | | } |
| | | for (ReportFeeDto tmpFeeDto : feeDtos) { |
| | |
| | | */ |
| | | private void generateFee(ReportFeeDto reportFeeDto, FeeConfigDto feeConfigDto) { |
| | | |
| | | FeeDto feeDto = BeanConvertUtil.covertBean(reportFeeDto,FeeDto.class); |
| | | FeeDto feeDto = BeanConvertUtil.covertBean(reportFeeDto, FeeDto.class); |
| | | |
| | | FeeAttrDto feeAttrDto = new FeeAttrDto(); |
| | | feeAttrDto.setFeeId(feeDto.getFeeId()); |
| | | List<FeeAttrDto> feeAttrDtos = feeAttrInnerServiceSMOImpl.queryFeeAttrs(feeAttrDto); |
| | | |
| | | feeDto.setFeeAttrDtos(feeAttrDtos); |
| | | //刷入欠费金额 |
| | | computeFeeSMOImpl.computeEveryOweFee(feeDto); |
| | | |
| | | //保存数据 |
| | | ReportOweFeePo reportOweFeePo = new ReportOweFeePo(); |
| | | reportOweFeePo.setAmountOwed(feeDto.getFeePrice() + ""); |
| | | reportOweFeePo.setAmountOwed(feeDto.getFeeTotalPrice() + ""); |
| | | 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<Map> reportOweFeeDtos = reportOweFeeServiceDaoImpl.queryReportAllOweFees(BeanConvertUtil.beanCovertMap(reportOweFeeDto)); |
| | | if (reportOweFeeDtos == null || reportOweFeeDtos.size() < 1) { |
| | | if (feeDto.getFeeTotalPrice() == 0) { //todo 如果欠费金额为0 不写入,减轻 欠费表的压力 |
| | | return; |
| | | } |
| | | reportOweFeePo.setOweId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_oweId)); |
| | | reportOweFeeServiceDaoImpl.saveReportOweFeeInfo(BeanConvertUtil.beanCovertMap(reportOweFeePo)); |
| | | } else { |
| | | reportOweFeePo.setOweId(reportOweFeeDtos.get(0).get("oweId").toString()); |
| | | reportOweFeeServiceDaoImpl.updateReportOweFeeInfo(BeanConvertUtil.beanCovertMap(reportOweFeePo)); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public int computeOweFee(@RequestBody FeeDto feeDto) { |
| | | //刷入欠费金额 |
| | | computeFeeSMOImpl.computeEveryOweFee(feeDto); |
| | | |
| | | //保存数据 |
| | | ReportOweFeePo reportOweFeePo = new ReportOweFeePo(); |
| | | reportOweFeePo.setAmountOwed(feeDto.getFeeTotalPrice() + ""); |
| | | reportOweFeePo.setCommunityId(feeDto.getCommunityId()); |
| | | reportOweFeePo.setConfigId(feeDto.getConfigId()); |
| | | reportOweFeePo.setConfigName(feeDto.getFeeName()); |
| | | if (feeDto.getDeadlineTime() != null) { |
| | | reportOweFeePo.setDeadlineTime(DateUtil.getFormatTimeString(feeDto.getDeadlineTime(), DateUtil.DATE_FORMATE_STRING_A)); |
| | | } |
| | | if (feeDto.getEndTime() != null) { |
| | | 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.setOweId(reportOweFeeDtos.get(0).get("oweId").toString()); |
| | | reportOweFeeServiceDaoImpl.updateReportOweFeeInfo(BeanConvertUtil.beanCovertMap(reportOweFeePo)); |
| | | } |
| | | return 1; |
| | | } |
| | | |
| | | |
| | | } |