From 4d6cf92e30c2c7f81f8cc31dfb7559a745782ec1 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期一, 23 六月 2025 13:24:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessPackageStrategy.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessPackageStrategy.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessPackageStrategy.java
new file mode 100644
index 0000000..b6cdfd5
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessPackageStrategy.java
@@ -0,0 +1,42 @@
+package org.jeecg.modules.dnc.service.impl;
+
+import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum;
+import org.jeecg.modules.dnc.dto.TransferPackage;
+import org.jeecg.modules.dnc.entity.DeviceType;
+import org.jeecg.modules.dnc.entity.DocRelative;
+import org.jeecg.modules.dnc.entity.ProcessStream;
+import org.jeecg.modules.dnc.mapper.DeviceTypeMapper;
+import org.jeecg.modules.dnc.mapper.DocRelativeMapper;
+import org.jeecg.modules.dnc.mapper.ProcessStreamMapper;
+import org.jeecg.modules.dnc.service.DataPackageStrategy;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ProcessPackageStrategy implements DataPackageStrategy {
+    @Autowired
+    private ProcessStreamMapper processMapper;
+    @Autowired
+    private DeviceTypeMapper deviceTypeMapper;
+    @Autowired
+    private FullHierarchyTraceService traceService;
+    @Autowired
+    private DocRelativeMapper docRelativeMapper;
+
+    @Override
+    public TransferPackage packageData(String relativeId) {
+        DocRelative docRelative=docRelativeMapper.selectById(relativeId);
+        DeviceType deviceType=deviceTypeMapper.selectById(docRelative.getAttributionId());
+        if (deviceType!=null&&deviceType.getAttributionType().equals(DocAttributionTypeEnum.PROCESS.getCode())) {
+            ProcessStream process = processMapper.selectById(deviceType.getAttributionId());
+            if (process == null) {
+                throw new IllegalArgumentException("璁惧绫诲搴旂殑宸ュ簭涓嶅瓨鍦�: " + deviceType.getDeviceManagementId());
+            }
+        }
+        return TransferPackage.builder()
+                .dataType(TransferPackage.DataType.PROCESS)
+                .docRelative(docRelative)
+                .traceChain(traceService.traceFromProcess(docRelative))
+                .build();
+    }
+}

--
Gitblit v1.9.3