zhizhijie
2026-09-20 35d098a89613c96179391178b7f8143dec393ada
traffic-audit-server/src/main/java/com/trafficaudit/dataimport/controller/DataViewController.java
@@ -14,6 +14,11 @@
import com.trafficaudit.dataimport.entity.ScaleSplitTransport;
import com.trafficaudit.dataimport.entity.TransportAuthVehicle;
import com.trafficaudit.dataimport.entity.VehicleTrackMileage;
import com.trafficaudit.dataimport.entity.InvestmentMonthly;
import com.trafficaudit.dataimport.entity.InvestmentProject;
import com.trafficaudit.dataimport.entity.InvestmentSystem;
import com.trafficaudit.dataimport.entity.EnergyVehicleQuarterly;
import com.trafficaudit.dataimport.entity.EnergyAuthVehicle;
import com.trafficaudit.dataimport.mapper.FreightTurnoverImportMapper;
import com.trafficaudit.dataimport.mapper.H2032EnterpriseMonthlyMapper;
import com.trafficaudit.dataimport.mapper.PassengerAuthVehicleMapper;
@@ -24,6 +29,11 @@
import com.trafficaudit.dataimport.mapper.ScaleSplitTransportMapper;
import com.trafficaudit.dataimport.mapper.TransportAuthVehicleMapper;
import com.trafficaudit.dataimport.mapper.VehicleTrackMileageMapper;
import com.trafficaudit.dataimport.mapper.InvestmentMonthlyMapper;
import com.trafficaudit.dataimport.mapper.InvestmentProjectMapper;
import com.trafficaudit.dataimport.mapper.InvestmentSystemMapper;
import com.trafficaudit.dataimport.mapper.EnergyVehicleQuarterlyMapper;
import com.trafficaudit.dataimport.mapper.EnergyAuthVehicleMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -64,6 +74,16 @@
    private CityTaxiMonthlyMapper cityTaxiMapper;
    @Resource
    private CityTaxiAuthMapper cityTaxiAuthMapper;
    @Resource
    private InvestmentMonthlyMapper investmentMonthlyMapper;
    @Resource
    private InvestmentProjectMapper investmentProjectMapper;
    @Resource
    private InvestmentSystemMapper investmentSystemMapper;
    @Resource
    private EnergyVehicleQuarterlyMapper energyVehicleMapper;
    @Resource
    private EnergyAuthVehicleMapper energyAuthMapper;
    @GetMapping("/list")
    public Result<Map<String, Object>> list(@RequestParam("type") String type,
@@ -199,6 +219,76 @@
                fillPage(result, r);
                break;
            }
            case "investmentMonthly": {
                java.util.List<Long> pids = new ArrayList<>();
                if (!kw.isEmpty()) {
                    for (InvestmentProject ip : investmentProjectMapper.selectList(
                            new LambdaQueryWrapper<InvestmentProject>().like(InvestmentProject::getProjectName, kw))) {
                        pids.add(ip.getId());
                    }
                    if (pids.isEmpty()) {
                        result.put("records", new ArrayList<>());
                        result.put("total", 0L);
                        result.put("current", safePage);
                        result.put("size", safeSize);
                        break;
                    }
                }
                LambdaQueryWrapper<InvestmentMonthly> w = new LambdaQueryWrapper<InvestmentMonthly>()
                        .eq(notEmpty(period), InvestmentMonthly::getReportPeriod, period)
                        .in(!pids.isEmpty(), InvestmentMonthly::getProjectId, pids)
                        .orderByAsc(InvestmentMonthly::getProjectId)
                        .orderByAsc(InvestmentMonthly::getId);
                Page<InvestmentMonthly> p = new Page<>(safePage, safeSize);
                Page<InvestmentMonthly> r = investmentMonthlyMapper.selectPage(p, w);
                result.put("records", toMaps(r.getRecords(), propsOf(INVEST_MONTHLY_COLUMNS)));
                fillPage(result, r);
                break;
            }
            case "investmentProject": {
                LambdaQueryWrapper<InvestmentProject> w = new LambdaQueryWrapper<InvestmentProject>()
                        .like(!kw.isEmpty(), InvestmentProject::getProjectName, kw)
                        .orderByAsc(InvestmentProject::getCity)
                        .orderByAsc(InvestmentProject::getId);
                Page<InvestmentProject> p = new Page<>(safePage, safeSize);
                Page<InvestmentProject> r = investmentProjectMapper.selectPage(p, w);
                result.put("records", toMaps(r.getRecords(), propsOf(INVEST_PROJECT_COLUMNS)));
                fillPage(result, r);
                break;
            }
            case "investmentSystem": {
                LambdaQueryWrapper<InvestmentSystem> w = new LambdaQueryWrapper<InvestmentSystem>()
                        .eq(notEmpty(period), InvestmentSystem::getReportPeriod, period)
                        .like(!kw.isEmpty(), InvestmentSystem::getProjectName, kw)
                        .orderByDesc(InvestmentSystem::getId);
                Page<InvestmentSystem> p = new Page<>(safePage, safeSize);
                Page<InvestmentSystem> r = investmentSystemMapper.selectPage(p, w);
                result.put("records", toMaps(r.getRecords(), propsOf(INVEST_SYSTEM_COLUMNS)));
                fillPage(result, r);
                break;
            }
            case "energyVehicle": {
                LambdaQueryWrapper<EnergyVehicleQuarterly> w = new LambdaQueryWrapper<EnergyVehicleQuarterly>()
                        .eq(notEmpty(period), EnergyVehicleQuarterly::getReportPeriod, period)
                        .like(!kw.isEmpty(), EnergyVehicleQuarterly::getEnterpriseName, kw)
                        .orderByDesc(EnergyVehicleQuarterly::getId);
                Page<EnergyVehicleQuarterly> p = new Page<>(safePage, safeSize);
                Page<EnergyVehicleQuarterly> r = energyVehicleMapper.selectPage(p, w);
                result.put("records", toMaps(r.getRecords(), propsOf(ENERGY_VEHICLE_COLUMNS)));
                fillPage(result, r);
                break;
            }
            case "energyAuth": {
                LambdaQueryWrapper<EnergyAuthVehicle> w = new LambdaQueryWrapper<EnergyAuthVehicle>()
                        .eq(notEmpty(period), EnergyAuthVehicle::getReportPeriod, period)
                        .like(!kw.isEmpty(), EnergyAuthVehicle::getPlateNo, kw)
                        .orderByDesc(EnergyAuthVehicle::getId);
                Page<EnergyAuthVehicle> p = new Page<>(safePage, safeSize);
                Page<EnergyAuthVehicle> r = energyAuthMapper.selectPage(p, w);
                result.put("records", toMaps(r.getRecords(), propsOf(ENERGY_AUTH_COLUMNS)));
                fillPage(result, r);
                break;
            }
            default:
                result.put("records", new ArrayList<>());
                result.put("total", 0L);
