| | |
| | | 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.dto.pp.*; |
| | | 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.Order; |
| | | 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 com.example.erp.tools.DownExcel; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.sql.Date; |
| | | import java.time.LocalDate; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RestController |
| | | @Api(value="生产报表controller",tags={"生产报表操作接口"}) |
| | | @Api(value = "生产报表controller", tags = {"生产报表操作接口"}) |
| | | @RequestMapping("/report") |
| | | public class ReportController { |
| | | private final ReportService reportService; |
| | |
| | | |
| | | //流程卡进度 |
| | | @ApiOperation("流程卡进度") |
| | | @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") |
| | | @PostMapping("/crossProcessBreaking/{pageNum}/{pageSize}/{selectDate}") |
| | | public Result getOrderReport(@PathVariable Integer pageNum, |
| | | @PathVariable Integer pageSize, |
| | | @PathVariable List<String> selectDate, |
| | | @RequestBody CrossProcessBreakingDTO crossProcessBreakingDTO) { |
| | | return Result.seccess(reportService.crossProcessBreakingSv(pageNum, pageSize, selectDate, crossProcessBreakingDTO)); |
| | | |
| | | } |
| | | |
| | | @ApiOperation("在制品报表") |
| | | @SaCheckPermission("workInProgress.search") |
| | | @PostMapping("/workInProgress/{pageNum}/{pageSize}/{orderId}/{inputProject}/{selectProcesses}/{optionVal}") |
| | | public Result workInProgress( |
| | | @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") |
| | | @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/{pageNum}/{pageSize}/{selectTime1}/{selectTime2}") |
| | | public Result damageReport( |
| | | @PathVariable Integer pageNum, |
| | | @PathVariable Integer pageSize, |
| | | @PathVariable Date selectTime1, |
| | | @PathVariable Date selectTime2, |
| | | @RequestBody DamageReportDTO damageReportDTO) { |
| | | return Result.seccess(reportService.selectDamageReportSv(pageNum, pageSize, selectTime1, selectTime2, damageReportDTO)); |
| | | |
| | | } |
| | | |
| | | @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("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}") |
| | | public Result rawMaterialRequisition(@PathVariable Date selectTime1, |
| | | @PathVariable Date selectTime2, |
| | | @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, 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"); |
| | | } |
| | | } |