From 100690a225167806a08f64eafff3326564a7154a Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Fri, 13 Oct 2023 17:06:22 +0800 Subject: [PATCH] fix:补偿提交 --- screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java | 181 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 166 insertions(+), 15 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java index 5075715..98c461c 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java @@ -1,9 +1,11 @@ package com.moral.api.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.config.mybatis.wrapper.NullFilterWrapper; +import com.moral.api.entity.Sensor; import com.moral.api.entity.SysDictData; import com.moral.api.entity.UnitConversion; import com.moral.api.mapper.UnitConversionMapper; @@ -13,13 +15,18 @@ import com.moral.api.pojo.form.unitConversion.UnitConversionInsertForm; import com.moral.api.pojo.form.unitConversion.UnitConversionQueryForm; import com.moral.api.pojo.form.unitConversion.UnitConversionUpdateForm; +import com.moral.api.service.SensorService; import com.moral.api.service.SysDictDataService; import com.moral.api.service.UnitConversionService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.util.CacheUtils; +import com.moral.api.util.LogUtils; import com.moral.constant.Constants; +import com.moral.constant.RedisConstants; import com.moral.constant.ResponseCodeEnum; import com.moral.util.ConvertUtils; 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; @@ -43,27 +50,47 @@ UnitConversionMapper unitConversionMapper; @Autowired SysDictDataService sysDictDataService; + @Autowired + RedisTemplate redisTemplate; + @Autowired + SensorService sensorService; + @Override @Transactional public UnitConversionDTO insertUnitConversion(UnitConversionInsertForm form) { //������������������ - UnitConversionDTO dto = new UnitConversionDTO(); + UnitConversionDTO dto = new UnitConversionDTO(); //������ UnitConversion unitConversion = form.formConvertEntity(); //������������������������������������������������������������������������ - QueryWrapper existWrapper = new QueryWrapper(); - existWrapper.eq("original_unit_key",unitConversion.getOriginalUnitKey()); - existWrapper.eq("target_unit_key",unitConversion.getTargetUnitKey()); - existWrapper.eq("is_delete",Constants.NOT_DELETE); - UnitConversion existConversion = unitConversionMapper.selectOne(existWrapper); - if(!ObjectUtils.isEmpty(existConversion)){ - dto.setCode(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getCode()); - dto.setMsg(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getMsg()); - return dto; + QueryWrapper<UnitConversion> existWrapper = new QueryWrapper(); + existWrapper.eq("original_unit_key", unitConversion.getOriginalUnitKey()); + existWrapper.eq("target_unit_key", unitConversion.getTargetUnitKey()); + existWrapper.eq("is_delete", Constants.NOT_DELETE); + List<UnitConversion> unitConversions = unitConversionMapper.selectList(existWrapper); + if (ObjectUtils.isEmpty(unitConversion.getSensorCode())) { + if (!ObjectUtils.isEmpty(unitConversions)) { + dto.setCode(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getMsg()); + return dto; + } + } + if (!ObjectUtils.isEmpty(unitConversion.getSensorCode())) { + for (UnitConversion conversion : unitConversions) { + if (ObjectUtils.isEmpty(conversion.getSensorCode())||conversion.getSensorCode().equals(unitConversion.getSensorCode())) { + dto.setCode(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getMsg()); + return dto; + } + } } //������������ unitConversionMapper.insert(unitConversion); + //������������ + refreshCache(); + //������������ + insertLog(unitConversion); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -85,8 +112,8 @@ //������������������ Page<UnitConversion> queryPage = new Page<>(page, size); NullFilterWrapper<UnitConversion> wrapper = new NullFilterWrapper<>(); - wrapper.eq("original_unit_key",originalUnitKey); - wrapper.eq("target_unit_key",targetUnitKey); + wrapper.eq("original_unit_key", originalUnitKey); + wrapper.eq("target_unit_key", targetUnitKey); //������������������������ if (!ObjectUtils.isEmpty(order) && !ObjectUtils.isEmpty(orderType)) { if (orderType.equals(Constants.ORDER_ASC)) @@ -141,6 +168,10 @@ oldUnitConversion = unitConversionMapper.selectOne(oldWrapper); //������ unitConversionMapper.updateById(unitConversion); + //������������ + refreshCache(); + //������������������ + updateLog(oldUnitConversion,form.getFormula()); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); @@ -148,6 +179,7 @@ } @Override + @Transactional public UnitConversionDTO deleteUnitConversion(UnitConversionDeleteForm form) { //������������������ UnitConversionDTO dto = new UnitConversionDTO(); @@ -162,12 +194,131 @@ oldUnitConversion = unitConversionMapper.selectOne(oldWrapper); //������������������ UpdateWrapper deleteWrapper = new UpdateWrapper(); - deleteWrapper.set("is_delete",Constants.DELETE); - deleteWrapper.eq("id",id); - unitConversionMapper.update(null,deleteWrapper); + deleteWrapper.set("is_delete", Constants.DELETE); + deleteWrapper.eq("id", id); + unitConversionMapper.update(null, deleteWrapper); + //������������ + refreshCache(); + //������������������ + deleteLog(oldUnitConversion); //������������������ dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } + + /*������������*/ + @Override + public void refreshCache(){ + //������������������ + CacheUtils.refreshDeviceAlarmInfo(); + redisTemplate.delete((RedisConstants.UNIT_CONVERSION)); + QueryWrapper<UnitConversion> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_delete",Constants.NOT_DELETE); + List<UnitConversion> unitConversions = unitConversionMapper.selectList(queryWrapper); + if(!ObjectUtils.isEmpty(unitConversions)) + redisTemplate.opsForList().leftPushAll(RedisConstants.UNIT_CONVERSION,unitConversions); + } + + /** + * @Description: ������������������������ + * @Param: [unitConversion] + * @return: void + * @Author: ��������� + * @Date: 2021/8/26 + */ + private void insertLog(UnitConversion unitConversion){ + //������������������������ + Map<String, SysDictData> units = sysDictDataService.getDictDatasByType("unit"); + String originalUnitKey = unitConversion.getOriginalUnitKey(); + String targetUnitKey = unitConversion.getTargetUnitKey(); + SysDictData originalData = units.get(originalUnitKey); + SysDictData targetData = units.get(targetUnitKey); + String formula = unitConversion.getFormula(); + //������������������ + formula = formula.replace(Constants.FORMULA_PLACEHOLDER, "���������"); + formula = "������������"+" = "+formula; + String sensorCode = unitConversion.getSensorCode(); + StringBuilder content = new StringBuilder(); + content.append("���������������������������;"); + content.append("������������"+originalData.getDataValue()+";"); + content.append("���������������"+targetData.getDataValue()+";"); + content.append("���������������"+formula+";"); + if(sensorCode!=null){ + Sensor sensor = sensorService.getSensorByCode(sensorCode); + if(sensor!=null) + content.append("���������������"+sensor.getName()+";"); + } + + LogUtils.saveOperationForManage(content.toString(),Constants.INSERT_OPERATE_TYPE); + } + + /** + * @Description: ������������������������ + * @Param: [unitConversion] + * @return: void + * @Author: ��������� + * @Date: 2021/8/26 + */ + private void deleteLog(UnitConversion unitConversion){ + //������������������������ ��������� ������������������ + Map<String, SysDictData> units = sysDictDataService.getDictDatasByType("unit"); + String originalUnitKey = unitConversion.getOriginalUnitKey(); + String targetUnitKey = unitConversion.getTargetUnitKey(); + SysDictData originalData = units.get(originalUnitKey); + SysDictData targetData = units.get(targetUnitKey); + //������������������ + String formula = unitConversion.getFormula(); + formula = formula.replace(Constants.FORMULA_PLACEHOLDER, "���������"); + formula = "������������"+" = "+formula; + + StringBuilder content = new StringBuilder("���������������������;"); + content.append("������������"+originalData.getDataValue()+";"); + content.append("���������������"+targetData.getDataValue()+";"); + content.append("���������������"+formula+";"); + //������������������������������������������������ + String sensorCode = unitConversion.getSensorCode(); + if(sensorCode!=null){ + Sensor sensor = sensorService.getSensorByCode(sensorCode); + if(sensor!=null) + content.append("���������������"+sensor.getName()+";"); + } + LogUtils.saveOperationForManage(content.toString(),Constants.DELETE_OPERATE_TYPE); + } + + /** + * @Description: ������������������������ + * @Param: [unitConversion] + * @return: void + * @Author: ��������� + * @Date: 2021/8/26 + */ + private void updateLog(UnitConversion oldUnitConversion,String newFormular){ + StringBuilder content = new StringBuilder("���������������������������;"); + //������������������������ ��������� ������������������ + Map<String, SysDictData> units = sysDictDataService.getDictDatasByType("unit"); + String originalUnitKey = oldUnitConversion.getOriginalUnitKey(); + String targetUnitKey = oldUnitConversion.getTargetUnitKey(); + SysDictData originalData = units.get(originalUnitKey); + SysDictData targetData = units.get(targetUnitKey); + //��������������������� + newFormular = newFormular.replace(Constants.FORMULA_PLACEHOLDER, "���������"); + newFormular = "������������"+" = "+newFormular; + //��������������� + String oldFormula = oldUnitConversion.getFormula(); + oldFormula = oldFormula.replace(Constants.FORMULA_PLACEHOLDER, "���������"); + oldFormula = "������������"+" = "+oldFormula; + + content.append("������������"+originalData.getDataValue()+";"); + content.append("���������������"+targetData.getDataValue()+";"); + content.append("���������������"+oldFormula+"->"+newFormular+";"); + //������������������������������������������������ + String sensorCode = oldUnitConversion.getSensorCode(); + if(sensorCode!=null){ + Sensor sensor = sensorService.getSensorByCode(sensorCode); + if(sensor!=null) + content.append("���������������"+sensor.getName()+";"); + } + LogUtils.saveOperationForManage(content.toString(),Constants.UPDATE_OPERATE_TYPE); + } } -- Gitblit v1.8.0