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);
|
normalizeDealDecision(qualityUnqualified);
|
applyRegenerateNewOrderDefault(qualityUnqualified);
|
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) {
|
normalizeDealDecision(qualityUnqualified);
|
applyRegenerateNewOrderDefault(qualityUnqualified);
|
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) {
|
normalizeDealDecision(qualityUnqualified);
|
applyRegenerateNewOrderDefault(qualityUnqualified);
|
normalizeRepairWorkHour(qualityUnqualified);
|
return R.ok(qualityUnqualifiedService.deal(qualityUnqualified));
|
}
|
|
private void normalizeDealDecision(QualityUnqualified qualityUnqualified) {
|
if (qualityUnqualified == null) {
|
return;
|
}
|
String dealResult = qualityUnqualified.getDealResult();
|
Integer dealType = qualityUnqualified.getDealType();
|
if ("报废".equals(dealResult)) {
|
qualityUnqualified.setDealType(2);
|
return;
|
}
|
if ("报工".equals(dealResult)) {
|
if (dealType == null) {
|
throw new ServiceException("报工时必须选择不合格类型");
|
}
|
if (dealType == 2) {
|
qualityUnqualified.setDealResult("报废");
|
}
|
return;
|
}
|
if (dealType == null) {
|
return;
|
}
|
if (dealType == 2) {
|
qualityUnqualified.setDealResult("报废");
|
} else if (dealType == 0 || dealType == 1) {
|
qualityUnqualified.setDealResult("报工");
|
}
|
}
|
|
private void applyRegenerateNewOrderDefault(QualityUnqualified qualityUnqualified) {
|
if (qualityUnqualified == null || qualityUnqualified.getDealType() == null) {
|
return;
|
}
|
if (qualityUnqualified.getDealType() == 0) {
|
qualityUnqualified.setRegenerateNewOrder(0);
|
} else if (qualityUnqualified.getDealType() == 1 || qualityUnqualified.getDealType() == 2) {
|
qualityUnqualified.setRegenerateNewOrder(1);
|
}
|
}
|
|
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);
|
}
|
}
|
|
|
}
|