| | |
| | | import com.java110.core.context.ICmdDataFlowContext; |
| | | import com.java110.core.event.cmd.Cmd; |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.dto.RoomDto; |
| | | import com.java110.dto.dict.DictDto; |
| | | import com.java110.dto.room.RoomDto; |
| | | import com.java110.dto.report.QueryStatisticsDto; |
| | | import com.java110.intf.dev.IDictV1InnerServiceSMO; |
| | | import com.java110.report.statistics.IBaseDataStatistics; |
| | | import com.java110.report.statistics.IFeeStatistics; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.StringUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | @Autowired |
| | | private IBaseDataStatistics baseDataStatisticsImpl; |
| | | |
| | | @Autowired |
| | | private IDictV1InnerServiceSMO dictV1InnerServiceSMOImpl; |
| | | |
| | | |
| | | @Override |
| | |
| | | queryStatisticsDto.setRow(reqJson.getInteger("row")); |
| | | |
| | | //todo 查询房屋信息 |
| | | long count = baseDataStatisticsImpl.getRoomCount(queryStatisticsDto); |
| | | long count = baseDataStatisticsImpl.getOweRoomCount(queryStatisticsDto); |
| | | List<RoomDto> rooms = null; |
| | | if (count > 0) { |
| | | rooms = baseDataStatisticsImpl.getRoomInfo(queryStatisticsDto); |
| | | rooms = baseDataStatisticsImpl.getOweRoomInfo(queryStatisticsDto); |
| | | } else { |
| | | rooms = new ArrayList<>(); |
| | | } |
| | |
| | | // todo nInfo.put(info.get("feeTypeCd").toString(), tmpInfos); |
| | | infos = washInfos(infos); |
| | | |
| | | BigDecimal oweFee = new BigDecimal(0.00); |
| | | BigDecimal oweFee = null; |
| | | List<Map> itemFees = null; |
| | | String feeTypeCd = ""; |
| | | |
| | | DictDto dictDto = new DictDto(); |
| | | dictDto.setTableName("pay_fee_config"); |
| | | dictDto.setTableColumns("fee_type_cd_show"); |
| | | List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDicts(dictDto); |
| | | |
| | | // todo 根据房屋ID 和payerObjId 比较 合并数据,讲费用大类 横向 放入 data中, |
| | | // todo 并且计算每个 房屋 费用大类的欠费 和房屋的总欠费 |
| | | for (int dataIndex = 0; dataIndex < datas.size(); dataIndex++) { |
| | | oweFee = new BigDecimal(0.00); |
| | | data = datas.getJSONObject(dataIndex); |
| | | //todo 这里循环费用大类 |
| | | for (Map info : infos) { |
| | | if (!data.getString("roomId").equals(info.get("payerObjId"))) { |
| | | continue; |
| | | } |
| | | feeTypeCd = info.get("feeTypeCd").toString(); |
| | | oweFee = oweFee.add(new BigDecimal(info.get(feeTypeCd + "oweFee").toString())); |
| | | data.put("oweFee" + feeTypeCd, info.get(feeTypeCd)); |
| | | // if(!info.containsKey("feeTypeCd")){ |
| | | // continue; |
| | | // } |
| | | for (DictDto tDict : dictDtos) { |
| | | //feeTypeCd = info.get("feeTypeCd").toString(); |
| | | feeTypeCd = tDict.getStatusCd(); |
| | | if (!info.containsKey(feeTypeCd)) { |
| | | continue; |
| | | } |
| | | oweFee = oweFee.add(new BigDecimal(info.get(feeTypeCd + "oweFee").toString())); |
| | | data.put("oweFee" + feeTypeCd, info.get(feeTypeCd)); |
| | | } |
| | | } |
| | | data.put("oweFee", oweFee.doubleValue()); |
| | | } |
| | |
| | | continue; |
| | | } |
| | | tmpInfos = getTmpInfos(nInfo, info); |
| | | if (tmpInfos == null) { |
| | | continue; |
| | | } |
| | | //todo 深拷贝 |
| | | dInfo = new HashMap(); |
| | | dInfo.putAll(info); |
| | |
| | | } |
| | | |
| | | private List<Map> getTmpInfos(Map nInfo, Map info) { |
| | | if (!info.containsKey("feeTypeCd")) { |
| | | return null; |
| | | } |
| | | String feeTypeCd = info.get("feeTypeCd").toString(); |
| | | if (nInfo.containsKey(feeTypeCd)) { |
| | | return (List<Map>) nInfo.get(feeTypeCd); |