From 23855599412c4d61b38d78f0f3abd3430a48b5b1 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 25 六月 2025 11:51:38 +0800
Subject: [PATCH] Merge branch 'mdc_hyjs_master'

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

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataImportService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataImportService.java
new file mode 100644
index 0000000..c91c587
--- /dev/null
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DataImportService.java
@@ -0,0 +1,314 @@
+package org.jeecg.modules.dnc.service.impl;
+
+import com.jeecg.weibo.exception.BusinessException;
+import org.jeecg.modules.dnc.dto.ComponentHierarchy;
+import org.jeecg.modules.dnc.dto.TransferPackage;
+import org.jeecg.modules.dnc.entity.*;
+import org.jeecg.modules.dnc.mapper.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataIntegrityViolationException;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class DataImportService {
+    private static final Logger logger = LoggerFactory.getLogger(DataImportService.class);
+
+    @Autowired
+    private ProductInfoMapper productMapper;
+
+    @Autowired
+    private ComponentInfoMapper componentMapper;
+
+    @Autowired
+    private PartsInfoMapper partsMapper;
+
+    @Autowired
+    private ProcessSpecVersionMapper psvMapper;
+
+    @Autowired
+    private ProcessStreamMapper processMapper;
+
+    @Autowired
+    private WorkStepMapper workStepMapper;
+
+    @Autowired
+    private ProductMixMapper productMixMapper;
+
+    @Autowired
+    private PermissionStreamNewMapper permissionStreamNewMapper;
+
+    @Autowired
+    private DeviceManagementMapper deviceManagementMapper;
+
+    @Autowired
+    private DeviceTypeMapper deviceTypeMapper;
+
+    @Autowired
+    private DocInfoMapper docInfoMapper;
+
+    @Autowired
+    private DocFileMapper docFileMapper;
+
+    @Autowired
+    private DocRelativeMapper docRelativeMapper;
+
+    @Autowired
+    private CutterMapper cutterMapper;
+
+    @Autowired
+    private GuideCardBatchMapper guideCardBatchMapper;
+
+    @Transactional(rollbackFor = Exception.class)
+    public void importTransferPackage(TransferPackage transferPackage) {
+        try {
+            logger.info("寮�濮嬪鍏ヤ紶杈撳寘鏁版嵁, 绫诲瀷: {}", transferPackage.getDataType());
+
+            // 淇濆瓨浜у搧
+            if (transferPackage.getTraceChain() != null &&
+                    transferPackage.getTraceChain().getProduct() != null) {
+                saveProduct(transferPackage.getTraceChain().getProduct());
+            }
+
+            // 淇濆瓨閮ㄤ欢灞傜骇
+            if (transferPackage.getTraceChain() != null &&
+                    transferPackage.getTraceChain().getComponentHierarchy() != null) {
+                saveComponentHierarchy(transferPackage.getTraceChain().getComponentHierarchy());
+            }
+
+            // 淇濆瓨闆朵欢
+            if (transferPackage.getTraceChain() != null &&
+                    transferPackage.getTraceChain().getParts() != null) {
+                saveParts(transferPackage.getTraceChain().getParts());
+            }
+
+            // 淇濆瓨宸ヨ壓瑙勭▼
+            if (transferPackage.getTraceChain() != null &&
+                    transferPackage.getTraceChain().getProcessSpec() != null) {
+                saveProcessSpec(transferPackage.getTraceChain().getProcessSpec());
+            }
+
+            // 淇濆瓨宸ュ簭
+            if (transferPackage.getTraceChain() != null&&
+                    transferPackage.getTraceChain().getProcess() != null) {
+                saveProcess(transferPackage.getTraceChain().getProcess());
+            }
+
+            // 淇濆瓨宸ユ
+            if (transferPackage.getTraceChain() != null&&
+                    transferPackage.getTraceChain().getWorkStep() != null) {
+                saveWorkSteps(transferPackage.getTraceChain().getWorkStep());
+            }
+
+            // 淇濆瓨缁撴瀯鏍�
+            if (transferPackage.getTraceChain() != null&&
+                    transferPackage.getTraceChain().getTreePath() != null) {
+                saveTreePath(transferPackage.getTraceChain().getTreePath());
+            }
+
+            // 淇濆瓨璁惧绫�
+            if (transferPackage.getTraceChain() != null&&
+                    transferPackage.getTraceChain().getDeviceManagement() != null) {
+                saveDeviceManagement(transferPackage.getTraceChain().getDeviceManagement());
+            }
+
+            // 淇濆瓨璁惧绫诲搴斾俊鎭�
+            if (transferPackage.getTraceChain() != null&&
+                    transferPackage.getTraceChain().getDeviceType() != null) {
+                saveDeviceType(transferPackage.getTraceChain().getDeviceType());
+            }
+
+            // 淇濆瓨鏂囨。
+            if (transferPackage.getTraceChain() != null&&
+                    transferPackage.getTraceChain().getDocInfo() != null) {
+                saveDocInfo(transferPackage.getTraceChain().getDocInfo());
+            }
+
+            // 淇濆瓨鏂囦欢
+            if (transferPackage.getTraceChain() !=null&&
+                    transferPackage.getTraceChain().getDocFile() != null) {
+                saveDocFile(transferPackage.getTraceChain().getDocFile());
+            }
+
+            // 淇濆瓨鏂囨。鏂囦欢瀵瑰簲鍏崇郴
+            if (transferPackage.getDocRelative() !=null){
+                saveDocRelative(transferPackage.getDocRelative());
+            }
+
+            // 淇濆瓨鍒�鍏风郴缁�
+            if (transferPackage.getTraceChain() !=null&&
+                    transferPackage.getTraceChain().getCutterList() != null) {
+                saveCutterList(transferPackage.getTraceChain().getCutterList());
+            }
+
+            //淇濆瓨鏁版帶绋嬪簭鍔犲伐纭琛�
+            if (transferPackage.getTraceChain() !=null&&
+                    transferPackage.getTraceChain().getGuideCardBatch() != null) {
+                saveGuideCardBatch(transferPackage.getTraceChain().getGuideCardBatch());
+            }
+
+            logger.info("鏁版嵁瀵煎叆鎴愬姛");
+        } catch (DuplicateKeyException e) {
+            logger.warn("涓婚敭鍐茬獊: {}", e.getMessage());
+            throw new BusinessException("鏁版嵁宸插瓨鍦紝鏃犳硶閲嶅瀵煎叆");
+        } catch (DataIntegrityViolationException e) {
+            logger.error("鏁版嵁瀹屾暣鎬ц繚鍙�: {}", e.getMessage());
+            throw new BusinessException("鏁版嵁涓嶅畬鏁达紝璇锋鏌ュ繀濉瓧娈�");
+        } catch (Exception e) {
+            logger.error("鏁版嵁瀵煎叆澶辫触: {}", e.getMessage(), e);
+            throw new BusinessException("鏁版嵁瀵煎叆澶辫触: " + e.getMessage());
+        }
+    }
+
+    private void saveProduct(ProductInfo product) {
+        if (productMapper.selectById(product.getProductId()) == null) {
+            productMapper.insert(product);
+            logger.debug("浜у搧宸蹭繚瀛�: {}", product.getProductId());
+        } else {
+            productMapper.updateById(product);
+            logger.debug("浜у搧宸叉洿鏂�: {}", product.getProductId());
+        }
+    }
+
+    private void saveComponentHierarchy(ComponentHierarchy hierarchy) {
+        for (ComponentInfo component : hierarchy.getComponents()) {
+            if (componentMapper.selectById(component.getComponentId()) == null) {
+                componentMapper.insert(component);
+                logger.debug("閮ㄤ欢宸蹭繚瀛�: {}", component.getComponentId());
+            } else {
+                componentMapper.updateById(component);
+                logger.debug("閮ㄤ欢宸叉洿鏂�: {}", component.getComponentId());
+            }
+        }
+    }
+
+    private void saveParts(PartsInfo parts) {
+        if (partsMapper.selectById(parts.getPartsId()) == null) {
+            partsMapper.insert(parts);
+            logger.debug("闆朵欢宸蹭繚瀛�: {}", parts.getPartsId());
+        } else {
+            partsMapper.updateById(parts);
+            logger.debug("闆朵欢宸叉洿鏂�: {}", parts.getPartsId());
+        }
+    }
+
+    private void saveProcessSpec(ProcessSpecVersion processSpec) {
+        if (psvMapper.selectById(processSpec.getId()) == null) {
+            psvMapper.insert(processSpec);
+            logger.debug("宸ヨ壓瑙勭▼宸蹭繚瀛�: {}", processSpec.getId());
+        } else {
+            psvMapper.updateById(processSpec);
+            logger.debug("宸ヨ壓瑙勭▼宸叉洿鏂�: {}", processSpec.getId());
+        }
+    }
+
+    private void saveProcess(ProcessStream process) {
+        if (processMapper.selectById(process.getProcessId()) == null) {
+            processMapper.insert(process);
+            logger.debug("宸ュ簭宸蹭繚瀛�: {}", process.getProcessId());
+        } else {
+            processMapper.updateById(process);
+            logger.debug("宸ュ簭宸叉洿鏂�: {}", process.getProcessId());
+        }
+    }
+
+    private void saveWorkSteps(WorkStep workStep) {
+        if (workStepMapper.selectById(workStep.getId()) == null) {
+            workStepMapper.insert(workStep);
+            logger.debug("宸ユ宸蹭繚瀛�: {}", workStep.getId());
+        } else {
+            workStepMapper.updateById(workStep);
+            logger.debug("宸ユ宸叉洿鏂�: {}", workStep.getId());
+        }
+    }
+
+    private void saveTreePath(List<ProductMix> productMixList){
+        for (ProductMix productMix : productMixList) {
+            if (productMixMapper.selectById(productMix.getId()) == null) {
+                productMixMapper.insert(productMix);
+                logger.debug("浜у搧缁勫悎宸蹭繚瀛�: {}", productMix.getId());
+            } else {
+                productMixMapper.updateById(productMix);
+                logger.debug("浜у搧缁勫悎宸叉洿鏂�: {}", productMix.getId());
+            }
+        }
+    }
+
+    private void saveDeviceManagement(DeviceManagement deviceManagement) {
+        if (deviceManagementMapper.selectById(deviceManagement.getId()) == null) {
+            deviceManagementMapper.insert(deviceManagement);
+            logger.debug("璁惧绫讳俊鎭凡淇濆瓨: {}", deviceManagement.getId());
+        } else {
+            deviceManagementMapper.updateById(deviceManagement);
+            logger.debug("璁惧绫讳俊鎭凡鏇存柊: {}", deviceManagement.getId());
+        }
+    }
+
+    private void saveDeviceType(DeviceType deviceType) {
+        if (deviceTypeMapper.selectById(deviceType.getId()) == null) {
+            deviceTypeMapper.insert(deviceType);
+            logger.debug("璁惧绫诲凡淇濆瓨: {}", deviceType.getId());
+        } else {
+            deviceTypeMapper.updateById(deviceType);
+            logger.debug("璁惧绫诲凡鏇存柊: {}", deviceType.getId());
+        }
+    }
+
+    private void saveDocInfo(DocInfo docInfo) {
+        if (docInfoMapper.selectById(docInfo.getDocId()) == null) {
+            docInfoMapper.insert(docInfo);
+            logger.debug("鏂囨。宸蹭繚瀛�: {}", docInfo.getDocId());
+        } else {
+            docInfo.setDocDispatchStatus(5);
+            docInfoMapper.updateById(docInfo);
+            logger.debug("鏂囨。宸叉洿鏂�: {}", docInfo.getDocId());
+        }
+    }
+
+    private void saveDocFile(DocFile docFile) {
+        if (docFileMapper.selectById(docFile.getFileId()) == null) {
+            docFileMapper.insert(docFile);
+            logger.debug("鏂囨。鏂囦欢宸蹭繚瀛�: {}", docFile.getFileId());
+        } else {
+            docFileMapper.updateById(docFile);
+            logger.debug("鏂囨。鏂囦欢宸叉洿鏂�: {}", docFile.getFileId());
+        }
+    }
+
+    private void saveDocRelative(DocRelative docRelative) {
+        if (docRelativeMapper.selectById(docRelative.getId()) == null) {
+            docRelativeMapper.insert(docRelative);
+            logger.debug("鏂囨。瀵瑰簲鍏崇郴宸蹭繚瀛�: {}", docRelative.getId());
+        } else {
+            docRelativeMapper.updateById(docRelative);
+            logger.debug("鏂囨。瀵瑰簲鍏崇郴宸叉洿鏂�: {}", docRelative.getId());
+        }
+    }
+
+    private void saveCutterList(List<Cutter> cutterList) {
+        for (Cutter cutter : cutterList) {
+            if (cutterMapper.selectById(cutter.getId()) == null) {
+                cutterMapper.insert(cutter);
+                logger.debug("鍒�鍏峰凡淇濆瓨: {}", cutter.getId());
+            } else {
+                cutterMapper.updateById(cutter);
+                logger.debug("鍒�鍏峰凡鏇存柊: {}", cutter.getId());
+            }
+        }
+    }
+
+    private void saveGuideCardBatch(GuideCardBatch guideCardBatch) {
+        if (guideCardBatchMapper.selectById(guideCardBatch.getId()) == null) {
+            guideCardBatchMapper.insert(guideCardBatch);
+            logger.debug("绋嬪簭鍔犲伐纭琛ㄥ凡淇濆瓨: {}", guideCardBatch.getId());
+        } else {
+            guideCardBatchMapper.updateById(guideCardBatch);
+            logger.debug("绋嬪簭鍔犲伐纭琛ㄥ凡鏇存柊: {}", guideCardBatch.getId());
+        }
+    }
+}

--
Gitblit v1.9.3