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