From fccfe7d50f42f5be4c4612d61b7ae852e2ef37cd Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期四, 17 四月 2025 15:26:09 +0800
Subject: [PATCH] 优化指派设备与审签设备的权限校验查询,新增导入电子样板触发审签流程,新增电子样板指派设备功能

---
 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 56 insertions(+), 11 deletions(-)

diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java
index d33676b..cd089c4 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessSpecVersionServiceImpl.java
@@ -1,5 +1,7 @@
 package org.jeecg.modules.dnc.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,6 +14,8 @@
 import org.jeecg.modules.dnc.mapper.PartsInfoMapper;
 import org.jeecg.modules.dnc.mapper.ProcessSpecVersionMapper;
 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.utils.ValidateUtil;
@@ -21,10 +25,8 @@
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ProcessSpecVersionServiceImpl extends ServiceImpl<ProcessSpecVersionMapper, ProcessSpecVersion> implements IProcessSpecVersionService{
@@ -49,6 +51,9 @@
     private IWorkStepService workStepService;
     @Autowired
     private IProductPermissionService productPermissionService;
+    @Autowired
+    @Lazy
+    private IDocInfoService docInfoService;
     /**
      * 鏍规嵁鐢ㄦ埛id鑾峰彇鎺堟潈鐨勫伐鑹鸿绋嬬増鏈〃淇℃伅
      * @param userId
@@ -93,7 +98,7 @@
         if(ProcessSpecVersion == null)
             ExceptionCast.cast(CommonCode.INVALID_PARAM);
         if(!ValidateUtil.validateString(ProcessSpecVersion.getProcessSpecVersionName()))
-            ExceptionCast.cast(PartsInfoCode.PARTS_NAME_NONE);
+            ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_NONE);
         if(!ValidateUtil.validateString(ProcessSpecVersion.getProductId()))
             ExceptionCast.cast(PartsInfoCode.PARTS_PRODUCT_NONE);
         if(!ValidateUtil.validateString(ProcessSpecVersion.getComponentId()))
@@ -102,7 +107,7 @@
             ExceptionCast.cast(ProcessInfoCode.PROCESS_PARTS_NONE);
         if(!ValidateUtil.validateString(ProcessSpecVersion.getProcessSpecVersionCode()))
             ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_CODE_NONE);
-        ProcessSpecVersion en = getByCode(ProcessSpecVersion.getProcessSpecVersionCode());
+        ProcessSpecVersion en = getByCode(ProcessSpecVersion.getPartsId(),ProcessSpecVersion.getProcessSpecVersionCode());
         if(en != null)
             ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_IS_EXIST);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -155,14 +160,15 @@
         }
         //娣诲姞缁撴瀯鏍�
         ProductMix productMix = new ProductMix(Long.parseLong(ProcessSpecVersion.getId()),Long.parseLong(ProcessSpecVersion.getPartsId())
-                ,ProcessSpecVersion.getProcessSpecVersionName(),ProcessSpecVersion.getProcessSpecVersionCode(),4);
+                ,ProcessSpecVersion.getProcessSpecVersionName(),
+                ProcessSpecVersion.getProcessSpecVersionCode(),4,new Date());
         productMixService.save(productMix);
         //娣诲姞鐢ㄦ埛鏉冮檺
         PermissionStreamNew stream = new PermissionStreamNew();
         stream.setBusinessId(ProcessSpecVersion.getId());
         stream.setBusinessType("4");
         stream.setUserId(userId);
-        return permissionStreamNewService.save(stream);
+        return permissionStreamNewService.addPermissionStreamNew(stream);
     }
 
     /**
@@ -225,7 +231,7 @@
             ExceptionCast.cast(PartsInfoCode.PARTS_NOT_EXIST);
         List<ProcessStream> processStreams = processStreamService.findBypsvId(id);
         if(processStreams!= null &&!processStreams.isEmpty())
-            ExceptionCast.cast(PartsInfoCode.PARTS_PROCESS_EXIST);
+            ExceptionCast.cast(PartsInfoCode.PROCESSSPECVERSION_PROCESS_EXIST);
         boolean b = processSpecVersionPermissionService.deleteByPsvId(processSpecVersion.getId());
         if(!b)
             ExceptionCast.cast(CommonCode.FAIL);
@@ -245,9 +251,11 @@
     }
 
     @Override
-    public ProcessSpecVersion getByCode(String processSpecVersionCode) {
+    public ProcessSpecVersion getByCode(String partId,String processSpecVersionCode) {
         if(ValidateUtil.validateString(processSpecVersionCode)) {
-            List<ProcessSpecVersion> list = super.lambdaQuery().eq(ProcessSpecVersion::getProcessSpecVersionCode, processSpecVersionCode).list();
+            List<ProcessSpecVersion> list = super.lambdaQuery()
+                    .eq(ProcessSpecVersion::getPartsId, partId)
+                    .eq(ProcessSpecVersion::getProcessSpecVersionCode, processSpecVersionCode).list();
             if(list == null || list.isEmpty())
                 return null;
             return list.get(0);
@@ -457,4 +465,41 @@
         List<WorkStep> workStepList=workStepService.list(new LambdaQueryWrapper<WorkStep>().eq(WorkStep::getPsvId,processSpecId));
         return null;
     }
+
+    /**
+     * 閫氳繃闆朵欢鍙枫�佹潗璐ㄧ瓑鏌ヨ瀵瑰簲鐢靛瓙鏍锋澘
+     * @param treeInfoRequest
+     * @return
+     */
+    @Override
+    public List<DocInfo> getByProcessSpecVersion(TreeInfoRequest treeInfoRequest){
+        LambdaQueryWrapper<ProcessSpecVersion> queryWrapper = new LambdaQueryWrapper<>();
+        if (treeInfoRequest.getProductIds() != null && !treeInfoRequest.getProductIds().isEmpty()) {
+            queryWrapper.in(ProcessSpecVersion::getProductId, treeInfoRequest.getProductIds());
+        }
+        if (treeInfoRequest.getComponentIds() != null && !treeInfoRequest.getComponentIds().isEmpty()) {
+            queryWrapper.in(ProcessSpecVersion::getComponentId, treeInfoRequest.getComponentIds());
+        }
+        if (treeInfoRequest.getPartsIds() != null && !treeInfoRequest.getPartsIds().isEmpty()) {
+            queryWrapper.in(ProcessSpecVersion::getPartsId, treeInfoRequest.getPartsIds());
+        }
+        if (treeInfoRequest.getAttributionType()==4){
+            queryWrapper.eq(StrUtil.isNotEmpty(treeInfoRequest.getAttributionId()),ProcessSpecVersion::getId,treeInfoRequest.getAttributionId());
+        }
+        queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeName()),ProcessSpecVersion::getProcessSpecVersionName, treeInfoRequest.getTreeName());
+        queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeCode()),ProcessSpecVersion::getProcessSpecVersionCode, treeInfoRequest.getTreeName());
+        queryWrapper.orderByDesc(ProcessSpecVersion::getCreateTime);
+        List<ProcessSpecVersion> list = super.list(queryWrapper);
+        if (list == null || list.isEmpty() || StrUtil.isNotBlank(treeInfoRequest.getStructureType())){
+            return new ArrayList<>();
+        }else {
+            String ids=list.stream().map(ProcessSpecVersion::getId).collect(Collectors.joining(","));
+            DocInfoQueryRequest docQuery = new DocInfoQueryRequest();
+            BeanUtil.copyProperties(treeInfoRequest,docQuery);
+            docQuery.setAttributionIds(ids);
+            docQuery.setDocClassCode("OTHER");
+            docQuery.setAttributionType(4);
+            return docInfoService.findListByDocQuery(docQuery);
+        }
+    }
 }

--
Gitblit v1.9.3