jinpengyong
2023-08-30 73a9ce282d4c4368394161f5f39a8c5fa36beb7d
chore:测试提交
6 files added
8 files modified
339 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/CruiserController.java 21 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/ManageCoordinate.java 59 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/entity/ManageCoordinateDetail.java 66 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java 7 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/mapper/ManageCoordinateMapper.java 15 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/dto/historySecondCruiser/DustldDTO.java 19 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/DustldService.java 3 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java 86 ●●●●● patch | view | raw | blame | history
screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml 11 ●●●●● patch | view | raw | blame | history
screen-api/src/main/resources/mapper/ManageCoordinateMapper.xml 32 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/ManageCoordinate.java 3 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/ManageCoordinateMapper.xml 1 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/CruiserController.java
@@ -217,6 +217,27 @@
        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(),ResponseCodeEnum.SUCCESS.getMsg(),map);
    }
    /**
     * 下载尘负荷报告
     * @return
     */
    @PostMapping("dailyDustlds")
    public ResultMessage  dailyDustlds(HttpServletRequest request){
//        List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("files");
        Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
        Map<String, Object> map = dustldService.dailyDustlds(null,params);
        if (ObjectUtils.isEmpty(map)){
            return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(), ResponseCodeEnum.TARGET_IS_NULL.getMsg());
        }
        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(),ResponseCodeEnum.SUCCESS.getMsg(),map);
    }
    /**
     * 查看路段高值
     * @param id
screen-api/src/main/java/com/moral/api/entity/ManageCoordinate.java
New file
@@ -0,0 +1,59 @@
package com.moral.api.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
/**
 * 走航路段表
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ManageCoordinate extends Model<ManageCoordinate> {
    private static final long serialVersionUID = 1L;
    /**
     * 路段id
     */
    @TableId(value = "coordinate_id", type = IdType.AUTO)
    private  Integer coordinateId;
    /**
     * 起点名称
     */
    private  String startPoint;
    /**
     * 终点名称
     */
    private  String endPoint;
    /**
     *是否删除
     */
    private  Integer isDel;
    /**
     * 创建时间
     */
    private Date  createTime;
    /**
     * 修改时间
     */
    private Date  updateTime;
    /**
     * 修改人id
     *
     */
    private  Integer updateUserId;
    /**
     * 修改人名称
     */
    private  String updayeUserName;
    private Integer organizationId;
}
screen-api/src/main/java/com/moral/api/entity/ManageCoordinateDetail.java
New file
@@ -0,0 +1,66 @@
package com.moral.api.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
@Data
@EqualsAndHashCode(callSuper = false)
public class ManageCoordinateDetail extends Model<ManageCoordinateDetail> {
    private static final long serialVersionUID = 1L;
    /**
     * 经纬度id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private  Integer id;
    /**
     * 路段id
     */
    private  Integer coordinateId;
    /**
     * 经度
     */
    private  Double longitude;
    /**
     *纬度
     */
    private  Double latitude;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改时间
     */
    private Date  updateTime;
    /**
     * 修改人id
     *
     */
    private  Integer updateUserId;
    /**
     * 修改人名称
     */
    private  String updayeUserName;
    private String state;
    @TableField(exist = false)
    private  String code;
}
screen-api/src/main/java/com/moral/api/mapper/HistorySecondCruiserMapper.java
@@ -28,6 +28,7 @@
    List<Double> getDust(String start,String end,String mac);
    List<Map<String,Object>> getDusts(Map<String,Object> params);
    List<Map<String,Object>> getAllCruiserData(Map<String,Object> params);
