package com.ruoyi.quality.controller;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
|
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
|
import com.ruoyi.procurementrecord.service.impl.ProcurementRecordServiceImpl;
|
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.pojo.QualityUnqualified;
|
import com.ruoyi.quality.service.IQualityInspectFileService;
|
import com.ruoyi.quality.service.IQualityInspectParamService;
|
import com.ruoyi.quality.service.IQualityInspectService;
|
import com.ruoyi.quality.service.IQualityUnqualifiedService;
|
import org.apache.commons.lang3.StringUtils;
|
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")
|
public class QualityInspectController {
|
|
@Resource
|
private IQualityInspectService qualityInspectService;
|
|
@Resource
|
private IQualityInspectParamService qualityInspectParamService;
|
|
@Resource
|
private IQualityInspectFileService qualityInspectFileService;
|
@Autowired
|
private ProcurementRecordService procurementRecordService;
|
|
|
/**
|
* 新增
|
* @param qualityInspectDto
|
* @return
|
*/
|
@PostMapping("/add")
|
public AjaxResult add(@RequestBody QualityInspectDto qualityInspectDto) {
|
String validationMessage = validateInspect(qualityInspectDto, false);
|
if (validationMessage != null) {
|
return AjaxResult.error(validationMessage);
|
}
|
return AjaxResult.success(qualityInspectService.add(qualityInspectDto));
|
}
|
|
/**
|
* 删除
|
* @param ids
|
* @return
|
*/
|
@DeleteMapping("/del")
|
public AjaxResult delQualityInspect(@RequestBody List<Integer> ids) {
|
if(CollectionUtils.isEmpty(ids)){
|
return AjaxResult.error("请选择至少一条数据");
|
}
|
//删除检验参数
|
qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery()
|
.in(QualityInspectParam::getInspectId,ids));
|
//删除检验附件
|
qualityInspectFileService.remove(Wrappers.<QualityInspectFile>lambdaQuery()
|
.in(QualityInspectFile::getInspectId,ids));
|
//删除入库记录
|
procurementRecordService.remove(Wrappers.<ProcurementRecordStorage>lambdaQuery().in(ProcurementRecordStorage::getQualityInspectId,ids));
|
//删除检验单
|
return AjaxResult.success(qualityInspectService.removeBatchByIds(ids));
|
}
|
|
/**
|
* 详情
|
* @param id
|
* @return
|
*/
|
@GetMapping("/{id}")
|
public AjaxResult QualityInspectDetail(@PathVariable("id") Integer id) {
|
return AjaxResult.success(qualityInspectService.getDetailById(id));
|
}
|
|
/**
|
* 修改
|
* @param qualityInspectDto
|
* @return
|
*/
|
@PostMapping("/update")
|
public AjaxResult update(@RequestBody QualityInspectDto qualityInspectDto) {
|
String validationMessage = validateInspect(qualityInspectDto, true);
|
if (validationMessage != null) {
|
return AjaxResult.error(validationMessage);
|
}
|
QualityInspect stored = qualityInspectService.getById(qualityInspectDto.getId());
|
if (stored == null) {
|
return AjaxResult.error("检验记录不存在");
|
}
|
if (Integer.valueOf(1).equals(stored.getInspectState())) {
|
return AjaxResult.error("已提交的检验记录不能修改");
|
}
|
return AjaxResult.success(qualityInspectService.updateQualityInspect(qualityInspectDto));
|
}
|
|
/**
|
*分页查询
|
* @param page
|
* @param qualityInspect
|
* @return
|
*/
|
@GetMapping("/listPage")
|
public AjaxResult qualityInspectListPage(Page page, QualityInspect qualityInspect) {
|
return AjaxResult.success(qualityInspectService.qualityInspectListPage(page, qualityInspect));
|
}
|
|
/**
|
* 导出
|
* @param response
|
* @param qualityInspect
|
*/
|
@PostMapping("/export")
|
public void qualityInspectExport(HttpServletResponse response,QualityInspect qualityInspect) {
|
qualityInspectService.qualityInspectExport(response, qualityInspect);
|
}
|
|
/**
|
* 提交
|
* @param qualityInspect
|
* @return
|
*/
|
@PostMapping("/submit")
|
public AjaxResult submit(@RequestBody QualityInspect qualityInspect) {
|
return AjaxResult.success(qualityInspectService.submit(qualityInspect));
|
}
|
|
/**
|
* 下载
|
* @param response
|
* @param qualityInspect
|
*/
|
@PostMapping("/down")
|
public void down(HttpServletResponse response,@RequestBody QualityInspect qualityInspect) {
|
qualityInspectService.down(response, qualityInspect);
|
}
|
|
private String validateInspect(QualityInspectDto inspect, boolean requireId) {
|
if (inspect == null) {
|
return "检验数据不能为空";
|
}
|
if (requireId && inspect.getId() == null) {
|
return "检验记录ID不能为空";
|
}
|
if (inspect.getInspectType() == null || inspect.getInspectType() < 0 || inspect.getInspectType() > 2) {
|
return "检验类别不正确";
|
}
|
if (inspect.getProductId() == null) {
|
return "请选择产品";
|
}
|
if (inspect.getCheckTime() == null) {
|
return "请选择检测日期";
|
}
|
if (inspect.getQuantity() == null || inspect.getQuantity().signum() <= 0) {
|
return "检验数量必须大于0";
|
}
|
if (!"合格".equals(inspect.getCheckResult()) && !"不合格".equals(inspect.getCheckResult())) {
|
return "请选择有效的检测结果";
|
}
|
if (inspect.getInspectType() == 1 && StringUtils.isBlank(inspect.getProcess())) {
|
return "过程检验必须选择工序";
|
}
|
if (CollectionUtils.isEmpty(inspect.getQualityInspectParams())) {
|
return "当前产品未配置检验指标,请先维护指标";
|
}
|
for (QualityInspectParam parameter : inspect.getQualityInspectParams()) {
|
if (StringUtils.isBlank(parameter.getParameterItem())) {
|
return "检验项目不能为空";
|
}
|
if (StringUtils.isBlank(parameter.getTestValue())) {
|
return "请填写“" + parameter.getParameterItem() + "”的检验值";
|
}
|
}
|
return null;
|
}
|
}
|