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

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepPackageStrategy.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepPackageStrategy.java
new file mode 100644
index 0000000..8c9c1b8
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepPackageStrategy.java
@@ -0,0 +1,43 @@
+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.WorkStep;
+import org.jeecg.modules.dnc.mapper.DeviceTypeMapper;
+import org.jeecg.modules.dnc.mapper.DocRelativeMapper;
+import org.jeecg.modules.dnc.mapper.WorkStepMapper;
+import org.jeecg.modules.dnc.service.DataPackageStrategy;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class WorkStepPackageStrategy implements DataPackageStrategy {
+    @Autowired
+    private WorkStepMapper workStepMapper;
+    @Autowired
+    private FullHierarchyTraceService traceService;
+    @Autowired
+    private DeviceTypeMapper deviceTypeMapper;
+    @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.WORKSITE.getCode())) {
+            WorkStep workStep = workStepMapper.selectById(deviceType.getAttributionId());
+            if (workStep == null) {
+                throw new IllegalArgumentException("璁惧绫诲搴旂殑宸ユ涓嶅瓨鍦�: " + deviceType.getDeviceManagementId());
+            }
+        }
+        return TransferPackage.builder()
+                .dataType(TransferPackage.DataType.WORKSTEP)
+                .docRelative(docRelative)
+                .traceChain(traceService.traceFromWorkStep(docRelative))
+                .build();
+    }
+}
+

--
Gitblit v1.9.3