ZhuDongming
2020-04-23 69fe5c709ecf9093b1640356eff7c1991a6dd7d3
add定制导报表接口
3 files modified
78 ■■■■ changed files
src/main/java/com/moral/controller/ReportController.java 58 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/AccountServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/HistoryMinutelyMapper.xml 4 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/ReportController.java
@@ -1,9 +1,9 @@
package com.moral.controller;
import static com.moral.common.util.ExportExcelUtils.exportData;
import static com.moral.common.util.WebUtils.getParametersStartingWith;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -11,6 +11,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
@@ -20,13 +21,20 @@
import org.springframework.web.bind.annotation.RestController;
import com.moral.common.bean.ResultBean;
import com.moral.common.util.ParameterUtils;
import com.moral.common.util.WebUtils;
import com.moral.entity.Device;
import com.moral.entity.MonitorPoint;
import com.moral.entity.charts.LineChartCriteria;
import com.moral.security.auth.JwtAuthenticationToken;
import com.moral.security.model.UserContext;
import com.moral.service.AlarmDailyService;
import com.moral.service.HistoryDailyService;
import com.moral.service.HistoryMinutelyService;
import com.moral.service.MonitorPointService;
import static com.moral.common.util.ExportExcelUtils.exportData;
import static com.moral.common.util.WebUtils.getParametersStartingWith;
@SuppressWarnings({ "unchecked", "rawtypes" })
@RestController
@@ -39,6 +47,9 @@
    @Resource
    private AlarmDailyService alarmDailyService;
    @Resource
    private MonitorPointService monitorPointService;
    
    @GetMapping("compare")
    public ResultBean<Map<String, List>> getCompareReport(HttpServletRequest request) throws Exception {
@@ -123,4 +134,45 @@
        Map result = historyDailyService.getOverproofData(parameters);
        return new ResultBean<Map>(result);
    }
    @GetMapping("custom-made-excel")
    public ResultBean<Boolean> getCustomMadeExcelReport(HttpServletRequest request, HttpServletResponse response) throws Exception {
        Map<String, Object> parameters = getParametersStartingWith(request, null);
        ParameterUtils.getTimeType4Time(parameters);
        Object sensorKey = parameters.get("sensorKey");
        String sensorInfo = parameters.get("sensorInfo").toString();
        parameters.put("sensorKeys", Arrays.asList(sensorKey));
        List<String> macList = new ArrayList<>();
        List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters);
        for (MonitorPoint m : monitorPoints) {
            for (Device d : m.getDevices()) {
                macList.add(d.getMac());
            }
        }
        parameters.put("macs", macList);
        List<Map<String, Object>> list = new ArrayList<>();
        if (!CollectionUtils.isEmpty(macList)) {
            list = historyMinutelyService.getDevicesAvgDataToExcel(parameters);
        }
        Map<String, Object> map = list.get(0);
        Map<Integer, String> mapNew = new LinkedHashMap<>();
        int i = 0;
        for (String key : map.keySet()) {
            if (!("monitorPointName".equals(key) || "name".equals(key))) {
                mapNew.put(i, key);
                i++;
            }
        }
        String[][] exportColumn = new String[map.size()][];
        exportColumn[0] = new String[]{"站点名称-" + sensorInfo, "30", "monitorPointName"};
        exportColumn[1] = new String[]{"设备名称", "20", "name"};
        for (int index = 0; index < map.size() - 2; index++) {
            exportColumn[index + 2] = new String[]{mapNew.get(index), "20", mapNew.get(index)};
        }
        OutputStream outputStream = exportData(response, "Excel数据", list, exportColumn);
        outputStream.flush();
        outputStream.close();
        return new ResultBean<Boolean>(true);
    }
}
src/main/java/com/moral/service/impl/AccountServiceImpl.java
@@ -10,12 +10,6 @@
import java.util.Optional;
import java.util.Set;
import static com.moral.common.bean.Constants.IS_DELETE_FALSE;
import static com.moral.common.bean.Constants.IS_DELETE_TRUE;
import static com.moral.common.util.ResourceUtil.getValue;
import static org.apache.commons.lang3.StringUtils.isNumeric;
import static org.springframework.util.ObjectUtils.isEmpty;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
@@ -42,6 +36,12 @@
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.entity.Example.Criteria;
import static com.moral.common.bean.Constants.IS_DELETE_FALSE;
import static com.moral.common.bean.Constants.IS_DELETE_TRUE;
import static com.moral.common.util.ResourceUtil.getValue;
import static org.apache.commons.lang3.StringUtils.isNumeric;
import static org.springframework.util.ObjectUtils.isEmpty;
@Service
public class AccountServiceImpl implements AccountService {
@@ -260,12 +260,16 @@
    @Override
    public Map<String, Object> getMenuListsByAccountName(String accountName) {
        List<Menu> menuList = accountMapper.getParentMenuListsByAccountName(accountName);
        Integer organizationId = accountMapper.getByAccountName(accountName).getOrganizationId();
        Map<String, Object> organizationMap = new LinkedHashMap<>();
        organizationMap.put("organizationId",organizationId);
        String email = accountMapper.getEmailByAccountName(accountName);
        Map<String, Object> mapList = new LinkedHashMap<>();
        Map<String, Object> appMap = new LinkedHashMap<>();
        appMap.put("name", "七星瓢虫环境监测");
        appMap.put("description", "七星瓢虫环境监测后台配置中心");
        mapList.put("app", appMap);
        mapList.put("organization", organizationMap);
        Map<String, Object> userMap = new LinkedHashMap<>();
        userMap.put("name", accountName);
        userMap.put("avatar", "./assets/img/zorro.svg");
src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -183,7 +183,7 @@
        select
        rs.monitorPointName,rs.name,
        <foreach collection="timeList" separator="," item="time">
            max(case time when #{time} then rs.${sensorKey} else null end) as #{time}
            max(case time when #{time} then rs.${sensorKey} else "" end) as #{time}
        </foreach>
        from
        (SELECT
@@ -210,7 +210,7 @@
        ORDER BY
        h.mac) rs
        GROUP BY rs.monitorPointName,rs.name
        order by rs.name
        order by rs.monitorPointName
    </select>
</mapper>