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>