|
@@ -1,12 +1,14 @@
|
|
|
package com.example.nngkxxdp.service.impl;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
+import com.example.nngkxxdp.dao.HlwInterfaceDao;
|
|
|
+import com.example.nngkxxdp.dao.TjDao;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -34,6 +36,12 @@ public class ArticleServiceImpl implements ArticleService {
|
|
|
@Resource
|
|
|
private SmsMessageDao smsMessageDao;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private HlwInterfaceDao hlwInterfaceDao;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TjDao tjDao;
|
|
|
+
|
|
|
/**
|
|
|
* 通过ID查询单条数据
|
|
|
*
|
|
@@ -357,4 +365,160 @@ public class ArticleServiceImpl implements ArticleService {
|
|
|
}
|
|
|
return SendUtil.layuiTable(0, null);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> publicRemind() {
|
|
|
+ Map<String, Object> res = new HashMap<>();
|
|
|
+ Map<String, Object> twoWeek = new HashMap<>();
|
|
|
+ Map<String, Object> threeMonth = new HashMap<>();
|
|
|
+ Map<String, Object> sixMonth = new HashMap<>();
|
|
|
+
|
|
|
+ List<Map<String, Object>> allDept = tjDao.getAllDept(null);
|
|
|
+ Map<String, Object> columns = handleColumn(hlwInterfaceDao.getAllColumn(DateUtil.format(new Date(), "yyyy-MM-dd")));
|
|
|
+
|
|
|
+ for (int i = 0; i < allDept.size(); i++) {
|
|
|
+ Map<String, Object> deptItem = allDept.get(i);
|
|
|
+ String deptname = deptItem.get("deptname").toString();
|
|
|
+ String deptUrl = deptItem.get("deptUrl").toString();
|
|
|
+ String[] chnlids = Convert.toStr(deptItem.get("haveChnlid"), "").split(",");
|
|
|
+ if (chnlids == null || chnlids.length == 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for (int j = 0; j < chnlids.length; j++) {
|
|
|
+ String chnlid = chnlids[j];
|
|
|
+ if (chnlid.equals("286404")) {
|
|
|
+ System.out.println();
|
|
|
+ }
|
|
|
+ Map<String, Object> column = Convert.toMap(String.class, Object.class, columns.get(chnlid));
|
|
|
+ if (Blank.isEmpty(column)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String isExceed = Convert.toStr(column.get("isExceed"), "0");
|
|
|
+ if ("0".equals(isExceed)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String frequency = column.get("frequency").toString();
|
|
|
+ String lastUpdate = column.get("docreltime").toString();
|
|
|
+ String chnlName = hlwInterfaceDao.getChnlNameByChnlid(chnlid);
|
|
|
+
|
|
|
+ // 两周
|
|
|
+ if ("14".equals(frequency)) {
|
|
|
+ JSONObject obj = Convert.convert(JSONObject.class, twoWeek.get(deptname));
|
|
|
+ if (obj == null) {
|
|
|
+ obj = new JSONObject();
|
|
|
+ JSONArray arr = new JSONArray();
|
|
|
+ JSONObject record = new JSONObject();
|
|
|
+ record.put("columnName", chnlName);
|
|
|
+ record.put("lastUpdate", lastUpdate);
|
|
|
+ record.put("chnlid", chnlid);
|
|
|
+ arr.add(record);
|
|
|
+ obj.put("records", arr);
|
|
|
+ obj.put("count", 1);
|
|
|
+ obj.put("deptUrl", deptUrl);
|
|
|
+ } else {
|
|
|
+ JSONArray arr = obj.getJSONArray("records");
|
|
|
+ JSONObject record = new JSONObject();
|
|
|
+ record.put("columnName", chnlName);
|
|
|
+ record.put("lastUpdate", lastUpdate);
|
|
|
+ record.put("chnlid", chnlid);
|
|
|
+ arr.add(record);
|
|
|
+ obj.put("records", arr);
|
|
|
+ obj.put("count", obj.getInteger("count") + 1);
|
|
|
+ }
|
|
|
+ twoWeek.put(deptname, obj);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("90".equals(frequency)) {
|
|
|
+ JSONObject obj = Convert.convert(JSONObject.class, threeMonth.get(deptname));
|
|
|
+ if (obj == null) {
|
|
|
+ obj = new JSONObject();
|
|
|
+ JSONArray arr = new JSONArray();
|
|
|
+ JSONObject record = new JSONObject();
|
|
|
+ record.put("columnName", chnlName);
|
|
|
+ record.put("lastUpdate", lastUpdate);
|
|
|
+ record.put("chnlid", chnlid);
|
|
|
+ arr.add(record);
|
|
|
+ obj.put("records", arr);
|
|
|
+ obj.put("count", 1);
|
|
|
+ obj.put("deptUrl", deptUrl);
|
|
|
+ } else {
|
|
|
+ JSONArray arr = obj.getJSONArray("records");
|
|
|
+ JSONObject record = new JSONObject();
|
|
|
+ record.put("columnName", chnlName);
|
|
|
+ record.put("lastUpdate", lastUpdate);
|
|
|
+ record.put("chnlid", chnlid);
|
|
|
+ arr.add(record);
|
|
|
+ obj.put("records", arr);
|
|
|
+ obj.put("count", obj.getInteger("count") + 1);
|
|
|
+ }
|
|
|
+ threeMonth.put(deptname, obj);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("180".equals(frequency)) {
|
|
|
+ JSONObject obj = Convert.convert(JSONObject.class, sixMonth.get(deptname));
|
|
|
+ if (obj == null) {
|
|
|
+ obj = new JSONObject();
|
|
|
+ JSONArray arr = new JSONArray();
|
|
|
+ JSONObject record = new JSONObject();
|
|
|
+ record.put("columnName", chnlName);
|
|
|
+ record.put("lastUpdate", lastUpdate);
|
|
|
+ record.put("chnlid", chnlid);
|
|
|
+ arr.add(record);
|
|
|
+ obj.put("records", arr);
|
|
|
+ obj.put("count", 1);
|
|
|
+ obj.put("deptUrl", deptUrl);
|
|
|
+ } else {
|
|
|
+ JSONArray arr = obj.getJSONArray("records");
|
|
|
+ JSONObject record = new JSONObject();
|
|
|
+ record.put("columnName", chnlName);
|
|
|
+ record.put("lastUpdate", lastUpdate);
|
|
|
+ record.put("chnlid", chnlid);
|
|
|
+ arr.add(record);
|
|
|
+ obj.put("records", arr);
|
|
|
+ obj.put("count", obj.getInteger("count") + 1);
|
|
|
+ }
|
|
|
+ sixMonth.put(deptname, obj);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ res.put("twoWeek", sortRes(twoWeek));
|
|
|
+ res.put("threeMonth", sortRes(threeMonth));
|
|
|
+ res.put("sixMonth", sortRes(sixMonth));
|
|
|
+ return SendUtil.send(true, "", res);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发布提醒排序
|
|
|
+ * @param map
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<Object, Object> sortRes(Map<String, Object> map) {
|
|
|
+ List<String> collect = map.keySet().stream().sorted((k1, k2) ->
|
|
|
+ Convert.convert(JSONObject.class, map.get(k2)).getInteger("count") - Convert.convert(JSONObject.class, map.get(k1)).getInteger("count")
|
|
|
+ ).collect(Collectors.toList());
|
|
|
+
|
|
|
+ Map<Object, Object> res = new LinkedHashMap<>();
|
|
|
+ for (int i = 0; i < collect.size(); i++) {
|
|
|
+ String deptName = collect.get(i);
|
|
|
+ res.put(deptName, map.get(deptName));
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转储为map,chnlid作为key
|
|
|
+ * @param allColumn
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Map<String, Object> handleColumn(List<Map<String, Object>> allColumn) {
|
|
|
+ Map<String, Object> res = new HashMap<>();
|
|
|
+ for (int i = 0; i < allColumn.size(); i++) {
|
|
|
+ Map<String, Object> map = allColumn.get(i);
|
|
|
+ res.put(map.get("chnlid").toString(), map);
|
|
|
+ }
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
}
|