| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.moral.api.entity.ManageRole; |
| | | import com.moral.api.entity.Sensor; |
| | | import com.moral.api.entity.VersionSensorUnit; |
| | | import com.moral.api.mapper.SensorMapper; |
| | | import com.moral.api.mapper.VersionSensorUnitMapper; |
| | | import com.moral.api.service.SensorService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.api.util.LogUtils; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.constant.RedisConstants; |
| | | import com.moral.constant.ResponseCodeEnum; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.ObjectUtils; |
| | |
| | | @Autowired(required = false) |
| | | private SensorMapper sensorMapper; |
| | | |
| | | @Autowired(required = false) |
| | | private VersionSensorUnitMapper versionSensorUnitMapper; |
| | | |
| | | @Autowired |
| | | LogUtils logUtils; |
| | | |
| | | @Autowired |
| | | RedisTemplate redisTemplate; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | logUtils.saveOperationForManage(request,content,Constants.INSERT_OPERATE_TYPE); |
| | | resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | return resultMap; |
| | | } |
| | | |
| | |
| | | resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | return resultMap; |
| | | } |
| | | if (updateSensorMap.containsKey("name")){ |
| | | if (updateSensorMap.get("name")==null||updateSensorMap.get("name")==""){ |
| | | resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | return resultMap; |
| | | } |
| | | if (updateSensorMap.get("name")==""){ |
| | | resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | return resultMap; |
| | | } |
| | | if (updateSensorMap.containsKey("code")){ |
| | | if(ObjectUtils.isEmpty(updateSensorMap.get("code"))){ |
| | | resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | return resultMap; |
| | | } |
| | | if(updateSensorMap.get("code")==""){ |
| | | resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | return resultMap; |
| | | } |
| | | Sensor oldSensor = sensorMapper.getSensorById(Integer.parseInt(updateSensorMap.get("id").toString())); |
| | | if (ObjectUtils.isEmpty(oldSensor)){ |
| | |
| | | wrapper_code.eq("code",updateSensorMap.get("code")); |
| | | wrapper_code.eq("is_delete","0"); |
| | | List<Sensor> sensorList = sensorMapper.selectList(wrapper_code); |
| | | System.out.println(sensorList.get(0)); |
| | | if (sensorList.size()!=0&&!sensorList.get(0).getId().toString().equals(updateSensorMap.get("id").toString())){ |
| | | resultMap.put("code",ResponseCodeEnum.SENSOR_KEY_IS_USED.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.SENSOR_KEY_IS_USED.getMsg()); |
| | |
| | | HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
| | | String content = "修改因子:"+oldSensor.getName()+";"; |
| | | for (Object key:updateSensorMap.keySet()) { |
| | | if (key.toString().equals("name")){ |
| | | content = content+"角色名:"+oldSensor.getName()+"->"+updateSensorMap.get(key)+";"; |
| | | if (key.toString().equals("name")&&updateSensorMap.get(key)!=null){ |
| | | content = content+"因子名:"+oldSensor.getName()+"->"+updateSensorMap.get(key)+";"; |
| | | } |
| | | if (key.toString().equals("code")){ |
| | | if (key.toString().equals("code")&&updateSensorMap.get(key)!=null){ |
| | | QueryWrapper<VersionSensorUnit> wrapper_Version = new QueryWrapper<>(); |
| | | wrapper_Version.eq("sensor_code",oldSensor.getCode()); |
| | | wrapper_Version.eq("is_delete","0"); |
| | | VersionSensorUnit versionSensorUnit = new VersionSensorUnit(); |
| | | versionSensorUnit.setSensorCode(updateSensorMap.get(key).toString()); |
| | | versionSensorUnitMapper.update(versionSensorUnit,wrapper_Version); |
| | | content = content+"编号:"+oldSensor.getCode()+"->"+updateSensorMap.get(key)+";"; |
| | | } |
| | | if (key.toString().equals("desc")){ |
| | | if (key.toString().equals("desc")&&updateSensorMap.get(key)!=null){ |
| | | content = content+"备注:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";"; |
| | | } |
| | | if (key.toString().equals("upper")&&updateSensorMap.get(key)!=null){ |
| | | content = content+"上限:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";"; |
| | | } |
| | | if (key.toString().equals("lower")&&updateSensorMap.get(key)!=null){ |
| | | content = content+"下限:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";"; |
| | | } |
| | | if (key.toString().equals("default_util")&&updateSensorMap.get(key)!=null){ |
| | | content = content+"默认单位:"+oldSensor.getDesc()+"->"+updateSensorMap.get(key)+";"; |
| | | } |
| | | } |
| | | logUtils.saveOperationForManage(request,content,Constants.UPDATE_OPERATE_TYPE); |
| | | resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | return resultMap; |
| | | } |
| | | |
| | |
| | | Page<Sensor> page = new Page(current,size); |
| | | QueryWrapper<Sensor> wrapper = new QueryWrapper(); |
| | | wrapper.eq("is_delete",0); |
| | | int totleNum = sensorMapper.selectCount(wrapper); |
| | | String orderType = map.get("orderType").toString(); |
| | | if (orderType.equals(Constants.ORDER_ASC)){ |
| | | wrapper.orderByAsc("create_time"); |
| | |
| | | sensorList.add(sensorMap); |
| | | } |
| | | resultMap.put("manageRoles",sensorList); |
| | | int totalNumber = sensors.size(); |
| | | resultMap.put("totalNumber",totalNumber); |
| | | resultMap.put("totalNumber",totleNum); |
| | | resultMap.put("current",current); |
| | | int totalPageNumber = totalNumber/size; |
| | | if(totalNumber%size != 0){ |
| | | int totalPageNumber = totleNum/size; |
| | | if(totleNum%size != 0){ |
| | | totalPageNumber += 1; |
| | | } |
| | | resultMap.put("totalPageNumber",totalPageNumber); |
| | |
| | | return resultMap; |
| | | } |
| | | Sensor deleteSensor = new Sensor(); |
| | | deleteSensor.setIsDelete("1"); |
| | | deleteSensor.setIsDelete(Constants.DELETE); |
| | | sensorMapper.update(deleteSensor,wrapper); |
| | | QueryWrapper<VersionSensorUnit> wrapper_Version = new QueryWrapper<>(); |
| | | wrapper_Version.eq("sensor_code",sensor.getCode()); |
| | | wrapper_Version.eq("is_delete","0"); |
| | | VersionSensorUnit versionSensorUnit = new VersionSensorUnit(); |
| | | versionSensorUnit.setIsDelete(Constants.DELETE); |
| | | versionSensorUnitMapper.update(versionSensorUnit,wrapper_Version); |
| | | //操作插入日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
| | | String content = "删除因子:"+sensor.getName()+";"; |
| | | logUtils.saveOperationForManage(request,content,Constants.DELETE_OPERATE_TYPE); |
| | | resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); |
| | | resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); |
| | | //刷新缓存 |
| | | refreshCache(); |
| | | return resultMap; |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> getSensorByFuzzy(Map map) { |
| | | Map<String,Object> resultMap = new HashMap<>(); |
| | | int current = Integer.parseInt(map.get("current").toString()); |
| | | int size = Integer.parseInt(map.get("size").toString()); |
| | | Page<Sensor> page = new Page(current,size); |
| | | QueryWrapper<Sensor> wrapper = new QueryWrapper(); |
| | | wrapper.eq("is_delete",Constants.NOT_DELETE); |
| | | wrapper.like("name",map.get("key")).or().like("code",map.get("key")); |
| | | int totleNum = sensorMapper.selectCount(wrapper); |
| | | String orderType = map.get("orderType").toString(); |
| | | if (orderType.equals(Constants.ORDER_ASC)){ |
| | | wrapper.orderByAsc("create_time"); |
| | | }else { |
| | | wrapper.orderByDesc("create_time"); |
| | | } |
| | | Page resultPage = sensorMapper.selectPage(page,wrapper); |
| | | List<Sensor> sensors = resultPage.getRecords(); |
| | | SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | List<Map<String,Object>> sensorList = new ArrayList<>(); |
| | | for (Sensor sensor:sensors) { |
| | | Map sensorMap = JSON.parseObject(JSON.toJSONString(sensor),Map.class); |
| | | String createTime = SDF.format(sensor.getCreateTime()); |
| | | String updateTime = SDF.format(sensor.getUpdateTime()); |
| | | sensorMap.put("createTime",createTime); |
| | | sensorMap.put("updateTime",updateTime); |
| | | sensorMap.put("key",sensor.getId()); |
| | | sensorList.add(sensorMap); |
| | | } |
| | | resultMap.put("manageRoles",sensorList); |
| | | resultMap.put("totalNumber",totleNum); |
| | | resultMap.put("current",current); |
| | | int totalPageNumber = totleNum/size; |
| | | if(totleNum%size != 0){ |
| | | totalPageNumber += 1; |
| | | } |
| | | resultMap.put("totalPageNumber",totalPageNumber); |
| | | return resultMap; |
| | | } |
| | | |
| | | public Map<String,Sensor> getAllSensorFromCache(){ |
| | | Map<String,Sensor> sensors = redisTemplate.opsForHash().entries(RedisConstants.SENSOR_KEY); |
| | | if(ObjectUtils.isEmpty(sensors)) |
| | | sensors = getAllSensorFromDB(); |
| | | //刷新缓存 |
| | | refreshCache(sensors); |
| | | return sensors; |
| | | } |
| | | |
| | | private Map<String,Sensor> getAllSensorFromDB(){ |
| | | QueryWrapper<Sensor> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("is_delete",Constants.NOT_DELETE); |
| | | List<Sensor> sensors = sensorMapper.selectList(wrapper); |
| | | Map<String,Sensor> result = new HashMap<>(); |
| | | for (Sensor sensor : sensors) { |
| | | result.put(sensor.getCode(),sensor); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private void refreshCache(){ |
| | | Map<String, Sensor> sensors = getAllSensorFromDB(); |
| | | refreshCache(sensors); |
| | | } |
| | | |
| | | private void refreshCache(Map<String,Sensor> sensors){ |
| | | //删除缓存 |
| | | redisTemplate.delete(RedisConstants.SENSOR_KEY); |
| | | //添加缓存 |
| | | redisTemplate.opsForHash().putAll(RedisConstants.SENSOR_KEY,sensors); |
| | | } |
| | | } |