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.RawMaterialInspectState; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.quality.dto.RawMaterialDto; import com.ruoyi.quality.pojo.*; import com.ruoyi.quality.service.IQualityInspectFileService; import com.ruoyi.quality.service.RawMaterialQualityInspectItemService; import com.ruoyi.quality.service.RawMaterialService; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** *

* 前端控制器 *

* * @author 芯导软件(江苏)有限公司 * @since 2026-03-13 02:44:09 */ @RestController @RequestMapping("/quality/rawMaterial") public class RawMaterialController { @Resource private RawMaterialService rawMaterialService; @Resource private RawMaterialQualityInspectItemService rawMaterialQualityInspectItemService; @Resource private IQualityInspectFileService qualityInspectFileService; /** * 原料分页查询 */ @GetMapping("/listPage") public AjaxResult listPage(Page page, RawMaterialDto rawMaterialDto) { return AjaxResult.success(rawMaterialService.listPage(page, rawMaterialDto)); } /** * 原料详情 */ @GetMapping("/detail/{id}") public AjaxResult detail(@PathVariable Long id) { return AjaxResult.success(rawMaterialService.detail(id)); } /** * 原料新增 */ @PostMapping("") public AjaxResult add(@RequestBody RawMaterialDto rawMaterialDto) { return AjaxResult.success(rawMaterialService.add(rawMaterialDto)); } /** * 检测提交 * @param id 原料id * @return */ @PatchMapping("/submit/{id}") public AjaxResult submit(@PathVariable Long id) { return AjaxResult.success(rawMaterialService.submit(id)); } /** * 修改检验人 * @param rawMaterialDto 原料 * @return */ @PatchMapping("/updateCheckUserName") public AjaxResult updateCheckUserName(@RequestBody RawMaterialDto rawMaterialDto) { RawMaterial rawMaterial = new RawMaterial(); rawMaterial.setId(rawMaterialDto.getId()); rawMaterial.setCheckUserName(rawMaterialDto.getCheckUserName()); return AjaxResult.success(rawMaterialService.updateById(rawMaterial)); } /** * 原料更新 */ @PutMapping("") public AjaxResult update(@RequestBody RawMaterialDto rawMaterialDto) { return AjaxResult.success(rawMaterialService.update(rawMaterialDto)); } /** * 原料删除 */ @DeleteMapping("") @Transactional(rollbackFor = Exception.class) public AjaxResult delete(@RequestBody List ids) { if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("请选择至少一条数据"); } //如果已经提交就不允许删除 List rawMaterials = rawMaterialService.list(Wrappers.lambdaQuery() .in(RawMaterial::getId,ids) .eq(RawMaterial::getInspectState, RawMaterialInspectState.RawMaterialInspectStateSubmitted.getCode())); if(!CollectionUtils.isEmpty(rawMaterials)){ throw new RuntimeException("已提交的数据不允许删除"); } //删除检验参数 rawMaterialQualityInspectItemService.remove(Wrappers.lambdaQuery() .in(RawMaterialQualityInspectItem::getRawMaterialId,ids)); //删除检验附件 qualityInspectFileService.remove(Wrappers.lambdaQuery() .in(QualityInspectFile::getInspectId,ids)); //删除检验单 return AjaxResult.success(rawMaterialService.removeBatchByIds(ids)); } /** * 导出原料数据 */ @PostMapping("/export") public void export(HttpServletResponse response, RawMaterialDto rawMaterialDto) { rawMaterialService.export(response, rawMaterialDto); } @PostMapping("/down") public void down(HttpServletResponse response,@RequestBody RawMaterialDto rawMaterialDto) { rawMaterialService.down(response, rawMaterialDto); } }