screen-api/src/main/java/com/moral/api/mapper/ManageCoordinateDetailMapper.java
New file
@@ -0,0 +1,7 @@
package com.moral.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moral.api.entity.ManageCoordinateDetail;
public interface ManageCoordinateDetailMapper extends BaseMapper<ManageCoordinateDetail> {
}
screen-api/src/main/java/com/moral/api/mapper/ManageCoordinateMapper.java
New file
@@ -0,0 +1,15 @@
package com.moral.api.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moral.api.entity.ManageCoordinate;
import com.moral.api.pojo.dto.historySecondCruiser.DustldDTO;
public interface ManageCoordinateMapper extends BaseMapper<ManageCoordinate> {
    List<DustldDTO> CompareTo(Integer orgId);
}
screen-api/src/main/java/com/moral/api/pojo/dto/historySecondCruiser/DustldDTO.java
New file
@@ -0,0 +1,19 @@
package com.moral.api.pojo.dto.historySecondCruiser;
import lombok.Data;
@Data
public class DustldDTO {
    private String name;
    //纬度
    private String flyLat;
    //经度
    private String flyLon;
    //尘负荷
    private Double  data;
}
screen-api/src/main/java/com/moral/api/service/DustldService.java
@@ -18,6 +18,9 @@
     Map<String,Object> dailyDustld(Integer id ,List<MultipartFile> file);
    Map<String,Object> dailyDustlds(List<MultipartFile> file,Map<String, Object> params);
    Map<String,Object>  selectDust(Integer id );
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java
@@ -8,6 +8,8 @@
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -20,6 +22,8 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;
@@ -29,13 +33,17 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.Dustld;
import com.moral.api.entity.ManageCoordinate;
import com.moral.api.mapper.DustldMapper;
import com.moral.api.mapper.HistorySecondCruiserMapper;
import com.moral.api.mapper.ManageCoordinateMapper;
import com.moral.api.pojo.dto.historySecondCruiser.DustldDTO;
import com.moral.api.pojo.dust.DustForm;
import com.moral.api.pojo.dust.TimeForm;
import com.moral.api.service.DustldService;
import com.moral.util.DateUtils;
import com.moral.util.FileUtils;
import com.moral.util.TokenUtils;
@Service
@Slf4j
@@ -259,6 +267,84 @@
        return map;
    }
    @Autowired
    private ManageCoordinateMapper manageCoordinateMapper;
    @Override
    public Map<String, Object> dailyDustlds(List<MultipartFile> file,Map<String, Object> params) {
        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
        Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
        Integer orgId = (Integer) orgInfo.get("id");
        String time1 = params.get("time1").toString();
        String substring1 = time1.substring(5, 14);
        String time2 = params.get("time2").toString();
        String substring2 = time2.substring(5, 14);
        HashMap<String, Object> rsMap = new HashMap<>();
        List<Map<String, Object>> dusts = historySecondCruiserMapper.getDusts(params);
        Map<String, List<DustldDTO>> collect = manageCoordinateMapper.CompareTo(orgId).stream().collect(Collectors.groupingBy(o -> o.getName()));
        Set<String> strings = collect.keySet();
        ArrayList<DustForm> list1 = new ArrayList<>();
        ArrayList<DustForm> list2 = new ArrayList<>();
        StringBuilder builder = new StringBuilder();
        int i = 1;
        for (String string : strings) {
            DustForm dustForm = new DustForm();
            ArrayList<Double> doubleArrayList = new ArrayList<>();
            List<DustldDTO> dustldDTOS = collect.get(string);
            for (DustldDTO dustldDTO : dustldDTOS) {
                String flyLat = dustldDTO.getFlyLat();
                String flyLon = dustldDTO.getFlyLon();
                for (Map<String, Object> dust : dusts) {
                    String flyLat1 = Objects.nonNull(dust.get("flyLat")) ? dust.get("flyLat").toString() :"0";
                    String flyLon1 = Objects.nonNull(dust.get("flyLon")) ? dust.get("flyLon").toString() :"0";
//                    String flyLon1 = dust.get("flyLon").toString();
                    if (flyLat1.equals(flyLat) && flyLon1.equals(flyLon)){
                        Double dustld = Objects.nonNull(dust.get("dustld"))?Double.parseDouble(dust.get("dustld").toString()):0d;
                        if (dustld>=0 && dustld<40 ){
                            dustld = dustld + 170;
                        }
                        if (dustld>=40 && dustld<60 ){
                            dustld = dustld + 130;
                        }
                        if (dustld>=60 && dustld<100 ){
                            dustld = dustld + 110;
                        }
                        if (dustld>=100 && dustld<150 ){
                            dustld = dustld + 70;
                        }
                        if (dustld>=150 && dustld<180 ){
                            dustld = dustld + 30;
                        }
                        doubleArrayList.add(dustld);
                        break;
                    }
                }
            }
            Double ListAva = doubleArrayList.stream() .collect(Collectors.averagingDouble(Double::doubleValue));
            double rsAvg = new BigDecimal(ListAva/1000).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
            dustForm.setRoad(string);
            dustForm.setValue(rsAvg);
            if (rsAvg>=0.3){
             builder.append("("+i+")"+string);
             list1.add(dustForm);
            }else {
             list2.add(dustForm);
            }
        }
        //排序
        list1.sort(Comparator.comparing(DustForm::getValue).reversed());
        list2.sort(Comparator.comparing(DustForm::getValue).reversed());
        rsMap.put("list1",list1);
        rsMap.put("list2",list2);
        rsMap.put("data",builder);
        rsMap.put("list3","");
        rsMap.put("time",substring1+"-"+substring2);
        return rsMap;
    }
    /**
     * 查询尘负荷高值
     * @param id
screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml
@@ -67,4 +67,15 @@
        AND `time` <![CDATA[>=]]> #{time1}
        AND `time` <![CDATA[<=]]> #{time2}
    </select>
    <select id="getDusts" resultType="java.util.Map">
        SELECT
            value ->>'$.flylat' as flyLat,value ->>'$.flylon' as flyLon,value ->>'$.dustld' as dustld,
            `time`
        FROM `history_second_cruiser`
        WHERE mac = #{mac}
          AND `time` <![CDATA[>=]]> #{time1}
          AND `time` <![CDATA[<=]]> #{time2}
    </select>
</mapper>
screen-api/src/main/resources/mapper/ManageCoordinateMapper.xml
New file
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.api.mapper.ManageCoordinateMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.ManageCoordinate">
        <id column="coordinate_id" property="coordinateId" />
        <result column="start_point" property="startPoint" />
        <result column="end_point" property="endPoint" />
        <result column="is_del" property="isDel" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="update_user_id" property="updateUserId" />
        <result column="updaye_user_name" property="updayeUserName" />
        <result column="organization_id" property="organizationId" />
    </resultMap>
    <select id="CompareTo" resultType="com.moral.api.pojo.dto.historySecondCruiser.DustldDTO">
        SELECT
            mc.start_point as name ,
            md.longitude as flyLon,
            md.latitude as  flyLat
        FROM
            manage_coordinate AS mc
                LEFT JOIN manage_coordinate_detail AS md ON mc.coordinate_id = md.coordinate_id
        WHERE
            mc.is_del =0
        and mc.organization_id=#{orgId}
    </select>
</mapper>
screen-manage/src/main/java/com/moral/api/entity/ManageCoordinate.java
@@ -54,4 +54,7 @@
     * 修改人名称
     */
    private  String updayeUserName;
    private  Integer organizationId;
}
screen-manage/src/main/java/com/moral/api/service/impl/ManageCoordinateServiceImpl.java
@@ -12,10 +12,16 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.entity.ManageCoordinate;
import com.moral.api.entity.ManageCoordinateDetail;
import com.moral.api.entity.SpecialDevice;
import com.moral.api.mapper.DeviceMapper;
import com.moral.api.mapper.ManageCoordinateDetailMapper;
import com.moral.api.mapper.ManageCoordinateMapper;
import com.moral.api.mapper.SpecialDeviceMapper;
import com.moral.api.service.DeviceService;
import com.moral.api.service.ManageCoordinateDetailService;
import com.moral.api.service.ManageCoordinateService;
import com.moral.api.service.SpecialDeviceService;
import com.moral.util.TokenUtils;
@Service
@@ -25,7 +31,7 @@
    private ManageCoordinateMapper manageCoordinateMapper;
    @Autowired
    private ManageCoordinateDetailMapper manageCoordinateDetailMapper;
    private SpecialDeviceMapper specialDeviceMapper;
    /**
     * 新增路段
@@ -34,6 +40,12 @@
     */
    @Override
    public Integer interCoordinate(Map<String, Object> params) {
//        String mac = params.get("mac").toString();
        String mac ="p5dnd7a0243625";
        QueryWrapper<SpecialDevice> wrapper = new QueryWrapper<>();
        wrapper.eq("mac",mac);
        wrapper.eq("is_delete","0");
        SpecialDevice specialDevice = specialDeviceMapper.selectOne(wrapper);
        String startPoint = params.get("startPoint").toString();
        String endPoint = params.get("endPoint").toString();
        QueryWrapper<ManageCoordinate> queryWrapper = new QueryWrapper<>();
@@ -49,6 +61,7 @@
        manageCoordinate.setStartPoint(startPoint);
        manageCoordinate.setEndPoint(endPoint);
        manageCoordinate.setIsDel(0);
        manageCoordinate.setOrganizationId(specialDevice.getOrganizationId());
        int code = manageCoordinateMapper.insert(manageCoordinate);
        return code;
    }
screen-manage/src/main/resources/mapper/ManageCoordinateMapper.xml
@@ -12,6 +12,7 @@
        <result column="update_time" property="updateTime" />
        <result column="update_user_id" property="updateUserId" />
        <result column="updaye_user_name" property="updayeUserName" />
        <result column="organization_id" property="organizationId" />
    </resultMap>