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-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/impl/DmsWenjianBianhaoGuizeFeiqiServiceImpl.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/impl/DmsWenjianBianhaoGuizeFeiqiServiceImpl.java b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/impl/DmsWenjianBianhaoGuizeFeiqiServiceImpl.java
new file mode 100644
index 0000000..7256992
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/main/java/jnpf/dmsService/impl/DmsWenjianBianhaoGuizeFeiqiServiceImpl.java
@@ -0,0 +1,75 @@
+package jnpf.dmsService.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import jnpf.dmsEntity.DmsWenjianBianhaoGuizeEntity;
+import jnpf.dmsEntity.DmsWenjianBianhaoGuizeFeiqiEntity;
+import jnpf.dmsMapper.DmsWenjianBianhaoGuizeFeiqiMapper;
+import jnpf.dmsMapper.DmsWenjianBianhaoGuizeMapper;
+import jnpf.dmsService.DmsWenjianBianhaoGuizeFeiqiService;
+import jnpf.exception.DataException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class DmsWenjianBianhaoGuizeFeiqiServiceImpl implements DmsWenjianBianhaoGuizeFeiqiService {
+
+    private static final String BIZ_ENABLED_DISABLED = "disabled";
+
+    @Autowired
+    private DmsWenjianBianhaoGuizeFeiqiMapper feiqiMapper;
+
+    @Autowired
+    private DmsWenjianBianhaoGuizeMapper guizeMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void feiqiGuize(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<DmsWenjianBianhaoGuizeFeiqiEntity> relationQuery = new LambdaQueryWrapper<>();
+        relationQuery.eq(DmsWenjianBianhaoGuizeFeiqiEntity::getFlowId, resolvedFlowId)
+                .eq(DmsWenjianBianhaoGuizeFeiqiEntity::getTaskId, resolvedTaskId);
+        List<DmsWenjianBianhaoGuizeFeiqiEntity> relations = feiqiMapper.selectList(relationQuery);
+        if (relations.isEmpty()) {
+            throw new DataException("鏈壘鍒版枃浠剁紪鍙疯鍒欏簾寮冨叧鑱旇褰曪細flow_id=" + resolvedFlowId
+                    + ", task_id=" + resolvedTaskId);
+        }
+
+        Set<String> guizeIds = new LinkedHashSet<>();
+        for (DmsWenjianBianhaoGuizeFeiqiEntity relation : relations) {
+            String guizeId = trimToEmpty(relation.getGuizeId());
+            if (guizeId.isEmpty()) {
+                throw new DataException("鏂囦欢缂栧彿瑙勫垯搴熷純鍏宠仈璁板綍鏈叧鑱旇鍒橧D");
+            }
+            guizeIds.add(guizeId);
+        }
+
+        LambdaQueryWrapper<DmsWenjianBianhaoGuizeEntity> guizeQuery = new LambdaQueryWrapper<>();
+        guizeQuery.in(DmsWenjianBianhaoGuizeEntity::getId, guizeIds);
+        if (guizeMapper.selectCount(guizeQuery) != guizeIds.size()) {
+            throw new DataException("瀛樺湪鏈壘鍒扮殑鏂囦欢缂栧彿瑙勫垯锛屾棤娉曞簾寮�");
+        }
+
+        LambdaUpdateWrapper<DmsWenjianBianhaoGuizeEntity> guizeUpdate = new LambdaUpdateWrapper<>();
+        guizeUpdate.in(DmsWenjianBianhaoGuizeEntity::getId, guizeIds)
+                .set(DmsWenjianBianhaoGuizeEntity::getBizEnabled, BIZ_ENABLED_DISABLED);
+        guizeMapper.update(null, guizeUpdate);
+    }
+
+    private String trimToEmpty(String value) {
+        return value == null ? "" : value.trim();
+    }
+}

--
Gitblit v1.8.0