guoyujie
2 天以前 c4b9a339caff12e95f61c3d5dc950aafcc8c566c
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
@@ -3,6 +3,7 @@
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.example.erp.common.Constants;
import com.example.erp.common.Result;
import com.example.erp.dto.pp.*;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.pp.Report;
@@ -26,7 +27,7 @@
import java.util.Map;
@RestController
@Api(value="生产报表controller",tags={"生产报表操作接口"})
@Api(value = "生产报表controller", tags = {"生产报表操作接口"})
@RequestMapping("/report")
public class ReportController {
    private final ReportService reportService;
@@ -37,39 +38,40 @@
    //流程卡进度
    @ApiOperation("流程卡进度")
    @SaCheckPermission("ProcessCardProgress.search")
    @PostMapping  ("/processCardProgress/{orderId}")
    public Result processCardProgress(@PathVariable String orderId, @RequestBody List<Integer> columns){
        return Result.seccess(reportService.processCardProgressSv(orderId,columns));
    @SaCheckPermission("processCardProgress.search")
    @PostMapping("/processCardProgress/{orderId}")
    public Result processCardProgress(@PathVariable String orderId, @RequestBody List<Integer> columns) {
        return Result.seccess(reportService.processCardProgressSv(orderId, columns));
    }
    @ApiOperation("跨工序次破")
    @SaCheckPermission("CrossProcessBreaking.search")
    @SaCheckPermission("crossProcessBreaking.search")
    @PostMapping("/crossProcessBreaking/{pageNum}/{pageSize}/{selectDate}")
    public Result getOrderReport(@PathVariable Integer pageNum,
                                 @PathVariable Integer pageSize,
                                 @PathVariable List<String> selectDate,
                                 @RequestBody DamageDetails damageDetails)  {
        return  Result.seccess(reportService.crossProcessBreakingSv(pageNum,pageSize,selectDate,damageDetails));
                                 @RequestBody CrossProcessBreakingDTO crossProcessBreakingDTO) {
        return Result.seccess(reportService.crossProcessBreakingSv(pageNum, pageSize, selectDate, crossProcessBreakingDTO));
    }
    @ApiOperation("在制品报表")
    @SaCheckPermission("WorkInProgress.search")
    @PostMapping("/workInProgress/{selectTime1}/{selectTime2}/{orderId}/{inputProject}/{selectProcesses}")
    @SaCheckPermission("workInProgress.search")
    @PostMapping("/workInProgress/{pageNum}/{pageSize}/{orderId}/{inputProject}/{selectProcesses}/{optionVal}")
    public Result workInProgress(
                                 @PathVariable Date selectTime1,
                                 @PathVariable Date selectTime2,
                                 @PathVariable String orderId,
                                 @PathVariable String inputProject,
                                 @PathVariable String selectProcesses,
                                 @RequestBody Report report)  {
        return  Result.seccess(reportService.workInProgressSv(selectTime1,selectTime2,orderId,inputProject,selectProcesses,report));
            @PathVariable Integer pageNum,
            @PathVariable Integer pageSize,
            @PathVariable String orderId,
            @PathVariable String inputProject,
            @PathVariable String selectProcesses,
            @PathVariable String optionVal,
            @RequestBody WorkInProgressDTO workInProgressDTO) {
        return Result.seccess(reportService.workInProgressSv(pageNum, pageSize, orderId, inputProject, selectProcesses,optionVal, workInProgressDTO));
    }
    @ApiOperation("工序待完成报表")
    @SaCheckPermission("ProcessToBeCompleted.search")
    @SaCheckPermission("processToBeCompleted.search")
    @PostMapping("/selectProcessToBeCompleted/{selectTime1}/{selectTime2}/{orderId}/{inputProject}/{selectProcesses}")
    public Result selectProcessToBeCompleted(
            @PathVariable Date selectTime1,
@@ -77,92 +79,212 @@
            @PathVariable String orderId,
            @PathVariable String inputProject,
            @PathVariable String selectProcesses,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.selectProcessToBeCompletedSv(selectTime1,selectTime2,orderId,inputProject,selectProcesses,report));
            @RequestBody Report report) {
        return Result.seccess(reportService.selectProcessToBeCompletedSv(selectTime1, selectTime2, orderId, inputProject, selectProcesses, report));
    }
    @ApiOperation("次破明细报表")
    @SaCheckPermission("DamageReport.search")
    @PostMapping("/damageReport/{selectTime1}/{selectTime2}")
    @SaCheckPermission("damageReport.search")
    @PostMapping("/damageReport/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}")
    public Result damageReport(
            @PathVariable Integer pageNum,
            @PathVariable Integer pageSize,
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.selectDamageReportSv(selectTime1,selectTime2,report));
            @RequestBody DamageReportDTO damageReportDTO) {
        return Result.seccess(reportService.selectDamageReportSv(pageNum, pageSize, selectTime1, selectTime2, damageReportDTO));
    }
    @ApiOperation("分架明细报表")
    @SaCheckPermission("SplittingDetailsOutside.search")
    @SaCheckPermission("splittingDetailsOutside.search")
    @PostMapping("/splittingDetailsOutside/{orderId}")
    public Result splittingDetailsOutside(
            @PathVariable String orderId,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.splittingDetailsOutsideSv(orderId,report));
            @RequestBody Report report) {
        return Result.seccess(reportService.splittingDetailsOutsideSv(orderId, report));
    }
    @ApiOperation("品质报表")
    @SaCheckPermission("QualityReport.search")
    @SaCheckPermission("qualityReport.search")
    @PostMapping("/qualityReport/{selectTime1}/{selectTime2}")
    public Result qualityReport(
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.qualityReportSv(selectTime1,selectTime2,report));
            @RequestBody Report report) {
        return Result.seccess(reportService.qualityReportSv(selectTime1, selectTime2, report));
    }
    @ApiOperation("成品率报表")
    @SaCheckPermission("Yield.search")
    @SaCheckPermission("yield.search")
    @PostMapping("/yield/{selectTime1}/{selectTime2}/{selectProcesses}")
    public Result yield(
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @PathVariable String selectProcesses,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.yieldSv(selectTime1,selectTime2,selectProcesses,report));
            @RequestBody Report report) {
        return Result.seccess(reportService.yieldSv(selectTime1, selectTime2, selectProcesses, report));
    }
    @ApiOperation("生产发货进度")
    @SaCheckPermission("ProductionSchedule.search")
    @PostMapping  ("/productionSchedule/{orderId}")
    public Result productionSchedule(@PathVariable String orderId, @RequestBody List<Integer> columns){
        return Result.seccess(reportService.productionScheduleSv(orderId,columns));
    @SaCheckPermission("productionSchedule.search")
    @PostMapping("/productionSchedule/{orderId}")
    public Result productionSchedule(@PathVariable String orderId, @RequestBody List<Integer> columns) {
        return Result.seccess(reportService.productionScheduleSv(orderId, columns));
    }
    @ApiOperation("任务完成情况汇总进度")
    @SaCheckPermission("TaskCompletionStatus.search")
    @PostMapping  ("/taskCompletionStatus/{selectTime1}/{selectTime2}")
    @SaCheckPermission("taskCompletionStatus.search")
    @PostMapping("/taskCompletionStatus/{selectTime1}/{selectTime2}")
    public Result taskCompletionStatus(@PathVariable Date selectTime1,
                                       @PathVariable Date selectTime2,
                                       @RequestBody List<Integer> columns){
        return Result.seccess(reportService.taskCompletionStatusSv(selectTime1,selectTime2,columns));
                                       @RequestBody List<Integer> columns) {
        return Result.seccess(reportService.taskCompletionStatusSv(selectTime1, selectTime2, columns));
    }
    @ApiOperation("订单计划分解")
    @SaCheckPermission("OrderPlanDecomposition.search")
    @PostMapping  ("/orderPlanDecomposition/{selectTime1}/{selectTime2}")
    @SaCheckPermission("orderPlanDecomposition.search")
    @PostMapping("/orderPlanDecomposition/{selectTime1}/{selectTime2}")
    public Result orderPlanDecomposition(@PathVariable Date selectTime1,
                                       @PathVariable Date selectTime2,
                                         @RequestBody Report report){
        return Result.seccess(reportService.orderPlanDecompositionSv(selectTime1,selectTime2,report));
                                         @PathVariable Date selectTime2,
                                         @RequestBody Report report) {
        return Result.seccess(reportService.orderPlanDecompositionSv(selectTime1, selectTime2, report));
    }
    @ApiOperation("订单报工")
    @SaCheckPermission("orderPlanDecomposition.search")
    @PostMapping("/orderReportingWorks/{selectTime1}/{selectTime2}")
    public Result orderReportingWorks(@PathVariable Date selectTime1,
                                         @PathVariable Date selectTime2,
                                         @RequestBody Report report) {
        return Result.seccess(reportService.orderReportingWorks(selectTime1, selectTime2, report));
    }
    @ApiOperation("原片领料")
    @SaCheckPermission("RawMaterialRequisition.search")
    @PostMapping  ("/rawMaterialRequisition/{selectTime1}/{selectTime2}")
    @SaCheckPermission("rawMaterialRequisition.search")
    @PostMapping("/rawMaterialRequisition/{selectTime1}/{selectTime2}")
    public Result rawMaterialRequisition(@PathVariable Date selectTime1,
                                         @PathVariable Date selectTime2,
                                         @RequestBody Report report){
        return Result.seccess(reportService.rawMaterialRequisitionSv(selectTime1,selectTime2,report));
                                         @RequestBody Report report) {
        return Result.seccess(reportService.rawMaterialRequisitionSv(selectTime1, selectTime2, report));
    }
    @ApiOperation("班组产量明细报表")
    @SaCheckPermission("damageReport.search")
    @PostMapping("/teamOutput/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}/{selectProcesses}")
    public Result teamOutput(
            @PathVariable Integer pageNum,
            @PathVariable Integer pageSize,
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @PathVariable String selectProcesses,
            @RequestBody TeamOutputDTO teamOutputDTO) {
        return Result.seccess(reportService.teamOutputSv(pageNum, pageSize, selectTime1, selectTime2,selectProcesses, teamOutputDTO));
    }
    @ApiOperation("跨工序次破报表导出")
    @PostMapping("/exportCrossProcessBreaking")
    public void exportCrossProcessBreaking(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, DamageDetails.class, reportService.exportCrossProcessBreakingSv(dates),"CrossProcessBreaking");
        DownExcel.download(response, CrossProcessBreakingDTO.class, reportService.exportCrossProcessBreakingSv(dates), "CrossProcessBreaking");
    }
    @ApiOperation("次破明细报表导出")
    @PostMapping("/exportDamageReport")
    public void exportDamageReport(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, DamageReportDTO.class, reportService.exportDamageReportSv(dates), "DamageReport");
    }
    @ApiOperation("订单计划分解报表导出")
    @PostMapping("/exportOrderPlanDecomposition")
    public void exportOrderPlanDecomposition(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, OrderPlanDecompositionDTO.class, reportService.exportOrderPlanDecompositionSv(dates), "OrderPlanDecomposition");
    }
    @ApiOperation("工序待完成报表导出")
    @PostMapping("/exportProcessToBeCompleted")
    public void exportProcessToBeCompleted(HttpServletResponse response,
                                           @RequestBody Map<String, Object> dates)
            throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, ProcessToBeCompletedDTO.class, reportService.exportProcessToBeCompletedSv(dates), "ProcessToBeCompleted");
    }
    @ApiOperation("在制品报表导出")
    @PostMapping("/exportWorkInProgress")
    public void exportWorkInProgress(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates)
            throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, WorkInProgressDTO.class, reportService.exportWorkInProgressSv(dates), "WorkInProgress");
    }
