package com.ruoyi.quality.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.quality.dto.QualityInspectDto; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.quality.pojo.QualityInspectFile; import com.ruoyi.quality.pojo.QualityInspectParam; import com.ruoyi.quality.service.IQualityInspectFileService; import com.ruoyi.quality.service.IQualityInspectParamService; import com.ruoyi.quality.service.IQualityInspectService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 原材料检验/过程检验/出厂检验 */ @RestController @RequestMapping("/quality/qualityInspect") @Api(tags = "检验") public class QualityInspectController { @Resource private IQualityInspectService qualityInspectService; @Resource private IQualityInspectParamService qualityInspectParamService; @Resource private IQualityInspectFileService qualityInspectFileService; @Autowired private ProcurementRecordService procurementRecordService; @Autowired private StockUtils stockUtils; /** * 新增 * @param qualityInspectDto * @return */ @PostMapping("/add") @ApiOperation("新增检验") @Log(title = "新增检验", businessType = BusinessType.INSERT) public AjaxResult add(@RequestBody QualityInspectDto qualityInspectDto) { return AjaxResult.success(qualityInspectService.add(qualityInspectDto)); } /** * 删除 * @param ids * @return */ @DeleteMapping("/del") @ApiOperation("删除检验") @Log(title = "删除检验", businessType = BusinessType.DELETE) public AjaxResult delQualityInspect(@RequestBody List ids) { if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("请选择至少一条数据"); } //如果已经提交就不允许删除 List qualityInspects = qualityInspectService.listByIds(ids); for (QualityInspect qualityInspect : qualityInspects) { if(qualityInspect.getInspectState()==1){ throw new RuntimeException("已提交的数据不允许删除"); } } //删除检验参数 qualityInspectParamService.remove(Wrappers.lambdaQuery() .in(QualityInspectParam::getInspectId,ids)); //删除检验附件 qualityInspectFileService.remove(Wrappers.lambdaQuery() .in(QualityInspectFile::getInspectId,ids)); //删除检验单 return AjaxResult.success(qualityInspectService.removeBatchByIds(ids)); } /** * 详情 * @param id * @return */ @GetMapping("/{id}") @ApiOperation("检验单详情") @Log(title = "检验单详情", businessType = BusinessType.OTHER) public AjaxResult QualityInspectDetail(@PathVariable("id") Integer id) { return AjaxResult.success(qualityInspectService.getDetailById(id)); } /** * 修改 * @param qualityInspectDto * @return */ @PostMapping("/update") @ApiOperation("修改检验单") @Log(title = "修改检验单", businessType = BusinessType.UPDATE) public AjaxResult update(@RequestBody QualityInspectDto qualityInspectDto) { return AjaxResult.success(qualityInspectService.updateQualityInspect(qualityInspectDto)); } /** *分页查询 * @param page * @param qualityInspect * @return */ @GetMapping("/listPage") @ApiOperation("检验单分页查询") @Log(title = "检验单分页查询", businessType = BusinessType.OTHER) public AjaxResult qualityInspectListPage(Page page, QualityInspect qualityInspect) { return AjaxResult.success(qualityInspectService.qualityInspectListPage(page, qualityInspect)); } /** * 导出 * @param response * @param qualityInspect */ @PostMapping("/export") @ApiOperation("导出检验单") @Log(title = "导出检验单", businessType = BusinessType.EXPORT) public void qualityInspectExport(HttpServletResponse response,QualityInspect qualityInspect) { qualityInspectService.qualityInspectExport(response, qualityInspect); } /** * 提交 * @param qualityInspect * @return */ @PostMapping("/submit") @ApiOperation("提交检验单") @Log(title = "提交检验单", businessType = BusinessType.UPDATE) public AjaxResult submit(@RequestBody QualityInspect qualityInspect) { return AjaxResult.success(qualityInspectService.submit(qualityInspect)); } /** * 下载 * @param response * @param qualityInspect */ @PostMapping("/down") @ApiOperation("下载检验单附件") @Log(title = "下载检验单附件", businessType = BusinessType.OTHER) public void down(HttpServletResponse response,@RequestBody QualityInspect qualityInspect) { qualityInspectService.down(response, qualityInspect); } /** * 下载出库检验报告 * @param response * @param qualityInspect */ @PostMapping("/downOutReport") @ApiOperation("下载出库检验报告") @Log(title = "下载出库检验报告", businessType = BusinessType.OTHER) public void downOutReport(HttpServletResponse response, @RequestBody QualityInspect qualityInspect) { qualityInspectService.downOutReport(response, qualityInspect); } }