jinpengyong
2023-09-15 cc2e35bac3aca6d98b337a0b306c279f036ce989
Merge remote-tracking branch 'origin/wb' into qa
1 files added
4 files modified
84 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/CruiserController.java 54 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java 22 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java 4 ●●● patch | view | raw | blame | history
screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml 4 ●●●● patch | view | raw | blame | history
screen-api/src/main/resources/word/尘负荷监测报告.docx patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/CruiserController.java
@@ -6,7 +6,6 @@
import com.deepoove.poi.data.TextRenderData;
import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserResultDTO;
import cn.afterturn.easypoi.exception.word.WordExportException;
import cn.afterturn.easypoi.word.WordExportUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -20,6 +19,7 @@
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@@ -32,12 +32,13 @@
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -242,17 +243,20 @@
     * @return
     */
    @PostMapping("dailyDustlds")
    public ResultMessage  dailyDustlds(HttpServletRequest request) throws IOException {
//        List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("files");
        Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
    public ResultMessage  dailyDustlds(@RequestBody Map<String,Object> params, HttpServletResponse response) throws IOException {
//        Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
        if (!params.containsKey("mac") || !params.containsKey("startTime") || !params.containsKey("endTime")){
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        Map<String, Object> map = dustldService.dailyDustlds(null,params);
        test(map);
        test(map,response);
        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);
//        return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(),ResponseCodeEnum.SUCCESS.getMsg(),map);
        return ResultMessage.ok();
    }
@@ -315,9 +319,10 @@
    }
    public void test( Map<String, Object> params) throws IOException {
    public void test( Map<String, Object> params,HttpServletResponse response) throws IOException {
//        String path="D:\\尘负荷监测报告.docx";
        String path = getPath("尘负荷监测报告.docx");
        try {
        //获取当前模板的路径
        File rootFile = new File(ResourceUtils.getURL("classpath:").getPath());
        File file= new File(rootFile, path);
@@ -327,34 +332,45 @@
        HashMap<String, Object> map = new HashMap<>();
        //设置单元格,表头
        RowRenderData header1 = RowRenderData.build(new TextRenderData("6495ED", "序号"), new TextRenderData("6495ED", "道路"),new TextRenderData("6495ED", "平均尘负荷(克/平方米)"));
        RowRenderData header2 = RowRenderData.build(new TextRenderData("6495ED", "序号"), new TextRenderData("6495ED", "道路"),new TextRenderData("6495ED", "平均尘负荷(克/平方米)"));
        //设置表内容,如果在实际应用中,传入一个list集合或者数组,方可用foreach进行循环填充
        List<DustForm> list1 = (List<DustForm>) params.get("list1");
        List<DustForm> list2 = (List<DustForm>) params.get("list2");
            ArrayList<Map<String, Object>> mapArrayList = (ArrayList<Map<String, Object>>) params.get("list3");
        ArrayList<RowRenderData> rsList1 = new ArrayList<>();
        ArrayList<RowRenderData> rsList2 = new ArrayList<>();
            ArrayList<RowRenderData> rsList3 = new ArrayList<>();
        for (int i = 0; i < list1.size(); i++) {
            DustForm dustForm = list1.get(i);
            RowRenderData row0 = RowRenderData.build(i+1+"",dustForm.getRoad(), dustForm.getValue()+"");
            rsList1.add(row0);
        }
        for (int i = 0; i < list2.size(); i++) {
            DustForm dustForm = list2.get(i);
            RowRenderData row0 = RowRenderData.build(i+1+"",dustForm.getRoad(), dustForm.getValue()+"");
            rsList2.add(row0);
            for (int i = 0; i < mapArrayList.size(); i++) {
                Map<String, Object> map1 = mapArrayList.get(i);
                RowRenderData row = RowRenderData.build(i + 1 + "", map1.get("road").toString(), map1.get("value1").toString(), map1.get("value2").toString(), map1.get("value3").toString());
                rsList3.add(row);
        }
        map.put("table1", new MiniTableRenderData(header1, rsList1));
        map.put("table2", new MiniTableRenderData(header2, rsList2));
            map.put("table3", new MiniTableRenderData(rsList3));
        map.put("data",params.get("data").toString());
        map.put("time",params.get("time").toString());
            map.put("date1",params.get("date1").toString());
            map.put("date2",params.get("date2").toString());
        compile.render(map);
//        compile.write(new FileOutptStream("尘负荷监测报告"+paramsu.get("time").toString()+".docx"));
        compile.writeToFile("G:\\home\\mon1\\" + "尘负荷监测报告"+params.get("time").toString()+".docx");
//            compile.writeToFile("G:\\home\\mon1\\" + "尘负荷监测报告"+params.get("time").toString()+".docx");
//        FileOutputStream out = new FileOutputStream("尘负荷监测报告" + params.get("time").toString() + ".docx");
            compile.write(response.getOutputStream());
        compile.close();
        } catch (IOException e) {
            log.error ("导出失败,请联系网站管理员!", e);
        }
    }
screen-api/src/main/java/com/moral/api/service/impl/DustldServiceImpl.java
@@ -282,10 +282,10 @@
        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 time1 = params.get("startTime").toString();
        String dateString1 = DateUtils.stringToDateString(time1, DateUtils.yyyy_MM_dd_HH_mm_ss_EN, DateUtils.yyyy_MM_dd_HH_mm_CN);
        String rsTime1 = dateString1.substring(5, 14);
        String time2 = params.get("time2").toString();
        String time2 = params.get("endTime").toString();
        String dateString2 = DateUtils.stringToDateString(time2, DateUtils.yyyy_MM_dd_HH_mm_ss_EN, DateUtils.yyyy_MM_dd_HH_mm_CN);
        String rsTime2 = dateString2.substring(5, 14);
        HashMap<String, Object> rsMap = new HashMap<>();
@@ -293,7 +293,7 @@
        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;
@@ -338,15 +338,14 @@
            if (ObjectUtils.isEmpty(doubleArrayList)){
                continue;
            }
            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);
            list1.add(dustForm);
            if (rsAvg>=0.3){
             builder.append("("+i+")"+string);
             i++;
             list1.add(dustForm);
             //添加高值路段
                QueryWrapper<MaxRoad> wrapper = new QueryWrapper<>();
                wrapper.eq("name",string);
@@ -359,18 +358,14 @@
                    maxRoad.setTime(DateUtils.getDate(time1,DateUtils.yyyy_MM_dd_EN));
                    maxRoadMapper.insert(maxRoad);
                }
            }else {
             list2.add(dustForm);
            }
        }
        long timestamp2 = System.currentTimeMillis();
        log.info(timestamp2-timestamp+"");
        //排序
        list1.sort(Comparator.comparing(DustForm::getValue).reversed());
        list2.sort(Comparator.comparing(DustForm::getValue).reversed());
        rsMap.put("list1",list1);
        rsMap.put("list2",list2);
        //获取上一次的高值路段
        ArrayList<Map<String, Object>> list3 = new ArrayList<>();
