From eec61b51d7b64695d177c7cedd2da49f03f8c26e Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 13 三月 2025 16:59:17 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java | 136 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 126 insertions(+), 10 deletions(-) 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 ad9d45f..d785c97 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 @@ -1,14 +1,19 @@ package org.jeecg.modules.mdc.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.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.api.ISysBaseAPI; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.mdc.dto.MdcEquDepDto; import org.jeecg.modules.mdc.dto.MdcEquProDto; @@ -20,27 +25,29 @@ import org.jeecg.modules.mdc.model.MdcEquipmentTree; import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.mdc.util.DncCopyEquipment; import org.jeecg.modules.mdc.util.FindsEquipmentDepartUtil; import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil; import org.jeecg.modules.mdc.vo.*; -import org.jeecg.modules.system.entity.MdcEquipmentDepart; -import org.jeecg.modules.system.entity.MdcProduction; -import org.jeecg.modules.system.entity.MdcProductionEquipment; -import org.jeecg.modules.system.entity.SysDepart; +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.IMdcProductionService; -import org.jeecg.modules.system.service.IMdcUserProductionService; -import org.jeecg.modules.system.service.ISysDepartService; -import org.jeecg.modules.system.service.ISysUserDepartService; +import org.jeecg.modules.system.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; import java.math.BigDecimal; import java.math.RoundingMode; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -93,6 +100,15 @@ @Resource private IMdcOverrunAlarmService mdcOverrunAlarmService; + @Resource + private ISysParamsService ISysParamsService; + + @Resource + private IDncDevicePermissionService iDncDevicePermissionService; + + @Value("${fileNCPath}") + private String fileNCPath; + @Override public Map<String, String> getDepNamesByEquipmentIds(List<String> equipmentIds) { @@ -113,8 +129,36 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveMdcEquipment(MdcEquipment mdcEquipment, String selectedDeparts, String selectedProduction) { + if (mdcEquipment.getSystemValue()!=null) { + switch (mdcEquipment.getSystemValue()){ + case "1": + mdcEquipment.setDeviceTypeDnc("1"); + break; + case "2": + mdcEquipment.setDeviceTypeMdc("1"); + break; + case "3": + mdcEquipment.setDeviceTypeDnc("1"); + mdcEquipment.setDeviceTypeMdc("1"); + break; + } + }else { + //鑾峰彇绯荤粺绫诲瀷 + SysParams sysParams = ISysParamsService.getSysPramBySettingKey("system_type"); + //MDC绯荤粺 + if ("-1".equals(sysParams.getSettingValue())){ + mdcEquipment.setDeviceTypeMdc("1"); + } + //DNC绯荤粺 + if ("1".equals(sysParams.getSettingValue())) { + mdcEquipment.setDeviceTypeDnc("1"); + } + } //step.1 淇濆瓨璁惧 this.save(mdcEquipment); + //DNC娣诲姞璁惧鏉冮檺 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + iDncDevicePermissionService.addDevicePermission(mdcEquipment.getId(), user.getId()); //step.2 淇濆瓨鎵�灞為儴闂� if (oConvertUtils.isNotEmpty(selectedDeparts)) { String[] arr = selectedDeparts.split(","); @@ -131,12 +175,38 @@ mdcProductionEquipmentMapper.insert(mdcProductionEquipment); } } + //step.3 淇濆瓨璁惧瀵瑰簲鐨勪骇绾挎潈闄� + addDevicePermission(mdcEquipment); } @Override @Transactional(rollbackFor = Exception.class) @CacheEvict(value = {"mdc:cache:encrypt:equipment"}, allEntries = true) public void editMdcEquipment(MdcEquipment mdcEquipment) { + if (mdcEquipment.getSystemValue()!=null) { + switch (mdcEquipment.getSystemValue()){ + case "1": + mdcEquipment.setDeviceTypeDnc("1"); + mdcEquipment.setDeviceTypeMdc("0"); + break; + case "2": + mdcEquipment.setDeviceTypeDnc("0"); + mdcEquipment.setDeviceTypeMdc("1"); + break; + case "3": + mdcEquipment.setDeviceTypeDnc("1"); + mdcEquipment.setDeviceTypeMdc("1"); + break; + } + } + //骞崇Щ璁惧鐩綍涓嬬幇鏈夌粨鏋勪笌鏂囦欢 + //鑾峰彇鍘熸湁缁撴瀯 + String OldPath=""; + String NewPath=""; + List<String> OldStrings=mdcProductionService.findListParentTreeAll(mdcEquipment.getId()); + if (OldStrings != null && !OldStrings.isEmpty()) { + OldPath = fileNCPath+"/"+StringUtils.join(OldStrings.toArray(), "/")+"/"+mdcEquipment.getEquipmentId(); + } //step.1 淇敼璁惧鍩虹淇℃伅 this.updateById(mdcEquipment); //step.2 淇敼閮ㄩ棬 @@ -153,6 +223,8 @@ mdcEquipmentDepartMapper.insert(equipmentDepart); } } + //鍒犻櫎鎵�鏈夎澶囨潈闄� + iDncDevicePermissionService.remove(new QueryWrapper<DncDevicePermission>().lambda().eq(DncDevicePermission::getDeviceId, mdcEquipment.getId())); //step.3 淇敼浜х嚎 String productions = mdcEquipment.getSelectedProduction(); String[] array = {}; @@ -167,6 +239,31 @@ mdcProductionEquipmentMapper.insert(productionEquipment); } } + List<String> NewStrings = mdcProductionService.findListParentTreeAll(mdcEquipment.getId()); + if (NewStrings != null && !NewStrings.isEmpty()) { + NewPath = fileNCPath+"/"+StringUtils.join(NewStrings.toArray(), "/")+"/"+mdcEquipment.getEquipmentId(); + } + // 骞崇ЩOldPath涓嬬殑鏂囦欢鍒癗ewPath涓� + DncCopyEquipment.CopyEquipmentPath(OldPath,NewPath); + //淇濆瓨璁惧瀵瑰簲鐨勪骇绾挎潈闄� + addDevicePermission(mdcEquipment); + //step.4 淇敼璁惧鏉冮檺 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + List<DncDevicePermission> dncDevicePermissions=iDncDevicePermissionService.list(new LambdaQueryWrapper<DncDevicePermission>() + .eq(DncDevicePermission::getDeviceId, mdcEquipment.getId()).eq(DncDevicePermission ::getUserId, user.getId())); + if (CollectionUtils.isEmpty(dncDevicePermissions)){ + iDncDevicePermissionService.addDevicePermission(mdcEquipment.getId(), user.getId()); + } + } + + private void addDevicePermission(MdcEquipment mdcEquipment) { + List<String> productionIds=mdcProductionEquipmentMapper + .selectList(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getEquipmentId, mdcEquipment.getId())) + .stream().map(MdcProductionEquipment::getProductionId).collect(Collectors.toList()); + List<MdcUserProduction> mdcUserProductionList=mdcUserProductionService.queryByProductionIds(productionIds); + mdcUserProductionList.forEach(item->{ + iDncDevicePermissionService.addDevicePermission(mdcEquipment.getId(), item.getUserId()); + }); } @Override @@ -179,7 +276,8 @@ line += mdcEquipmentDepartMapper.delete(new LambdaQueryWrapper<MdcEquipmentDepart>().eq(MdcEquipmentDepart::getEquipmentId, id)); // 3. 鍒犻櫎璁惧浜х嚎鍏崇郴 line += mdcProductionEquipmentMapper.delete(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getEquipmentId, id)); - + // 4. 鍒犻櫎璁惧鏉冮檺 + line += iDncDevicePermissionService.remove(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, id))? 1 : 0; return line != 0; } @@ -220,6 +318,8 @@ @Override public void removeEquipmentForProduction(String productionId, String equipmentId) { mdcProductionEquipmentMapper.delete(new LambdaQueryWrapper<MdcProductionEquipment>().eq(MdcProductionEquipment::getProductionId, productionId).eq(MdcProductionEquipment::getEquipmentId, equipmentId)); + //绉婚櫎璁惧鏉冮檺 + iDncDevicePermissionService.remove(new LambdaQueryWrapper<DncDevicePermission>().eq(DncDevicePermission::getDeviceId, equipmentId)); } @Override @@ -260,6 +360,7 @@ if (equipmentList != null && !equipmentList.isEmpty()) { for (MdcEquipment mdcEquipment : equipmentList) { MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment); + tree.setParentId(mdcEquipmentTree.getKey()); mdcEquipmentTree.getChildren().add(tree); } @@ -616,6 +717,8 @@ 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); @@ -730,7 +833,20 @@ List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName()); mdcEquipment.setProductionIds(productionIds); } - return this.baseMapper.pageList(page, mdcEquipment); + IPage<MdcEquipment> equipmentIPage= this.baseMapper.pageList(page, mdcEquipment); + equipmentIPage.getRecords().forEach(item->{ + if (("1").equals(item.getDeviceTypeDnc())&&("1").equals(item.getDeviceTypeMdc())){ + item.setSystemValue("3"); + }else { + if (("1").equals(item.getDeviceTypeDnc())){ + item.setSystemValue("1"); + } + if (("1").equals(item.getDeviceTypeMdc())){ + item.setSystemValue("2"); + } + } + }); + return equipmentIPage; } /** -- Gitblit v1.9.3