package com.moral.api.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.Device; import com.moral.api.entity.MonitorPoint; import com.moral.api.entity.Organization; import com.moral.api.entity.SysArea; import com.moral.api.mapper.DeviceMapper; import com.moral.api.mapper.MonitorPointMapper; import com.moral.api.mapper.OrganizationMapper; import com.moral.api.mapper.SysAreaMapper; import com.moral.api.service.MonitorPointService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.util.LogUtils; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.util.ConvertUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.*; /** *

* 服务实现类 *

* * @author moral * @since 2021-05-12 */ @Service @Transactional public class MonitorPointServiceImpl extends ServiceImpl implements MonitorPointService { @Autowired(required = false) private MonitorPointMapper monitorPointMapper; @Autowired(required = false) private OrganizationMapper organizationMapper; @Autowired(required = false) private SysAreaMapper sysAreaMapper; @Autowired(required = false) private DeviceMapper deviceMapper; @Override @Transactional public Map insertMonitorPoint(MonitorPoint monitorPoint) { Map resultMap = new HashMap(); if (monitorPoint.getName()==null){ resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } QueryWrapper wapper_name = new QueryWrapper<>(); wapper_name.eq("name",monitorPoint.getName()); wapper_name.eq("is_delete",Constants.NOT_DELETE); if(monitorPointMapper.selectOne(wapper_name)!=null){ resultMap.put("code",ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getCode()); resultMap.put("msg",ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getMsg()); return resultMap; } if (monitorPoint.getOrganizationId()!=null){ QueryWrapper wapper_org = new QueryWrapper<>(); wapper_org.eq("id",monitorPoint.getOrganizationId()); wapper_org.eq("is_delete",Constants.NOT_DELETE); if (organizationMapper.selectOne(wapper_org)==null){ resultMap.put("code",ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode()); resultMap.put("msg",ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg()); return resultMap; } } monitorPointMapper.insert(monitorPoint); //操作插入日志 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String content = "添加了站点:"+monitorPoint.getName()+";"; LogUtils.saveOperationForManage(request,content,Constants.INSERT_OPERATE_TYPE); resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); return resultMap; } @Override public Map getAllMonitorPoint(Map map) { Map resultMap = new HashMap<>(); if (!map.containsKey("current")||!map.containsKey("size")||!map.containsKey("orderType")){ resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } int current = Integer.parseInt(map.get("current").toString()); int size = Integer.parseInt(map.get("size").toString()); Page page = new Page(current,size); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("is_delete",0); int totalNumber = monitorPointMapper.selectCount(wrapper); String orderType = map.get("orderType").toString(); if (orderType.equals(Constants.ORDER_ASC)){ wrapper.orderByAsc("update_time"); }else { wrapper.orderByDesc("update_time"); } Page resultPage = monitorPointMapper.selectPage(page,wrapper); List monitorPoints = resultPage.getRecords(); SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List> monitorPointtList = new ArrayList<>(); for (MonitorPoint monitorPoint:monitorPoints) { Map monitorPointMap = JSON.parseObject(JSON.toJSONString(monitorPoint),Map.class); String createTime = SDF.format(monitorPoint.getCreateTime()); String updateTime = SDF.format(monitorPoint.getUpdateTime()); monitorPointMap.put("createTime",createTime); monitorPointMap.put("updateTime",updateTime); monitorPointMap.put("key",monitorPoint.getId()); if (monitorPointMap.get("provinceCode")!=null&&monitorPointMap.get("provinceCode")!=""){ monitorPointMap.put("provinceCode",getAreaArr(monitorPointMap.get("provinceCode").toString())); }else { String[] arr = {null,null}; monitorPointMap.put("provinceCode",arr); } if (monitorPointMap.get("cityCode")!=null&&monitorPointMap.get("cityCode")!=""){ monitorPointMap.put("cityCode",getAreaArr(monitorPointMap.get("cityCode").toString())); }else { String[] arr = {null,null}; monitorPointMap.put("cityCode",arr); } if (monitorPointMap.get("areaCode")!=null&&monitorPointMap.get("areaCode")!=""){ monitorPointMap.put("areaCode",getAreaArr(monitorPointMap.get("areaCode").toString())); }else { String[] arr = {null,null}; monitorPointMap.put("areaCode",arr); } if (monitorPointMap.get("organizationId")!=null&&monitorPointMap.get("organizationId")!=""){ Organization organization = organizationMapper.selectById(Integer.parseInt(monitorPointMap.get("organizationId").toString())); if (!ObjectUtils.isEmpty(organization)) { String[] organizationArr = {monitorPointMap.get("organizationId").toString(),organization.getName()}; monitorPointMap.put("organizationId",organizationArr); } }else { String[] arr = {null,null}; monitorPointMap.put("organizationId",arr); } monitorPointtList.add(monitorPointMap); } resultMap.put("monitorPoints",monitorPointtList); resultMap.put("totalNumber",totalNumber); resultMap.put("current",current); int totalPageNumber = totalNumber/size; if(totalNumber%size != 0){ totalPageNumber += 1; } resultMap.put("totalPageNumber",totalPageNumber); return resultMap; } @Override @Transactional public Map updateMonitorPoint(Map parameterMap) { Map resultMap = new HashMap(); Map updateMap = new HashMap<>(); for (String key : parameterMap.keySet()) { updateMap.put(ConvertUtils.toLine(key),parameterMap.get(key)); } if(!updateMap.containsKey("id")){ resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } QueryWrapper wapper_id = new QueryWrapper<>(); wapper_id.eq("id",updateMap.get("id")); wapper_id.eq("is_delete",Constants.NOT_DELETE); MonitorPoint oldMonitorPoint = monitorPointMapper.selectOne(wapper_id); if (oldMonitorPoint==null){ resultMap.put("code",ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode()); resultMap.put("msg",ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg()); return resultMap; } if (updateMap.get("name")!=null&&updateMap.get("name").equals("")){ resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (updateMap.get("name")!=null){ QueryWrapper wapper_name = new QueryWrapper<>(); wapper_name.eq("name",updateMap.get("name")); wapper_name.eq("is_delete",Constants.NOT_DELETE); MonitorPoint monitorPoint_name = monitorPointMapper.selectOne(wapper_name); if(monitorPoint_name!=null&&!monitorPoint_name.getId().toString().equals(updateMap.get("id").toString())){ resultMap.put("code",ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getCode()); resultMap.put("msg",ResponseCodeEnum.MONITOR_POINT_IS_EXIST.getMsg()); return resultMap; } } monitorPointMapper.updateMonitorPoint(updateMap); String deviceContent = ""; if (!ObjectUtils.isEmpty(parameterMap.get("organizationId")) && parameterMap.get("organizationId") != null){ Device device = new Device(); device.setOrganizationId(Integer.parseInt(parameterMap.get("organizationId").toString())); QueryWrapper deviceWrapper = new QueryWrapper(); deviceWrapper.eq("monitor_point_id",oldMonitorPoint.getId()); deviceWrapper.eq("is_delete",Constants.NOT_DELETE); List devices = deviceMapper.selectList(deviceWrapper); deviceMapper.update(device, deviceWrapper); if (devices.size()>0){ for (Device dev:devices) { deviceContent = deviceContent+"修改了设备:"+dev.getName()+";organizationId:"+dev.getOrganizationId()+"->"+parameterMap.get("organizationId"); } } } HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String content = "修改了站点:"+oldMonitorPoint.getName()+";"; for (Object key:updateMap.keySet()) { if (key.toString().equals("name")&&updateMap.get(key)!=null){ content = content+"站点名称:"+oldMonitorPoint.getName()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("longitude")&&updateMap.get(key)!=null){ content = content+"经度:"+oldMonitorPoint.getLongitude()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("latitude")&&updateMap.get(key)!=null){ content = content+"纬度:"+oldMonitorPoint.getLatitude()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("province_code")&&updateMap.get(key)!=null){ content = content+"省份编码:"+oldMonitorPoint.getProvinceCode()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("city_code")&&updateMap.get(key)!=null){ content = content+"地级市编码:"+oldMonitorPoint.getCityCode()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("area_code")&&updateMap.get(key)!=null){ content = content+"县/区/县级市:"+oldMonitorPoint.getAreaCode()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("address")&&updateMap.get(key)!=null){ content = content+"地址:"+oldMonitorPoint.getAddress()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("organization_id")&&updateMap.get(key)!=null){ content = content+"组织id:"+oldMonitorPoint.getOrganizationId()+"->"+updateMap.get(key)+";"; } if (key.toString().equals("desc")&&updateMap.get(key)!=null){ content = content+"描述:"+oldMonitorPoint.getDesc()+"->"+updateMap.get(key)+";"; } } content = content+deviceContent; LogUtils.saveOperationForManage(request,content,Constants.UPDATE_OPERATE_TYPE); resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); return resultMap; } @Override @Transactional public Map deleteMonitorPoint(Map map) { Map resultMap = new HashMap(); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("id",map.get("id")); wrapper.eq("is_delete","0"); MonitorPoint monitorPoint = monitorPointMapper.selectOne(wrapper); if(ObjectUtils.isEmpty(monitorPoint)){ resultMap.put("code",ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getCode()); resultMap.put("msg",ResponseCodeEnum.MONITOR_POINT_IS_NOT_EXIST.getMsg()); return resultMap; } MonitorPoint deleteMonitorPoint = new MonitorPoint(); deleteMonitorPoint.setIsDelete("1"); monitorPointMapper.update(deleteMonitorPoint,wrapper); //操作插入日志 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String content = "删除了站点:"+monitorPoint.getName()+";"; LogUtils.saveOperationForManage(request,content,Constants.DELETE_OPERATE_TYPE); resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); return resultMap; } @Override public Map getMonitorPointByFuzzy(Map map) { Map resultMap = new HashMap<>(); if (!map.containsKey("current")||!map.containsKey("size")||!map.containsKey("orderType")){ resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } int current = Integer.parseInt(map.get("current").toString()); int size = Integer.parseInt(map.get("size").toString()); Page page = new Page(current,size); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("is_delete",0); if (map.containsKey("organization_id")){ String organization_id = ""; organization_id = map.get("organization_id").toString(); wrapper.eq("organization_id",organization_id); } if (map.containsKey("name")){ String name = ""; name = map.get("name").toString(); wrapper.like("name",name); } int totalNumber = monitorPointMapper.selectCount(wrapper); String orderType = map.get("orderType").toString(); if (orderType.equals(Constants.ORDER_ASC)){ wrapper.orderByAsc("update_time"); }else { wrapper.orderByDesc("update_time"); } Page resultPage = monitorPointMapper.selectPage(page,wrapper); List monitorPoints = resultPage.getRecords(); SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List> monitorPointtList = new ArrayList<>(); for (MonitorPoint monitorPoint:monitorPoints) { Map monitorPointMap = JSON.parseObject(JSON.toJSONString(monitorPoint),Map.class); String createTime = SDF.format(monitorPoint.getCreateTime()); String updateTime = SDF.format(monitorPoint.getUpdateTime()); monitorPointMap.put("createTime",createTime); monitorPointMap.put("updateTime",updateTime); monitorPointMap.put("key",monitorPoint.getId()); if (monitorPointMap.get("provinceCode")!=null&&monitorPointMap.get("provinceCode")!=""){ monitorPointMap.put("provinceCode",getAreaArr(monitorPointMap.get("provinceCode").toString())); }else { String[] arr = {null,null}; monitorPointMap.put("provinceCode",arr); } if (monitorPointMap.get("cityCode")!=null&&monitorPointMap.get("cityCode")!=""){ monitorPointMap.put("cityCode",getAreaArr(monitorPointMap.get("cityCode").toString())); }else { String[] arr = {null,null}; monitorPointMap.put("cityCode",arr); } if (monitorPointMap.get("areaCode")!=null&&monitorPointMap.get("areaCode")!=""){ monitorPointMap.put("areaCode",getAreaArr(monitorPointMap.get("areaCode").toString())); }else { String[] arr = {null,null}; monitorPointMap.put("areaCode",arr); } /*Organization organization = organizationMapper.selectById(Integer.parseInt(monitorPointMap.get("organizationId").toString())); if (!ObjectUtils.isEmpty(organization)) { String[] organizationArr = {monitorPointMap.get("organizationId").toString(),organization.getName()}; monitorPointMap.put("organizationId",organizationArr); }*/ if (monitorPointMap.get("organizationId")!=null&&monitorPointMap.get("organizationId")!=""){ Organization organization = organizationMapper.selectById(Integer.parseInt(monitorPointMap.get("organizationId").toString())); if (!ObjectUtils.isEmpty(organization)) { String[] organizationArr = {monitorPointMap.get("organizationId").toString(),organization.getName()}; monitorPointMap.put("organizationId",organizationArr); } }else { String[] arr = {null,null}; monitorPointMap.put("organizationId",arr); } monitorPointtList.add(monitorPointMap); } resultMap.put("monitorPoints",monitorPointtList); resultMap.put("totalNumber",totalNumber); resultMap.put("current",current); int totalPageNumber = totalNumber/size; if(totalNumber%size != 0){ totalPageNumber += 1; } resultMap.put("totalPageNumber",totalPageNumber); return resultMap; } @Override public List getMonitorPointsByOrganizationId(Integer organizationId) { QueryWrapper monitorPointQueryWrapper = new QueryWrapper<>(); MonitorPoint monitorPoint = new MonitorPoint(); monitorPoint.setOrganizationId(organizationId); monitorPoint.setIsDelete(Constants.NOT_DELETE); monitorPointQueryWrapper.setEntity(monitorPoint); List monitorPoints = monitorPointMapper.selectList(monitorPointQueryWrapper); return monitorPoints; } /** * @Description: 获取地区名 * @Param: [areaArr, menu]menuMap:key为menuid,value为menu * @return: Array * @Author: lizijie * @Date: 2021/4/7 */ private String[] getAreaArr(String areaCode) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("area_code",areaCode); SysArea sysArea = sysAreaMapper.selectOne(wrapper); String[] arr = {areaCode,sysArea.getAreaName()}; return arr; } }