From beaba1bf3a30053408a860479f9150b02169a7c8 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 24 八月 2026 17:04:16 +0800
Subject: [PATCH] feat(mes): 添加种子质检功能模块
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/MesQcSeedQualityServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/MesQcSeedQualityServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/MesQcSeedQualityServiceImpl.java
new file mode 100644
index 0000000..531c3cf
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/MesQcSeedQualityServiceImpl.java
@@ -0,0 +1,42 @@
+package cn.iocoder.yudao.module.mes.service.qc.seedquality;
+
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mes.controller.admin.qc.seedquality.vo.MesQcSeedQualitySubmitReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.qc.seedquality.*;
+import cn.iocoder.yudao.module.mes.dal.mysql.qc.seedquality.*;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import java.time.LocalDateTime;
+import java.util.*;
+
+@Service @Validated
+public class MesQcSeedQualityServiceImpl implements MesQcSeedQualityService {
+ private static final Set<String> REQUIRED = Set.of("purity", "cleanliness", "germination_rate", "moisture");
+ @Resource private MesQcSeedQualityMapper qualityMapper;
+ @Resource private MesQcSeedQualityIndicatorMapper indicatorMapper;
+
+ @Override @Transactional(rollbackFor = Exception.class)
+ public Long submit(MesQcSeedQualitySubmitReqVO reqVO) {
+ if (reqVO.getIndicators().size() != 4) throw new IllegalArgumentException("蹇呴』鎻愪氦鍥涢」鎸囨爣");
+ if (qualityMapper.selectByCode(reqVO.getCode()) != null) throw new IllegalArgumentException("璇ヨ鐮佸凡璐ㄦ锛岀姝㈤噸澶嶆彁浜�");
+ Set<String> codes = new HashSet<>();
+ boolean passed = true;
+ MesQcSeedQualityDO quality = MesQcSeedQualityDO.builder().code(reqVO.getCode()).itemId(reqVO.getItemId())
+ .batchCode(reqVO.getBatchCode()).reason(reqVO.getReason()).result(0)
+ .inspectedAt(LocalDateTime.now()).build();
+ qualityMapper.insert(quality);
+ for (MesQcSeedQualitySubmitReqVO.Indicator item : reqVO.getIndicators()) {
+ if (!REQUIRED.contains(item.getCode()) || !codes.add(item.getCode())) throw new IllegalArgumentException("鎸囨爣蹇呴』涓虹函搴︺�佸噣搴︺�佸彂鑺界巼銆佹按鍒嗕笖涓嶅彲閲嶅");
+ if (item.getMinValue().compareTo(item.getMaxValue()) > 0 || item.getValue().compareTo(item.getMinValue()) < 0 || item.getValue().compareTo(item.getMaxValue()) > 0) passed = false;
+ indicatorMapper.insert(MesQcSeedQualityIndicatorDO.builder().qualityId(quality.getId()).indicatorCode(item.getCode())
+ .value(item.getValue()).minValue(item.getMinValue()).maxValue(item.getMaxValue()).build());
+ }
+ if (!codes.equals(REQUIRED)) throw new IllegalArgumentException("鍥涢」鎸囨爣涓嶅畬鏁�");
+ quality.setResult(passed ? 1 : 2);
+ qualityMapper.updateById(quality);
+ // 搴撲綅鐢卞悗鍙伴厤缃湇鍔℃帴绠★紝褰撳墠鐗堟湰淇濈暀瀹¤闂幆锛岀姝㈠墠绔紶鍏ュ簱浣嶃��
+ return quality.getId();
+ }
+}
--
Gitblit v1.9.3