lyh
2025-02-20 3302ff7054d02f6b21452f2f2cd3658c8cad6b53
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/ProcessStreamServiceImpl.java
@@ -15,13 +15,13 @@
import org.jeecg.modules.dnc.response.*;
import org.jeecg.modules.dnc.service.*;
import org.jeecg.modules.dnc.ucenter.Department;
import org.jeecg.modules.dnc.utils.ValidateUtil;
import org.jeecg.modules.dnc.request.ProcessStreamRequest;
import org.jeecg.modules.dnc.entity.*;
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;
@@ -56,6 +56,8 @@
    private IWorkStepService workStepService;
    @Autowired
    private IDocRelativeService iDocRelativeService;
    @Autowired
    private IProcessStreamPermissionService processStreamPermissionService;
    @Override
    @Transactional(rollbackFor = {Exception.class})
@@ -98,24 +100,14 @@
                ExceptionCast.cast(ProcessInfoCode.PROCESS_IS_EXIST);
            }
        }
        //添加日志
        NcLogInfo ncLogInfo = new NcLogInfo();
        //模块
        ncLogInfo.setModuleInfo("产品结构树");
        //类型
        ncLogInfo.setOperateType(2);
        //日志内容
        ncLogInfo.setLogContent("工序名称:"+stream.getProcessName()+",工序号:"+stream.getProcessCode());
        iNcLogInfoService.saveLogNcInfos(ncLogInfo);
        boolean b = super.save(stream);
        if(!b)
            ExceptionCast.cast(CommonCode.FAIL);
//        ProcessInfo processInfo = new ProcessInfo();
//        processInfo.setProcessName(stream.getProcessName());
//        processInfo.setDescription(stream.getDescription());
//        boolean processInfoB= processInfoService.addOrEdit(processInfo);
//        if(!processInfoB)
//            ExceptionCast.cast(CommonCode.FAIL);
        //添加用户权限
        ProcessionPermission permission = new ProcessionPermission();
        permission.setProcessId(stream.getProcessId());
        permission.setUserId(userId);
        processStreamPermissionService.save(permission);
        //添加权限验证
        PermissionStream permissionStream = new PermissionStream();
        permissionStream.setUserId(userId);
@@ -359,4 +351,78 @@
        return true;
    }
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public boolean assignAddUser(ProcessStream processStream, Collection<SysUser> userList) {
        if(processStream == null || userList == null || userList.isEmpty())
            ExceptionCast.cast(CommonCode.INVALID_PARAM);
        List<ProcessionPermission> permissionList = new ArrayList<>();
        List<PermissionStream> permissionStreamList = new ArrayList<>();
        userList.forEach(item -> {
            ProcessionPermission en = processStreamPermissionService.getByProcessIdAndUserId(processStream.getProcessId(), item.getId());
            if(en == null) {
                en = new ProcessionPermission();
                en.setUserId(item.getId());
                en.setProcessId(processStream.getProcessId());
                permissionList.add(en);
            }
            PermissionStream stream = permissionStreamService.getByProcessIdAndUserId(processStream.getProductId(), processStream.getComponentId(), processStream.getPartsId(),processStream.getProcessId(), item.getId());
            if(stream == null) {
                stream = new PermissionStream();
                stream.setUserId(item.getId());
                stream.setProductId(processStream.getProductId());
                stream.setComponentId(processStream.getComponentId());
                stream.setPartsId(processStream.getPartsId());
                stream.setProcessId(processStream.getProcessId());
                permissionStreamList.add(stream);
            }
        });
        if(!permissionList.isEmpty()) {
            boolean b = processStreamPermissionService.saveBatch(permissionList);
            if(!b) {
                ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
            }
        }
        if(!permissionStreamList.isEmpty()) {
            boolean b = permissionStreamService.saveBatch(permissionStreamList);
            if(!b) {
                ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
            }
        }
        return true;
    }
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public boolean assignRemoveUser(ProcessStream processStream, Collection<SysUser> userList) {
        if(processStream == null || userList == null || userList.isEmpty())
            ExceptionCast.cast(CommonCode.INVALID_PARAM);
        List<ProcessionPermission> permissionList = new ArrayList<>();
        List<PermissionStream> permissionStreamList = new ArrayList<>();
        userList.forEach(item -> {
            ProcessionPermission en = processStreamPermissionService.getByProcessIdAndUserId(processStream.getProcessId(), item.getId());
            if(en != null) {
                permissionList.add(en);
            }
            PermissionStream stream = permissionStreamService.getByProcessIdAndUserId(processStream.getProductId(), processStream.getComponentId(), processStream.getPartsId(),processStream.getProcessId(), item.getId());
            if(stream != null) {
                permissionStreamList.add(stream);
            }
        });
        //清空用户权限校验
        if(!permissionList.isEmpty()) {
            boolean b = processStreamPermissionService.removeByCollection(permissionList);
            if(!b) {
                ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
            }
        }
        if(!permissionStreamList.isEmpty()) {
            boolean b = permissionStreamService.removeByCollection(permissionStreamList);
            if(!b) {
                ExceptionCast.cast(ProductInfoCode.PRODUCT_USER_PERM_ERROR);
            }
        }
        return true;
    }
}