From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiJiaozhunNeibuServiceImpl.java |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiJiaozhunNeibuServiceImpl.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiJiaozhunNeibuServiceImpl.java
new file mode 100644
index 0000000..29aa883
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiJiaozhunNeibuServiceImpl.java
@@ -0,0 +1,74 @@
+package jnpf.limsService.impl;
+
+import jnpf.audit.sdk.annotation.AuditLog;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import jnpf.exception.DataException;
+import jnpf.limsEntity.LimsShebeiJiliangQijuEntity;
+import jnpf.limsEntity.LimsShebeiYiqiJiaozhunNeibuEntity;
+import jnpf.limsMapper.LimsShebeiJiliangQijuMapper;
+import jnpf.limsMapper.LimsShebeiYiqiJiaozhunNeibuMapper;
+import jnpf.limsService.LimsShebeiYiqiJiaozhunNeibuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+public class LimsShebeiYiqiJiaozhunNeibuServiceImpl implements LimsShebeiYiqiJiaozhunNeibuService {
+
+    private static final String BIZ_STATUS_YIJIAOZHUN = "yijiaozhun";
+
+    @Autowired
+    private LimsShebeiYiqiJiaozhunNeibuMapper jiaozhunNeibuMapper;
+
+    @Autowired
+    private LimsShebeiJiliangQijuMapper jiliangQijuMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @AuditLog(action = "CALIBRATION_SYNC", label = "鍚屾鍐呴儴鏍″噯缁撴灉", bizType = "SHEBEI_YIQI",
+            bizCodeExpr = "#flowId", bizCodeRequired = false, targetTable = "lims_shebei_yiqi_qiju",
+            targetIdExpr = "T(jnpf.limsService.support.LimsAuditTargetIds).qijuByInternalCalibrationFlow(#flowId, #taskId)",
+            diff = true, entityClass = LimsShebeiJiliangQijuEntity.class)
+    public void syncToQiju(String flowId, String taskId) throws DataException {
+        String resolvedFlowId = trimToEmpty(flowId);
+        String resolvedTaskId = trimToEmpty(taskId);
+        if (resolvedFlowId.isEmpty()) {
+            throw new DataException("娴佺▼ID(flow_id)涓嶈兘涓虹┖");
+        }
+        if (resolvedTaskId.isEmpty()) {
+            throw new DataException("娴佺▼浠诲姟ID(task_id)涓嶈兘涓虹┖");
+        }
+
+        LambdaQueryWrapper<LimsShebeiYiqiJiaozhunNeibuEntity> query = new LambdaQueryWrapper<>();
+        query.eq(LimsShebeiYiqiJiaozhunNeibuEntity::getFlowId, resolvedFlowId)
+                .eq(LimsShebeiYiqiJiaozhunNeibuEntity::getFlowTaskId, resolvedTaskId);
+        LimsShebeiYiqiJiaozhunNeibuEntity jiaozhun = jiaozhunNeibuMapper.selectOne(query);
+        if (jiaozhun == null) {
+            throw new DataException("鏈壘鍒板叧鑱旂殑鍐呴儴鏍″噯璁板綍锛歠low_id=" + resolvedFlowId + ", task_id=" + resolvedTaskId);
+        }
+
+        String qijuId = trimToEmpty(jiaozhun.getQijuId());
+        if (qijuId.isEmpty()) {
+            throw new DataException("鍐呴儴鏍″噯璁板綍鏈叧鑱旇閲忓櫒鍏�");
+        }
+        if (jiliangQijuMapper.selectById(qijuId) == null) {
+            throw new DataException("璁¢噺鍣ㄥ叿涓嶅瓨鍦細" + qijuId);
+        }
+
+        LambdaUpdateWrapper<LimsShebeiJiliangQijuEntity> update = new LambdaUpdateWrapper<>();
+        update.eq(LimsShebeiJiliangQijuEntity::getId, qijuId)
+                .set(LimsShebeiJiliangQijuEntity::getBizStatus, BIZ_STATUS_YIJIAOZHUN)
+                .set(LimsShebeiJiliangQijuEntity::getJiandingRiqi, jiaozhun.getJiandingRiqi())
+                .set(LimsShebeiJiliangQijuEntity::getJiliangShijian, jiaozhun.getJiandingRiqi())
+                .set(LimsShebeiJiliangQijuEntity::getJiliangYouxiaoqi, jiaozhun.getYouxiaoqi());
+        if (jiliangQijuMapper.update(null, update) != 1) {
+            throw new DataException("璁¢噺鍣ㄥ叿鏍″噯淇℃伅鏇存柊澶辫触锛岃鍒锋柊鍚庨噸璇�");
+        }
+    }
+
+    private String trimToEmpty(String value) {
+        return value == null ? "" : value.trim();
+    }
+}

--
Gitblit v1.8.0