| | |
| | | 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; |
| | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | @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); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |