package com.ruoyi.quality.controller;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
import com.ruoyi.framework.web.domain.R;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.quality.pojo.QualityUnqualified;
|
import com.ruoyi.quality.service.IQualityUnqualifiedService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.*;
|
|
import jakarta.annotation.Resource;
|
import jakarta.servlet.http.HttpServletResponse;
|
import java.util.List;
|
|
/**
|
* 不合格管理
|
*/
|
@RestController
|
@RequestMapping("/quality/qualityUnqualified")
|
@Tag(name = "不合格管理")
|
public class QualityUnqualifiedController {
|
|
@Resource
|
private IQualityUnqualifiedService qualityUnqualifiedService;
|
|
|
/**
|
* 新增不合格管理
|
* @param qualityUnqualified
|
* @return
|
*/
|
@PostMapping("/add")
|
@Operation(summary = "新增不合格管理")
|
@Log(title = "新增不合格管理", businessType = BusinessType.INSERT)
|
public R<?> add(@RequestBody QualityUnqualified qualityUnqualified) {
|
qualityUnqualified.setInspectState(0);
|
if (qualityUnqualified.getDealType() != null) {
|
qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType()));
|
}
|
normalizeRepairWorkHour(qualityUnqualified);
|
return R.ok(qualityUnqualifiedService.save(qualityUnqualified));
|
}
|
|
/**
|
* 删除不合格管理
|
* @param ids
|
* @return
|
*/
|
@DeleteMapping("/del")
|
@Operation(summary = "删除不合格管理")
|
@Log(title = "删除不合格管理", businessType = BusinessType.DELETE)
|
public R<?> delQualityUnqualified(@RequestBody List<Integer> ids) {
|
qualityUnqualifiedService.listByIds(ids).stream().forEach(qualityUnqualified -> {
|
if (qualityUnqualified.getInspectState()==1){
|
throw new RuntimeException("该不合格数据已经处理无法删除!");
|
}
|
});
|
return R.ok(qualityUnqualifiedService.removeBatchByIds(ids));
|
}
|
|
/**
|
* 不合格管理详情
|
* @param id
|
* @return
|
*/
|
@GetMapping("/{id}")
|
@Operation(summary = "不合格管理详情")
|
@Log(title = "不合格管理详情", businessType = BusinessType.OTHER)
|
public R<?> QualityUnqualifiedDetail(@PathVariable("id") Integer id) {
|
return R.ok(qualityUnqualifiedService.getUnqualified(id));
|
}
|
|
/**
|
* 不合格管理修改
|
* @param qualityUnqualified
|
* @return
|
*/
|
@PostMapping("/update")
|
@Operation(summary = "不合格管理修改")
|
@Log(title = "不合格管理修改", businessType = BusinessType.UPDATE)
|
public R<?> update(@RequestBody QualityUnqualified qualityUnqualified) {
|
if (qualityUnqualified.getDealType() != null) {
|
qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType()));
|
}
|
normalizeRepairWorkHour(qualityUnqualified);
|
return R.ok(qualityUnqualifiedService.updateById(qualityUnqualified));
|
}
|
|
/**
|
*不合格管理分页查询
|
* @param page
|
* @param qualityUnqualified
|
* @return
|
*/
|
@GetMapping("/listPage")
|
@Operation(summary = "不合格管理分页查询")
|
@Log(title = "不合格管理分页查询", businessType = BusinessType.OTHER)
|
public R<?> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
|
return R.ok(qualityUnqualifiedService.qualityUnqualifiedListPage(page, qualityUnqualified));
|
}
|
|
/**
|
* 不合格管理导出
|
* @param response
|
* @param qualityUnqualified
|
*/
|
@PostMapping("/export")
|
@Operation(summary = "不合格管理导出")
|
@Log(title = "不合格管理导出", businessType = BusinessType.EXPORT)
|
public void qualityUnqualifiedExport(HttpServletResponse response,QualityUnqualified qualityUnqualified) {
|
qualityUnqualifiedService.qualityUnqualifiedExport(response, qualityUnqualified);
|
}
|
|
/**
|
* 不合格管理处理
|
* @param qualityUnqualified
|
* @return
|
*/
|
@PostMapping("/deal")
|
@Operation(summary = "不合格管理处理")
|
@Log(title = "不合格管理处理", businessType = BusinessType.OTHER)
|
public R<?> deal(@RequestBody QualityUnqualified qualityUnqualified) {
|
if (qualityUnqualified.getDealType() != null) {
|
qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType()));
|
}
|
normalizeRepairWorkHour(qualityUnqualified);
|
return R.ok(qualityUnqualifiedService.deal(qualityUnqualified));
|
}
|
|
private String resolveDealResult(Integer dealType) {
|
if (dealType == null) {
|
return null;
|
}
|
return switch (dealType) {
|
case 0 -> "轻微返工";
|
case 1 -> "严重返工";
|
case 2 -> "报废";
|
default -> null;
|
};
|
}
|
|
private void normalizeRepairWorkHour(QualityUnqualified qualityUnqualified) {
|
if (qualityUnqualified == null || qualityUnqualified.getDealType() == null) {
|
return;
|
}
|
if (qualityUnqualified.getDealType() == 0) {
|
if (qualityUnqualified.getRepairWorkHour() == null
|
|| qualityUnqualified.getRepairWorkHour().compareTo(java.math.BigDecimal.ZERO) <= 0) {
|
throw new ServiceException("轻微返工必须填写大于0的修理工时");
|
}
|
} else {
|
qualityUnqualified.setRepairWorkHour(java.math.BigDecimal.ZERO);
|
}
|
}
|
|
|
}
|