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