@@ -384,12 +379,9 @@
        wrapper2.eq("time",maxRoads.get(0).getTime());
        List<MaxRoad> maxRoads1 = maxRoadMapper.selectList(wrapper2);
        //合并数据
        ArrayList<DustForm> dustForms = new ArrayList<>();
        dustForms.addAll(list1);
        dustForms.addAll(list2);
        //获取两次路段相同的值
        for (MaxRoad road : maxRoads1) {
            for (DustForm dustForm : dustForms) {
            for (DustForm dustForm : list1) {
                if (road.getName().equals(dustForm.getRoad())){
                    HashMap<String, Object> map = new HashMap<>();
                    map.put("road",road.getName());
screen-api/src/main/java/com/moral/api/service/impl/UAVServiceImpl.java
@@ -49,7 +49,9 @@
            UAVGetBD uavGetBD = new UAVGetBD();
            String value = historySecondUav.getValue();
            JSONObject jsonObject = JSONObject.parseObject(value);
            if (!jsonObject.containsKey("flyhig")|| !jsonObject.containsKey("flylat")){
                continue;
            }
            String flylon = jsonObject.get("flylon").toString();
            String flylat = jsonObject.get("flylat").toString();
            //WGS84 转 百度坐标
screen-api/src/main/resources/mapper/HistorySecondCruiserMapper.xml
@@ -75,7 +75,7 @@
            `time`
        FROM `history_second_cruiser`
        WHERE mac = #{mac}
          AND `time` <![CDATA[>=]]> #{time1}
          AND `time` <![CDATA[<=]]> #{time2}
          AND `time` <![CDATA[>=]]> #{startTime}
          AND `time` <![CDATA[<=]]> #{endTime}
    </select>
</mapper>
screen-api/src/main/resources/word/???????.docx
Binary files differ