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/LimsShebeiYiqiPeijianGenghuanServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiPeijianGenghuanServiceImpl.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiPeijianGenghuanServiceImpl.java
new file mode 100644
index 0000000..ff6e196
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/limsService/impl/LimsShebeiYiqiPeijianGenghuanServiceImpl.java
@@ -0,0 +1,59 @@
+package jnpf.limsService.impl;
+
+import jnpf.audit.sdk.annotation.AuditLog;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import jnpf.exception.DataException;
+import jnpf.limsEntity.LimsShebeiYiqiPeijianGenghuanEntity;
+import jnpf.limsEntity.LimsShebeiYiqiPeijianGenghuanZixiangEntity;
+import jnpf.limsMapper.LimsShebeiYiqiPeijianGenghuanMapper;
+import jnpf.limsMapper.LimsShebeiYiqiPeijianGenghuanZixiangMapper;
+import jnpf.limsService.LimsShebeiYiqiPeijianGenghuanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+public class LimsShebeiYiqiPeijianGenghuanServiceImpl implements LimsShebeiYiqiPeijianGenghuanService {
+
+    @Autowired
+    private LimsShebeiYiqiPeijianGenghuanMapper genghuanMapper;
+
+    @Autowired
+    private LimsShebeiYiqiPeijianGenghuanZixiangMapper genghuanZixiangMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    @AuditLog(action = "PART_REPLACEMENT_SYNC", label = "鍚屾浠櫒閰嶄欢鏇存崲瀛愰」", bizType = "SHEBEI_YIQI",
+            bizCodeExpr = "#result > 0 ? #genghuanId : ''", targetTable = "lims_shebei_yiqi_peijian_genghuan_zixiang",
+            targetIdExpr = "T(jnpf.limsService.support.LimsAuditTargetIds).firstPartReplacementItem(#genghuanId)",
+            diff = true, entityClass = LimsShebeiYiqiPeijianGenghuanZixiangEntity.class)
+    public int syncToZixiang(String genghuanId) throws DataException {
+        String id = trimToEmpty(genghuanId);
+        if (id.isEmpty()) {
+            throw new DataException("閰嶄欢鏇存崲璁板綍ID(genghuan_id)涓嶈兘涓虹┖");
+        }
+
+        LimsShebeiYiqiPeijianGenghuanEntity genghuan = genghuanMapper.selectById(id);
+        if (genghuan == null) {
+            throw new DataException("閰嶄欢鏇存崲璁板綍涓嶅瓨鍦細" + id);
+        }
+
+        LambdaUpdateWrapper<LimsShebeiYiqiPeijianGenghuanZixiangEntity> update = new LambdaUpdateWrapper<>();
+        update.eq(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getForeignId, id)
+                .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getYiqiId, genghuan.getYiqiId())
+                .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getYiqiMingcheng, genghuan.getYiqiMingcheng())
+                .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getYiqiBianhao, genghuan.getYiqiBianhao())
+                .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getGenghuanRen, genghuan.getGenghuanRen())
+                .set(LimsShebeiYiqiPeijianGenghuanZixiangEntity::getGenghuanRiqi, genghuan.getGenghuanRiqi());
+        int updated = genghuanZixiangMapper.update(null, update);
+        if (updated <= 0) {
+            throw new DataException("鏈壘鍒板叧鑱旂殑閰嶄欢鏇存崲瀛愰」锛�" + id);
+        }
+        return updated;
+    }
+
+    private String trimToEmpty(String value) {
+        return value == null ? "" : value.trim();
+    }
+}

--
Gitblit v1.8.0