package com.chinaztt.mes.quality.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chinaztt.mes.common.wrapper.QueryWrapperUtil; import com.chinaztt.mes.quality.dto.ApplyPartDTO; import com.chinaztt.mes.quality.dto.QualityCheckRateInputDTO; import com.chinaztt.mes.quality.entity.ApplyPart; import com.chinaztt.mes.quality.service.ApplyPartService; import com.chinaztt.mes.quality.service.ApplyService; import com.chinaztt.ztt.common.core.util.R; import com.chinaztt.ztt.common.log.annotation.SysLog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 检测申请材料表 * * @author cxf * @date 2021-04-01 13:34:51 */ @RestController @AllArgsConstructor @RequestMapping("/applyPart") @Api(value = "applyPart", tags = "检测申请材料表管理") public class ApplyPartController { private final ApplyPartService applyPartService; private final ApplyService applyService; /** * 所有查询 * * @param applyPartDTO 检测申请材料表 * @return */ @ApiOperation(value = "所有查询", notes = "所有查询") @GetMapping("/list") public R getApplyPartList(ApplyPartDTO applyPartDTO) { return R.ok(applyPartService.list(QueryWrapperUtil.gen(applyPartDTO))); } /** * 分页查询 * * @param page 分页对象 * @param applyPartDTO 检测申请材料表 * @return */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('quality_applypart_view')") public R getApplyPartPage(Page page, ApplyPartDTO applyPartDTO) { return R.ok(applyPartService.getApplyPartPage(page, QueryWrapperUtil.gen(applyPartDTO))); } /** * 分页查询未被汇报的申请材料 * * @param page 分页对象 * @param applyPartDTO 检测申请材料表 * @return */ @ApiOperation(value = "分页查询未被汇报的申请材料", notes = "分页查询未被汇报的申请材料") @GetMapping("/page/forReport") @PreAuthorize("@pms.hasPermission('quality_applypart_view')") public R getApplyPartPageForReport(Page page, ApplyPartDTO applyPartDTO) { return R.ok(applyPartService.getApplyPartPageForReport(page, QueryWrapperUtil.gen(applyPartDTO))); } /** * 分页查询不合格的申请材料 * * @param page 分页对象 * @param applyPartDTO 检测申请材料表 * @return */ @ApiOperation(value = "分页查询不合格的申请材料", notes = "分页查询不合格的申请材料") @GetMapping("/page/forUnqualified") @PreAuthorize("@pms.hasPermission('quality_applypart_view')") public R getApplyPartPageForUnqualified(Page page, ApplyPartDTO applyPartDTO) { Long unqualifiedProcessId = applyPartDTO.getUnqualifiedProcessId(); applyPartDTO.setUnqualifiedProcessId(null); return R.ok(applyPartService.getApplyPartPageForUnqualified(page, QueryWrapperUtil.gen(applyPartDTO), unqualifiedProcessId)); } /** * 通过id查询检测申请材料表 * * @param id id * @return R */ @ApiOperation(value = "通过id查询", notes = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('quality_applypart_view')") public R getById(@PathVariable("id") Long id) { return R.ok(applyPartService.getApplyPartDtoById(id)); } /** * 新增检测申请材料表(库存) * * @param applyPartList 检测申请材料表 * @return R */ @ApiOperation(value = "新增检测申请材料表(库存)", notes = "新增检测申请材料表(库存)") @SysLog("新增检测申请材料表(库存)") @PostMapping @PreAuthorize("@pms.hasPermission('quality_applypart_add')") public R save(@RequestBody List applyPartList) { return R.ok(applyService.saveApplyPartList(applyPartList)); } /** * 新增检测申请材料表(erp同步) * * @param applyPartList 检测申请材料表 * @return R */ @ApiOperation(value = "新增检测申请材料表(erp同步)", notes = "新增检测申请材料表(erp同步)") @SysLog("新增检测申请材料表(erp同步)") @PostMapping("/erp") public R saveApply(@RequestBody List applyPartList) { return R.ok(applyPartService.saveApply(applyPartList)); } /** * 修改检测申请材料表(0普通编辑,1用来做标记合格不合格,2绑定汇报) * * @param applyPartList 检测申请材料表 * @return R */ @ApiOperation(value = "修改检测申请材料表", notes = "修改检测申请材料表") @SysLog("修改检测申请材料表") @PutMapping("/batch/{type}") @PreAuthorize("@pms.hasPermission('quality_applypart_edit')") public R batchUpdateApplyPart(@RequestBody List applyPartList, @PathVariable Long type) { return applyPartService.batchUpdateApplyPart(applyPartList, type); } /** * 修改检测申请材料表(0普通编辑,1用来做标记合格不合格,2绑定汇报) * * @param applyPartList 检测申请材料表 * @return R */ @ApiOperation(value = "修改检测申请材料表", notes = "修改检测申请材料表") @SysLog("修改检测申请材料表") @PutMapping("/batchV2/{type}") @PreAuthorize("@pms.hasPermission('quality_applypart_edit')") public R batchUpdateApplyPartV2(@RequestBody List applyPartList, @PathVariable Long type) { return applyPartService.batchUpdateApplyPartV2(applyPartList, type); } /** * 标记检测结果后同步erp库存 * * @param applyPartList 检测申请材料表 * @return R */ @ApiOperation(value = "标记检测结果后同步erp库存", notes = "标记检测结果后同步erp库存") @SysLog("标记检测结果后同步erp库存") @PostMapping("/synchronizationErp") public R synchronizationErp(@RequestBody List applyPartList) { return R.ok(applyPartService.synchronizationErpStock(applyPartList)); } /** * 修改检测申请材料表 * * @param applyPart 检测申请材料表 * @return R */ @ApiOperation(value = "修改检测申请材料表", notes = "修改检测申请材料表") @SysLog("修改检测申请材料表") @PutMapping @PreAuthorize("@pms.hasPermission('quality_applypart_edit')") public R updateById(@RequestBody ApplyPart applyPart) { return R.ok(applyPartService.updateById(applyPart)); } /** * 通过id删除检测申请材料表 * * @param id id * @return R */ @ApiOperation(value = "通过id删除检测申请材料表", notes = "通过id删除检测申请材料表") @SysLog("通过id删除检测申请材料表") @DeleteMapping("/{id}") @PreAuthorize("@pms.hasPermission('quality_applypart_del')") public R removeById(@PathVariable Long id) { if(applyPartService.isApplyReportIsSubmitByApplyPartId(id)){ return R.failed("检测汇报已提交,冻结删除操作!"); }else{ return R.ok(applyPartService.removeById(id)); } } /** * 通过id删除检测报告材料表 * * @param id id * @return R */ @ApiOperation(value = "通过id删除检测报告材料表", notes = "通过id删除检测报告材料表") @SysLog("通过id删除检测报告材料表") @DeleteMapping("/forReport/{id}") @PreAuthorize("@pms.hasPermission('quality_applypart_del')") public R removeByIdForReport(@PathVariable Long id) { return R.ok(applyPartService.removeByIdForReport(id)); } /** * 根据零件系统唯一编号查询对应的制造订单的检测标准 * * @param systemNo systemNo * @return R */ @ApiOperation(value = "根据零件系统唯一编号查询对应的制造订单的检测标准", notes = "根据零件系统唯一编号查询对应的制造订单的检测标准") @GetMapping("/findTestStandardNoBySystemNo/{systemNo}") public R findTestStandardNoBySystemNo(@PathVariable("systemNo") String systemNo) { return R.ok(applyPartService.findTestStandardNoBySystemNo(systemNo)); } /** * 质检合格率统计报表 * * @param qualityCheckRateInputDTO * @return R */ @ApiOperation(value = "质检合格率统计报表", notes = "质检合格率统计报表") @SysLog("质检合格率统计报表") @GetMapping("/getQualityCheckRate") public R getQualityCheckRate(Page page, QualityCheckRateInputDTO qualityCheckRateInputDTO) { return R.ok(applyPartService.getQualityCheckRate(page,qualityCheckRateInputDTO)); } /** * 质检合格率统计柱状图 * * @param qualityCheckRateInputDTO * @return R */ @ApiOperation(value = "质检合格率统计柱状图", notes = "质检合格率统计柱状图") @SysLog("质检合格率统计柱状图") @PostMapping("/getQualityCheckRatePicture") public R getQualityCheckRatePicture(@RequestBody QualityCheckRateInputDTO qualityCheckRateInputDTO) { return R.ok(applyPartService.getQualityCheckRatePicture(qualityCheckRateInputDTO)); } /** * 待检零件分页查询 * @param page */ @ApiOperation(value = "待检零件分页查询", notes = "待检零件分页查询") @GetMapping("/getTestApplyPage") public R> getTestApplyPage(Page page, ApplyPartDTO applyPartDTO, Integer queryType) { return R.ok(applyPartService.getTestApplyPage(page, QueryWrapperUtil.gen(applyPartDTO), queryType)); } }