jinpengyong
2023-08-03 4e48dd4711cab4528fba7f2ee01a6191c08b34aa
chore:批量修改校准值
2 files added
5 files modified
229 ■■■■■ changed files
screen-manage/src/main/java/com/moral/api/controller/DeviceAdjustValueController.java 51 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/mapper/DeviceAdjustValueMapper.java 6 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/adjust/AdjustDTO.java 13 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/adjust/AdjustForm.java 30 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java 23 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java 93 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/DeviceAdjustValueMapper.xml 13 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/DeviceAdjustValueController.java
@@ -2,15 +2,25 @@
import com.alibaba.fastjson.JSON;
import com.moral.api.entity.DeviceAdjustValue;
import com.moral.api.pojo.dto.adjust.AdjustDTO;
import com.moral.api.pojo.form.adjust.AdjustForm;
import com.moral.api.service.DeviceAdjustValueService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
import com.moral.util.WebUtils;
import com.sun.org.apache.regexp.internal.RE;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@@ -93,4 +103,45 @@
        return ResultMessage.fail(Integer.parseInt(resultMap.get("code").toString()),resultMap.get("msg").toString());
    }
    /**
     * 批量查询校准值
     * @param parameters
     * @return
     */
    @PostMapping("getAllAdjust")
    public ResultMessage getAllAdjust(@RequestBody Map<String, Object> parameters){
        if (!parameters.containsKey("id")|| !parameters.containsKey("code")){
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        List<Map<String, Object>> allAdjust = deviceAdjustValueService.getAllAdjust(parameters);
        if (ObjectUtils.isEmpty(allAdjust)){
            return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(),
                    ResponseCodeEnum.TARGET_IS_NULL.getMsg());
        }
        return ResultMessage.ok(allAdjust);
    }
    /**
     * 批量修改校准值
     * @return
     */
    @PostMapping("updateAllAdjust")
    public ResultMessage updateAllAdjust( @RequestBody Map<String, List<AdjustForm>> parameters){
        List<AdjustForm> o = parameters.get("AdjustForm");
        if (ObjectUtils.isEmpty(o)){
            return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(),
                    ResponseCodeEnum.TARGET_IS_NULL.getMsg());
        }
        Map<String, Object> map = deviceAdjustValueService.updateAllAdjust(o);
        int code = Integer.parseInt(map.get("code").toString());
        if (code != 0){
            return ResultMessage.fail(ResponseCodeEnum.FAIL.getCode(),ResponseCodeEnum.FAIL.getMsg());
        }
        return ResultMessage.fail(ResponseCodeEnum.SUCCESS.getCode(),ResponseCodeEnum.SUCCESS.getMsg());
