From f9aacc433427d9100b07f041e2dc4dc84a086580 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期二, 29 四月 2025 14:12:59 +0800
Subject: [PATCH] art: 设备管理-设备精度参数-接口修改
---
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/WorkStepServiceImpl.java | 285 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 259 insertions(+), 26 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 77c0492..90a1463 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,30 +1,28 @@
package org.jeecg.modules.dnc.service.impl;
-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;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.collections4.ListUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
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.response.CommonCode;
import org.jeecg.modules.dnc.response.ProcessInfoCode;
import org.jeecg.modules.dnc.response.ProductInfoCode;
import org.jeecg.modules.dnc.response.UcenterCode;
-import org.jeecg.modules.dnc.service.IPartsInfoService;
-import org.jeecg.modules.dnc.service.IPermissionStreamService;
-import org.jeecg.modules.dnc.service.IWorkStepService;
+import org.jeecg.modules.dnc.service.*;
import org.jeecg.modules.dnc.utils.ValidateUtil;
+import org.jeecg.modules.system.entity.MdcProduction;
+import org.jeecg.modules.system.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
/**
* @Description: TODO
@@ -35,9 +33,23 @@
*/
@Service
public class WorkStepServiceImpl extends ServiceImpl<WorkStepMapper, WorkStep> implements IWorkStepService {
+ @Autowired
+ private IPermissionStreamNewService permissionStreamNewService;
@Autowired
- private IPermissionStreamService permissionStreamService;
+ private IWorkStepDepartmentService workStepDepartmentService;
+
+ @Autowired
+ private IWorkStepPermissionService workStepPermissionService;
+
+ @Autowired
+ private IDocRelativeService iDocRelativeService;
+
+ @Autowired
+ private IProductPermissionService productPermissionService;
+
+ @Autowired
+ private IProductMixService productMixService;
@Override
public List<WorkStep> getByUserPerms(String userId) {
@@ -96,17 +108,48 @@
boolean b =super.save(workStep);
if(!b)
ExceptionCast.cast(CommonCode.FAIL);
- //娣诲姞鏉冮檺楠岃瘉
- 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(),"5","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("6");
+ 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,"6");
+ if (!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_SAVE_ERROR);
+ }
+ //娣诲姞缁撴瀯鏍�
+ ProductMix productMix = new ProductMix(Long.parseLong(workStep.getId()),Long.parseLong(workStep.getProcessId())
+ ,workStep.getStepName(),workStep.getStepCode(),6,new Date());
+ productMixService.save(productMix);
+ //娣诲姞鏉冮檺楠岃瘉
+ PermissionStreamNew permissionStream = new PermissionStreamNew();
+ permissionStream.setUserId(userId);
+ permissionStream.setBusinessId(workStep.getId());
+ permissionStream.setBusinessType("6");
+ return permissionStreamNewService.addPermissionStreamNew(permissionStream);
}
/**
@@ -124,13 +167,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.setName(workStep.getStepName());
+ productMix.setCode(workStep.getStepCode());
+ productMixService.updateById(productMix);
return super.updateById(workStep);
}
@@ -146,4 +187,196 @@
}
+ @Override
+ @Transactional(rollbackFor = {Exception.class})
+ public boolean assignAddDepart(WorkStep workStep, Collection<MdcProduction> departmentList) {
+ if(workStep == null || departmentList == null || departmentList.isEmpty())
+ ExceptionCast.cast(CommonCode.INVALID_PARAM);
+ List<WorkStepDepartment> workStepDepartmentList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
+ departmentList.forEach(item -> {
+ WorkStepDepartment en = workStepDepartmentService.getByStepIdAndDepartId(workStep.getId(), item.getId());
+ if(en == null) {
+ en = new WorkStepDepartment();
+ en.setDepartId(item.getId());
+ en.setStepId(workStep.getId());
+ workStepDepartmentList.add(en);
+ }
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(workStep.getId(),item.getId(),"6");
+ if(stream == null) {
+ stream = new PermissionStreamNew();
+ stream.setDepartId(item.getId());
+ stream.setBusinessId(workStep.getId());
+ stream.setBusinessType("6");
+ permissionStreamList.add(stream);
+ }
+ });
+ if(!workStepDepartmentList.isEmpty()) {
+ boolean b = workStepDepartmentService.saveBatch(workStepDepartmentList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ if(!permissionStreamList.isEmpty()) {
+ boolean b = permissionStreamNewService.saveBatch(permissionStreamList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public List<WorkStep> getByProcessIds(String productId,List<String> processIds) {
+ if(!ValidateUtil.validateString(productId) || processIds == null || processIds.isEmpty())
+ return null;
+ List<WorkStep> list = new ArrayList<>();
+ if(processIds.size() > 1000){
+ List<List<String>> processListArr = ListUtils.partition(processIds, 100);
+ for(List<String> processList : processListArr){
+ List<WorkStep> workStepList = super.lambdaQuery().eq(WorkStep::getProductId, productId).in(WorkStep::getProcessId, processList).list();
+ if(workStepList != null && !workStepList.isEmpty()){
+ list.addAll(workStepList);
+ }
+ }
+ }else {
+ list = super.lambdaQuery().eq(WorkStep::getProductId, productId).in(WorkStep::getProcessId, processIds).list();
+ }
+ if(list == null || list.isEmpty())
+ return null;
+ return list;
+ }
+
+ /**
+ * 鍒嗛厤閮ㄩ棬鏉冮檺
+ * @param workStep
+ * @param departmentList
+ * @return
+ */
+ @Override
+ public boolean assignRemoveDepart(WorkStep workStep, Collection<MdcProduction> departmentList){
+ if(workStep == null || departmentList == null || departmentList.isEmpty())
+ ExceptionCast.cast(CommonCode.INVALID_PARAM);
+ List<WorkStepDepartment> workStepDepartmentList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
+ departmentList.forEach(item -> {
+ WorkStepDepartment en = workStepDepartmentService.getByStepIdAndDepartId(workStep.getId(), item.getId());
+ if(en != null) {
+ workStepDepartmentList.add(en);
+ }
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndDepartId(workStep.getId(),item.getId(),"6");
+ if(stream != null) {
+ permissionStreamList.add(stream);
+ }
+ });
+ if(!workStepDepartmentList.isEmpty()) {
+ boolean b = workStepDepartmentService.removeByCollection(workStepDepartmentList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ if(!permissionStreamList.isEmpty()) {
+ boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ return true;
+ }
+
+ /**
+ * 鍒犻櫎宸ユ淇℃伅 閫昏緫鍒犻櫎
+ * @param id
+ * @return
+ */
+ public boolean deleteWorkStep(String id){
+ if(!ValidateUtil.validateString(id))
+ ExceptionCast.cast(CommonCode.INVALID_PARAM);
+ WorkStep en = super.getById(id);
+ 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));
+ if (!docRelativeList.isEmpty()){
+ ExceptionCast.cast(ProcessInfoCode.WORKSTEP_HAS_DOC);
+ }
+ boolean b=productMixService.removeById(id);
+ if(!b) {
+ ExceptionCast.cast(CommonCode.FAIL);
+ }
+ return super.removeById(id);
+ }
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class})
+ public boolean assignAddUser(WorkStep workStep, Collection<SysUser> userList) {
+ if(workStep == null || userList == null || userList.isEmpty())
+ ExceptionCast.cast(CommonCode.INVALID_PARAM);
+ List<WorkStepPermission> permissionList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
+ userList.forEach(item -> {
+ WorkStepPermission en = workStepPermissionService.getByStepIdAndUserId(workStep.getId(), item.getId());
+ if(en == null) {
+ en = new WorkStepPermission();
+ en.setUserId(item.getId());
+ en.setStepId(workStep.getId());
+ permissionList.add(en);
+ }
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(),item.getId(),"6");
+ if(stream == null) {
+ stream = new PermissionStreamNew();
+ stream.setUserId(item.getId());
+ stream.setBusinessId(workStep.getId());
+ stream.setBusinessType("6");
+ permissionStreamList.add(stream);
+ }
+ });
+ if(!permissionList.isEmpty()) {
+ boolean b = workStepPermissionService.saveBatch(permissionList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ if(!permissionStreamList.isEmpty()) {
+ boolean b = permissionStreamNewService.saveBatch(permissionStreamList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class})
+ public boolean assignRemoveUser(WorkStep workStep, Collection<SysUser> userList) {
+ if(workStep == null || userList == null || userList.isEmpty())
+ ExceptionCast.cast(CommonCode.INVALID_PARAM);
+ List<WorkStepPermission> permissionList = new ArrayList<>();
+ List<PermissionStreamNew> permissionStreamList = new ArrayList<>();
+ userList.forEach(item -> {
+ WorkStepPermission en = workStepPermissionService.getByStepIdAndUserId(workStep.getId(), item.getId());
+ if(en != null) {
+ permissionList.add(en);
+ }
+ PermissionStreamNew stream = permissionStreamNewService.loadPermissionStreamNewByBusinessIdAndUserId(workStep.getId(),item.getId(),"6");
+ if(stream != null) {
+ permissionStreamList.add(stream);
+ }
+ });
+ //娓呯┖鐢ㄦ埛鏉冮檺鏍¢獙
+ if(!permissionList.isEmpty()) {
+ boolean b = workStepPermissionService.removeByCollection(permissionList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ if(!permissionStreamList.isEmpty()) {
+ boolean b = permissionStreamNewService.deletePermissionStreamNewByList(permissionStreamList);
+ if(!b) {
+ ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
+ }
+ }
+ return true;
+ }
+
}
--
Gitblit v1.9.3