| | |
| | | @Log(title = "新增不合格管理", businessType = BusinessType.INSERT) |
| | | public R<?> add(@RequestBody QualityUnqualified qualityUnqualified) { |
| | | qualityUnqualified.setInspectState(0); |
| | | if (qualityUnqualified.getDealType() != null) { |
| | | qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType())); |
| | | } |
| | | normalizeDealDecision(qualityUnqualified); |
| | | applyRegenerateNewOrderDefault(qualityUnqualified); |
| | | 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())); |
| | | } |
| | | normalizeDealDecision(qualityUnqualified); |
| | | applyRegenerateNewOrderDefault(qualityUnqualified); |
| | | 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())); |
| | | } |
| | | normalizeDealDecision(qualityUnqualified); |
| | | applyRegenerateNewOrderDefault(qualityUnqualified); |
| | | normalizeRepairWorkHour(qualityUnqualified); |
| | | return R.ok(qualityUnqualifiedService.deal(qualityUnqualified)); |
| | | } |
| | | |
| | | private String resolveDealResult(Integer dealType) { |
| | | if (dealType == null) { |
| | | return null; |
| | | private void normalizeDealDecision(QualityUnqualified qualityUnqualified) { |
| | | if (qualityUnqualified == null) { |
| | | return; |
| | | } |
| | | return switch (dealType) { |
| | | case 0 -> "轻微返工"; |
| | | case 1 -> "严重返工"; |
| | | case 2 -> "报废"; |
| | | default -> null; |
| | | }; |
| | | 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) { |