//        return ResultMessage.ok(map);
    }
}
screen-manage/src/main/java/com/moral/api/mapper/DeviceAdjustValueMapper.java
@@ -2,7 +2,10 @@
import com.moral.api.entity.DeviceAdjustValue;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moral.api.pojo.dto.adjust.AdjustDTO;
import java.util.List;
import java.util.Map;
/**
@@ -17,4 +20,7 @@
    void updateDeviceAdjustValue(Map map);
    List<AdjustDTO> selectAllAdjust(Map map);
}
screen-manage/src/main/java/com/moral/api/pojo/dto/adjust/AdjustDTO.java
New file
@@ -0,0 +1,13 @@
package com.moral.api.pojo.dto.adjust;
import lombok.Data;
@Data
public class AdjustDTO {
    private Integer id;
    private String mac;
    private String name;
    private String value;
}
screen-manage/src/main/java/com/moral/api/pojo/form/adjust/AdjustForm.java
New file
@@ -0,0 +1,30 @@
package com.moral.api.pojo.form.adjust;
import lombok.Data;
@Data
public class AdjustForm {
    private  Integer id;
    private  String  mac;
    private  String  value;
    private String name;
    private String agehou;
    private String aqi;
    private String cel;
    private String code;
}
screen-manage/src/main/java/com/moral/api/service/DeviceAdjustValueService.java
@@ -2,8 +2,12 @@
import com.moral.api.entity.DeviceAdjustValue;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.dto.adjust.AdjustDTO;
import com.moral.api.pojo.form.adjust.AdjustForm;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
@@ -74,4 +78,23 @@
     */
    Map<String,Object> refreshRedis();
    /**
     * 批量查询校准值
     * @param parameters
     * @return
     */
    List<Map<String, Object>> getAllAdjust(Map<String, Object> parameters);
    /**
     * 批量修改校准值
     * @param paras
     * @return
     */
    Map<String, Object> updateAllAdjust(List<AdjustForm> paras);
}
screen-manage/src/main/java/com/moral/api/service/impl/DeviceAdjustValueServiceImpl.java
@@ -2,6 +2,7 @@
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.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Device;
@@ -12,6 +13,8 @@
import com.moral.api.mapper.DeviceMapper;
import com.moral.api.mapper.SensorMapper;
import com.moral.api.mapper.SpecialDeviceMapper;
import com.moral.api.pojo.dto.adjust.AdjustDTO;
import com.moral.api.pojo.form.adjust.AdjustForm;
import com.moral.api.service.DeviceAdjustValueService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.util.LogUtils;
@@ -19,6 +22,7 @@
import com.moral.constant.ResponseCodeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.jdbc.object.UpdatableSqlQuery;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
@@ -27,6 +31,7 @@
import javax.servlet.http.HttpServletRequest;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -262,6 +267,94 @@
        return resultMap;
    }
    /**
     * 批量修改校准值
     *
     * @param parameters
     * @return
     */
    @Override
    public List<Map<String, Object>> getAllAdjust(Map<String, Object> parameters) {
        ArrayList<Map<String, Object>> rsList = new ArrayList<>();
        String code = parameters.get("code").toString();
        List<AdjustDTO> adjustDTOS = deviceAdjustValueMapper.selectAllAdjust(parameters);
        for (AdjustDTO adjustDTO : adjustDTOS) {
            HashMap<String, Object> map = new HashMap<>();
            String value = adjustDTO.getValue();
            if (ObjectUtils.isEmpty(value)){
                if (code.equals("a99054")){
                    value ="cel*1";
                    map.put("cel",1);
                }else {
                    value ="aqi*0+cel*1";
                    map.put("aqi",0);
                    map.put("cel",1);
                }
            }else {
                if (code.equals("a99054")){
                    String[] split = value.split("\\*");
                    map.put("cel",Double.parseDouble(split[1]));
                }else {
                    String[] split = value.split("\\+");
                    String[] split1 = split[0].toString().split("\\*");
                    map.put("aqi",Double.parseDouble(split1[1]));
                    String[] split2 = split[1].toString().split("\\*");
                    map.put("cel",Double.parseDouble(split2[1]));
                }
            }
            map.put("value",value);
            map.put("name",adjustDTO.getName());
            map.put("id",adjustDTO.getId());
            map.put("mac",adjustDTO.getMac());
            map.put("code",code);
            rsList.add(map);
        }
        return rsList;
    }
    /**
     * 批量修改校准值
     *
     * @param paras
     * @return
     */
    @Override
    @Transactional
    public Map<String, Object> updateAllAdjust(List<AdjustForm> paras) {
        Map<String,Object> resultMap = new HashMap<>();
        for (AdjustForm adjustForm : paras) {
            DeviceAdjustValue deviceAdjustValue = new DeviceAdjustValue();
            QueryWrapper<DeviceAdjustValue> wrapper1 = new QueryWrapper<>();
            wrapper1.eq("mac",adjustForm.getMac());
            wrapper1.eq ("sensor_code",adjustForm.getCode());
            Integer integer = deviceAdjustValueMapper.selectCount(wrapper1);
            if (integer==0){
                deviceAdjustValue.setValue(adjustForm.getAgehou());
                deviceAdjustValue.setCreateTime(new Date());
                deviceAdjustValue.setIsDelete("0");
                deviceAdjustValue.setUpdateTime(new Date());
                deviceAdjustValue.setSensorCode(adjustForm.getCode());
                deviceAdjustValue.setMac(adjustForm.getMac());
                deviceAdjustValue.setEndTime(Time.valueOf("23:59:00"));
                deviceAdjustValue.setStartTime(Time.valueOf("00:00:00"));
                deviceAdjustValueMapper.insert(deviceAdjustValue);
            }else {
                deviceAdjustValue.setValue(adjustForm.getAgehou());
                deviceAdjustValue.setUpdateTime(new Date());
                deviceAdjustValue.setId(adjustForm.getId());
                deviceAdjustValueMapper.updateById(deviceAdjustValue);
            }
            //刷新缓存
            refreshCache(adjustForm.getMac());
        }
        resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode());
        resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
        return resultMap;
    }
    public void refreshRedisAll(){
        refreshRedis();
    }
screen-manage/src/main/resources/mapper/DeviceAdjustValueMapper.xml
@@ -41,4 +41,17 @@
        where id = #{id}
    </update>
    <select id="selectAllAdjust" resultType="com.moral.api.pojo.dto.adjust.AdjustDTO">
        SELECT     de.`name` ,
                ds.id,
                de.mac,
                ds.`value`
        FROM
            device AS de
            LEFT JOIN device_adjust_value AS ds ON ds.mac = de.mac AND ds.sensor_code = #{code}  AND ds.is_delete =0
        WHERE
          de.monitor_point_id = #{id}
          AND de.is_delete = 0
    </select>
</mapper>