From c6eb2d4ecd99bee148892abfbdca3e42f3dd6084 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期三, 07 五月 2025 18:08:07 +0800
Subject: [PATCH] 工具管理-仓库管理功能
---
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java | 90 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 0 deletions(-)
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java
index ee700e9..d289e58 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProductInfoServiceImpl.java
@@ -1,5 +1,7 @@
package org.jeecg.modules.dnc.service.impl;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -13,6 +15,8 @@
import org.jeecg.modules.dnc.entity.*;
import org.jeecg.modules.dnc.exception.ExceptionCast;
import org.jeecg.modules.dnc.mapper.ProductInfoMapper;
+import org.jeecg.modules.dnc.request.DocInfoQueryRequest;
+import org.jeecg.modules.dnc.request.TreeInfoRequest;
import org.jeecg.modules.dnc.response.*;
import org.jeecg.modules.dnc.service.*;
import org.jeecg.modules.dnc.service.support.ProductTreeWrapper;
@@ -80,6 +84,9 @@
private IWorkStepPermissionService iWorkStepPermissionService;
@Autowired
private IProductMixService productMixService;
+ @Autowired
+ @Lazy
+ private IDocInfoService docInfoService;
@Override
@Transactional(rollbackFor = {Exception.class})
@@ -1016,6 +1023,89 @@
}
/**
+ * 閫氳繃浠e彿銆佸悕绉般�佹潗璐ㄧ瓑鏌ヨ瀵瑰簲鐢靛瓙鏍锋澘
+ * @param treeInfoRequest
+ * @return
+ */
+ @Override
+ public List<DocInfo> getByTreeOtherFileInfo(TreeInfoRequest treeInfoRequest){
+ switch (treeInfoRequest.getAttributionType()){
+ case 1:
+ LambdaQueryWrapper<ProductInfo> queryWrapper = new LambdaQueryWrapper<>();
+ // 鏄庣‘鏉′欢锛氫粎褰揳ttributionType涓�1涓攁ttributionId闈炵┖鏃舵坊鍔犳潯浠�
+ if (treeInfoRequest.getAttributionType() == 1 && StrUtil.isNotBlank(treeInfoRequest.getAttributionId())) {
+ queryWrapper.eq(ProductInfo::getProductId, treeInfoRequest.getAttributionId());
+ }
+ // 绠�鍖栨潯浠跺垽鏂�
+ queryWrapper.like(StrUtil.isNotBlank(treeInfoRequest.getTreeCode()), ProductInfo::getProductNo, treeInfoRequest.getTreeCode())
+ .like(StrUtil.isNotBlank(treeInfoRequest.getTreeName()), ProductInfo::getProductName, treeInfoRequest.getTreeName());
+ List<ProductInfo> productInfoList = super.list(queryWrapper);
+ List<DocInfo> docInfos = new ArrayList<>();
+ if (StrUtil.isNotBlank(treeInfoRequest.getStructureType())){
+ productInfoList=new ArrayList<>();
+ }
+ if (CollectionUtil.isNotEmpty(productInfoList)) {
+ // 浣跨敤ID鍒楄〃鑰岄潪鎷兼帴瀛楃涓�
+ List<String> productIds = productInfoList.stream()
+ .map(ProductInfo::getProductId)
+ .collect(Collectors.toList());
+ DocInfoQueryRequest docQuery = new DocInfoQueryRequest();
+ BeanUtil.copyProperties(treeInfoRequest, docQuery);
+ docQuery.setAttributionIds(productIds.toString()); // 鍋囪setAttributionIds鎺ュ彈List<String>
+ docQuery.setDocClassCode("OTHER");
+ docQuery.setAttributionType(1);
+ docInfos = docInfoService.findListByDocQuery(docQuery);
+ }
+ // 鍒涘缓鏂拌姹傚璞¢伩鍏嶆薄鏌撳師鍙傛暟
+ TreeInfoRequest componentRequest = new TreeInfoRequest();
+ BeanUtil.copyProperties(treeInfoRequest, componentRequest);
+ componentRequest.setProductIds(Collections.singletonList(treeInfoRequest.getAttributionId()));
+ // 鍚堝苟鏌ヨ缁撴灉
+ docInfos.addAll(componentInfoService.getByComponentInfo(componentRequest));
+ docInfos.addAll(partsInfoService.getByPartsInfo(componentRequest));
+ docInfos.addAll(processSpecVersionService.getByProcessSpecVersion(componentRequest));
+ return getByTreeOtherFileInfo(docInfos);
+ case 2:
+ return getByTreeOtherFileInfo(componentInfoService.getByComponentInfo(treeInfoRequest));
+ case 3:
+ return getByTreeOtherFileInfo(partsInfoService.getByPartsInfo(treeInfoRequest));
+ case 4:
+ return getByTreeOtherFileInfo(processSpecVersionService.getByProcessSpecVersion(treeInfoRequest));
+ }
+ return new ArrayList<>();
+ }
+
+ private List<DocInfo> getByTreeOtherFileInfo(List<DocInfo> docInfos){
+ //瀵规墍灞瀒d杩涜缈昏瘧
+ if (docInfos != null && !docInfos.isEmpty()) {
+ docInfos.forEach(docInfo -> {
+ switch (docInfo.getAttributionType()){
+ case 1:
+ ProductInfo productInfo=this.getById(docInfo.getAttributionId());
+ docInfo.setNodeName(productInfo.getProductName());
+ docInfo.setNodeCode(productInfo.getProductNo());
+ break;
+ case 2:
+ ComponentInfo componentInfo=componentInfoService.getById(docInfo.getAttributionId());
+ docInfo.setNodeName(componentInfo.getComponentName());
+ docInfo.setNodeCode(componentInfo.getComponentCode());
+ break;
+ case 3:
+ PartsInfo partsInfo=partsInfoService.getById(docInfo.getAttributionId());
+ docInfo.setNodeCode(partsInfo.getPartsCode());
+ docInfo.setNodeName(partsInfo.getPartsName());
+ break;
+ case 4:
+ ProcessSpecVersion processSpecVersion=processSpecVersionService.getById(docInfo.getAttributionId());
+ docInfo.setNodeName(processSpecVersion.getProcessSpecVersionName());
+ docInfo.setNodeCode(processSpecVersion.getProcessSpecVersionCode());
+ }
+ });
+ }
+ return docInfos;
+ }
+
+ /**
* 楠岃瘉杈撳叆鍙傛暟
*/
private void validateInputParameters(Integer nodeType, String paramId, Integer relativeFlag, String type, String[] paramIds) {
--
Gitblit v1.9.3