多单位版国产化地质资料管理系统
zs
2026-02-04 fe02f176b512a9d6a4e12437d929e04e99bb7567
src/main/java/com/zbooksoft/gdmis/controller/UtlStatisticsController.java
@@ -86,14 +86,15 @@
    @RequestMapping(value = "/transferStatistics")
    @RequiresUser
    public ModelAndView transferStatistics() {
        ModelAndView mav = new ModelAndView("gh/utlStatistics/transferStatistics");
//        ModelAndView mav = new ModelAndView("gh/utlStatistics/transferStatistics");
        ModelAndView mav = new ModelAndView("gh/utlStatistics/cs");
        return mav;
    }
    @RequestMapping({"/getTransferStatistics"})
    @ResponseBody
    @RequiresUser
    public Object getTransferStatistics(String year, String startData, String endData) {
    public Object getTransferStatistics(String selectParameter, String startData, String endData) {
        try {
            String sql = "SELECT " +
                    "    A.ID," +
@@ -103,12 +104,17 @@
                    "    COUNT(CASE WHEN C.yszt = '3' THEN C.ID END) AS tidyCount," +
                    "    COUNT(CASE WHEN C.yszt = '3' THEN C.ID END) AS acceptCount," +
                    "    SUM(C.WJDX) AS acceptData," +
                    "    COUNT(CASE WHEN D.is_pass = 0 THEN D.id END) AS returnTime" +
                    "    COUNT(CASE WHEN D.is_pass = 0 THEN D.id END) AS returnTime," +
                    "    SUM(C.YM) AS YM," +
                    "    SUM(C.SL) AS SL" +
                    " FROM CAT_FILE_AJJXX A" +
                    " LEFT JOIN BUS_TRANSFER_LOG B ON A.ID = B.AJ_ID" +
                    " LEFT JOIN CAT_ITEM_YSWJXX C ON A.ID = C.AJ_ID" +
                    " LEFT JOIN CAT_CHECK_INFO D ON A.ID = D.aj_id" +
                    " WHERE 1=1 ";
            if (selectParameter.equals("rk")){
                sql += " AND C.YSZT=3 ";
            }
            // 添加时间段筛选条件
            if (startData != null && !startData.isEmpty()) {
                sql += " AND B.TRANSFER_TIEM >= '" + startData + "'";
@@ -118,6 +124,53 @@
            }
            sql += " GROUP BY A.ID, A.XMKYQMC" +
                    " ORDER BY A.ID;";
            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
            return mapList;
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return new AjaxResponse(new ErrorInfo(e.getMessage()), false);
        }
    }
    // 获取饼状图数据
    @RequestMapping("/getCollectionEchartsPieData")
    @ResponseBody
    public Object getCollectionEchartsPieData() {
        String sql="select xmkyqlx as name,count(b.id) as value FROM cat_file_ajjxx a left join cat_item_yswjxx b on b.aj_id=a.id GROUP by a.xmkyqlx";
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
        // 将键名转换为小写
        List<Map<String, Object>> result = new ArrayList<>();
        for (Map<String, Object> map : mapList) {
            Map<String, Object> newMap = new HashMap<>();
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                newMap.put(entry.getKey().toLowerCase(), entry.getValue());
            }
            result.add(newMap);
        }
        return result;
    }
    /**
     * 入库统计
     * @param year
     * @param startData
     * @param endData
     * @return
     */
    @RequestMapping({"/getInboundTimelinessRate"})
    @ResponseBody
    @RequiresUser
    public Object getInboundTimelinessRate(String year, String startData, String endData) {
        try {
            String sql = "select aj.xmkyqmc,ys.wjtm,ys.sl,ys.ym,ys.wjdx from CAT_ITEM_YSWJXX as ys left join cat_file_ajjxx as aj on ys.aj_id=aj.id where ys.yszt='3' ";
            // 添加时间段筛选条件
            if (startData != null && !startData.isEmpty()) {
                sql += " AND aj.yswsj >= '" + startData + "'";
            }
            if (endData != null && !endData.isEmpty()) {
                sql += " AND aj.yswsj <= '" + endData + "'";
            }
            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
            return mapList;
        } catch (Exception e) {
@@ -191,19 +244,22 @@
    @RequestMapping({"/getUtlStatisticsByDept"})
    @ResponseBody
    @RequiresUser
    public Object getUtlStatisticsByDept(String deptName) {
    public Object getUtlStatisticsByDept(String deptName,String startData, String endData) {
        try {
            List<Map<String, Object>> mapList = new ArrayList<>();
            if (deptName == null || deptName.equals("")) {
                String yearSQL = "SELECT DISTINCT DEPT_NAME AS DEPT_NAME FROM  UTL_VIEW_FORM";
                jdbcTemplate.queryForList(yearSQL).forEach(map -> {
                    String deptNames = map.get("DEPT_NAME") == null ? "" : map.get("DEPT_NAME").toString();
                    Map<String, Object> hashMap = getCount("DEPT_NAME", deptNames);
                    hashMap.put("deptName", deptNames);
                    mapList.add(hashMap);
                });
            String yearSQL="SELECT DISTINCT DEPT_NAME AS DEPT_NAME FROM  UTL_VIEW_FORM where dept_name like '%"+deptName+"%'";
            if (startData != null && !startData.isEmpty()) {
                yearSQL += " AND date >= '" + startData + "'";
            }
            if (endData != null && !endData.isEmpty()) {
                yearSQL += " AND date <= '" + endData + "'";
            }
            jdbcTemplate.queryForList(yearSQL).forEach(map -> {
                String deptNames = map.get("DEPT_NAME") == null ? "" : map.get("DEPT_NAME").toString();
                Map<String, Object> hashMap = getCount("DEPT_NAME", deptNames);
                hashMap.put("deptName", deptNames);
                mapList.add(hashMap);
            });
            return mapList;
        } catch (Exception e) {
            logger.error(e.getMessage(), e);