chengf
2025-08-26 ace8009da36d622f72e4145eb0b38f0a344f3a45
service-fee/src/main/java/com/java110/fee/cmd/fee/ReportFeePropertyCmd.java
@@ -7,12 +7,14 @@
import com.java110.core.event.cmd.CmdEvent;
import com.java110.dto.community.CommunityDto;
import com.java110.dto.dict.DictDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.report.ReportQueryRecord;
import com.java110.dto.room.RoomDto;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.IRoomInnerServiceSMO;
import com.java110.intf.dev.IDictV1InnerServiceSMO;
import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
import com.java110.intf.fee.IReportFeeInnerServiceSMO;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
@@ -43,6 +45,9 @@
    @Autowired
    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
    @Autowired
    private IFeeConfigInnerServiceSMO  feeConfigInnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
@@ -83,10 +88,25 @@
        }
        else{
            int row = Integer.parseInt(reqJson.containsKey("row")?reqJson.getString("row"):"10");
            int page = Integer.parseInt(reqJson.containsKey("page")?reqJson.getString("page"):"1");
            startYear = 2016;
            endYear = 2025;
            Object[][] test = new Object[row][];
            RoomDto roomDto = new RoomDto();
            roomDto.setRoomId(reqJson.getString("communityId"));
            roomDto.setCommunityId(reqJson.getString("communityId"));
            roomDto.setRow(row);
            roomDto.setPage(page);
            List<Map> rooms = roomInnerServiceSMOImpl.queryRoomsAsReport(roomDto);
            FeeConfigDto feeConfigDto = new FeeConfigDto();
            feeConfigDto.setCommunityId(reqJson.getString("communityId"));
            feeConfigDto.setConfigIds(new String[]{"630000001","630000002"});
            List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
            int arrLength = 11 + (2 * feeConfigDtos.size()) + 8 + ((endYear - startYear + 1) * 3);
            String[] header = new String[arrLength];
            headerDoing(header,feeConfigDtos,startYear,endYear);
            for(Map room : rooms){
            }
            reportQueryRecord.setCommunityId(reqJson.getString("communityId"));
@@ -105,4 +125,36 @@
            context.setResponseEntity(responseEntity);
        }
    }
    private void headerDoing(String[] header,List<FeeConfigDto> feeConfigDtos,int startYear, int endYear) {
        int feeRow = feeConfigDtos.size();
        header[0] = "序号";
        header[1] = "物业类型";
        header[2] = "楼栋号/弄";
        header[3] = "门号";
        header[4] = "室号";
        header[5] = "门室号";
        header[6] = "产证地址";
        header[7] = "收费面积(m²)";
        header[8] = "购房人姓名";
        header[9] = "门室号";
        for (int i=0;i<feeRow;i++){
            header[9 + i + 1] = feeConfigDtos.get(0).getFeeName();
        }
        header[9 + feeRow + 1] = "年应收款";
        header[9 + feeRow + 2] = "合计(2020年1月-至今)-应收";
        header[9 + feeRow + 3] = "合计(2020年1月-至今)-实收";
        header[9 + feeRow + 4] = "合计(2020年1月-至今)-代收";
        header[9 + feeRow + 5] = "合计(2020年1月-至今)-2026年";
        header[9 + feeRow + 6] = "合计(2020年1月-至今)-2027年";
        header[9 + feeRow + 7] = "合计(2020年1月-至今)-待收月数";
        header[9 + feeRow + 8] = "合计(2020年1月-至今)-待收金额";
        header[9 + feeRow + 9] = "代收区间";
        for (int i = startYear ; i <= endYear ; i++){
            header[9 + feeRow + 9 + ((i - startYear) * 3) + 1] = "历年实收"+i+"-已收月数";
            header[9 + feeRow + 9 + ((i - startYear) * 3) + 2] = "历年实收"+i+"-已收区间";
            header[9 + feeRow + 9 + ((i - startYear) * 3) + 3] = "历年实收"+i+"-未收区间";
        }
        header[9 + feeRow + 9 + ((endYear - startYear) * 3) + 4] = "打折金额汇总";
    }
}