@@ -251,6 +341,11 @@
            case "cityTaxi": return TAXI_COLUMNS;
            case "cityTaxiAuth": return TAXI_AUTH_COLUMNS;
            case "passengerAuth": return PAUTH_COLUMNS;
            case "investmentMonthly": return INVEST_MONTHLY_COLUMNS;
            case "investmentProject": return INVEST_PROJECT_COLUMNS;
            case "investmentSystem": return INVEST_SYSTEM_COLUMNS;
            case "energyVehicle": return ENERGY_VEHICLE_COLUMNS;
            case "energyAuth": return ENERGY_AUTH_COLUMNS;
            default: return new ArrayList<>();
        }
    }
@@ -274,6 +369,11 @@
    private static final List<Map<String, Object>> BUS_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> TAXI_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> TAXI_AUTH_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> INVEST_MONTHLY_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> INVEST_PROJECT_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> INVEST_SYSTEM_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> ENERGY_VEHICLE_COLUMNS = new ArrayList<>();
    private static final List<Map<String, Object>> ENERGY_AUTH_COLUMNS = new ArrayList<>();
    static {
        H2032_COLUMNS.add(col("reportPeriod", "报表期", 100));
@@ -359,6 +459,8 @@
        H2031_COLUMNS.add(col("regionCode", "所属地区", 100));
        H2031_COLUMNS.add(col("enterpriseCode", "企业代码", 130));
        H2031_COLUMNS.add(col("enterpriseName", "企业名称", 220));
        H2031_COLUMNS.add(col("unifiedCreditCode", "统一社会信用代码", 180));
        H2031_COLUMNS.add(col("reportUnit", "填报单位", 160));
        H2031_COLUMNS.add(col("vehicleTotal", "客运车辆合计", 110));
        H2031_COLUMNS.add(col("seatTotal", "核定载客位合计", 130));
        H2031_COLUMNS.add(col("vehicleSchedule", "班线车辆数", 110));
@@ -445,5 +547,62 @@
        PAUTH_COLUMNS.add(col("enterpriseName", "企业名称", 240));
        PAUTH_COLUMNS.add(col("vehicleCount", "车辆数", 100));
        PAUTH_COLUMNS.add(col("seatCount", "载客位数", 100));
        INVEST_MONTHLY_COLUMNS.add(col("reportPeriod", "报表期", 100));
        INVEST_MONTHLY_COLUMNS.add(col("projectId", "项目ID", 80));
        INVEST_MONTHLY_COLUMNS.add(col("yearPlan", "本年计划投资(万元)", 140));
        INVEST_MONTHLY_COLUMNS.add(col("yearCum", "自年初累计完成(万元)", 160));
        INVEST_MONTHLY_COLUMNS.add(col("monthDone", "本月完成投资(万元)", 150));
        INVEST_MONTHLY_COLUMNS.add(col("startCum", "自开始建设累计完成(万元)", 180));
        INVEST_MONTHLY_COLUMNS.add(col("progressStage", "建设阶段", 120));
        INVEST_MONTHLY_COLUMNS.add(col("progressDesc", "形象进度", 320));
        INVEST_MONTHLY_COLUMNS.add(col("buildingArea", "建筑面积", 110));
        INVEST_PROJECT_COLUMNS.add(col("projectName", "项目名称", 260));
        INVEST_PROJECT_COLUMNS.add(col("category", "类别", 100));
        INVEST_PROJECT_COLUMNS.add(col("city", "市州", 90));
        INVEST_PROJECT_COLUMNS.add(col("county", "县(市、区)", 120));
        INVEST_PROJECT_COLUMNS.add(col("builderName", "建设单位", 200));
        INVEST_PROJECT_COLUMNS.add(col("constructNature", "建设性质", 100));
        INVEST_PROJECT_COLUMNS.add(col("startTime", "开工年", 90));
        INVEST_PROJECT_COLUMNS.add(col("endTime", "完工年", 90));
        INVEST_PROJECT_COLUMNS.add(col("totalInvestment", "总投资(万元)", 130));
        INVEST_PROJECT_COLUMNS.add(col("buildingArea", "建筑面积", 110));
        INVEST_PROJECT_COLUMNS.add(col("approvalGk", "工可或核准批复文号", 200));
        INVEST_PROJECT_COLUMNS.add(col("approvalCs", "初设或施工图批复文号", 200));
        INVEST_PROJECT_COLUMNS.add(col("source", "来源", 100));
        INVEST_SYSTEM_COLUMNS.add(col("reportPeriod", "报表期", 100));
        INVEST_SYSTEM_COLUMNS.add(col("projectName", "项目名称", 260));
        INVEST_SYSTEM_COLUMNS.add(col("totalInvestment", "总投资(万元)", 130));
        INVEST_SYSTEM_COLUMNS.add(col("startCum", "自开始建设累计完成(万元)", 180));
        INVEST_SYSTEM_COLUMNS.add(col("yearPlan", "本年计划投资(万元)", 140));
        INVEST_SYSTEM_COLUMNS.add(col("yearCum", "自年初累计完成(万元)", 160));
        INVEST_SYSTEM_COLUMNS.add(col("monthDone", "本月完成投资(万元)", 150));
        ENERGY_VEHICLE_COLUMNS.add(col("reportPeriod", "报表期", 100));
        ENERGY_VEHICLE_COLUMNS.add(col("regionCode", "所属地区", 100));
        ENERGY_VEHICLE_COLUMNS.add(col("enterpriseName", "企业名称", 220));
        ENERGY_VEHICLE_COLUMNS.add(col("plateNo", "车牌号", 110));
        ENERGY_VEHICLE_COLUMNS.add(col("vehicleType", "车辆类型", 130));
        ENERGY_VEHICLE_COLUMNS.add(col("fuelType", "燃料类型", 110));
        ENERGY_VEHICLE_COLUMNS.add(col("manufactureYear", "出厂年份", 100));
        ENERGY_VEHICLE_COLUMNS.add(col("markedTonnage", "标记吨位", 100));
        ENERGY_VEHICLE_COLUMNS.add(col("totalMileage", "总行驶里程(公里)", 150));
        ENERGY_VEHICLE_COLUMNS.add(col("loadedMileage", "重载里程(公里)", 140));
        ENERGY_VEHICLE_COLUMNS.add(col("emptyMileage", "空载里程(公里)", 140));
        ENERGY_VEHICLE_COLUMNS.add(col("freight", "货运量(吨)", 120));
        ENERGY_VEHICLE_COLUMNS.add(col("turnover", "周转量(吨公里)", 140));
        ENERGY_VEHICLE_COLUMNS.add(col("tripCount", "车次", 90));
        ENERGY_VEHICLE_COLUMNS.add(col("fuelUnit", "燃料单位", 100));
        ENERGY_VEHICLE_COLUMNS.add(col("fuelConsumption", "燃料消耗量", 120));
        ENERGY_VEHICLE_COLUMNS.add(col("avgDistance", "平均运距", 110));
        ENERGY_VEHICLE_COLUMNS.add(col("avgLoadedTonnage", "平均载重吨位", 130));
        ENERGY_VEHICLE_COLUMNS.add(col("avgTripMileage", "平均车次里程", 130));
        ENERGY_VEHICLE_COLUMNS.add(col("fuelPer100km", "百公里油耗", 120));
        ENERGY_VEHICLE_COLUMNS.add(col("turnoverFuel", "周转量油耗", 120));
        ENERGY_AUTH_COLUMNS.add(col("reportPeriod", "报表期", 100));
        ENERGY_AUTH_COLUMNS.add(col("plateNo", "车牌号", 110));
        ENERGY_AUTH_COLUMNS.add(col("vehicleType", "车辆类型", 130));
        ENERGY_AUTH_COLUMNS.add(col("fuelType", "燃料类型", 110));
        ENERGY_AUTH_COLUMNS.add(col("markedTonnage", "标记吨位", 100));
        ENERGY_AUTH_COLUMNS.add(col("tractionQuality", "牵引质量", 110));
    }
}