kaiyu
2021-08-26 19b72fbd2e6b30a23a06dd284619784a096bc896
screen-manage
单位转换插入添加日志功能
修复organization插入Bug
1 files deleted
9 files modified
188 ■■■■ changed files
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java 6 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionQueryVO.java 26 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/SensorService.java 9 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java 49 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java 3 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java 7 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java 18 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java 44 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/application-moduleFormColumn.yml 24 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationUpdateForm.java
@@ -67,9 +67,9 @@
                        ObjectUtils.isEmpty(areaCode) &&
                        ObjectUtils.isEmpty(locationLevelCode) &&
                        ObjectUtils.isEmpty(address) &&
                        ObjectUtils.isEmpty(phone) &&
                        ObjectUtils.isEmpty(email) &&
                        ObjectUtils.isEmpty(wechat) &&
                        phone==null &&
                        email==null &&
                        wechat==null &&
                        ObjectUtils.isEmpty(expireTime)
                )
            return false;
screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionQueryVO.java
@@ -34,6 +34,13 @@
    private List<UnitConversionVO> unitConversions;
    /**
    * @Description: DTO转为VO
            * @Param: [dto]
            * @return: com.moral.api.pojo.vo.unitConversion.UnitConversionQueryVO
            * @Author: 陈凯裕
            * @Date: 2021/8/26
            */
    public static UnitConversionQueryVO convert(UnitConversionQueryDTO dto) {
        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
            return null;
@@ -56,6 +63,13 @@
        return vo;
    }
    /**
    * @Description: 单个DTO转为VO
            * @Param: [dto]
            * @return: com.moral.api.pojo.vo.unitConversion.UnitConversionVO
            * @Author: 陈凯裕
            * @Date: 2021/8/26
            */
    private static UnitConversionVO convertToQueryPage(UnitConversionDTO dto) {
        UnitConversionVO vo = new UnitConversionVO();
        UnitConversion unitConversion = dto.getUnitConversion();
@@ -69,16 +83,4 @@
        return vo;
    }
    /**
     * @Description: 将带有占位符的公式转为带有原单位,目标单位的公式
     * @Param: [formula]
     * @return: java.lang.String
     * @Author: 陈凯裕
     * @Date: 2021/5/12
     */
    public static String formulaConvert(String formula, String originalUnitName, String targetUnitName) {
        formula = formula.replace(Constants.FORMULA_PLACEHOLDER, originalUnitName);
        formula += "=" + targetUnitName;
        return formula;
    }
}
screen-manage/src/main/java/com/moral/api/service/SensorService.java
@@ -35,5 +35,14 @@
    Map<String, Sensor> getAllSensorFromCache();
    /**
    * @Description: 通过code获取sensor对象
            * @Param: [code]
            * @return: com.moral.api.entity.Sensor
            * @Author: 陈凯裕
            * @Date: 2021/8/26
            */
    Sensor getSensorByCode(String code);
    void refreshCache();
}
screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
@@ -30,7 +30,7 @@
    SysDictDataDTO deleteData(SysDictDataDeleteForm form);
    /**
    * @Description: 根据字典数据
    * @Description: 更新字典数据
            * @Param: [form]
            * @return: com.moral.api.entity.sysDictData
            * @Author: 陈凯裕
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -52,7 +52,6 @@
 * @since 2021-03-09
 */
