Pārlūkot izejas kodu

完成民生栏目

hyx 2 gadi atpakaļ
vecāks
revīzija
686d457b2e

+ 3 - 6
nngkxxdp/src/main/java/com/example/nngkxxdp/controller/MailController.java

@@ -90,14 +90,11 @@ public class MailController {
     * @return
     **/
     @GetMapping("findPublicSheet")
-    public Map<String,Object>findPublicSheet(String typeName){
-        System.err.println(typeName);
-        if (Blank.isEmpty(typeName)) {
+    public Map<String,Object>findPublicSheet(String type){
+        if (Blank.isEmpty(type)) {
             return SendUtil.send(false, ConstStr.REQUEST_WRONGPARAMS);
         }
-        List<String> symbolsNameList = Arrays.asList(typeName.split(","));
-
-        return mailService.findPublicMsg(symbolsNameList);
+        return mailService.findPublicMsg(type);
 
     }
     /**

+ 62 - 56
nngkxxdp/src/main/java/com/example/nngkxxdp/dao/MailDao.java

@@ -105,69 +105,75 @@ public interface MailDao {
     List<Map<String, Object>> findAllMonth();
 
     List<Mail> find90DayData(Date toSqlDate);
+
     /**
-    * @Author :LYQ
-    * @Description  查询公开信息类型个数
-    * @Date 2021/9/22 22:45
-    * @Param
-    * @return
-    **/
-    List<String> findPublicNum(@Param("type") String Type, @Param("urlId") Integer urlId);
-    /**
-    * @Author :LYQ
-    * @Description  查询公开领域更新情况
-    * @Date 2021/9/22 20:22
-    * @Param
-    * @return
-    **/
-   int  findUpdateStatus(@Param("name") String name);
-
-   /**
-   * @Author :LYQ
-   * @Description  查询本网站
-   * @Date 2021/9/22 23:29
-   * @Param
-   * @return
-   **/
-   List<Map<TypeCasting,Object>> findWeb(Map<String,Object> param);
-
-    /**
-    * @Author :LYQ
-    * @Description  查询web上传更新次数
-    * @Date 2021/9/23 11:50
-    * @Param
-    * @return
-    **/
-   int  findWebUpdateCount (@Param("TypeName") Object TypeName, @Param  ("releaseDate")Object releaseDate );
-
-    /**
-    * @Author :LYQ
-    * @Description  根据类型查询南岸头条
-    * @Date 2021/9/23 15:01
-    * @Param
-    * @return
-    **/
-    List<Map<String,Object>> findNanAnTop(@Param("type") String type);
-    /**
-    * @Author :LYQ
-    * @Description  根据栏目名查询对应部门名
-    * @Date 2021/9/23 19:30
-    * @Param
-    * @return
-    **/
+     * @return
+     * @Author :LYQ
+     * @Description 查询公开信息类型个数
+     * @Date 2021/9/22 22:45
+     * @Param
+     **/
+    List<Map<String, Object>> findPublicNum(@Param("type") String Type, @Param("nowTime") String nowTime);
+
+    /**
+     * @return
+     * @Author :LYQ
+     * @Description 查询公开领域更新情况
+     * @Date 2021/9/22 20:22
+     * @Param
+     **/
+    int findUpdateStatus(@Param("name") String name);
+
+    /**
+     * @return
+     * @Author :LYQ
+     * @Description 查询本网站
+     * @Date 2021/9/22 23:29
+     * @Param
+     **/
+    List<Map<TypeCasting, Object>> findWeb(Map<String, Object> param);
+
+    /**
+     * @return
+     * @Author :LYQ
+     * @Description 查询web上传更新次数
+     * @Date 2021/9/23 11:50
+     * @Param
+     **/
+    int findWebUpdateCount(@Param("TypeName") Object TypeName, @Param("releaseDate") Object releaseDate);
+
+    /**
+     * @return
+     * @Author :LYQ
+     * @Description 根据类型查询南岸头条
+     * @Date 2021/9/23 15:01
+     * @Param
+     **/
+    List<Map<String, Object>> findNanAnTop(@Param("type") String type);
+
+    /**
+     * @return
+     * @Author :LYQ
+     * @Description 根据栏目名查询对应部门名
+     * @Date 2021/9/23 19:30
+     * @Param
+     **/
     List<String> findDept(@Param("name") String name);
 
     /**
-    * @Author :LYQ
-    * @Description  根据栏目名查询
-    * @Date 2021/9/24 10:09
-    * @Param
-    * @return
-    **/
-    String  findDeptName(@Param("name") String name);
+     * @return
+     * @Author :LYQ
+     * @Description 根据栏目名查询
+     * @Date 2021/9/24 10:09
+     * @Param
+     **/
+    String findDeptName(@Param("name") String name);
 
 
     List<Map<TypeCasting, Object>> findWebNew(Map<String, Object> param);
 
+    List<Map<String, Object>> findPublicMsg(String type, String nowTime);
+
+    List<Map<String, Object>> getMslmXq(String type, String nowTime);
 }
 

+ 6 - 6
nngkxxdp/src/main/java/com/example/nngkxxdp/service/MailService.java

@@ -77,23 +77,23 @@ public interface MailService {
 
     /**
      * 查询公开领域街道情况
+     *
      * @param type
      * @return
      */
-    Map<String, Object> findPublicMsg(List<String>  typeName);
-
-
+    Map<String, Object> findPublicMsg(String type);
 
 
     /**
      * 本网站
      */
-    Map<String, Object> webStatus(String  type,Long Id);
+    Map<String, Object> webStatus(String type, Long Id);
 
     /**
-     *  查询南岸头条
+     * 查询南岸头条
+     *
      * @param type
      * @return
      */
-    Map<String ,Object> NanAnTop(String type);
+    Map<String, Object> NanAnTop(String type);
 }

+ 57 - 20
nngkxxdp/src/main/java/com/example/nngkxxdp/service/impl/MailServiceImpl.java

@@ -16,6 +16,8 @@ import org.assertj.core.internal.bytebuddy.implementation.bytecode.assign.TypeCa
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.util.*;
 
 /**
@@ -231,41 +233,76 @@ public class MailServiceImpl implements MailService {
 
     @Override
     public Map<String, Object> findPublicStatus(String type, Integer urlId) {
+        Date d = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+        LocalDate now = LocalDate.now();
+        String nowTime = now.minusMonths(6).toString() + " " + sdf;
 
         Map<String, Object> result = new HashMap<>();
         List resultList = new ArrayList();
         List resultSize = new ArrayList();
-        List<String> publicNum = mailDao.findPublicNum(type, urlId);
-        if (publicNum.size() != 0) {
-            for (int i = 0; i < publicNum.size(); i++) {
-                resultList.add(publicNum.get(i));
-                System.err.println("====>" + publicNum.get(i));
-                resultSize.add(mailDao.findUpdateStatus(publicNum.get(i)));
+        List<Map<String, Object>> mapList = mailDao.findPublicNum(type, nowTime);
+        if (mapList != null && mapList.size() > 0) {
+            for (int i = 0; i < mapList.size(); i++) {
+                resultList.add(mapList.get(i).get("column"));
+                resultSize.add(mapList.get(i).get("count"));
             }
             result.put("field", resultList);
             result.put("fieldSize", resultSize);
-            result.put("length", publicNum.size());
+            result.put("length", mapList.size());
             return result;
         }
         return null;
     }
 
     @Override
-    public Map<String, Object> findPublicMsg(List<String> typeName) {
+    public Map<String, Object> findPublicMsg(String type) {
+        Date d = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+        LocalDate now = LocalDate.now();
+        String nowTime = now.minusMonths(6).toString() + " " + sdf;
+
         Map<String, Object> param = new HashMap<>();
-        List listDept = new ArrayList();
+        List<String> typeName = new ArrayList<>();
+        List<String> listDept = new ArrayList<>();
         List listColumn = new ArrayList();
-        for (int i = 0; i < typeName.size(); i++) {
-            List<String> dept = mailDao.findDept(typeName.get(i));
-            if (dept != null) {
-                listDept.add(dept);
+        List<String> total = new ArrayList<>();
+        List<String> updateTime = new ArrayList<>();
+        List<Map<String, Object>> mapList = mailDao.findPublicMsg(type, nowTime);
+        List<Map<String, Object>> mslmList = mailDao.getMslmXq(type, nowTime);
+        if (mapList != null && mapList.size() > 0) {
+            for (int i = 0; i < mapList.size(); i++) {
+                typeName.add(mapList.get(i).get("column").toString());
+                if (Blank.isNotEmpty(mapList.get(i).get("deptname"))) {
+                    listDept.add(mapList.get(i).get("deptname").toString());
+                } else {
+                    listDept.add("");
+                }
+                total.add(mapList.get(i).get("count").toString());
+                updateTime.add(mapList.get(i).get("maxTime").toString());
+                if (mslmList != null && mslmList.size() > 0) {
+                    List<Map<String, Object>> dataList = new ArrayList<>();
+                    for (int j = 0; j < mslmList.size(); j++) {
+                        if (mapList.get(i).get("column").equals(mslmList.get(j).get("column"))) {
+                            dataList.add(mslmList.get(j));
+                        }
+                    }
+                    listColumn.add(dataList);
+                    dataList = new ArrayList<>();
+                }
             }
-            listColumn.add(articleDao.queryPublicStreetInfoByName(typeName.get(i)));
         }
-        param.put("column", listColumn);
-        param.put("dept", listDept);
+
+        //栏目名称
         param.put("typeName", typeName);
-        param.put("length", typeName.size());
+        //部门
+        param.put("dept", listDept);
+        //栏目名称详情
+        param.put("column", listColumn);
+        //总计
+        param.put("total", total);
+        //更新情况
+        param.put("updateTime", updateTime);
         return param;
     }
 
@@ -281,15 +318,15 @@ public class MailServiceImpl implements MailService {
         param.put("Id", Id);
         //查询网站
         List<Map<TypeCasting, Object>> web = mailDao.findWebNew(param);
-        if(web != null && web.size() > 0){
+        if (web != null && web.size() > 0) {
             for (int i = 0; i < web.size(); i++) {
                 typeName.add(web.get(i).get("column"));
                 listDate.add(web.get(i).get("maxTime"));
                 listCount.add(web.get(i).get("count"));
                 //如果不为空
-                if(Blank.isNotEmpty(web.get(i).get("deptname"))){
+                if (Blank.isNotEmpty(web.get(i).get("deptname"))) {
                     listDept.add(web.get(i).get("deptname"));
-                }else{
+                } else {
                     listDept.add("");
                 }
             }

+ 95 - 7
nngkxxdp/src/main/resources/mapper/MailDao.xml

@@ -198,13 +198,101 @@
           AND TIMESTAMPDIFF(DAY, a.releaseDate, DATE_FORMAT(CURDATE(), '%Y-%m-%d')) &lt;= 180
     </select>
 
-    <select id="findPublicNum" resultType="java.lang.String">
-        SELECT a.columnFirstName
-        FROM article as a
-        WHERE a.type=#{type}
-          AND a.urlId=#{urlId}
-        GROUP BY a.columnFirstName
-        ORDER BY a.columnFirstName ASC
+    <select id="findPublicNum" resultType="java.util.Map">
+        SELECT
+            a.`COLUMN`,
+            b.count
+        FROM
+            (
+                SELECT
+                    oc.COLUMN,
+                    t.deptname
+                FROM
+                    other_column oc
+                        LEFT JOIN t_dept t ON t.deptid = oc.deptId
+                WHERE
+                    oc.type = #{type}
+                GROUP BY
+                    oc.COLUMN
+            ) a
+                LEFT JOIN (
+                SELECT
+                    oc.COLUMN,
+                    count( oc.COLUMN ) AS count
+                FROM
+                    other_column oc
+                        LEFT JOIN save_hlw_interface_data sh ON oc.chnlid = sh.CHNLID
+                WHERE
+                    oc.type = #{type}
+                    AND sh.DOCRELTIME >= #{nowTime}
+                GROUP BY
+                    oc.COLUMN
+            ) b ON a.COLUMN = b.COLUMN
+    </select>
+
+    <select id="findPublicMsg" resultType="java.util.Map">
+        SELECT
+            a.`COLUMN`,
+            a.child_column,
+            a.deptname,
+            b.count,
+            DATE_FORMAT( b.maxD, '%Y-%m-%d' ) AS maxTime
+        FROM
+            (
+                SELECT
+                    oc.deptId,
+                    oc.COLUMN,
+                    oc.child_column,
+                    oc.type,
+                    t.deptname
+                FROM
+                    other_column oc
+                        LEFT JOIN t_dept t ON t.deptid = oc.deptId
+                WHERE
+                    oc.type = #{type}
+                GROUP BY
+                    oc.COLUMN
+            ) a
+                LEFT JOIN (
+                SELECT
+                    oc.deptId,
+                    oc.COLUMN,
+                    oc.child_column,
+                    oc.chnlid,
+                    oc.type,
+                    sh.DOCRELTIME,
+                    count( oc.COLUMN ) AS count,
+                    max( sh.DOCRELTIME ) AS maxD
+                FROM
+                    other_column oc
+                        LEFT JOIN save_hlw_interface_data sh ON oc.chnlid = sh.CHNLID
+                WHERE
+                    oc.type = #{type}
+                  AND sh.DOCRELTIME >= #{nowTime}
+                GROUP BY
+                    oc.COLUMN
+            ) b ON a.COLUMN = b.COLUMN
+    </select>
+
+    <select id="getMslmXq" resultType="java.util.Map">
+        SELECT
+            oc.deptId,
+            oc.COLUMN,
+            oc.child_column,
+            oc.chnlid,
+            oc.type,
+            sh.DOCRELTIME,
+            count( oc.COLUMN ) AS count,
+            max( sh.DOCRELTIME ) AS maxD
+        FROM
+            other_column oc
+                LEFT JOIN save_hlw_interface_data sh ON oc.chnlid = sh.CHNLID
+        WHERE
+            oc.type = #{type}
+          AND sh.DOCRELTIME >= #{nowTime}
+        GROUP BY
+            oc.COLUMN,
+            oc.child_column
     </select>
 
     <select id="findWeb" resultType="java.util.Map">

+ 1 - 0
nngkxxdp/src/main/resources/static/page/index.html

@@ -624,6 +624,7 @@
                                                             <th colspan="9" rowspan="2" class="situation_border">栏目名称
                                                             </th>
 
+
                                                             <th rowspan="2" colspan="3">总计</th>
                                                             <th rowspan="2" colspan="3">最近更新情况</th>
                                                         </tr>

+ 134 - 152
nngkxxdp/src/main/resources/static/page/js/base/mslm.item.js

@@ -1,7 +1,7 @@
-$(function() {
-	$("#mslm-update-tab").on('click', function() {
-		initMslmUpdateChart();
-	});
+$(function () {
+    $("#mslm-update-tab").on('click', function () {
+        initMslmUpdateChart();
+    });
 });
 
 /**
@@ -10,118 +10,118 @@ $(function() {
  * @param {Object} date2
  */
 function getNumberOfDays(date1, date2) {
-	var a1 = Date.parse(new Date(date1));
-	var a2 = Date.parse(new Date(date2));
-	var day = parseInt((a2 - a1) / (1000 * 60 * 60 * 24));
-	return day;
+    var a1 = Date.parse(new Date(date1));
+    var a2 = Date.parse(new Date(date2));
+    var day = parseInt((a2 - a1) / (1000 * 60 * 60 * 24));
+    return day;
 }
 
 /**
  * 查询民生栏目总览数据
  */
 function getMslmTable() {
-	$("#tileTable").empty();
-	var _html = '';
-	get('/mail/webStatus', true, {
-		"type": 0,
-		"Id": 2
-	}, function(res) {
-		var length = res.length;
-		var name = res.ColumnName;
-		var dept = res.dept;
-		var count = res.count;
-		var release = res.releaseDate;
-		for (let i = 0; i < length; i++) {
-			var releaseDate = release[i];
-			var data = new Date();
-			var nowDate = data.toLocaleDateString();
-			var interval = getNumberOfDays(releaseDate, nowDate);
-			var cls = '';
-			if (interval <= 30) {
-				cls = 'marker2-three';
-			} else if (interval <= 90) {
-				cls = 'marker2-one';
-			} else if (interval >= 90) {
-				cls = 'marker2-two';
-			}
-			_html += '<tr>' +
-				'"<td>' + name[i] + '</td>' +
-				'"<td>' + dept[i] + '</td>' +
-				'"<td>' + count[i] + '</td>' +
-				'"<td  id="releaseDate" class="' + cls + '" style="width: 200px">' + release[i] +
-				'&nbsp;&nbsp;&nbsp;&nbsp;' +
-				interval + '天前</td>' +
-				'"</tr>';
-		}
-		$("#tileTable").html(_html);
-	}, function(err) {});
+    $("#tileTable").empty();
+    var _html = '';
+    get('/mail/webStatus', true, {
+        "type": 0,
+        "Id": 2
+    }, function (res) {
+        var length = res.length;
+        var name = res.ColumnName;
+        var dept = res.dept;
+        var count = res.count;
+        var release = res.releaseDate;
+        for (let i = 0; i < length; i++) {
+            var releaseDate = release[i];
+            var data = new Date();
+            var nowDate = data.toLocaleDateString();
+            var interval = getNumberOfDays(releaseDate, nowDate);
+            var cls = '';
+            if (interval <= 30) {
+                cls = 'marker2-three';
+            } else if (interval <= 90) {
+                cls = 'marker2-one';
+            } else if (interval >= 90) {
+                cls = 'marker2-two';
+            }
+            _html += '<tr>' +
+                '"<td>' + name[i] + '</td>' +
+                '"<td>' + dept[i] + '</td>' +
+                '"<td>' + count[i] + '</td>' +
+                '"<td  id="releaseDate" class="' + cls + '" style="width: 200px">' + release[i] +
+                '&nbsp;&nbsp;&nbsp;&nbsp;' +
+                interval + '天前</td>' +
+                '"</tr>';
+        }
+        $("#tileTable").html(_html);
+    }, function (err) {
+    });
 }
 
 /**
  * 获取民生栏目更新数据
  */
 function initMslmUpdateChart() {
-	$("#DistrictPortal").removeAttr("_echarts_instance_").empty();
-	get('/mail/findPublicStatus', true, {
-		"type": 0,
-		"urlId": 2
-	}, function(res) {
-		var typeNames = [];
-		for (let i = 0; i < res.length; i++) {
-			typeNames.push(res.field[i]);
-		}
-		// 图表绘制
-		var barData = res;
-		var dpChartDom = document.getElementById('DistrictPortal');
-		var dpMyChart = echarts.init(dpChartDom);
-		var dpOption = {
-			title : {
-				text: "最近180天民生栏目更新情况",
-				x: 'center',
-				y: '5px',
-			},
-			tooltip : {
-				show : true
-	            /*trigger: 'item',
-	            formatter: "{b} : {c} (次)"*/
-	        },
-			xAxis: {
-				type: 'category',
-				data: barData.field,
-				axisLabel: {
-					interval: 0,
-					formatter:function(value)  
-                    {  
-                        return value.split("").join("\n");  
-                    }  
-				}
-			},
-			grid: {
-				bottom: '20%',
-				left: '4%'
-			},
-			yAxis: {
-				name: '单位:(条)',
-				type: 'value'
-			},
-			series: [{
-				type: 'bar',
-				data: barData.fieldSize,
-	            itemStyle: {
-	                normal:{
-	                    label:{
-	                        show:true,
-	                        /*formatter: "{b} :\n  {c} \n ({d}%)",*/
-	                        position:"top"
-	                    }
-	                }
-	            }
-			}]
-		}
-		dpOption && dpMyChart.setOption(dpOption);
-		// 民生栏目更新数据表格
-		initMslmUpdateTable(typeNames);
-	});
+    $("#DistrictPortal").removeAttr("_echarts_instance_").empty();
+    get('/mail/findPublicStatus', true, {
+        "type": 0,
+        "urlId": 2
+    }, function (res) {
+        var typeNames = [];
+        for (let i = 0; i < res.length; i++) {
+            typeNames.push(res.field[i]);
+        }
+        // 图表绘制
+        var barData = res;
+        var dpChartDom = document.getElementById('DistrictPortal');
+        var dpMyChart = echarts.init(dpChartDom);
+        var dpOption = {
+            title: {
+                text: "最近180天民生栏目更新情况",
+                x: 'center',
+                y: '5px',
+            },
+            tooltip: {
+                show: true
+                /*trigger: 'item',
+                formatter: "{b} : {c} (次)"*/
+            },
+            xAxis: {
+                type: 'category',
+                data: barData.field,
+                axisLabel: {
+                    interval: 0,
+                    formatter: function (value) {
+                        return value.split("").join("\n");
+                    }
+                }
+            },
+            grid: {
+                bottom: '20%',
+                left: '4%'
+            },
+            yAxis: {
+                name: '单位:(条)',
+                type: 'value'
+            },
+            series: [{
+                type: 'bar',
+                data: barData.fieldSize,
+                itemStyle: {
+                    normal: {
+                        label: {
+                            show: true,
+                            /*formatter: "{b} :\n  {c} \n ({d}%)",*/
+                            position: "top"
+                        }
+                    }
+                }
+            }]
+        }
+        dpOption && dpMyChart.setOption(dpOption);
+        // 民生栏目更新数据表格
+        initMslmUpdateTable(typeNames);
+    });
 }
 
 /**
@@ -129,53 +129,35 @@ function initMslmUpdateChart() {
  * @param {Object} typeNames
  */
 function initMslmUpdateTable(typeNames) {
-	let _tdhtml = '';
-	let _html = '';
-	$("#streetHeader").empty();
-	get('/mail/findPublicSheet', true, {
-		"typeName": typeNames ? typeNames.join(",") : ""
-	}, function (res) {
-		if (!res) {
-			return;
-		}
-		let dept = res.dept;
-		let column = res.column;
-		let typeName = res.typeName;
-		let str = '';
-		for (let i = 0; i < res.length; i++) {
-			var lastUpdate = '';
-			_tdhtml = '';
-			str = '';
-			let count = 0;
-			for (let j = 0; j < column[i].length; j++) {
-				if (column[i][0] == null) {
-					_tdhtml = ' <td>0</td>\' ' +
-						'<td>0</td>' +
-						'<td>0</td>' +
-						'<td>0</td>' +
-						'<td>0</td>' +
-						'<td>0</td>' +
-						'<td>0</td>';
-					count = 0
-					return;
-				}
-				str += column[i][j].columnSecondName + '\xa0' + column[i][j].count +'\xa0\xa0\xa0\xa0\xa0\xa0';
+    let _tdhtml = '';
+    let _html = '';
+    $("#streetHeader").empty();
+    get('/mail/findPublicSheet', true, {
+        "type": 0
+    }, function (res) {
+        if (!res) {
+            return;
+        }
+        let typeName = res.typeName;
+        let dept = res.dept;
+        let column = res.column;
+        let total = res.total;
+        let updateTime = res.updateTime;
 
-
-				count += parseInt(column[i][j].count)
-
-				lastUpdate = column[i][j].releaseDate
-			}
-			_tdhtml = ' <td>' + str + '</td>\' ';
-
-			_html += '<tr>' +
-				'<td >' + typeName[i] + '</td>' +
-				'<td>' + dept[i] + '</td>' +
-				'<td colspan="9">' + _tdhtml + '</td>' +
-				'<td colspan="3">' + count + '</td>' +
-				'<td colspan="3">' + lastUpdate + '</td>' +
-				'</tr>';
-		}
-		$("#streetHeader").html(_html);
-	});
+        var _html = '';
+        for (let i = 0; i < typeName.length; i++) {
+            _html += '<tr>';
+            _html += '<td>' + typeName[i] + '</td>';
+            _html += '<td>' + dept[i] + '</td>';
+            _html += '<td colspan="9"><td>';
+            for (let j = 0; j < column[i].length; j++) {
+                _html += column[i][j].childColumn + " " + column[i][j].count + "<br>";
+            }
+            _html += '</td></td>';
+            _html += '<td colspan="3">' + total[i] + '</td>';
+            _html += '<td colspan="3">' + updateTime[i] + '</td>';
+            _html += '</tr>';
+        }
+        $("#streetHeader").html(_html);
+    });
 }