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 = {"生产报表操作接口"})
|
@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}/{optionVal}")
|
public Result workInProgress(
|
@PathVariable Date selectTime1,
|
@PathVariable Date selectTime2,
|
@PathVariable String orderId,
|
@PathVariable String inputProject,
|
@PathVariable String selectProcesses,
|
@PathVariable String optionVal,
|
@RequestBody Report report) {
|
return Result.seccess(reportService.workInProgressSv(selectTime1, selectTime2, orderId, inputProject, selectProcesses,optionVal, 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/{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("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");
|
}
|
|
}
|