From 73be743ff89b54fa14fb07afa72e6d833406a381 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 16 六月 2025 16:49:09 +0800
Subject: [PATCH] 工具管理-调整参数导入增加集团公司编码、标记、工具简称字段
---
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java | 252 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 186 insertions(+), 66 deletions(-)
diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java
index 66e2f1a..37623aa 100644
--- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java
+++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java
@@ -1,7 +1,7 @@
package org.jeecg.modules.dnc.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,10 +9,12 @@
import org.apache.commons.collections4.ListUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum;
import org.jeecg.modules.dnc.entity.*;
import org.jeecg.modules.dnc.exception.ExceptionCast;
-import org.jeecg.modules.dnc.mapper.PartsInfoMapper;
import org.jeecg.modules.dnc.mapper.WorkStepMapper;
+import org.jeecg.modules.dnc.request.DocInfoQueryRequest;
+import org.jeecg.modules.dnc.request.TreeInfoRequest;
import org.jeecg.modules.dnc.response.CommonCode;
import org.jeecg.modules.dnc.response.ProcessInfoCode;
import org.jeecg.modules.dnc.response.ProductInfoCode;
@@ -22,26 +24,17 @@
import org.jeecg.modules.system.entity.MdcProduction;
import org.jeecg.modules.system.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
-/**
- * @Description: TODO
- * @Author: zhangherong
- * @Date: Created in 2020/9/20 9:19
- * @Version: 1.0
- * @Modified By:
- */
@Service
public class WorkStepServiceImpl extends ServiceImpl<WorkStepMapper, WorkStep> implements IWorkStepService {
-
@Autowired
- private IPermissionStreamService permissionStreamService;
+ private IPermissionStreamNewService permissionStreamNewService;
@Autowired
private IWorkStepDepartmentService workStepDepartmentService;
@@ -51,6 +44,18 @@
@Autowired
private IDocRelativeService iDocRelativeService;
+
+ @Autowired
+ private IProductPermissionService productPermissionService;
+
+ @Autowired
+ private IProductMixService productMixService;
+
+ @Autowired
+ @Lazy
+ private IDocInfoService docInfoService;
+ @Autowired
+ private IDeviceTypeService deviceTypeService;
@Override
public List<WorkStep> getByUserPerms(String userId) {
@@ -109,22 +114,48 @@
boolean b =super.save(workStep);
if(!b)
ExceptionCast.cast(CommonCode.FAIL);
- //娣诲姞鐢ㄦ埛鏉冮檺
- WorkStepPermission workStepPermission = new WorkStepPermission();
- workStepPermission.setUserId(userId);
- workStepPermission.setStepId(workStep.getId());
- workStepPermissionService.save(workStepPermission);
- //娣诲姞鏉冮檺楠岃瘉
- PermissionStream permissionStream = new PermissionStream();
- permissionStream.setUserId(userId);
- permissionStream.setProductId(workStep.getProductId());
- permissionStream.setComponentId(workStep.getComponentId());
- if (StrUtil.isNotEmpty(workStep.getPartsId())){
- permissionStream.setPartsId(workStep.getPartsId());
+ //娣诲姞閮ㄩ棬鏉冮檺
+ List<PermissionStreamNew> oldDepartPermList = permissionStreamNewService.loadPermissionStreamNewByBusinessId(workStep.getProcessId(), DocAttributionTypeEnum.PROCESS.getCode().toString(),"1");
+ if(oldDepartPermList != null && !oldDepartPermList.isEmpty()) {
+ List<WorkStepDepartment> workStepDepartmentList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
+ oldDepartPermList.forEach(item -> {
+ WorkStepDepartment pd = new WorkStepDepartment();
+ pd.setDepartId(item.getDepartId());
+ pd.setStepId(workStep.getId());
+ workStepDepartmentList.add(pd);
+ PermissionStreamNew perm = new PermissionStreamNew();
+ perm.setDepartId(item.getDepartId());
+ perm.setBusinessId(workStep.getId());
+ perm.setBusinessType(DocAttributionTypeEnum.WORKSITE.getCode().toString());
+ permissionStreamList.add(perm);
+ });
+ if(!workStepDepartmentList.isEmpty()) {
+ b = workStepDepartmentService.saveBatch(workStepDepartmentList);
+ if(!b)
+ ExceptionCast.cast(CommonCode.FAIL);
+ }
+ if(!permissionStreamList.isEmpty()) {
+ b = permissionStreamNewService.saveBatch(permissionStreamList);
+ if(!b)
+ ExceptionCast.cast(CommonCode.FAIL);
+ }
}
- permissionStream.setProcessId(workStep.getProcessId());
- permissionStream.setStepId(workStep.getId());
- return permissionStreamService.save(permissionStream);
+ //娣诲姞鐢ㄦ埛鏉冮檺
+ b = productPermissionService.add(workStep.getId(), userId,DocAttributionTypeEnum.WORKSITE.getCode().toString());
+ if (!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR);
+ }
+ //娣诲姞缁撴瀯鏍�
+ ProductMix productMix = new ProductMix(Long.parseLong(workStep.getId()),Long.parseLong(workStep.getProcessId())
+ ,workStep.getStepName(),workStep.getStepCode(),DocAttributionTypeEnum.WORKSITE.getCode(),new Date());
+ productMixService.save(productMix);
+ //娣诲姞鏉冮檺楠岃瘉
+ PermissionStreamNew permissionStream = new PermissionStreamNew();
+ permissionStream.setUserId(userId);
+ permissionStream.setBusinessId(workStep.getId());
+ permissionStream.setBusinessType(DocAttributionTypeEnum.WORKSITE.getCode().toString());
+ return permissionStreamNewService.addPermissionStreamNew(permissionStream);
}
/**
@@ -142,13 +173,11 @@
WorkStep en = super.getById(id);
if(en == null)
ExceptionCast.cast(ProcessInfoCode.WORKSTEP_NOT_EXIST);
-// workStep.setStepId(id);
-// workStep.setProductId(null);
-// workStep.setComponentId(null);
-// workStep.setPartsId(null);
-// workStep.setProcessId(null);
-// workStep.setStepName(workStep.getStepName().toUpperCase());
-// workStep.setStepCode(null);
+ //鍚屾淇敼缁撴瀯鏍�
+ ProductMix productMix = productMixService.getById(Long.parseLong(id));
+ productMix.setTreeName(workStep.getStepName());
+ productMix.setTreeCode(workStep.getStepCode());
+ productMixService.updateById(productMix);
return super.updateById(workStep);
}
@@ -170,7 +199,7 @@
if(workStep == null || departmentList == null || departmentList.isEmpty())
ExceptionCast.cast(CommonCode.INVALID_PARAM);
List<WorkStepDepartment> workStepDepartmentList = new ArrayList<>();
- List<PermissionStream> permissionStreamList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
departmentList.forEach(item -> {
WorkStepDepartment en = workStepDepartmentService.getByStepIdAndDepartId(workStep.getId(), item.getId());
if(en == null) {
@@ -179,16 +208,12 @@
en.setStepId(workStep.getId());
workStepDepartmentList.add(en);
}
- PermissionStream stream = permissionStreamService.getByStepIdAndDepartId(workStep.getProductId(), workStep.getComponentId(), workStep.getPartsId(),workStep.getProcessId(),workStep.getId(),item.getId());
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(workStep.getId(),item.getId(),DocAttributionTypeEnum.WORKSITE.getCode().toString());
if(stream == null) {
- stream = new PermissionStream();
+ stream = new PermissionStreamNew();
stream.setDepartId(item.getId());
- stream.setProductId(workStep.getProductId());
- stream.setComponentId(workStep.getComponentId());
- stream.setPartsId(workStep.getPartsId());
- stream.setProcessId(workStep.getProcessId());
- stream.setStepId(workStep.getId());
-
+ stream.setBusinessId(workStep.getId());
+ stream.setBusinessType(DocAttributionTypeEnum.WORKSITE.getCode().toString());
permissionStreamList.add(stream);
}
});
@@ -199,7 +224,7 @@
}
}
if(!permissionStreamList.isEmpty()) {
- boolean b = permissionStreamService.saveBatch(permissionStreamList);
+ boolean b = permissionStreamNewService.saveBatch(permissionStreamList);
if(!b) {
ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
}
@@ -239,14 +264,13 @@
if(workStep == null || departmentList == null || departmentList.isEmpty())
ExceptionCast.cast(CommonCode.INVALID_PARAM);
List<WorkStepDepartment> workStepDepartmentList = new ArrayList<>();
- List<PermissionStream> permissionStreamList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
departmentList.forEach(item -> {
WorkStepDepartment en = workStepDepartmentService.getByStepIdAndDepartId(workStep.getId(), item.getId());
if(en != null) {
workStepDepartmentList.add(en);
}
- PermissionStream stream = permissionStreamService.getByStepIdAndDepartId(workStep.getProductId(), workStep.getComponentId(), workStep.getPartsId()
- ,workStep.getProcessId(),workStep.getId(), item.getId());
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(workStep.getId(),item.getId(),DocAttributionTypeEnum.WORKSITE.getCode().toString());
if(stream != null) {
permissionStreamList.add(stream);
}
@@ -258,7 +282,7 @@
}
}
if(!permissionStreamList.isEmpty()) {
- boolean b = permissionStreamService.removeByCollection(permissionStreamList);
+ boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList);
if(!b) {
ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
}
@@ -278,9 +302,13 @@
if(en == null)
ExceptionCast.cast(ProcessInfoCode.PROCESS_NOT_EXIST);
//楠岃瘉鏄惁瀛樺湪鏂囨。
- List<DocRelative> docRelativeList=iDocRelativeService.list(new QueryWrapper<DocRelative>().eq("attribution_type","6").eq("attribution_id",id));
+ List<DocRelative> docRelativeList=iDocRelativeService.list(new QueryWrapper<DocRelative>().eq("attribution_type",DocAttributionTypeEnum.WORKSITE.getCode().toString()).eq("attribution_id",id));
if (!docRelativeList.isEmpty()){
ExceptionCast.cast(ProcessInfoCode.WORKSTEP_HAS_DOC);
+ }
+ boolean b=productMixService.removeById(id);
+ if(!b) {
+ ExceptionCast.cast(CommonCode.FAIL);
}
return super.removeById(id);
}
@@ -291,7 +319,7 @@
if(workStep == null || userList == null || userList.isEmpty())
ExceptionCast.cast(CommonCode.INVALID_PARAM);
List<WorkStepPermission> permissionList = new ArrayList<>();
- List<PermissionStream> permissionStreamList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
userList.forEach(item -> {
WorkStepPermission en = workStepPermissionService.getByStepIdAndUserId(workStep.getId(), item.getId());
if(en == null) {
@@ -300,16 +328,12 @@
en.setStepId(workStep.getId());
permissionList.add(en);
}
- PermissionStream stream = permissionStreamService.getByStepIdAndUserId(workStep.getProductId(), workStep.getComponentId(), workStep.getPartsId()
- ,workStep.getProcessId(),workStep.getId(), item.getId());
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(),item.getId(),DocAttributionTypeEnum.WORKSITE.getCode().toString());
if(stream == null) {
- stream = new PermissionStream();
+ stream = new PermissionStreamNew();
stream.setUserId(item.getId());
- stream.setProductId(workStep.getProductId());
- stream.setComponentId(workStep.getComponentId());
- stream.setPartsId(workStep.getPartsId());
- stream.setProcessId(workStep.getProcessId());
- stream.setStepId(workStep.getId());
+ stream.setBusinessId(workStep.getId());
+ stream.setBusinessType(DocAttributionTypeEnum.WORKSITE.getCode().toString());
permissionStreamList.add(stream);
}
});
@@ -320,7 +344,7 @@
}
}
if(!permissionStreamList.isEmpty()) {
- boolean b = permissionStreamService.saveBatch(permissionStreamList);
+ boolean b = permissionStreamNewService.saveBatch(permissionStreamList);
if(!b) {
ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
}
@@ -334,14 +358,13 @@
if(workStep == null || userList == null || userList.isEmpty())
ExceptionCast.cast(CommonCode.INVALID_PARAM);
List<WorkStepPermission> permissionList = new ArrayList<>();
- List<PermissionStream> permissionStreamList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
userList.forEach(item -> {
WorkStepPermission en = workStepPermissionService.getByStepIdAndUserId(workStep.getId(), item.getId());
if(en != null) {
permissionList.add(en);
}
- PermissionStream stream = permissionStreamService.getByStepIdAndUserId(workStep.getProductId(), workStep.getComponentId(),
- workStep.getPartsId(),workStep.getProcessId(), workStep.getId(),item.getId());
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(),item.getId(),DocAttributionTypeEnum.WORKSITE.getCode().toString());
if(stream != null) {
permissionStreamList.add(stream);
}
@@ -354,7 +377,7 @@
}
}
if(!permissionStreamList.isEmpty()) {
- boolean b = permissionStreamService.removeByCollection(permissionStreamList);
+ boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList);
if(!b) {
ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
}
@@ -362,4 +385,101 @@
return true;
}
+ /**
+ * 閫氳繃宸ユ鍙枫�佸伐姝ュ悕绉扮瓑鏌ヨ瀵瑰簲NC鏂囦欢
+ * NC鏂囦欢瀛樺湪璁惧绫讳笅闈�
+ * @param treeInfoRequest
+ * @return
+ */
+ @Override
+ public List<DocInfo> getByWorkStepOtherFile(TreeInfoRequest treeInfoRequest){
+ LambdaQueryWrapper<WorkStep> queryWrapper = new LambdaQueryWrapper<>();
+ if (treeInfoRequest.getProductIds() != null && !treeInfoRequest.getProductIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getProductId, treeInfoRequest.getProductIds());
+ }
+ if (treeInfoRequest.getComponentIds() != null && !treeInfoRequest.getComponentIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getComponentId, treeInfoRequest.getComponentIds());
+ }
+ if (treeInfoRequest.getPartsIds() != null && !treeInfoRequest.getPartsIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getPartsId, treeInfoRequest.getPartsIds());
+ }
+ if (treeInfoRequest.getPsvIds() != null && !treeInfoRequest.getPsvIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getPsvId, treeInfoRequest.getPsvIds());
+ }
+ if (treeInfoRequest.getProcessIds() != null && !treeInfoRequest.getProcessIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getProcessId, treeInfoRequest.getProcessIds());
+ }
+ if (Objects.equals(treeInfoRequest.getAttributionType(), DocAttributionTypeEnum.WORKSITE.getCode())){
+ queryWrapper.eq(StrUtil.isNotEmpty(treeInfoRequest.getAttributionId()),WorkStep::getId,treeInfoRequest.getAttributionId());
+ }
+ queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeName()),WorkStep::getStepName, treeInfoRequest.getTreeName());
+ queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeCode()),WorkStep::getStepCode, treeInfoRequest.getTreeName());
+ queryWrapper.orderByDesc(WorkStep::getCreateTime);
+ List<WorkStep> list = super.list(queryWrapper);
+ List<DocInfo> docInfos;
+ if (list == null || list.isEmpty() || StrUtil.isNotBlank(treeInfoRequest.getStructureType())){
+ return new ArrayList<>();
+ }else {
+ String ids=list.stream().map(WorkStep::getId).collect(Collectors.joining(","));
+ DocInfoQueryRequest docQuery = new DocInfoQueryRequest();
+ BeanUtil.copyProperties(treeInfoRequest,docQuery);
+ docQuery.setAttributionIds(ids);
+ docQuery.setDocClassCode("OTHER");
+ docQuery.setAttributionType(DocAttributionTypeEnum.WORKSITE.getCode());
+ docInfos=docInfoService.findListByDocQuery(docQuery);
+ }
+ return docInfos;
+ }
+
+ /**
+ * 閫氳繃宸ユ鍙枫�佸伐姝ュ悕绉扮瓑鏌ヨ瀵瑰簲NC鏂囦欢
+ * NC鏂囦欢瀛樺湪璁惧绫讳笅闈�
+ * @param treeInfoRequest
+ * @return
+ */
+ @Override
+ public List<DocInfo> getByWorkStepNCFile(TreeInfoRequest treeInfoRequest){
+ LambdaQueryWrapper<WorkStep> queryWrapper = new LambdaQueryWrapper<>();
+ if (treeInfoRequest.getProductIds() != null && !treeInfoRequest.getProductIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getProductId, treeInfoRequest.getProductIds());
+ }
+ if (treeInfoRequest.getComponentIds() != null && !treeInfoRequest.getComponentIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getComponentId, treeInfoRequest.getComponentIds());
+ }
+ if (treeInfoRequest.getPartsIds() != null && !treeInfoRequest.getPartsIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getPartsId, treeInfoRequest.getPartsIds());
+ }
+ if (treeInfoRequest.getPsvIds() != null && !treeInfoRequest.getPsvIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getPsvId, treeInfoRequest.getPsvIds());
+ }
+ if (treeInfoRequest.getProcessIds() != null && !treeInfoRequest.getProcessIds().isEmpty()) {
+ queryWrapper.in(WorkStep::getProcessId, treeInfoRequest.getProcessIds());
+ }
+ if (Objects.equals(treeInfoRequest.getAttributionType(), DocAttributionTypeEnum.WORKSITE.getCode())){
+ queryWrapper.eq(StrUtil.isNotEmpty(treeInfoRequest.getAttributionId()),WorkStep::getProcessId,treeInfoRequest.getAttributionId());
+ }
+ queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeName()),WorkStep::getStepName, treeInfoRequest.getTreeName());
+ queryWrapper.like(StrUtil.isNotEmpty(treeInfoRequest.getTreeCode()),WorkStep::getStepCode, treeInfoRequest.getTreeName());
+ queryWrapper.orderByDesc(WorkStep::getCreateTime);
+ List<WorkStep> list = super.list(queryWrapper);
+ List<DocInfo> docInfos = new ArrayList<>();
+ //NC鏂囦欢瀛樺湪瀵瑰簲鐨勮澶囩被涓嬶紝鎵�浠ラ渶瑕佽繃婊�
+ if (!list.isEmpty()) {
+ List<String> workStepIds = list.stream().map(WorkStep::getId).collect(Collectors.toList());
+ List<DeviceType> deviceTypeList = deviceTypeService.getDeviceTypeByAttribution(workStepIds,
+ DocAttributionTypeEnum.WORKSITE.getCode(),treeInfoRequest.getDeviceManagementName(),treeInfoRequest.getDeviceManagementCode());
+ if (deviceTypeList != null && !deviceTypeList.isEmpty()) {
+ List<String> deviceManagementIds=deviceTypeList.stream().map(DeviceType::getDeviceManagementId).collect(Collectors.toList());
+ DocInfoQueryRequest docQuery = new DocInfoQueryRequest();
+ BeanUtil.copyProperties(treeInfoRequest,docQuery);
+ docQuery.setAttributionIds(String.join(",",deviceManagementIds));
+ docQuery.setDocClassCode("NC");
+ docQuery.setAttributionType(DocAttributionTypeEnum.WORKSITE.getCode());
+ docInfos=docInfoService.findListByDocQuery(docQuery);
+ }
+ return docInfos;
+ }
+ return new ArrayList<>();
+ }
+
}
--
Gitblit v1.9.3