screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Organization; import com.moral.api.entity.SpecialDevice; import com.moral.api.entity.SpecialDeviceHistory; import com.moral.api.mapper.HistorySecondCruiserMapper; @@ -28,6 +29,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * <p> @@ -66,11 +68,15 @@ Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); Integer orgId = (Integer) orgInfo.get("id"); //获取所有子组织 List<Organization> organizations = organizationService.getChildrenOrganizationsById(orgId); List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList()); orgIds.add(orgId); QueryWrapper<SpecialDeviceHistory> queryWrapper = new QueryWrapper<>(); queryWrapper.select("mac", "name") .eq("organization_id", orgId) .eq("special_type", Constants.SPECIAL_DEVICE_CRUISER) .eq("is_delete", Constants.NOT_DELETE); .eq("is_delete", Constants.NOT_DELETE) .in("organization_id", orgIds); return specialDeviceHistoryService.listMaps(queryWrapper); } screen-api/src/main/java/com/moral/api/service/impl/SysAreaServiceImpl.java
@@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.Menu; import com.moral.api.entity.MonitorPoint; import com.moral.api.entity.Organization; import com.moral.api.entity.SysArea; import com.moral.api.mapper.MonitorPointMapper; import com.moral.api.mapper.SysAreaMapper; import com.moral.api.service.OrganizationService; import com.moral.api.service.SysAreaService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; @@ -39,12 +41,20 @@ @Autowired private MonitorPointMapper monitorPointMapper; @Autowired private OrganizationService organizationService; @Override public List<Map<String, Object>> getMapPath(Integer orgId) { //获取组织下所有子组织 List<Organization> organizations = organizationService.getChildrenOrganizationsById(orgId); List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList()); orgIds.add(orgId); QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>(); queryWrapper.select("province_code", "city_code", "area_code") .eq("organization_id", orgId) .eq("is_delete", Constants.NOT_DELETE); .eq("is_delete", Constants.NOT_DELETE) .in("organization_id", orgIds); //根据组织id查询所有站点 List<MonitorPoint> monitorPoints = monitorPointMapper.selectList(queryWrapper); Set<Integer> cityCodes = new HashSet<>(); screen-manage/src/main/java/com/moral/api/service/OrganizationService.java
@@ -1,5 +1,7 @@ package com.moral.api.service; import java.util.List; import com.moral.api.entity.Organization; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.organization.OrganizationDTO; @@ -53,15 +55,21 @@ OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm); /** * @Description: 根据条件查询组织 * @Param: [form] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO * @Author: 陈凯裕 * @Date: 2021/5/6 */ OrganizationQueryNamesDTO queryNames(OrganizationQueryNamesForm form); /** * @Description: 根据条件查询组织 * @Param: [form] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO * @Author: 陈凯裕 * @Date: 2021/5/6 */ OrganizationQueryNamesDTO queryNames(OrganizationQueryNamesForm form); * @Description: 根据父组织获取所有子组织 * @Param: [] * @return: java.util.List<com.moral.api.entity.Organization> * @Author: 陈凯裕 * @Date: 2021/4/14 */ List<Organization> getAllChildrenOrganization(Integer parentId); } screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -12,6 +12,7 @@ import com.moral.api.service.DeviceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.service.OrganizationService; import com.moral.api.service.SysDictDataService; import com.moral.api.util.CacheUtils; import com.moral.api.util.AdjustDataUtils; @@ -39,6 +40,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -92,6 +94,9 @@ @Autowired private AdjustDataUtils adjustDataUtils; @Autowired private OrganizationService organizationService; /* * 从redis获取设备信息 @@ -242,8 +247,14 @@ @Override public List<Map<String, Object>> selectMonitorsByOrgId(Integer orgId) { //获取所有子组织 List<Organization> organizations = organizationService.getAllChildrenOrganization(orgId); List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList()); orgIds.add(orgId); QueryWrapper<MonitorPoint> queryWrapper = new QueryWrapper<>(); queryWrapper.select("id", "name").eq("organization_id", orgId).eq("is_delete", Constants.NOT_DELETE); queryWrapper.select("id", "name") .eq("is_delete", Constants.NOT_DELETE) .in("organization_id", orgIds); return monitorPointMapper.selectMaps(queryWrapper); } @@ -269,9 +280,13 @@ Object orgId = parameters.get("organizationId"); Object mpId = parameters.get("monitorPointId"); //查询某组织下所有设备 //查询某组织下所有设备,包括子组织 if (orgId != null) { queryWrapper.eq("organization_id", orgId); //查询所有子组织 List<Organization> organizations = organizationService.getAllChildrenOrganization(Integer.parseInt(orgId.toString())); List<Integer> orgIds = organizations.stream().map(Organization::getId).collect(Collectors.toList()); orgIds.add(Integer.parseInt(orgId.toString())); queryWrapper.in("organization_id", orgIds); } //查询某站点下所有设备 @@ -445,7 +460,7 @@ Map<String, Object> govMpInfo = (Map<String, Object>) deviceInfo.get("govMonitorPoint"); Map<String, Object> aqiMap = null; if (govMpInfo.get("guid") != null) { aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString()); aqiMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.AQI_DATA, govMpInfo.get("guid").toString()); } return adjustDataUtils.adjust(deviceData, adjustFormula, ObjectUtils.isEmpty(aqiMap) ? null : aqiMap); } screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -1,7 +1,5 @@ package com.moral.api.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -9,7 +7,6 @@ import com.moral.api.entity.MonitorPoint; import com.moral.api.entity.Organization; import com.moral.api.entity.User; import com.moral.api.mapper.MonitorPointMapper; import com.moral.api.mapper.OrganizationMapper; import com.moral.api.mapper.UserMapper; import com.moral.api.pojo.dto.organization.OrganizationDTO; @@ -27,17 +24,12 @@ import com.moral.pojo.CompareFieldResult; import com.moral.util.ConvertUtils; import com.moral.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.function.Predicate; @@ -143,11 +135,10 @@ organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); //操作插入日志 updateLog(oldOrganization,organization); updateLog(oldOrganization, organization); return organizationDTO; } /** @@ -166,7 +157,7 @@ //判断组织是否含有站点 List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsByOrganizationId(id); if(!ObjectUtils.isEmpty(monitorPoints)){ if (!ObjectUtils.isEmpty(monitorPoints)) { dto.setCode(ResponseCodeEnum.ORGANIZATION_EXIST_MONITORPOINT.getCode()); dto.setMsg(ResponseCodeEnum.ORGANIZATION_EXIST_MONITORPOINT.getMsg()); return dto; @@ -199,7 +190,7 @@ //判断子组织是否含有站点,有一个子组织含有站点则不能删除 for (Integer childId : childrenId) { List<MonitorPoint> childMonitorPoints = monitorPointService.getMonitorPointsByOrganizationId(childId); if(!ObjectUtils.isEmpty(childMonitorPoints)){ if (!ObjectUtils.isEmpty(childMonitorPoints)) { dto.setCode(ResponseCodeEnum.CHILDREN_ORGANIZATION_EXIST_MONITORPOINT.getCode()); dto.setMsg(ResponseCodeEnum.CHILDREN_ORGANIZATION_EXIST_MONITORPOINT.getMsg()); return dto; @@ -210,7 +201,7 @@ updateWrapper.set("is_delete", Constants.DELETE); organizationMapper.update(null, updateWrapper); //删除所有子组织账号 childrenId.forEach(value->userService.deleteUsersByOrganizationId(value)); childrenId.forEach(value -> userService.deleteUsersByOrganizationId(value)); } else {//不删除 //提取所有直属子组织id @@ -344,13 +335,13 @@ } /** * @Description: 如果form中id为空,则查询所有的组织 * 如果id不为空,则查询该id和该id所有子组织之外的所有组织 * @Param: [from] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO * @Author: 陈凯裕 * @Date: 2021/5/7 */ * @Description: 如果form中id为空,则查询所有的组织 * 如果id不为空,则查询该id和该id所有子组织之外的所有组织 * @Param: [from] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNamesDTO * @Author: 陈凯裕 * @Date: 2021/5/7 */ @Override public OrganizationQueryNamesDTO queryNames(OrganizationQueryNamesForm form) { OrganizationQueryNamesDTO dto = new OrganizationQueryNamesDTO(); @@ -362,7 +353,7 @@ //查询所有组织 List<Organization> organizations = organizationMapper.selectList(queryWrapper); //判断form是否含有id,如果有则对其所有子组织进行过滤 if(!ObjectUtils.isEmpty(id)){ if (!ObjectUtils.isEmpty(id)) { List<Organization> children = getAllChildrenOrganization(id); List<Integer> thisAndchildrenIds = new ArrayList<>();//该id以及其所有子组织的id集合 thisAndchildrenIds.add(id); @@ -372,7 +363,7 @@ organizations.removeIf(new Predicate<Organization>() {//过滤 @Override public boolean test(Organization organization) { if(thisAndchildrenIds.contains(organization.getId())) if (thisAndchildrenIds.contains(organization.getId())) return true; return false; } @@ -393,7 +384,8 @@ * @Author: 陈凯裕 * @Date: 2021/4/14 */ private List<Organization> getAllChildrenOrganization(Integer parentId) { @Override public List<Organization> getAllChildrenOrganization(Integer parentId) { List<Organization> children = new ArrayList<>(); recursionQueryChildren(parentId, children); return children; @@ -422,23 +414,23 @@ } /** * @Description: 插入操作插入日志 * @Param: [organization] * @return: void * @Author: 陈凯裕 * @Date: 2021/8/25 */ private void insertLog(Organization organization){ * @Description: 插入操作插入日志 * @Param: [organization] * @return: void * @Author: 陈凯裕 * @Date: 2021/8/25 */ private void insertLog(Organization organization) { StringBuilder content = new StringBuilder(); content.append("添加了组织:").append(organization.getName() + ";"); logUtils.saveOperationForManage(content.toString(), Constants.INSERT_OPERATE_TYPE); } public void updateLog(Organization oldOrganization,Organization newOrganization){ public void updateLog(Organization oldOrganization, Organization newOrganization) { List<CompareFieldResult> results = CompareFieldUtils.compare(Organization.class, oldOrganization, newOrganization); for (CompareFieldResult result : results) { //改变父组织特殊处理 if(result.getFieldName().equals("parentId")){ if (result.getFieldName().equals("parentId")) { //父组织id转换为名称 String oldData = result.getOldData(); String newData = result.getNewData(); @@ -459,17 +451,17 @@ } //过期时间格式转换 if(result.getFieldName().equals("expireTime")){ if (result.getFieldName().equals("expireTime")) { //DateToString的时间格式改为yyyy-MM-dd String oldData = result.getOldData(); String newData = result.getNewData(); if(oldData!=null){ if (oldData != null) { Date oldDate = DateUtils.dateStringToDate(oldData); oldData = DateUtils.dateToDateString(oldDate, "yyyy-MM-dd"); } if(newData!=null){ if (newData != null) { Date newDate = DateUtils.dateStringToDate(newData); newData = DateUtils.dateToDateString(newDate, "yyyy-MM-dd"); } @@ -480,9 +472,8 @@ } } String content = CompareFieldUtils.resultsConvertContent(results, "修改了组织;组织名称:"+oldOrganization.getName()); String content = CompareFieldUtils.resultsConvertContent(results, "修改了组织;组织名称:" + oldOrganization.getName()); logUtils.saveOperationForManage(content, Constants.UPDATE_OPERATE_TYPE); } }