lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportThreeNoSpareDto.java
@@ -10,6 +10,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; @@ -91,6 +92,7 @@ /**培训人*/ @Excel(name = "培训人", width = 15) @ApiModelProperty(value = "培训人") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String trainingUser; /**培训时间*/ @Excel(name = "培训时间", width = 15, format = "yyyy-MM-dd") @@ -105,6 +107,7 @@ /**单位领导*/ @Excel(name = "单位领导", width = 15) @ApiModelProperty(value = "单位领导") @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String unitLeader; /**领导意见*/ @Excel(name = "领导意见", width = 15) lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -96,7 +96,7 @@ tc.total_count AS "total" FROM sys_dict c LEFT JOIN sys_dict_item item ON c.id = item.dict_id LEFT JOIN eam_equipment_extend t ON t.technology_status = item.item_value COLLATE Chinese_PRC_CI_AS LEFT JOIN eam_equipment_extend t ON t.technology_status = item.item_value <if test="ids != null and ids != ''"> AND t.id IN <foreach collection="ids" item="id" index="index" open="(" close=")" separator=","> lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
@@ -19,4 +19,5 @@ private String repairDepartOrgCode; private String column; private String order; private String productionCode; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -91,5 +91,5 @@ * 设备管理首页-技术状态 * @return */ List<EchartsDto> echartsList(); List<EchartsDto> echartsList(String factoryCode); } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamFactorySecondMaintPlanService.java
@@ -17,7 +17,7 @@ * 设备管理首页-车间二保计划列表 * @return */ public List<EamFactorySecondMaintPlan> queryAllList(); public List<EamFactorySecondMaintPlan> queryAllList(String productionCode); /** * 新增首页车间二保计划 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
@@ -73,7 +73,7 @@ * 设备管理首页-设备报修故障情况 * @return */ List<EchartsDto> reportRepairList(); List<EchartsDto> reportRepairList(String productionCode); /** * 设备管理首页-设备报修故障情况列表 @@ -81,5 +81,5 @@ * @param page * @return */ IPage<EamReportRepairDto> reportRepairList(String code, Page<EamReportRepairDto> page); IPage<EamReportRepairDto> reportRepairList(String code,String productionCode,Page<EamReportRepairDto> page); } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -1,6 +1,7 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -159,21 +160,37 @@ if (sysUser == null) { return page; } if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //选择了设备,根据设备id过滤设备 List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没有选择设备,根据中心过滤设备 List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); if(!CollectionUtils.isEmpty(baseFactoryUserList)){ Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); }else { if (StrUtil.isEmpty(eamEquipment.getProductionCode())){ if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //选择了设备,根据设备id过滤设备 List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没有选择设备,根据中心过滤设备 List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); if(!CollectionUtils.isEmpty(baseFactoryUserList)){ Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); }else { return page; } } }else { //通过选择的车间过滤对应中心 List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, eamEquipment.getProductionCode()).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return page; } //组装EAM数据 Set<String> factoryCodes= new HashSet<>(); baseFactoryList.forEach(baseFactory -> { List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId()); factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet())); }); queryWrapper.in("e.factory_org_code", factoryCodes); } //查询条件过滤 if (eamEquipment != null) { @@ -436,47 +453,67 @@ * @return */ @Override public List<EchartsDto> echartsList(){ public List<EchartsDto> echartsList(String productionCode){ List<EchartsDto> echartsDtoList = new ArrayList<>(); QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0); //用户数据权限 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return echartsDtoList; } if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //选择了设备,根据设备id过滤设备 List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没有选择设备,根据中心过滤设备 List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); if(!CollectionUtils.isEmpty(baseFactoryUserList)){ Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); }else { if (StrUtil.isEmpty(productionCode)) { //用户数据权限 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return echartsDtoList; } if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //选择了设备,根据设备id过滤设备 List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没有选择设备,根据中心过滤设备 List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService. list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId())); if(!CollectionUtils.isEmpty(baseFactoryUserList)){ Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCodes= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCodes); }else { return echartsDtoList; } } }else { //通过选择的车间过滤对应中心 List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return echartsDtoList; } //组装EAM数据 Set<String> factoryCodes= new HashSet<>(); baseFactoryList.forEach(baseFactory -> { List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId()); factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet())); }); queryWrapper.in("e.factory_org_code", factoryCodes); } List<String> ids=this.baseMapper.queryList(queryWrapper).stream().map(EamEquipment::getId).collect(Collectors.toList()); if (ids.isEmpty()) { return echartsDtoList; } echartsDtoList= this.baseMapper.echartsList(ids); // 直接使用for循环处理数据 for (EchartsDto dto : echartsDtoList) { if (dto.getTotal() != null && !"0".equals(dto.getTotal())) { try { int value = Integer.parseInt(dto.getValue()); int total = Integer.parseInt(dto.getTotal()); double percentage = (value * 100.0) / total; DecimalFormat df = new DecimalFormat("0.00"); dto.setPercentage(df.format(percentage) + "%"); } catch (NumberFormatException e) { if (!echartsDtoList.isEmpty()) { for (EchartsDto dto : echartsDtoList) { if (dto.getTotal() != null && !"0".equals(dto.getTotal())) { try { int value = Integer.parseInt(dto.getValue()); int total = Integer.parseInt(dto.getTotal()); double percentage = (value * 100.0) / total; DecimalFormat df = new DecimalFormat("0.00"); dto.setPercentage(df.format(percentage) + "%"); } catch (NumberFormatException e) { dto.setPercentage("0.00%"); } } else { dto.setPercentage("0.00%"); } } else { dto.setPercentage("0.00%"); } } return echartsDtoList; lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamFactorySecondMaintPlanServiceImpl.java
@@ -1,7 +1,11 @@ package org.jeecg.modules.eam.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.jeecg.common.constant.CommonConstant; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamFactorySecondMaintPlan; import org.jeecg.modules.eam.mapper.EamFactorySecondMaintPlanMapper; @@ -9,6 +13,7 @@ import org.jeecg.modules.eam.service.IEamFactorySecondMaintPlanService; import org.jeecg.modules.system.entity.BaseFactory; import org.jeecg.modules.system.service.IBaseFactoryService; import org.jeecg.modules.system.service.IMdcProductionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; @@ -16,7 +21,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * @Description: “首页车间二保计划 @@ -37,8 +46,18 @@ * @return */ @Override public List<EamFactorySecondMaintPlan> queryAllList(){ // return this.baseMapper.queryAllList(); public List<EamFactorySecondMaintPlan> queryAllList(String productionCode){ if (!StrUtil.isEmpty(productionCode)){ List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return new ArrayList<>(); } List<String> factoryNames=baseFactoryList.stream().map(BaseFactory::getFactoryName).collect(Collectors.toList()); return this.list(new LambdaQueryWrapper<EamFactorySecondMaintPlan>() .eq(EamFactorySecondMaintPlan::getDelFlag, CommonConstant.DEL_FLAG_0.toString()) .in(EamFactorySecondMaintPlan::getFactoryName, factoryNames)); } return this.list(); } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -359,45 +359,49 @@ } @Override public List<EchartsDto> reportRepairList() { public List<EchartsDto> reportRepairList(String productionCode) { List<EchartsDto> echartsDtoList = new ArrayList<>(); // 用户数据权限检查 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return echartsDtoList; // 返回空列表而非null } QueryWrapper<EamReportRepairDto> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService .list(new LambdaQueryWrapper<BaseFactoryUser>() .eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { if (StrUtil.isEmpty(productionCode)) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return echartsDtoList; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream() .map(BaseFactoryUser::getFactoryId) .collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds) .stream() .map(BaseFactory::getOrgCode) .collect(Collectors.toSet()); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>() .eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { return echartsDtoList; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCodes); } }else { //通过选择的车间过滤对应中心 List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return echartsDtoList; } //组装EAM数据 Set<String> factoryCodes= new HashSet<>(); baseFactoryList.forEach(baseFactory -> { List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId()); factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet())); }); queryWrapper.in("e.factory_org_code", factoryCodes); } // 获取基础数据 List<EamReportRepairDto> baseList = this.baseMapper.queryList(queryWrapper); if (baseList == null || baseList.isEmpty()) { return echartsDtoList; } int totalCount = baseList.size(); // 获取停机数量 @@ -465,39 +469,42 @@ * @return */ @Override public IPage<EamReportRepairDto> reportRepairList(String code, Page<EamReportRepairDto> page){ public IPage<EamReportRepairDto> reportRepairList(String code, String productionCode, Page<EamReportRepairDto> page){ IPage<EamReportRepairDto> eamReportRepairDtoIPage=new Page<>(); // 用户数据权限检查 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return null; } QueryWrapper<EamReportRepairDto> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService .list(new LambdaQueryWrapper<BaseFactoryUser>() .eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { return null; if (StrUtil.isEmpty(productionCode)) { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return eamReportRepairDtoIPage; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream() .map(BaseFactoryUser::getFactoryId) .collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds) .stream() .map(BaseFactory::getOrgCode) .collect(Collectors.toSet()); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>() .eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { return eamReportRepairDtoIPage; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCodes); } }else { //通过选择的车间过滤对应中心 List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return eamReportRepairDtoIPage; } //组装EAM数据 Set<String> factoryCodes= new HashSet<>(); baseFactoryList.forEach(baseFactory -> { List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId()); factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet())); }); queryWrapper.in("e.factory_org_code", factoryCodes); } queryWrapper.orderByDesc("wmo.create_time"); lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamHomeController.java
@@ -54,11 +54,11 @@ */ @ApiOperation(value = "设备管理首页-技术状态与设备报修故障情况", notes = "设备管理首页-技术状态与设备报修故障情况") @GetMapping(value = "/techornology") public Result<?> techOrNology() { public Result<?> techOrNology(String productionCode) { //技术状态 List<EchartsDto> echartsDtoList=iEamEquipmentService.echartsList(); List<EchartsDto> echartsDtoList=iEamEquipmentService.echartsList(productionCode); //设备报修故障情况 List<EchartsDto> echartsDtoList1=iEamReportRepairService.reportRepairList(); List<EchartsDto> echartsDtoList1=iEamReportRepairService.reportRepairList(productionCode); Map<String,Object> map=new HashMap<>(); map.put("jszt",echartsDtoList); map.put("bxqk",echartsDtoList1); @@ -72,9 +72,9 @@ */ @ApiOperation(value = "设备管理首页-三级保养", notes = "设备管理首页-三级保养") @GetMapping(value = "/maintenance") public Result<?> maintenance() { public Result<?> maintenance(String productionCode) { //三级保养 List<EchartsDto> echartsDtoList = iEamThirdMaintenanceOrderService.selectList(); List<EchartsDto> echartsDtoList = iEamThirdMaintenanceOrderService.selectList(productionCode); return Result.ok(echartsDtoList); } @@ -84,8 +84,8 @@ */ @ApiOperation(value = "设备管理首页-二保列表", notes = "设备管理首页-二保列表") @GetMapping(value = "/secondmaintenance") public Result<?> secondmaintenance() { List<EamFactorySecondMaintPlan> echartsDtoList = iEamFactorySecondMaintPlanService.queryAllList(); public Result<?> secondmaintenance(String productionCode) { List<EamFactorySecondMaintPlan> echartsDtoList = iEamFactorySecondMaintPlanService.queryAllList(productionCode); return Result.ok(echartsDtoList); } @@ -100,9 +100,10 @@ @GetMapping(value = "/repairList") public Result<?> repair(@RequestParam(name = "code", required = false) String code, @RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize) { @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize, String productionCode) { Page<EamReportRepairDto> page = new Page<>(pageNo, pageSize); IPage<EamReportRepairDto> iPage = iEamReportRepairService.reportRepairList(code,page); IPage<EamReportRepairDto> iPage = iEamReportRepairService.reportRepairList(code,productionCode,page); return Result.ok(iPage); } @@ -117,9 +118,10 @@ @GetMapping(value = "/maintenanceList") public Result<?> maintenanceList(@RequestParam(name = "code", required = false) String code, @RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize) { @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize, String productionCode) { Page<EamThirdMaintenanceOrder> page = new Page<>(pageNo, pageSize); IPage<EamThirdMaintenanceOrder> iPage = iEamThirdMaintenanceOrderService.maintenanceList(code, page); IPage<EamThirdMaintenanceOrder> iPage = iEamThirdMaintenanceOrderService.maintenanceList(code,productionCode,page); return Result.ok(iPage); } } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java
@@ -108,7 +108,7 @@ * 设备管理首页-三保计划 * @return */ List<EchartsDto> selectList(); List<EchartsDto> selectList(String productionCode); /** * 设备管理首页-三保计划列表 @@ -116,5 +116,5 @@ * @param page * @return */ IPage<EamThirdMaintenanceOrder> maintenanceList(String code, Page<EamThirdMaintenanceOrder> page); IPage<EamThirdMaintenanceOrder> maintenanceList(String code,String productionCode, Page<EamThirdMaintenanceOrder> page); } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -707,39 +707,41 @@ * @return * */ @Override public List<EchartsDto> selectList() { public List<EchartsDto> selectList(String productionCode) { List<EchartsDto> echartsDtos = new ArrayList<>(); // 用户数据权限检查 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return echartsDtos; // 返回空列表而非null } QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>(); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService .list(new LambdaQueryWrapper<BaseFactoryUser>() .eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { if (StrUtil.isEmpty(productionCode)) { // 用户数据权限检查 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return echartsDtos; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream() .map(BaseFactoryUser::getFactoryId) .collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds) .stream() .map(BaseFactory::getOrgCode) .collect(Collectors.toSet()); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { return echartsDtos; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCodes); } }else { //通过选择的车间过滤对应中心 List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return echartsDtos; } //组装EAM数据 Set<String> factoryCodes= new HashSet<>(); baseFactoryList.forEach(baseFactory -> { List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId()); factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet())); }); queryWrapper.in("e.factory_org_code", factoryCodes); } @@ -813,38 +815,41 @@ * @return */ @Override public IPage<EamThirdMaintenanceOrder> maintenanceList(String code, Page<EamThirdMaintenanceOrder> page){ public IPage<EamThirdMaintenanceOrder> maintenanceList(String code,String productionCode, Page<EamThirdMaintenanceOrder> page){ IPage<EamThirdMaintenanceOrder> eamThirdMaintenanceOrderIPage=new Page<>(); // 用户数据权限检查 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return null; } QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>(); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService .list(new LambdaQueryWrapper<BaseFactoryUser>() .eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { return null; if (StrUtil.isEmpty(productionCode)) { // 用户数据权限检查 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return eamThirdMaintenanceOrderIPage; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream() .map(BaseFactoryUser::getFactoryId) .collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds) .stream() .map(BaseFactory::getOrgCode) .collect(Collectors.toSet()); // 设备过滤逻辑 if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId())); if (CollectionUtils.isEmpty(baseFactoryUserList)) { return eamThirdMaintenanceOrderIPage; // 返回空列表而非null } Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCodes); } }else { //通过选择的车间过滤对应中心 List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>() .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString())); if (CollectionUtils.isEmpty(baseFactoryList)) { return eamThirdMaintenanceOrderIPage; } //组装EAM数据 Set<String> factoryCodes= new HashSet<>(); baseFactoryList.forEach(baseFactory -> { List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId()); factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet())); }); queryWrapper.in("e.factory_org_code", factoryCodes); } queryWrapper.orderByDesc("wmo.create_time"); lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/BaseFactoryMapper.java
@@ -1,7 +1,10 @@ package org.jeecg.modules.system.mapper; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.system.entity.BaseFactory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; /** * @Description: 设备车间管理 @@ -11,4 +14,9 @@ */ public interface BaseFactoryMapper extends BaseMapper<BaseFactory> { /** * 递归查询所有子节点 */ List<String> queryFactoryByPid(@Param("pid") String pid); } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/BaseFactoryMapper.xml
@@ -2,4 +2,17 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.system.mapper.BaseFactoryMapper"> <select id="queryFactoryByPid" resultType="java.lang.String"> WITH temp (id) AS ( SELECT id FROM eam_base_factory WHERE id = #{pid} UNION ALL SELECT a.id FROM eam_base_factory a INNER JOIN temp ON a.parent_id = temp.id COLLATE Chinese_PRC_CI_AS -- 统一为原表的规则 ) SELECT * FROM temp </select> </mapper> lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IBaseFactoryService.java
@@ -81,4 +81,9 @@ * @return */ List<String> queryFactoryIdsByOrgCode(String orgCode); /** * 递归查询所有子节点id */ List<BaseFactory> queryFactoryByPid(String pid); } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -350,4 +350,16 @@ } return new ArrayList<>(collect); } /** * 递归查询所有子节点id */ @Override public List<BaseFactory> queryFactoryByPid(String pid){ List<String> ids=this.baseMapper.queryFactoryByPid(pid); if (CollectionUtil.isEmpty(ids)){ return Collections.emptyList(); } return this.baseMapper.selectBatchIds(ids); } }