//
    @ApiOperation("任务完成情况导出")
    @PostMapping("/exportTaskCompletionStatus")
    public void exportTaskCompletionStatus(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, TaskCompletionStatusDTO.class, reportService.exportDamageReportSv(dates), "TaskCompletionStatus");
    }
    @ApiOperation("原片领料导出")
    @PostMapping("/exportRawMaterialRequisition")
    public void exportRawMaterialRequisition(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, RawMaterialRequisitionDTO.class, reportService.exportRawMaterialRequisitionSv(dates), "RawMaterialRequisition");
    }
    @ApiOperation("品质报表导出")
    @PostMapping("/exportQualityReport")
    public void exportQualityReport(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, QualityReportDTO.class, reportService.exportQualityReportSv(dates), "QualityReport");
    }
    @ApiOperation("成品率报表导出")
    @PostMapping("/exportYield")
    public void exportYield(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates)
            throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, YieldDTO.class, reportService.exportYieldSv(dates), "Yield");
    }
    @ApiOperation("排产订单信息报表")
    @PostMapping("/scheduleProductionSchedule/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}/{processes}")
    public Result scheduleProductionSchedule(
            @PathVariable Integer pageNum,
            @PathVariable Integer pageSize,
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @PathVariable String processes,
            @RequestBody ScheduleProductionScheduleDTO scheduleProductionScheduleDTO) {
        return Result.seccess(reportService.scheduleProductionScheduleSv(pageNum, pageSize, selectTime1, selectTime2,processes, scheduleProductionScheduleDTO));
    }
    @ApiOperation("订单排产计划导出")
    @PostMapping("/exportScheduleReport")
    public void exportScheduleReport(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates
    ) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, ScheduleProductionScheduleDTO.class, reportService.exportScheduleReportSv(dates), "ScheduleProduction");
    }
    @ApiOperation("班组产量导出")
    @PostMapping("/exportTeamOutput")
    public void exportTeamOutput(HttpServletResponse response,
                                     @RequestBody Map<String, Object> dates
    ) throws IOException, IllegalAccessException, InstantiationException {
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, TeamOutputDTO.class, reportService.exportTeamOutputSv(dates), "TeamOutput");
    }
}