From 1dcf43467f34eb70002be3c2f3cd7605ceb5dcdd Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 17 二月 2025 10:18:18 +0800 Subject: [PATCH] 设备权限与车间权限 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcUserProductionMapper.xml | 46 +++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java | 2 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml | 23 ++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcUserProductionService.java | 39 ++++ lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java | 92 ++++++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcUserProductionMapper.java | 30 +++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 45 ++++ lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java | 8 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcUserProductionServiceImpl.java | 63 +++++++ /dev/null | 13 - lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDevicePermissionService.java | 7 lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceInfoService.java | 2 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDevicePermissionMapper.java | 13 + lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceGroupPermissionServiceImpl.java | 32 +- lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceInfoController.java | 31 +++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java | 9 - lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceInfoServiceImpl.java | 14 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 31 ++- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java | 7 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java | 4 20 files changed, 434 insertions(+), 77 deletions(-) diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceInfoController.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceInfoController.java index 1722137..0c5dda9 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceInfoController.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DeviceInfoController.java @@ -3,9 +3,14 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.dnc.response.*; +import org.jeecg.modules.dnc.service.IDevicePermissionService; +import org.jeecg.modules.mdc.model.MdcEquipmentTree; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.dnc.entity.DeviceInfo; import org.jeecg.modules.dnc.service.IDeviceInfoService; @@ -23,6 +28,8 @@ public class DeviceInfoController extends JeecgController<DeviceInfo, IDeviceInfoService> { @Autowired private IDeviceInfoService deviceInfoService; + @Autowired + private IDevicePermissionService devicePermissionService; @AutoLog(value = "璁惧琛�-鏂板璁惧") @ApiOperation(value = "璁惧琛�-鏂板璁惧", notes = "璁惧琛�-鏂板璁惧") @@ -70,8 +77,8 @@ @AutoLog(value = "璁惧琛�-鑾峰彇鑺傜偣宸插垎閰嶇殑鐢ㄦ埛") @ApiOperation(value = "璁惧琛�-鑾峰彇鑺傜偣宸插垎閰嶇殑鐢ㄦ埛", notes = "璁惧琛�-鑾峰彇鑺傜偣宸插垎閰嶇殑鐢ㄦ埛") @GetMapping("/get/perm/user/{nodeType}/{paramId}") - public QueryListResponseResult<UserDepartExt> getUserPermsList(@PathVariable("nodeType") Integer nodeType, @PathVariable("paramId") String paramId) { - List<UserDepartExt> list = deviceInfoService.getUserPermsList(nodeType, paramId); + public QueryListResponseResult<SysUser> getUserPermsList(@PathVariable("nodeType") Integer nodeType, @PathVariable("paramId") String paramId) { + List<SysUser> list = deviceInfoService.getUserPermsList(nodeType, paramId); if(list == null) list = Collections.emptyList(); return new QueryListResponseResult(CommonCode.SUCCESS, list); @@ -156,4 +163,24 @@ } return new ResponseResult(CommonCode.SUCCESS); } + + /** + * 鍔犺浇浜х嚎璁惧鏍� + */ + @AutoLog(value = "璁惧琛�-鍔犺浇浜х嚎璁惧鏍�") + @ApiOperation(value = "璁惧琛�-鍔犺浇浜х嚎璁惧鏍�", notes = "璁惧琛�-鍔犺浇浜х嚎璁惧鏍�") + @GetMapping(value = "/queryTreeListByProduction") + public Result<List<MdcEquipmentTree>> queryTreeListByProduction() { + Result<List<MdcEquipmentTree>> result = new Result<>(); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + try { + List<MdcEquipmentTree> mdcEquipmentTreeList = devicePermissionService.DncLoadTreeListByProduction(userId); + result.setSuccess(true); + result.setResult(mdcEquipmentTreeList); + } catch (Exception e) { + return Result.error("鍔犺浇浜х嚎璁惧鏍戝け璐ワ紒" + e.getMessage()); + } + return result; + } } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceInfoService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceInfoService.java index a00ad88..fc096a8 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceInfoService.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDeviceInfoService.java @@ -61,7 +61,7 @@ * @param paramId * @return */ - List<UserDepartExt> getUserPermsList(Integer nodeType, String paramId); + List<SysUser> getUserPermsList(Integer nodeType, String paramId); /** * 鑾峰彇鑺傜偣鏈垎閰嶇殑鐢ㄦ埛 * @param nodeType diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDevicePermissionService.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDevicePermissionService.java index da5158c..b819452 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDevicePermissionService.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDevicePermissionService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.dnc.entity.DevicePermission; import org.jeecg.modules.dnc.ucenter.UserDepartExt; +import org.jeecg.modules.mdc.model.MdcEquipmentTree; import org.jeecg.modules.system.entity.SysUser; import java.util.List; @@ -50,4 +51,10 @@ * @return */ List<DevicePermission> getByDeviceId(String deviceId); + + + /** + * 鍔犺浇浜х嚎璁惧鏍� + */ + List<MdcEquipmentTree> DncLoadTreeListByProduction(String userId); } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceGroupPermissionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceGroupPermissionServiceImpl.java index b790fd1..63f5d37 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceGroupPermissionServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceGroupPermissionServiceImpl.java @@ -15,8 +15,10 @@ import org.jeecg.modules.dnc.ucenter.UserDepartExt; import org.jeecg.modules.dnc.utils.ValidateUtil; import org.jeecg.modules.system.entity.MdcProduction; +import org.jeecg.modules.system.entity.MdcUserProduction; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.dnc.service.IDeviceGroupPermissionService; +import org.jeecg.modules.system.service.IMdcUserProductionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -35,6 +37,8 @@ @Autowired @Lazy private IDevicePermissionStreamService devicePermissionStreamService; + @Autowired + private IMdcUserProductionService mdcUserProductionService; @Override public List<UserDepartExt> getUserPermsByGroupId(String groupId) { @@ -92,15 +96,13 @@ public boolean assignAddUser(MdcProduction mdcProduction, Collection<SysUser> userList) { if(mdcProduction == null || userList == null || userList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); - List<DeviceGroupPermission> permissionList = new ArrayList<>(); + List<MdcUserProduction> mdcUserProductions=new ArrayList<>(); List<DevicePermissionStream> permissionStreamList = new ArrayList<>(); userList.forEach(item -> { - DeviceGroupPermission en = groupPermissionService.getByUserIdAndGroupId(item.getId(), mdcProduction.getId()); + MdcUserProduction en = mdcUserProductionService.getByUserIdAndGroupId(item.getId(), mdcProduction.getId()); if(en == null) { - en = new DeviceGroupPermission(); - en.setUserId(item.getId()); - en.setGroupId(mdcProduction.getId()); - permissionList.add(en); + en = new MdcUserProduction(item.getId(),mdcProduction.getId()); + mdcUserProductions.add(en); } DevicePermissionStream stream = devicePermissionStreamService.getByGroupIdAndUserId(mdcProduction.getId(), item.getId()); if(stream == null) { @@ -110,8 +112,8 @@ permissionStreamList.add(stream); } }); - if(!permissionList.isEmpty()) { - boolean b = groupPermissionService.saveBatch(permissionList); + if(!mdcUserProductions.isEmpty()) { + boolean b = mdcUserProductionService.saveBatch(mdcUserProductions); if(!b) { ExceptionCast.cast(DeviceGroupCode.DEVICE_GROUP_PERM_ERROR); } @@ -130,12 +132,12 @@ public boolean assignRemoveUser(MdcProduction mdcProduction, Collection<SysUser> userList) { if(mdcProduction == null || userList == null || userList.isEmpty()) ExceptionCast.cast(CommonCode.INVALID_PARAM); - List<DeviceGroupPermission> permissionList = new ArrayList<>(); + List<MdcUserProduction> mdcUserProductions=new ArrayList<>(); List<DevicePermissionStream> permissionStreamList = new ArrayList<>(); userList.forEach(item -> { - DeviceGroupPermission en = groupPermissionService.getByUserIdAndGroupId(item.getId(), mdcProduction.getId()); + MdcUserProduction en = mdcUserProductionService.getByUserIdAndGroupId(item.getId(), mdcProduction.getId()); if(en != null) { - permissionList.add(en); + mdcUserProductions.add(en); } DevicePermissionStream stream = devicePermissionStreamService.getByGroupIdAndUserId(mdcProduction.getId(), item.getId()); if(stream != null) { @@ -143,11 +145,11 @@ } }); //鏍¢獙娓呯┖璁惧鍒嗙粍鏉冮檺鎿嶄綔 - List<DeviceGroupPermission> existList = groupPermissionService.getByGroupId(mdcProduction.getId()); - if(existList.size() <= permissionList.size()) + List<MdcUserProduction> existList = mdcUserProductionService.list(new QueryWrapper<MdcUserProduction>().eq("pro_id",mdcProduction.getId())); + if(existList.size() <= mdcUserProductions.size()) ExceptionCast.cast(DeviceGroupCode.DEVICE_GROUP_USER_NONE); - if(!permissionList.isEmpty()) { - boolean b = groupPermissionService.removeByCollection(permissionList); + if(!mdcUserProductions.isEmpty()) { + boolean b = mdcUserProductionService.removeByCollection(mdcUserProductions); if(!b) { ExceptionCast.cast(DeviceGroupCode.DEVICE_GROUP_PERM_ERROR); } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceInfoServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceInfoServiceImpl.java index d55f9d9..bb59e16 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceInfoServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DeviceInfoServiceImpl.java @@ -22,6 +22,7 @@ import org.jeecg.modules.system.entity.MdcProductionEquipment; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.service.IMdcProductionService; +import org.jeecg.modules.system.service.IMdcUserProductionService; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.dnc.response.DeviceCode; import org.jeecg.modules.dnc.response.DeviceGroupCode; @@ -68,7 +69,8 @@ private IMdcEquipmentService mdcEquipmentService; @Autowired private IMdcProductionEquipmentService mdcProductionEquipmentService; - + @Autowired + private IMdcUserProductionService mdcUserProductionService; @Override @Transactional(rollbackFor = {Exception.class}) public boolean addDeviceInfo(DeviceInfo deviceInfo) { @@ -243,13 +245,13 @@ } @Override - public List<UserDepartExt> getUserPermsList(Integer nodeType, String paramId) { + public List<SysUser> getUserPermsList(Integer nodeType, String paramId) { if(!ValidateUtil.validateInteger(nodeType) || !ValidateUtil.validateString(paramId)) return null; if(nodeType == 1) { - return deviceGroupPermissionService.getUserPermsByGroupId(paramId); + return mdcUserProductionService.getUserPermsByGroupId(paramId); }else if(nodeType == 2) { - return devicePermissionService.getUserPermsByDeviceId(paramId); + return mdcUserProductionService.getUserPermsByDeviceId(paramId); }else { return null; } @@ -260,9 +262,9 @@ if(!ValidateUtil.validateInteger(nodeType) || !ValidateUtil.validateString(paramId)) return null; if(nodeType == 1) { - return deviceGroupPermissionService.getUserNonPermsByGroupId(paramId); + return mdcUserProductionService.getUserNonPermsByGroupId(paramId); }else if(nodeType == 2) { - return devicePermissionService.getUserNonPermsByDeviceId(paramId); + return mdcUserProductionService.getUserNonPermsByDeviceId(paramId); }else { return null; } diff --git a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java index cfb31e0..a980d40 100644 --- a/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java +++ b/lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DevicePermissionServiceImpl.java @@ -1,23 +1,42 @@ package org.jeecg.modules.dnc.service.impl; 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.lang3.StringUtils; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.modules.dnc.entity.DevicePermission; import org.jeecg.modules.dnc.mapper.DevicePermissionMapper; import org.jeecg.modules.dnc.ucenter.UserDepartExt; import org.jeecg.modules.dnc.utils.ValidateUtil; +import org.jeecg.modules.mdc.entity.MdcEquipment; +import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper; +import org.jeecg.modules.mdc.model.MdcEquipmentTree; +import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil; +import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.dnc.service.IDevicePermissionService; +import org.jeecg.modules.system.service.IMdcProductionService; +import org.jeecg.modules.system.service.IMdcUserProductionService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; @Service public class DevicePermissionServiceImpl extends ServiceImpl<DevicePermissionMapper, DevicePermission> implements IDevicePermissionService { + @Resource + private IMdcProductionService mdcProductionService; + @Resource + private IMdcUserProductionService mdcUserProductionService; + @Resource + private MdcEquipmentMapper mdcEquipmentMapper; + @Override public DevicePermission getByUserIdAndDeviceId(String userId, String deviceId) { if(!ValidateUtil.validateString(userId) || !ValidateUtil.validateString(deviceId)) @@ -67,4 +86,77 @@ list = Collections.emptyList(); return list; } + + + /** + * 鍔犺浇浜х嚎璁惧鏍� + */ + @Override + public List<MdcEquipmentTree> DncLoadTreeListByProduction(String userId){ + //鑾峰彇鎵�鏈変骇绾挎暟鎹� + List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); + //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勪骇绾夸俊鎭泦鍚� + List<String> productionIds = mdcUserProductionService.queryProductionIdsByUserId(userId); + List<String> allProductionIds = new ArrayList<>(); + //鎵惧埌鎵�鏈変骇绾縤d鐨勪笂绾d + if (productionIds != null && !productionIds.isEmpty()) { + for (String productionId : productionIds) { + this.getAllProductionIds(productionList, productionId, allProductionIds); + } + } + //杩囨护浜х嚎鏁版嵁 + List<MdcProduction> list = productionList.stream().filter((MdcProduction mdcProduction) -> allProductionIds.contains(mdcProduction.getId())).collect(Collectors.toList()); + //缁勮浜х嚎璁惧鏍� + List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); + //濉厖璁惧鏁版嵁 + FillEquipmentByProduction(treeList,userId); + return treeList; + } + + /** + * 鑾峰彇鎵�鏈夌殑浜х嚎id锛堝寘鍚墍鏈変笂绾э級 + */ + private void getAllProductionIds(List<MdcProduction> productionList, String productionId, List<String> allProductionIds) { + if (!allProductionIds.contains(productionId)) { + allProductionIds.add(productionId); + } + for (MdcProduction mdcProduction : productionList) { + if (StringUtils.isEmpty(mdcProduction.getParentId())) { + continue; + } + if (productionId.equals(mdcProduction.getId())) { + if (!allProductionIds.contains(mdcProduction.getParentId())) { + allProductionIds.add(mdcProduction.getParentId()); + getAllProductionIds(productionList, mdcProduction.getParentId(), allProductionIds); + } + } + } + } + + /** + * 浜х嚎璁惧鏍戝~鍏呰澶囨暟鎹� + */ + private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList,String userId) { + //鑾峰彇宸插垎閰嶆潈闄愯澶囨暟鎹� + List<String> deviceIds=super.list(new QueryWrapper<DevicePermission>().eq("user_id",userId)).stream().map(DevicePermission::getDeviceId).collect(Collectors.toList()); + if (!deviceIds.isEmpty()){ + for (MdcEquipmentTree mdcEquipmentTree : treeList) { + List<MdcEquipment> equipmentList = mdcEquipmentMapper.queryByProductionIdAndType(mdcEquipmentTree.getKey(),deviceIds); + if (equipmentList != null && !equipmentList.isEmpty()) { + for (MdcEquipment mdcEquipment : equipmentList) { + MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment); + tree.setParentId(mdcEquipmentTree.getKey()); + tree.setEntity(mdcEquipment); + tree.setType(2); + mdcEquipmentTree.getChildren().add(tree); + } + mdcEquipmentTree.setLeaf(false); + } + if (!mdcEquipmentTree.getChildren().isEmpty()) { + FillEquipmentByProduction(mdcEquipmentTree.getChildren(),userId); + } + } + } + } + } diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java index c834e49..816cc92 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java @@ -405,12 +405,12 @@ @AutoLog(value = "璁惧琛�-鍔犺浇浜х嚎璁惧鏍�") @ApiOperation(value = "璁惧琛�-鍔犺浇浜х嚎璁惧鏍�", notes = "璁惧琛�-鍔犺浇浜х嚎璁惧鏍�") @GetMapping(value = "/queryTreeListByProduction") - public Result<List<MdcEquipmentTree>> queryTreeListByProduction(String type) { + public Result<List<MdcEquipmentTree>> queryTreeListByProduction() { Result<List<MdcEquipmentTree>> result = new Result<>(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); try { - List<MdcEquipmentTree> mdcEquipmentTreeList = mdcEquipmentService.loadTreeListByProduction(userId,type); + List<MdcEquipmentTree> mdcEquipmentTreeList = mdcEquipmentService.loadTreeListByProduction(userId); result.setSuccess(true); result.setResult(mdcEquipmentTreeList); } catch (Exception e) { @@ -530,10 +530,10 @@ @AutoLog(value = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�") @ApiOperation(value = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�", notes = "璁惧琛�-閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�") @GetMapping(value = "/loadTreeListByProductionIds") - public Result<?> loadTreeListByProductionIds(@RequestParam(name = "ids", required = true) String ids,@RequestParam(name = "type", required = true)String type) { + public Result<?> loadTreeListByProductionIds(@RequestParam(name = "ids", required = true) String ids) { Result<List<MdcEquipmentTree>> result = new Result<>(); try { - List<MdcEquipmentTree> mdcEquipmentTreeList = mdcEquipmentService.loadTreeListByProductionIds(ids,type); + List<MdcEquipmentTree> mdcEquipmentTreeList = mdcEquipmentService.loadTreeListByProductionIds(ids); result.setSuccess(true); result.setResult(mdcEquipmentTreeList); } catch (Exception e) { diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/DncDevicePermissionMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/DncDevicePermissionMapper.java deleted file mode 100644 index 4202a94..0000000 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/DncDevicePermissionMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.jeecg.modules.mdc.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.mdc.entity.DncDevicePermission; - -/** - * @author: Lyh - * @description: 璁惧鏉冮檺Mapper鎺ュ彛 - * @create: 2023-04-07 11:17 - */ -public interface DncDevicePermissionMapper extends BaseMapper<DncDevicePermission> { - -} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java index 76376d4..8e65dd4 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java @@ -56,7 +56,12 @@ /** * 鏍规嵁浜х嚎id鏌ヨ璁惧 */ - List<MdcEquipment> queryByProductionId(@Param("productionId") String productionId,@Param("type")String type); + List<MdcEquipment> queryByProductionId(@Param("productionId") String productionId); + + /** + * 鏍规嵁浜х嚎id銆乼ype銆佸凡鍒嗛厤鏉冮檺鏁版嵁 鏌ヨ璁惧 + */ + List<MdcEquipment> queryByProductionIdAndType(@Param("productionId") String productionId, @Param("deviceIds") List<String> deviceIds); /** * 鏌ユ壘璁惧鐩戞帶淇℃伅 diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml index a4943b3..155b27e 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml @@ -71,12 +71,7 @@ WHERE mpe.equipment_id = me.id AND mpe.production_id = #{ productionId } - <if test="type == 'DNC'"> - AND me.device_type_dnc = '1' - </if> - <if test="type == 'MDC'"> AND me.device_type_mdc = '1' - </if> ORDER BY me.equipment_id </select> @@ -281,5 +276,23 @@ WHERE t1.id = #{ id } </select> + <select id="queryByProductionIdAndType" resultType="org.jeecg.modules.mdc.entity.MdcEquipment"> + SELECT + me.* + FROM + mdc_production_equipment mpe, + mdc_equipment me + WHERE + mpe.equipment_id = me.id + AND mpe.production_id = #{ productionId } + AND me.device_type_dnc = '1' + <if test="deviceIds != null and deviceIds.size() > 0"> + AND me.id IN + <foreach collection = "deviceIds" item = "id" index = "index" open = "(" close= ")" separator = ","> + #{id} + </foreach> + </if> + ORDER BY me.equipment_id + </select> </mapper> diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java index 3fe672c..5e20315 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java @@ -106,7 +106,7 @@ /** * 鍔犺浇浜х嚎璁惧鏍� */ - List<MdcEquipmentTree> loadTreeListByProduction(String userId,String type); + List<MdcEquipmentTree> loadTreeListByProduction(String userId); /** * 璁惧鐩戞帶鍒楄〃 @@ -198,7 +198,7 @@ * @param ids * @return */ - List<MdcEquipmentTree> loadTreeListByProductionIds(String ids,String type); + List<MdcEquipmentTree> loadTreeListByProductionIds(String ids); /** * 鏌ヨ鍗曡〃鏁版嵁 diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java index 84ee56f..5ba9d64 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java @@ -3,6 +3,7 @@ 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.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -18,7 +19,6 @@ import org.jeecg.modules.mdc.dto.MdcEquipmentDetailedDto; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; import org.jeecg.modules.mdc.entity.*; -import org.jeecg.modules.mdc.mapper.DncDevicePermissionMapper; import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper; import org.jeecg.modules.mdc.mapper.MdcTorqueConfigMapper; import org.jeecg.modules.mdc.model.MdcEquipmentTree; @@ -28,6 +28,7 @@ import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil; import org.jeecg.modules.mdc.vo.*; import org.jeecg.modules.system.entity.*; +import org.jeecg.modules.system.mapper.DncDevicePermissionMapper; import org.jeecg.modules.system.mapper.MdcEquipmentDepartMapper; import org.jeecg.modules.system.mapper.MdcProductionEquipmentMapper; import org.jeecg.modules.system.service.*; @@ -220,6 +221,15 @@ mdcProductionEquipmentMapper.insert(productionEquipment); } } + //step.4 淇敼璁惧鏉冮檺 + //鍏堝垹鍚庡姞 + dncDevicePermissionMapper.delete(new QueryWrapper<DncDevicePermission>().lambda().eq(DncDevicePermission::getDeviceId, mdcEquipment.getId())); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String userId = user.getId(); + DncDevicePermission dncDevicePermission=new DncDevicePermission(); + dncDevicePermission.setDeviceId(mdcEquipment.getId()); + dncDevicePermission.setUserId(userId); + dncDevicePermissionMapper.insert(dncDevicePermission); } @Override @@ -232,7 +242,8 @@ line += mdcEquipmentDepartMapper.delete(new LambdaQueryWrapper<MdcEquipmentDepart>().eq(MdcEquipmentDepart::getEquipmentId, id)); // 3. 鍒犻櫎璁惧浜х嚎鍏崇郴 line += mdcProductionEquipmentMapper.delete(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getEquipmentId, id)); - + // 4. 鍒犻櫎璁惧鏉冮檺 + line += dncDevicePermissionMapper.delete(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, id)); return line != 0; } @@ -273,6 +284,8 @@ @Override public void removeEquipmentForProduction(String productionId, String equipmentId) { mdcProductionEquipmentMapper.delete(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getProductionId, productionId).eq(MdcProductionEquipment::getEquipmentId, equipmentId)); + //绉婚櫎璁惧鏉冮檺 + dncDevicePermissionMapper.delete(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, equipmentId)); } @Override @@ -347,7 +360,7 @@ @Override - public List<MdcEquipmentTree> loadTreeListByProduction(String userId,String type) { + public List<MdcEquipmentTree> loadTreeListByProduction(String userId) { //鑾峰彇鎵�鏈変骇绾挎暟鎹� List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勪骇绾夸俊鎭泦鍚� @@ -364,7 +377,7 @@ //缁勮浜х嚎璁惧鏍� List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); //濉厖璁惧鏁版嵁 - FillEquipmentByProduction(treeList,type); + FillEquipmentByProduction(treeList); return treeList; } @@ -663,9 +676,9 @@ /** * 浜х嚎璁惧鏍戝~鍏呰澶囨暟鎹� */ - private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList,String type) { + private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList) { for (MdcEquipmentTree mdcEquipmentTree : treeList) { - List<MdcEquipment> equipmentList = this.baseMapper.queryByProductionId(mdcEquipmentTree.getKey(),type); + List<MdcEquipment> equipmentList = this.baseMapper.queryByProductionId(mdcEquipmentTree.getKey()); if (equipmentList != null && !equipmentList.isEmpty()) { for (MdcEquipment mdcEquipment : equipmentList) { MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment); @@ -677,7 +690,7 @@ mdcEquipmentTree.setLeaf(false); } if (!mdcEquipmentTree.getChildren().isEmpty()) { - FillEquipmentByProduction(mdcEquipmentTree.getChildren(),type); + FillEquipmentByProduction(mdcEquipmentTree.getChildren()); } } } @@ -885,7 +898,7 @@ * @return */ @Override - public List<MdcEquipmentTree> loadTreeListByProductionIds(String ids,String type) { + public List<MdcEquipmentTree> loadTreeListByProductionIds(String ids) { List<String> productionIds = Arrays.asList(ids.split(",")); //鑾峰彇鎵�鏈変骇绾挎暟鎹� List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); @@ -901,7 +914,7 @@ //缁勮浜х嚎璁惧鏍� List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list); //濉厖璁惧鏁版嵁 - FillEquipmentByProduction(treeList,type); + FillEquipmentByProduction(treeList); return treeList; } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDeviceGroupPermission.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDeviceGroupPermission.java deleted file mode 100644 index 3133e48..0000000 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDeviceGroupPermission.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.jeecg.modules.system.entity; - -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Date; - -@Data -@NoArgsConstructor -@TableName(value = "nc_device_group_permission") -public class DncDeviceGroupPermission { - @TableId(value = "group_perm_id") - private String groupPermId; - @TableField(value = "group_id") - private String groupId; - @TableField(value = "user_id") - private String userId; - @JsonIgnore - @TableField(value = "create_time", select = false, fill = FieldFill.INSERT) - private Date createTime; - @JsonIgnore - @TableField(value = "create_by", select = false, fill = FieldFill.INSERT) - private String createBy; -} diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/DncDevicePermission.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java similarity index 95% rename from lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/DncDevicePermission.java rename to lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java index 7fbf449..7690fc6 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/DncDevicePermission.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/DncDevicePermission.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.mdc.entity; +package org.jeecg.modules.system.entity; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDeviceGroupPermissionMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDeviceGroupPermissionMapper.java deleted file mode 100644 index d833355..0000000 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDeviceGroupPermissionMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.jeecg.modules.system.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.system.entity.DncDeviceGroupPermission; - -/** - * @author: Lyh - * @description: 杞﹂棿鏉冮檺Mapper鎺ュ彛 - * @create: 2023-04-07 11:17 - */ -public interface DncDeviceGroupPermissionMapper extends BaseMapper<DncDeviceGroupPermission> { - -} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDevicePermissionMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDevicePermissionMapper.java new file mode 100644 index 0000000..b380b68 --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DncDevicePermissionMapper.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.system.entity.DncDevicePermission; + +/** + * @author: Lyh + * @description: 杞﹂棿鏉冮檺Mapper鎺ュ彛 + * @create: 2023-04-07 11:17 + */ +public interface DncDevicePermissionMapper extends BaseMapper<DncDevicePermission> { + +} diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcUserProductionMapper.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcUserProductionMapper.java index a6efd10..2fd2cfb 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcUserProductionMapper.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/MdcUserProductionMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.system.entity.MdcUserProduction; +import org.jeecg.modules.system.entity.SysUser; import java.util.List; @@ -18,4 +19,33 @@ * 鏍规嵁鎸囧畾鐢ㄦ埛id鏌ヨ浜х嚎id闆嗗悎 */ List<String> queryProductionIdsByUserId(@Param("userId") String userId); + + /** + * 鑾峰彇宸插垎閰嶇殑鐢ㄦ埛鍒楄〃 + * @param proId + * @return + */ + List<SysUser> getUserPermsByGroupId(@Param("proId") String proId); + + /** + * 鑾峰彇鏈垎閰嶇殑鐢ㄦ埛鍒楄〃 + * @param proId + * @return + */ + List<SysUser> getUserNonPermsByGroupId(@Param("proId") String proId); + + /** + * 鑾峰彇璁惧鏈垎閰嶇殑鐢ㄦ埛 + * @param proId + * @return + */ + List<SysUser> getUserNonPermsByDeviceId(String proId); + + + /** + * 鑾峰彇璁惧宸插垎閰嶇殑鐢ㄦ埛 + * @param deviceId + * @return + */ + List<SysUser> getUserPermsByDeviceId(String deviceId); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcUserProductionMapper.xml b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcUserProductionMapper.xml index c60a110..3e04e0e 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcUserProductionMapper.xml +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/MdcUserProductionMapper.xml @@ -6,4 +6,48 @@ <select id="queryProductionIdsByUserId" resultType="java.lang.String"> SELECT pro_id FROM mdc_user_production WHERE user_id = #{userId} </select> -</mapper> \ No newline at end of file + <select id="getUserPermsByGroupId" resultType="org.jeecg.modules.system.entity.SysUser"> + select u.id + , u.username + , u.realname + , u.avatar + , u.phone + , u.email + from sys_user u + inner join + (select user_id from mdc_user_production where pro_id=#{proId}) p + on u.id=p.user_id + </select> + <select id="getUserNonPermsByGroupId" resultType="org.jeecg.modules.system.entity.SysUser"> + select u.id + , u.username + , u.realname + , u.avatar + , u.phone + , u.email + from sys_user u + where u.id not in (select user_id from mdc_user_production where pro_id=#{proId}) + </select> + <select id="getUserNonPermsByDeviceId" resultType="org.jeecg.modules.system.entity.SysUser"> + select u.id + , u.username + , u.realname + , u.avatar + , u.phone + , u.email + from sys_user u + where u.id not in (select user_id from nc_device_permission where device_id=#{deviceId}) + </select> + <select id="getUserPermsByDeviceId" resultType="org.jeecg.modules.system.entity.SysUser"> + select u.id + , u.username + , u.realname + , u.avatar + , u.phone + , u.email + from sys_user u + inner join + (select user_id from nc_device_permission where device_id=#{deviceId}) p + on u.id=p.user_id + </select> +</mapper> diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcUserProductionService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcUserProductionService.java index 1e15ac3..b53553d 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcUserProductionService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IMdcUserProductionService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.system.entity.MdcUserProduction; +import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.model.ProductionIdModel; import java.util.List; @@ -22,4 +23,42 @@ * 鏍规嵁鎸囧畾鐢ㄦ埛id鏌ヨ浜х嚎id闆嗗悎 */ List<String> queryProductionIdsByUserId(String userId); + + /** + * 鍒犻櫎涓�缁勫璞� + * @param mdcUserProductions + * @return + */ + boolean removeByCollection(List<MdcUserProduction> mdcUserProductions); + + /** + * 鑾峰彇宸插垎閰嶇殑鐢ㄦ埛鍒楄〃 + * @param proId + * @return + */ + List<SysUser> getUserPermsByGroupId(String proId); + + /** + * 鑾峰彇鏈垎閰嶇殑鐢ㄦ埛鍒楄〃 + * @param proId + * @return + */ + List<SysUser> getUserNonPermsByGroupId(String proId); + + /** + * 鑾峰彇鏈垎閰嶇殑鐢ㄦ埛 + * @param proId + * @return + */ + List<SysUser> getUserNonPermsByDeviceId(String proId); + + /** + * 鑾峰彇宸插垎閰嶇殑鐢ㄦ埛 + * @param proId + * @return + */ + List<SysUser> getUserPermsByDeviceId(String proId); + + + MdcUserProduction getByUserIdAndGroupId(String userId, String proId); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java index e39af4e..2ca696b 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcProductionServiceImpl.java @@ -44,8 +44,6 @@ @Resource private MdcProductionEquipmentMapper productionEquipmentMapper; - @Resource - private DncDeviceGroupPermissionMapper dncDeviceGroupPermissionMapper; /** * queryTreeList 瀵瑰簲 queryTreeList 鏌ヨ鎵�鏈夌殑浜х嚎鏁版嵁,浠ユ爲缁撴瀯褰㈠紡鍝嶅簲缁欏墠绔� */ @@ -138,13 +136,6 @@ mdcProduction.setOrgType(String.valueOf(orgType)); mdcProduction.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); this.save(mdcProduction); - //鏂板DNC杞﹂棿鏉冮檺 - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String userId = user.getId(); - DncDeviceGroupPermission dncDeviceGroupPermission=new DncDeviceGroupPermission(); - dncDeviceGroupPermission.setGroupPermId(mdcProduction.getId()); - dncDeviceGroupPermission.setUserId(userId); - dncDeviceGroupPermissionMapper.insert(dncDeviceGroupPermission); } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcUserProductionServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcUserProductionServiceImpl.java index 789406c..8d13636 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcUserProductionServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/MdcUserProductionServiceImpl.java @@ -1,14 +1,17 @@ package org.jeecg.modules.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.system.entity.MdcProduction; import org.jeecg.modules.system.entity.MdcUserProduction; +import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.mapper.MdcUserProductionMapper; import org.jeecg.modules.system.model.ProductionIdModel; import org.jeecg.modules.system.service.IMdcProductionService; import org.jeecg.modules.system.service.IMdcUserProductionService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; @@ -63,4 +66,64 @@ public List<String> queryProductionIdsByUserId(String userId) { return this.baseMapper.queryProductionIdsByUserId(userId); } + + @Override + @Transactional(rollbackFor = {Exception.class}) + public boolean removeByCollection(List<MdcUserProduction> mdcUserProductions) { + if(mdcUserProductions == null || mdcUserProductions.isEmpty()) + return false; + if(mdcUserProductions.size() == 1){ + return super.removeById(mdcUserProductions.get(0).getId()); + } + List<String> ids = new ArrayList<>(); + mdcUserProductions.forEach(item -> { + ids.add(item.getId()); + }); + return super.removeByIds(ids); + } + + /** + * 鑾峰彇宸插垎閰嶇殑鐢ㄦ埛鍒楄〃 + * @param proId + * @return + */ + @Override + public List<SysUser> getUserPermsByGroupId(String proId){ + return super.getBaseMapper().getUserPermsByGroupId(proId); + } + + /** + * 鑾峰彇鏈垎閰嶇殑鐢ㄦ埛鍒楄〃 + * @param proId + * @return + */ + @Override + public List<SysUser> getUserNonPermsByGroupId(String proId){ + return super.getBaseMapper().getUserNonPermsByGroupId(proId); + } + + /** + * 鑾峰彇鏈垎閰嶇殑鐢ㄦ埛 + * @param proId + * @return + */ + @Override + public List<SysUser> getUserNonPermsByDeviceId(String proId){ + return super.getBaseMapper().getUserNonPermsByDeviceId(proId); + } + + @Override + public List<SysUser> getUserPermsByDeviceId(String proId) { + return super.getBaseMapper().getUserPermsByDeviceId(proId); + } + + @Override + public MdcUserProduction getByUserIdAndGroupId(String userId, String proId){ + if(StrUtil.isNotEmpty(userId) || !StrUtil.isNotEmpty(proId)) + return null; + List<MdcUserProduction> list = super.lambdaQuery().eq(MdcUserProduction::getUserId, userId).eq(MdcUserProduction::getProId, proId).list(); + if(list == null || list.isEmpty()) + return null; + return list.get(0); + } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 106de85..1434c07 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -48,7 +48,7 @@ @Service @Slf4j public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService { - + @Autowired private SysUserMapper userMapper; @Autowired @@ -79,6 +79,10 @@ MdcUserProductionMapper mdcUserProductionMapper; @Resource private ISysDictService sysDictService; + @Resource + private MdcProductionEquipmentMapper mdcProductionEquipmentMapper; + @Resource + private DncDevicePermissionMapper dncDevicePermissionMapper; @Override @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true) @@ -141,8 +145,8 @@ public SysUser getUserByName(String username) { return userMapper.getUserByName(username); } - - + + @Override @Transactional(rollbackFor = Exception.class) public void addUserWithRole(SysUser user, String roles) { @@ -203,7 +207,7 @@ roleIndex = list.get(0); } } - + //濡傛灉componentUrl涓虹┖锛屽垯杩斿洖绌� if(oConvertUtils.isEmpty(roleIndex.getComponent())){ return null; @@ -269,7 +273,7 @@ info.setSysUserName(sysUser.getRealname()); info.setSysOrgCode(sysUser.getOrgCode()); } - + //澶氶儴闂ㄦ敮鎸乮n鏌ヨ List<SysDepart> list = sysDepartMapper.queryUserDeparts(sysUser.getId()); List<String> sysMultiOrgCode = new ArrayList<String>(); @@ -285,7 +289,7 @@ } } info.setSysMultiOrgCode(sysMultiOrgCode); - + return info; } @@ -577,12 +581,24 @@ sysUserDepartMapper.insert(userDeaprt); } } + String[] arr = {}; //step.4 淇濆瓨鎵�灞炰骇绾� if (oConvertUtils.isNotEmpty(selectedProductions)) { - String[] arr = selectedProductions.split(","); + arr = selectedProductions.split(","); for (String productionId : arr) { MdcUserProduction mdcUserProduction = new MdcUserProduction(user.getId(), productionId); mdcUserProductionMapper.insert(mdcUserProduction); + } + } + //step.5 淇濆瓨璁惧鏉冮檺 + List<String> EquipmentIds= mdcProductionEquipmentMapper.selectList(new QueryWrapper<MdcProductionEquipment>().in("production_id",arr)) + .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList()); + if (oConvertUtils.isNotEmpty(EquipmentIds)) { + for (String equipmentId : EquipmentIds) { + DncDevicePermission dncDevicePermission=new DncDevicePermission(); + dncDevicePermission.setDeviceId(equipmentId); + dncDevicePermission.setUserId(user.getId()); + dncDevicePermissionMapper.insert(dncDevicePermission); } } } @@ -646,7 +662,20 @@ mdcUserProductionMapper.insert(mdcUserProduction); } } - //step.5 淇敼鎵嬫満鍙峰拰閭 + //step.5 淇敼璁惧鏉冮檺 + //鍏堝垹鍚庡姞 + dncDevicePermissionMapper.delete(new QueryWrapper<DncDevicePermission>().lambda().eq(DncDevicePermission::getUserId, user.getId())); + List<String> EquipmentIds= mdcProductionEquipmentMapper.selectList(new QueryWrapper<MdcProductionEquipment>().in("production_id",array)) + .stream().map(MdcProductionEquipment::getEquipmentId).collect(Collectors.toList()); + if (oConvertUtils.isNotEmpty(EquipmentIds)) { + for (String equipmentId : EquipmentIds) { + DncDevicePermission dncDevicePermission=new DncDevicePermission(); + dncDevicePermission.setDeviceId(equipmentId); + dncDevicePermission.setUserId(user.getId()); + dncDevicePermissionMapper.insert(dncDevicePermission); + } + } + //step.6 淇敼鎵嬫満鍙峰拰閭 // 鏇存柊鎵嬫満鍙枫�侀偖绠辩┖瀛楃涓蹭负 null userMapper.updateNullByEmptyString("email"); userMapper.updateNullByEmptyString("phone"); -- Gitblit v1.9.3