huminmin
2026-03-16 196eed1a17e2d0d7ccdafb502ac597247ecb00a1
src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
@@ -1,12 +1,20 @@
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;
/**
@@ -23,6 +31,12 @@
    @Resource
    private RawMaterialService rawMaterialService;
    @Resource
    private RawMaterialQualityInspectItemService rawMaterialQualityInspectItemService;
    @Resource
    private IQualityInspectFileService qualityInspectFileService;
    /**
     * 原料分页查询
     */
@@ -31,6 +45,13 @@
        return AjaxResult.success(rawMaterialService.listPage(page, rawMaterialDto));
    }
    /**
     * 原料详情
     */
    @GetMapping("/detail/{id}")
    public AjaxResult detail(@PathVariable Long id) {
        return AjaxResult.success(rawMaterialService.detail(id));
    }
    /**
     * 原料新增
@@ -41,18 +62,72 @@
    }
    /**
     * 检测提交
     * @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.updateById(rawMaterialDto));
        return AjaxResult.success(rawMaterialService.update(rawMaterialDto));
    }
    /**
     * 原料删除
     */
    @DeleteMapping("")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult delete(@RequestBody List<Integer> ids) {
        return AjaxResult.success(rawMaterialService.removeByIds(ids));
        if(CollectionUtils.isEmpty(ids)){
            return AjaxResult.error("请选择至少一条数据");
        }
        //如果已经提交就不允许删除
        List<RawMaterial> rawMaterials = rawMaterialService.list(Wrappers.<RawMaterial>lambdaQuery()
                .in(RawMaterial::getId,ids)
                .eq(RawMaterial::getInspectState, RawMaterialInspectState.RawMaterialInspectStateSubmitted.getCode()));
        if(!CollectionUtils.isEmpty(rawMaterials)){
            throw new RuntimeException("已提交的数据不允许删除");
        }
        //删除检验参数
        rawMaterialQualityInspectItemService.remove(Wrappers.<RawMaterialQualityInspectItem>lambdaQuery()
                .in(RawMaterialQualityInspectItem::getRawMaterialId,ids));
        //删除检验附件
        qualityInspectFileService.remove(Wrappers.<QualityInspectFile>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);
    }
}