@Service
@ConfigurationProperties(prefix = "log-aspect")
public class ManageAccountServiceImpl extends ServiceImpl<ManageAccountMapper, ManageAccount> implements ManageAccountService {
@@ -66,12 +65,6 @@
    ManageAccountRoleMapper manageAccountRoleMapper;
    @Autowired
    LogUtils logUtils;
    Map<String, String> manageAccountFormMap;
    public void setManageAccountFormMap(Map<String, String> manageAccountFormMap) {
        this.manageAccountFormMap = manageAccountFormMap;
    }
    /**
     * @Description: 登陆接口
@@ -375,48 +368,6 @@
        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return accountDTO;
    }
    /**
     * @Description: 将更新操作插入日志
     * @Param: [form, newAccount, oldAccount]
     * @return: void
     * @Author: 陈凯裕
     * @Date: 2021/4/8
     */
    private void insertUpdateLog(AccountUpdateForm updateForm, ManageAccount oldAccount) {
        //操作插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("修改了用户:").append(oldAccount.getUserName() + ";")
                .append("账号:" + oldAccount.getAccount() + ";");
        //对象转为Map,获取对象更新前后的属性
        Map<String, Object> newParameters = JSONObject.parseObject(JSON.toJSONString(updateForm), Map.class);
        Map<String, Object> oldParameters = JSONObject.parseObject(JSON.toJSONString(oldAccount), Map.class);
        //遍历配置文件中的Map,将属性转化为汉字
        Set<String> keys = manageAccountFormMap.keySet();
        for (String key : keys) {
            String value = manageAccountFormMap.get(key);//属性对应的汉字
            if ("password".equals(key)) {//密码特殊处理,不显示在日志上
                if (!ObjectUtils.isEmpty(updateForm.getPassword())) {//判断密码是否进行了更新
                    content.append("修改了密码;");
                }
            } else {//其他属性处理
                if (newParameters.get(key) != null) {
                    String newValue = "空";
                    String oldValue = "空";
                    if (newParameters.get(key) != null && !newParameters.get(key).equals(" ")) {
                        newValue = String.valueOf(newParameters.get(key));
                    }
                    if (oldParameters.get(key) != null && !oldParameters.get(key).equals(" ")) {
                        oldValue = String.valueOf(oldParameters.get(key));
                    }
                    content.append(value + ":" + oldValue + "->" + newValue + ";");
                }
            }
        }
        logUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
    }
    /**
    * @Description: 更新操作插入日志
screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java
@@ -272,7 +272,7 @@
     * @Author: 陈凯裕
     * @Date: 2021/5/13
     */
    public void combinationParentChildrenMenus(List<Menu> menus) {
    private void combinationParentChildrenMenus(List<Menu> menus) {
        //组合menu父子结构
        Map<Integer, Menu> menuMap = new HashMap<>();
        for (Menu menu : menus) {
@@ -464,3 +464,4 @@
    }
}
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -50,7 +50,6 @@
 * @since 2021-04-06
 */
@Service
@ConfigurationProperties(prefix = "log-aspect")
public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Organization> implements OrganizationService {
    @Autowired
@@ -67,12 +66,6 @@
    @Autowired
    MonitorPointService monitorPointService;
    Map<String, String> organizationFormMap;
    public void setOrganizationFormMap(Map<String, String> organizationFormMap) {
        this.organizationFormMap = organizationFormMap;
    }
    /**
     * @Description: 添加客户组织
screen-manage/src/main/java/com/moral/api/service/impl/SensorServiceImpl.java
@@ -360,6 +360,24 @@
    }
    @Override
    public Sensor getSensorByCode(String code) {
        if (code == null)
            return null;
        //从缓存中读取
        Sensor sensor = (Sensor) redisTemplate.opsForHash().get(RedisConstants.SENSOR_KEY, code);
        //如果缓存为空则从数据库读取
        if (sensor == null) {
            QueryWrapper<Sensor> wrapper = new QueryWrapper<>();
            sensor = new Sensor();
            sensor.setCode(code);
            sensor.setIsDelete(Constants.NOT_DELETE);
            wrapper.setEntity(sensor);
            sensor = sensorMapper.selectOne(wrapper);
        }
        return sensor;
    }
    @Override
    public void refreshCache(){
        Map<String, Sensor> sensors = getAllSensorFromDB();
        refreshCache(sensors);
screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
@@ -5,6 +5,7 @@
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;
@@ -14,9 +15,11 @@
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.LogUtils;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.constant.ResponseCodeEnum;
@@ -48,6 +51,11 @@
    SysDictDataService sysDictDataService;
    @Autowired
    RedisTemplate redisTemplate;
    @Autowired
    LogUtils logUtils;
    @Autowired
    SensorService sensorService;
    @Override
    @Transactional
@@ -82,6 +90,8 @@
        unitConversionMapper.insert(unitConversion);
        //刷新缓存
        refreshCache();
        //插入日志
        insertLog(unitConversion);
        //封装返回数据
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -168,6 +178,7 @@
    }
    @Override
    @Transactional
    public UnitConversionDTO deleteUnitConversion(UnitConversionDeleteForm form) {
        //创建返回对象
        UnitConversionDTO dto = new UnitConversionDTO();
@@ -203,4 +214,37 @@
        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);
    }
}
screen-manage/src/main/resources/application-moduleFormColumn.yml
File was deleted