chenlu
2024-05-21 cd017fae7b975035e5712a4568ec4bdda4190b05
north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
New file
@@ -0,0 +1,156 @@
package com.example.erp.controller.pp;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.example.erp.common.Constants;
import com.example.erp.common.Result;
import com.example.erp.entity.pp.DamageDetails;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.pp.Report;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.exception.ServiceException;
import com.example.erp.service.pp.ReportService;
import com.example.erp.service.pp.WorkOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.sql.Date;
import java.util.List;
import java.util.Map;
@RestController
@Api(value="生产报表controller",tags={"生产报表操作接口"})
@RequestMapping("/report")
public class ReportController {
    private final ReportService reportService;
    public ReportController(ReportService reportService) {
        this.reportService = reportService;
    }
    //流程卡进度
    @ApiOperation("流程卡进度")
    @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")
    @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));
    }
    @ApiOperation("在制品报表")
    @SaCheckPermission("WorkInProgress.search")
    @PostMapping("/workInProgress/{selectTime1}/{selectTime2}/{orderId}/{inputProject}/{selectProcesses}")
    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));
    }
    @ApiOperation("工序待完成报表")
    @SaCheckPermission("ProcessToBeCompleted.search")
    @PostMapping("/selectProcessToBeCompleted/{selectTime1}/{selectTime2}/{orderId}/{inputProject}/{selectProcesses}")
    public Result selectProcessToBeCompleted(
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @PathVariable String orderId,
            @PathVariable String inputProject,
            @PathVariable String selectProcesses,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.selectProcessToBeCompletedSv(selectTime1,selectTime2,orderId,inputProject,selectProcesses,report));
    }
    @ApiOperation("次破明细报表")
    @SaCheckPermission("DamageReport.search")
    @PostMapping("/damageReport/{selectTime1}/{selectTime2}")
    public Result damageReport(
            @PathVariable Date selectTime1,
            @PathVariable Date selectTime2,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.selectDamageReportSv(selectTime1,selectTime2,report));
    }
    @ApiOperation("分架明细报表")
    @SaCheckPermission("SplittingDetailsOutside.search")
    @PostMapping("/splittingDetailsOutside/{orderId}")
    public Result splittingDetailsOutside(
            @PathVariable String orderId,
            @RequestBody Report report)  {
        return  Result.seccess(reportService.splittingDetailsOutsideSv(orderId,report));
    }
    @ApiOperation("品质报表")
    @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));
    }
    @ApiOperation("成品率报表")
    @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));
    }
    @ApiOperation("生产发货进度")
    @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}")
    public Result taskCompletionStatus(@PathVariable Date selectTime1,
                                       @PathVariable Date selectTime2,
                                       @RequestBody List<Integer> columns){
        return Result.seccess(reportService.taskCompletionStatusSv(selectTime1,selectTime2,columns));
    }
    @ApiOperation("订单计划分解")
    @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));
    }
    @ApiOperation("原片领料")
    @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));
    }
}