Browse Source

Merge remote-tracking branch 'remotes/origin/dev' into release

master
jianjun 5 years ago
parent
commit
52bc395ec0
  1. 44
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java
  2. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  3. 21
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java
  4. 73
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java
  5. 2
      epmet-gateway/deploy/docker-compose-dev.yml
  6. 2
      epmet-gateway/pom.xml
  7. 5
      epmet-gateway/src/main/java/com/epmet/GatewayApplication.java
  8. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
  9. 2
      epmet-module/data-report/data-report-server/pom.xml
  10. 38
      epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
  11. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
  12. 10
      epmet-module/data-statistical/data-statistical-server/pom.xml
  13. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  14. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyProjectDailyEntity.java
  15. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyProjectMonthlyEntity.java
  16. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridProjectDailyEntity.java
  17. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridProjectMonthlyEntity.java
  18. 5
      epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml
  19. 9
      epmet-module/data-statistical/data-statistical-server/src/main/resources/logback-spring.xml
  20. 2
      epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml
  21. 8
      epmet-module/epmet-job/epmet-job-server/pom.xml
  22. 33
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/controller/DemoController.java
  23. 5
      epmet-module/epmet-job/epmet-job-server/src/main/resources/bootstrap.yml
  24. 9
      epmet-module/epmet-job/epmet-job-server/src/main/resources/logback-spring.xml
  25. 2
      epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml
  26. 2
      epmet-module/gov-access/gov-access-server/pom.xml
  27. 2
      epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-dev.yml
  28. 2
      epmet-module/gov-grid/gov-grid-server/pom.xml
  29. 1
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/PartyBranchManageController.java
  30. 2
      epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml
  31. 2
      epmet-module/resi-group/resi-group-server/pom.xml
  32. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  33. 6
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  34. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
  35. 2
      epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
  36. 2
      epmet-user/epmet-user-server/pom.xml
  37. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridVisitedDao.java
  38. 26
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridVisitedServiceImpl.java
  39. 16
      epmet-user/epmet-user-server/src/main/resources/mapper/GridVisitedDao.xml

44
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/EnvEnum.java

@ -0,0 +1,44 @@
package com.epmet.commons.tools.enums;
/**
* 系统环境变量枚举类
* dev|test|prod
*
* @author jianjun liu
* @date 2020-07-03 11:14
**/
public enum EnvEnum {
DEV("dev", "开发环境"),
TEST("test", "体验环境"),
PROD("prod", "生产环境"),
UN_KNOWN("un_known", "未知"),
;
private String code;
private String name;
EnvEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static EnvEnum getEnum(String code) {
EnvEnum[] values = EnvEnum.values();
for (EnvEnum value : values) {
if (code != null && value.getCode().equals(code)) {
return value;
}
}
return EnvEnum.UN_KNOWN;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java

@ -111,6 +111,7 @@ public enum RequirePermissionEnum {
/**
* 基层治理-支部管理
*/
WORK_GRASSROOTS_PARTY_BRANCH_LIST("work_grassroots_party_branch_list","基层治理:支部管理:查询党支部列表","支部管理-查看党支部列表"),
WORK_GRASSROOTS_PARTY_BRANCH_ADD("work_grassroots_party_branch_add","基层治理:支部管理:添加党支部","支部管理-添加党支部"),
WORK_GRASSROOTS_PARTY_BRANCH_EDIT("work_grassroots_party_branch_edit","基层治理:支部管理:编辑党支部","支部管理-编辑党支部信息"),
WORK_GRASSROOTS_PARTY_BRANCH_DELETE("work_grassroots_party_branch_delete","基层治理:支部管理:删除党支部","支部管理-删除党支部"),

21
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/filter/LogMsgSendFilter.java

@ -7,6 +7,7 @@ import ch.qos.logback.classic.spi.IThrowableProxy;
import ch.qos.logback.classic.spi.StackTraceElementProxy;
import ch.qos.logback.core.spi.FilterReply;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.utils.DingdingMsgSender;
import com.epmet.commons.tools.utils.IpUtils;
import org.apache.commons.lang3.StringUtils;
@ -26,6 +27,8 @@ public class LogMsgSendFilter extends LevelFilter {
private DingdingMsgSender msgSender = new DingdingMsgSender();
private String webHook;
private String secret;
private String activeEnv;
private String appName;
@Override
public FilterReply decide(ILoggingEvent event) {
@ -39,11 +42,19 @@ public class LogMsgSendFilter extends LevelFilter {
stringBuilder.append("告警级别:" + event.getLevel());
stringBuilder.append("\n");
if (StringUtils.isNotBlank(appName)) {
stringBuilder.append("服务名称:" + appName);
stringBuilder.append("\n");
}
if (StringUtils.isNotBlank(activeEnv)) {
stringBuilder.append("告警环境:" + EnvEnum.getEnum(activeEnv).getName());
stringBuilder.append("\n");
}
String serverIp = IpUtils.getServerIp();
if (StringUtils.isNotBlank(serverIp)) {
stringBuilder.append("IP地址:" + serverIp);
}
stringBuilder.append("\n");
}
stringBuilder.append("故障时间:" + formatLongTime2Str(event.getTimeStamp()));
stringBuilder.append("\n");
stringBuilder.append("TraceId:" + Thread.currentThread().getName());
@ -112,6 +123,14 @@ public class LogMsgSendFilter extends LevelFilter {
return dateFormat.format(timestamp);
}
public void setActiveEnv(String activeEnv) {
this.activeEnv = activeEnv;
}
public void setAppName(String appName) {
this.appName = appName;
}
public void setWebHook(String webHook) {
this.webHook = webHook;
}

73
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java

@ -2,6 +2,7 @@ package com.epmet.commons.tools.utils;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.dto.form.DingTalkTextMsg;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.google.common.collect.Lists;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
@ -12,7 +13,12 @@ import org.springframework.stereotype.Component;
import javax.annotation.PreDestroy;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.concurrent.ArrayBlockingQueue;
@ -48,7 +54,7 @@ public class DingdingMsgSender {
//阻塞取元素
msg = msgQueue.take();
if (msg != null) {
sendPostByJSON(msg);
sendMsg(msg);
} else {
Thread.sleep(1000);
}
@ -81,7 +87,7 @@ public class DingdingMsgSender {
DingTalkTextMsg param = new DingTalkTextMsg();
param.setContent("待发送消息队列已满,当前队列个数" + msgQueue.size() + "\n" + "最新消息内容:" + JSON.toJSONString(messageParam));
param.setWebHook(messageParam.getWebHook());
sendPostByJSON(param);
sendMsg(param);
}
return flag;
}
@ -94,7 +100,7 @@ public class DingdingMsgSender {
* @throws IOException
*/
public Result<String> sendMsgSync(DingTalkTextMsg messageParam) {
return sendPostByJSON(messageParam);
return sendMsg(messageParam);
}
private Thread getThread() {
@ -121,7 +127,7 @@ public class DingdingMsgSender {
* @param param 请求参数JSON格式
* @return
*/
private Result<String> sendPostByJSON(DingTalkTextMsg param) {
private Result<String> sendMsg(DingTalkTextMsg param) {
if (StringUtils.isBlank(param.getWebHook())) {
param.setWebHook(webHook);
}
@ -139,13 +145,70 @@ public class DingdingMsgSender {
String url = param.getWebHook();
url = url.concat("&timestamp=" + timestamp + "&sign=" + sign);
String jsonStrParam = param.getMsgContent();
result = HttpClientManager.getInstance().sendPostByJSON(url, jsonStrParam);
result = this.sendPostByJSON(url, jsonStrParam);
} catch (Exception e) {
logger.warn("sendPostByJSON error", e);
}
return result;
}
/**
* 发送POST 请求
*
* @param url 发送请求的 URL
* @param param 请求参数JSON格式
* @return
*/
public Result<String> sendPostByJSON(String url, String param) throws IOException {
if (StringUtils.isEmpty(url) || StringUtils.isEmpty(param)) {
throw new IllegalArgumentException("参数不能为空");
}
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
logger.warn("sendPostByJSON error", e);
return new Result<String>().error(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage());
} finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
}
}
return new Result<String>().ok(result);
}
public static void main(String[] args) {
for (int i = 0; i < 50; i++) {

2
epmet-gateway/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-gateway-server:
container_name: epmet-gateway-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.19
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.20
ports:
- "8080:8080"
network_mode: host # 使用现有网络

2
epmet-gateway/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.19</version>
<version>0.3.20</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>

5
epmet-gateway/src/main/java/com/epmet/GatewayApplication.java

@ -8,11 +8,13 @@
package com.epmet;
import com.epmet.commons.tools.aspect.ServletExceptionHandler;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
/**
* 网关服务
@ -20,9 +22,10 @@ import org.springframework.context.annotation.ComponentScan;
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@SpringBootApplication
@SpringBootApplication()
@EnableDiscoveryClient
@EnableFeignClients
@ComponentScan(basePackages = {"com.epmet.*"}, excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {ServletExceptionHandler.class}))
public class GatewayApplication {
public static void main(String[] args) {

2
epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.23
image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.25
ports:
- "8109:8109"
network_mode: host # 使用现有网络

2
epmet-module/data-report/data-report-server/pom.xml

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.23</version>
<version>0.3.25</version>
<artifactId>data-report-server</artifactId>
<parent>

38
epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml

@ -7,7 +7,7 @@
<select id="selectProjectSummary" resultType="com.epmet.project.dto.result.ProjectSummaryResultDTO">
SELECT
agency_id AS "agencyId",
project_total AS "projectTotal",
IFNULL(project_total,0) AS "projectTotal",
DATE_FORMAT(date_id, '%Y.%m.%d') AS "dateName",
IFNULL(pending_total,0) AS "pendingTotal",
/*CAST(pending_ratio AS DECIMAL (9, 2)) AS "pendingRatioInt",*/
@ -27,8 +27,8 @@
(
SELECT
"处理中" AS "name",
pending_total AS "value",
pending_ratio AS "ratioInt"
IFNULL(pending_total,0) AS "value",
IFNULL(pending_ratio,0) AS "ratioInt"
FROM
fact_agency_project_daily
WHERE
@ -42,8 +42,8 @@
(
SELECT
"已结案" AS "name",
closed_total AS "value",
closed_ratio AS "ratioInt"
IFNULL(closed_total,0) AS "value",
IFNULL(closed_ratio,0) AS "ratioInt"
FROM
fact_agency_project_daily
WHERE
@ -84,9 +84,9 @@
SELECT
da.id AS "agencyId",
da.agency_name AS "name",
fapd.pending_total AS "value",
IFNULL(fapd.pending_total,0) AS "value",
"处理中" AS "type",
fapd.project_total
IFNULL(fapd.project_total,0) AS "projectTotal"
FROM
fact_agency_project_daily fapd
LEFT JOIN dim_agency da ON fapd.agency_id = da.id
@ -100,9 +100,9 @@
SELECT
da.id AS "agencyId",
da.agency_name AS "name",
fapd.closed_total AS "value",
IFNULL(fapd.closed_total,0) AS "value",
"已结案" AS "type",
fapd.project_total
IFNULL(fapd.project_total,0) AS "projectTotal"
FROM
fact_agency_project_daily fapd
LEFT JOIN dim_agency da ON fapd.agency_id = da.id
@ -113,7 +113,7 @@
)
) a
ORDER BY
a.project_total DESC
a.projectTotal DESC
</select>
<select id="selectSubGrid" resultType="com.epmet.project.dto.result.ProjectSubGridResultDTO">
@ -124,9 +124,9 @@
SELECT
da.id AS "agencyId",
dg.grid_name AS "name",
fgpd.pending_total AS "value",
IFNULL(fgpd.pending_total,0) AS "value",
"处理中" AS "type",
fgpd.project_total
IFNULL(fgpd.project_total,0) AS "projectTotal"
FROM
fact_grid_project_daily fgpd
LEFT JOIN dim_agency da ON fgpd.agency_id = da.id
@ -143,9 +143,9 @@
SELECT
da.id AS "agencyId",
dg.grid_name AS "name",
fgpd.closed_total AS "value",
IFNULL(fgpd.closed_total,0) AS "value",
"已结案" AS "type",
fgpd.project_total
IFNULL(fgpd.project_total,0) AS "projectTotal"
FROM
fact_grid_project_daily fgpd
LEFT JOIN dim_agency da ON fgpd.agency_id = da.id
@ -159,7 +159,7 @@
)
) a
ORDER BY
a.project_total DESC, a.type ASC
a.projectTotal DESC, a.type ASC
</select>
<select id="selectIncrTrendDaily" resultType="com.epmet.project.dto.result.ProjectIncrTrendResultDTO">
@ -167,7 +167,7 @@
(
SELECT
DATE_FORMAT(date_id, "%Y/%m/%d") AS "date",
pending_incr AS "value",
IFNULL(pending_incr,0) AS "value",
"处理中" AS "type",
date_id
FROM
@ -183,7 +183,7 @@
(
SELECT
DATE_FORMAT(date_id, "%Y/%m/%d") AS "date",
closed_incr AS "value",
IFNULL(closed_incr,0) AS "value",
"已结案" AS "type",
date_id
FROM
@ -203,7 +203,7 @@
(
SELECT
DATE_FORMAT(CONCAT(month_id,"00"), "%Y/%m") AS "date",
pending_incr AS "value",
IFNULL(pending_incr,0) AS "value",
"处理中" AS "type",
month_id
FROM
@ -219,7 +219,7 @@
(
SELECT
DATE_FORMAT(CONCAT(month_id,"00"), "%Y/%m") AS "date",
closed_incr AS "value",
IFNULL(closed_incr,0) AS "value",
"已结案" AS "type",
month_id
FROM

2
epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-statistical-server:
container_name: data-statistical-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.32
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.34
ports:
- "8108:8108"
network_mode: host # 使用现有网络

10
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.32</version>
<version>0.3.34</version>
<parent>
<artifactId>data-statistical</artifactId>
<groupId>com.epmet</groupId>
@ -175,6 +175,10 @@
<thread.pool.max-pool-size>8</thread.pool.max-pool-size>
<thread.pool.queue-capacity>10</thread.pool.queue-capacity>
<thread.pool.keep-alive>30</thread.pool.keep-alive>
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
</properties>
</profile>
<profile>
@ -257,6 +261,10 @@
<thread.pool.max-pool-size>8</thread.pool.max-pool-size>
<thread.pool.queue-capacity>10</thread.pool.queue-capacity>
<thread.pool.keep-alive>30</thread.pool.keep-alive>
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>
</properties>
</profile>
</profiles>

6
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java

@ -27,9 +27,9 @@ public class DemoController {
@GetMapping("testAlarm")
public void testAlarm() {
for (int i = 0; i < 20; i++) {
log.error("测试消息"+i);
}
//for (int i = 0; i < 20; i++) {
log.error("测试消息");
//}
}
@GetMapping("testtx")

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyProjectDailyEntity.java

@ -82,71 +82,71 @@ public class FactAgencyProjectDailyEntity extends BaseEpmetEntity {
/**
* 截止当日项目总数 当前组织及下级项目总数
*/
private Integer projectTotal;
private Integer projectTotal = 0;
/**
* 截止当日处理中项目数 当前组织及下级所有未结案项目总数
*/
private Integer pendingTotal;
private Integer pendingTotal = 0;
/**
* 截止当日处理中项目占比 当前组织及下级未结案项目百分比存百分比数小数点后两位
*/
private BigDecimal pendingRatio;
private BigDecimal pendingRatio = new BigDecimal("0");
/**
* 截止当日已结案项目数 当前组织及下级已结案项目总数
*/
private Integer closedTotal;
private Integer closedTotal = 0;
/**
* 截止当日已结案项目占比 当前组织及下级已结案项目百分比存百分比数小数点后两位
*/
private BigDecimal closedRatio;
private BigDecimal closedRatio = new BigDecimal("0");
/**
* 截止当日已结案中已解决项目数 当前组织及下级已结案项目中已解决总数
*/
private Integer resolvedTotal;
private Integer resolvedTotal = 0;
/**
* 截止当日已结案中已解决项目占比 当前组织及下级已结案项目中已解决占比
*/
private BigDecimal resolvedRatio;
private BigDecimal resolvedRatio = new BigDecimal("0");
/**
* 截止当日已结案中未解决项目数 当前组织及下级已结案项目中未解决总数
*/
private Integer unresolvedTotal;
private Integer unresolvedTotal = 0;
/**
* 截止当日已结案中未解决项目占比 当前组织及下级已结案项目中未解决占比
*/
private BigDecimal unresolvedRatio;
private BigDecimal unresolvedRatio = new BigDecimal("0");
/**
* 当日项目总数 当前组织及下级项目总数
*/
private Integer projectIncr;
private Integer projectIncr = 0;
/**
* 当日处理中项目数 当前组织及下级前一日新增处理中项目数
*/
private Integer pendingIncr;
private Integer pendingIncr = 0;
/**
* 当日已结案项目数 当前组织及下级前一日新增结案项目数
*/
private Integer closedIncr;
private Integer closedIncr = 0;
/**
* 当日已结案项目中已解决数 当前组织及下级前一日新增结案中已解决项目数
*/
private Integer resolvedIncr;
private Integer resolvedIncr = 0;
/**
* 当日已结案项目组未解决数 当前组织及下级前一日新增结案中未解决项目数
*/
private Integer unresolvedIncr;
private Integer unresolvedIncr = 0;
}

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyProjectMonthlyEntity.java

@ -72,71 +72,71 @@ public class FactAgencyProjectMonthlyEntity extends BaseEpmetEntity {
/**
* 截止当月项目总数 当前组织及下级项目总数
*/
private Integer projectTotal;
private Integer projectTotal = 0;
/**
* 截止当月处理中项目数 当前组织及下级所有未结案项目总数
*/
private Integer pendingTotal;
private Integer pendingTotal = 0;
/**
* 截止当月处理中项目占比 当前组织及下级未结案项目百分比存百分比数小数点后两位
*/
private BigDecimal pendingRatio;
private BigDecimal pendingRatio = new BigDecimal("0");
/**
* 截止当月已结案项目数 当前组织及下级已结案项目总数
*/
private Integer closedTotal;
private Integer closedTotal = 0;
/**
* 截止当月已结案项目占比 当前组织及下级已结案项目百分比存百分比数小数点后两位
*/
private BigDecimal closedRatio;
private BigDecimal closedRatio = new BigDecimal("0");
/**
* 截止当月已结案中已解决项目数 当前组织及下级已结案项目中已解决总数
*/
private Integer resolvedTotal;
private Integer resolvedTotal = 0;
/**
* 截止当月已结案中已解决项目占比 当前组织及下级已结案项目中已解决占比
*/
private BigDecimal resolvedRatio;
private BigDecimal resolvedRatio = new BigDecimal("0");
/**
* 截止当月已结案中未解决项目数 当前组织及下级已结案项目中未解决总数
*/
private Integer unresolvedTotal;
private Integer unresolvedTotal = 0;
/**
* 截止当月已结案中未解决项目占比 当前组织及下级已结案项目中未解决占比
*/
private BigDecimal unresolvedRatio;
private BigDecimal unresolvedRatio = new BigDecimal("0");
/**
* 当月项目总数 当前组织及下级前一月新增项目数
*/
private Integer projectIncr;
private Integer projectIncr = 0;
/**
* 当月处理中项目数 当前组织及下级前一月新增处理中项目数
*/
private Integer pendingIncr;
private Integer pendingIncr = 0;
/**
* 当月已结案项目数 当前组织及下级前一月新增结案项目数
*/
private Integer closedIncr;
private Integer closedIncr = 0;
/**
* 当月已结案项目中已解决数 当前组织及下级前一日新增结案中已解决项目数
*/
private Integer resolvedIncr;
private Integer resolvedIncr = 0;
/**
* 当月已结案项目组未解决数 当前组织及下级前一日新增结案中未解决项目数
*/
private Integer unresolvedIncr;
private Integer unresolvedIncr = 0;
}

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridProjectDailyEntity.java

@ -82,71 +82,71 @@ public class FactGridProjectDailyEntity extends BaseEpmetEntity {
/**
* 截止当日网格下项目总数 当前组织及下级项目总数
*/
private Integer projectTotal;
private Integer projectTotal = 0;
/**
* 截止当日网格下处理中项目数 当前组织及下级所有未结案项目总数
*/
private Integer pendingTotal;
private Integer pendingTotal = 0;
/**
* 截止当日网格下处理中项目占比 当前组织及下级未结案项目百分比存百分比数小数点后两位
*/
private BigDecimal pendingRatio;
private BigDecimal pendingRatio = new BigDecimal("0");
/**
* 截止当日网格下已结案项目数 当前组织及下级已结案项目总数
*/
private Integer closedTotal;
private Integer closedTotal = 0;
/**
* 截止当日网格下已结案项目占比 当前组织及下级已结案项目百分比存百分比数小数点后两位
*/
private BigDecimal closedRatio;
private BigDecimal closedRatio = new BigDecimal("0");
/**
* 截止当日已结案中已解决项目数 当前组织及下级已结案项目中已解决总数
*/
private Integer resolvedTotal;
private Integer resolvedTotal = 0;
/**
* 截止当日已结案中已解决项目占比 当前组织及下级已结案项目中已解决占比
*/
private BigDecimal resolvedRatio;
private BigDecimal resolvedRatio = new BigDecimal("0");
/**
* 截止当日已结案中未解决项目数 当前组织及下级已结案项目中未解决总数
*/
private Integer unresolvedTotal;
private Integer unresolvedTotal = 0;
/**
* 截止当日已结案中未解决项目占比 当前组织及下级已结案项目中未解决占比
*/
private BigDecimal unresolvedRatio;
private BigDecimal unresolvedRatio = new BigDecimal("0");
/**
* 当日已结案项目中已解决数 当前组织及下级前一日新增结案中已解决项目数
*/
private Integer resolvedIncr;
private Integer resolvedIncr = 0;
/**
* 当日已结案项目组未解决数 当前组织及下级前一日新增结案中未解决项目数
*/
private Integer unresolvedIncr;
private Integer unresolvedIncr = 0;
/**
* 当日网格下项目总数 该网格下项目总数
*/
private Integer projectIncr;
private Integer projectIncr = 0;
/**
* 当日网格下处理中项目数 该网格下未结案项目总数
*/
private Integer pendingIncr;
private Integer pendingIncr = 0;
/**
* 当日网格下已结案项目数 该网格下已结案项目总数
*/
private Integer closedIncr;
private Integer closedIncr = 0;
}

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridProjectMonthlyEntity.java

@ -72,71 +72,71 @@ public class FactGridProjectMonthlyEntity extends BaseEpmetEntity {
/**
* 截止当月项目总数 当前组织及下级项目总数
*/
private Integer projectTotal;
private Integer projectTotal = 0;
/**
* 截止当月处理中项目数 当前组织及下级所有未结案项目总数
*/
private Integer pendingTotal;
private Integer pendingTotal = 0;
/**
* 截止当月处理中项目占比 当前组织及下级未结案项目百分比存百分比数小数点后两位
*/
private BigDecimal pendingRatio;
private BigDecimal pendingRatio = new BigDecimal("0");
/**
* 截止当月已结案项目数 当前组织及下级已结案项目总数
*/
private Integer closedTotal;
private Integer closedTotal = 0;
/**
* 截止当月已结案项目占比 当前组织及下级已结案项目百分比存百分比数小数点后两位
*/
private BigDecimal closedRatio;
private BigDecimal closedRatio = new BigDecimal("0");
/**
* 截止当月已结案中已解决项目数 当前组织及下级已结案项目中已解决总数
*/
private Integer resolvedTotal;
private Integer resolvedTotal = 0;
/**
* 截止当月已结案中已解决项目占比 当前组织及下级已结案项目中已解决占比
*/
private BigDecimal resolvedRatio;
private BigDecimal resolvedRatio = new BigDecimal("0");
/**
* 截止当月已结案中未解决项目数 当前组织及下级已结案项目中未解决总数
*/
private Integer unresolvedTotal;
private Integer unresolvedTotal = 0;
/**
* 截止当月已结案中未解决项目占比 当前组织及下级已结案项目中未解决占比
*/
private BigDecimal unresolvedRatio;
private BigDecimal unresolvedRatio = new BigDecimal("0");
/**
* 当月项目总数 当前组织及下级前一月新增项目数
*/
private Integer projectIncr;
private Integer projectIncr = 0;
/**
* 当月处理中项目数 当前组织及下级前一月新增处理中项目数
*/
private Integer pendingIncr;
private Integer pendingIncr = 0;
/**
* 当月已结案项目数 当前组织及下级前一月新增结案项目数
*/
private Integer closedIncr;
private Integer closedIncr = 0;
/**
* 当月已结案项目中已解决数 当前组织及下级前一日新增结案中已解决项目数
*/
private Integer resolvedIncr;
private Integer resolvedIncr = 0;
/**
* 当月已结案项目组未解决数 当前组织及下级前一日新增结案中未解决项目数
*/
private Integer unresolvedIncr;
private Integer unresolvedIncr = 0;
}

5
epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml

@ -163,3 +163,8 @@ thread:
maxPoolSize: @thread.pool.max-pool-size@
queueCapacity: @thread.pool.queue-capacity@
keepAlive: @thread.pool.keep-alive@
dingTalk:
robot:
webHook: @dingTalk.robot.webHook@
secret: @dingTalk.robot.secret@

9
epmet-module/data-statistical/data-statistical-server/src/main/resources/logback-spring.xml

@ -5,6 +5,9 @@
<property name="log.path" value="logs/data-statistical"/>
<springProperty scope="context" name="appname" source="spring.application.name"/>
<springProperty scope="context" name="activeEnv" source="spring.profiles.active"/>
<springProperty scope="context" name="webHook" source="dingTalk.robot.webHook"/>
<springProperty scope="context" name="secret" source="dingTalk.robot.secret"/>
<!-- 日志上下文名称 -->
<contextName>${appname}</contextName>
@ -130,8 +133,10 @@
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
<webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</webHook>
<secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</secret>
<activeEnv>${activeEnv}</activeEnv>
<webHook>${webHook}</webHook>
<secret>${secret}</secret>
<appName>${appname}</appName>
</filter>
</appender>

2
epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-job-server:
container_name: epmet-job-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-job-server:0.3.19
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-job-server:0.3.20
ports:
- "8084:8084"
network_mode: host # 使用现有网络

8
epmet-module/epmet-job/epmet-job-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.19</version>
<version>0.3.20</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-job</artifactId>
@ -130,6 +130,9 @@
<nacos.ip/>
<spring.flyway.enabled>false</spring.flyway.enabled>
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
</properties>
</profile>
<profile>
@ -162,6 +165,9 @@
<nacos.ip/>
<spring.flyway.enabled>true</spring.flyway.enabled>
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>
</properties>
</profile>
</profiles>

33
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/controller/DemoController.java

@ -0,0 +1,33 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.epmet.controller;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 定时任务
*
* @author Mark sunlightcs@gmail.com
*/
@Slf4j
@RestController
@RequestMapping("demo")
@Api(tags="定时任务")
public class DemoController {
@GetMapping("testAlarm")
public void testAlarm() {
//for (int i = 0; i < 20; i++) {
log.error("测试消息");
//}
}
}

5
epmet-module/epmet-job/epmet-job-server/src/main/resources/bootstrap.yml

@ -113,3 +113,8 @@ hystrix:
ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
dingTalk:
robot:
webHook: @dingTalk.robot.webHook@
secret: @dingTalk.robot.secret@

9
epmet-module/epmet-job/epmet-job-server/src/main/resources/logback-spring.xml

@ -5,6 +5,9 @@
<property name="log.path" value="logs/job"/>
<springProperty scope="context" name="appname" source="spring.application.name"/>
<springProperty scope="context" name="activeEnv" source="spring.profiles.active"/>
<springProperty scope="context" name="webHook" source="dingTalk.robot.webHook"/>
<springProperty scope="context" name="secret" source="dingTalk.robot.secret"/>
<!-- 日志上下文名称 -->
<contextName>${appname}</contextName>
@ -129,8 +132,10 @@
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
<webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</webHook>
<secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</secret>
<activeEnv>${activeEnv}</activeEnv>
<webHook>${webHook}</webHook>
<secret>${secret}</secret>
<appName>${appname}</appName>
</filter>
</appender>

2
epmet-module/gov-access/gov-access-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-access-server:
container_name: gov-access-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-access-server:0.3.35
image: 192.168.1.130:10080/epmet-cloud-dev/gov-access-server:0.3.36
ports:
- "8099:8099"
network_mode: host # 使用现有网络

2
epmet-module/gov-access/gov-access-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.35</version>
<version>0.3.36</version>
<parent>
<artifactId>gov-access</artifactId>
<groupId>com.epmet</groupId>

2
epmet-module/gov-grid/gov-grid-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-grid-server:
container_name: gov-grid-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-grid-server:0.3.36
image: 192.168.1.130:10080/epmet-cloud-dev/gov-grid-server:0.3.37
ports:
- "8097:8097"
network_mode: host # 使用现有网络

2
epmet-module/gov-grid/gov-grid-server/pom.xml

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.36</version>
<version>0.3.37</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>gov-grid</artifactId>

1
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/PartyBranchManageController.java

@ -67,6 +67,7 @@ public class PartyBranchManageController {
* @Date 2020/6/17 16:15
**/
@PostMapping("list")
@RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_PARTY_BRANCH_LIST)
public Result<List<PartyBranchListResultDTO>> listPartyBranch(@RequestBody PartyBranchListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, PartyBranchListFormDTO.AddUserInternalGroup.class);
return new Result<List<PartyBranchListResultDTO>>().ok(partyBranchManageService.listPartyBranch(formDTO));

2
epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-group-server:
container_name: resi-group-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.55
image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.57
ports:
- "8095:8095"
network_mode: host # 使用现有网络

2
epmet-module/resi-group/resi-group-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.55</version>
<version>0.3.57</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>resi-group</artifactId>

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -675,6 +675,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
groupsInGridResultDTO.setStatus(group.getState());
groupsInGridResultDTO.setTotalMember(NumConstant.ZERO);
groupsInGridResultDTO.setTotalPartyMember(NumConstant.ZERO);
resultList.add(groupsInGridResultDTO);
} else if(MemberStateConstant.APPROVED.equals(group.getState())) {
//缓存中获取组信息
ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(group.getId());
@ -684,9 +685,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
groupsInGridResultDTO.setStatus(resiGroupInfoRedisDTO.getGroupState());
groupsInGridResultDTO.setTotalMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalMembers());
groupsInGridResultDTO.setTotalPartyMember(resiGroupInfoRedisDTO.getGroupStatisticalInfo().getTotalPartyMembers());
resultList.add(groupsInGridResultDTO);
}
resultList.add(groupsInGridResultDTO);
});
return new Result<List<GroupsInGridResultDTO>>().ok(resultList);

6
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -599,7 +599,11 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
List<ResiTopicOperationEntity> records =
resiTopicOperationDao.selectList(queryWrapper);
if(null != records && records.size() > NumConstant.ZERO){
closeDetail.setCloseReason(records.get(0).getOperationReason());
if(StringUtils.isNotBlank(records.get(0).getOperationReason())){
closeDetail.setCloseReason(String.format("%s%s",
ModuleConstant.CLOSED_TOPIC_REASON_PREFIX,
records.get(0).getOperationReason()));
}
closeDetail.setCloseDateTime(records.get(0).getCreatedTime().getTime()/NumConstant.ONE_THOUSAND);
ResiGroupMemberInfoRedisDTO closedBy =
resiGroupMemberRedis.get(group.getId(),records.get(0).getCreatedBy());

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -326,4 +326,6 @@ public interface ModuleConstant extends Constant {
String FILED_TOPIC_ID = "TOPIC_ID";
String FIELD_OPERATION_TYPE = "OPERATION_TYPE";
String CLOSED_TOPIC_REASON_PREFIX="话题已关闭:";
}

2
epmet-user/epmet-user-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-user-server:
container_name: epmet-user-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.68
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.69
ports:
- "8087:8087"
network_mode: host # 不会创建新的网络

2
epmet-user/epmet-user-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.68</version>
<version>0.3.69</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-user</artifactId>

7
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GridVisitedDao.java

@ -23,6 +23,9 @@ import com.epmet.dto.GridVisitedDTO;
import com.epmet.entity.GridLatestEntity;
import com.epmet.entity.GridVisitedEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 网格访问记录表 用户对网格访问的一个记录只有在访问网格首页时才存储数据,一个用户一天对一个网格的访问只有一条记录
@ -33,6 +36,8 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface GridVisitedDao extends BaseDao<GridVisitedEntity> {
GridVisitedDTO selectGridVisitedByGridIdAndUserId(GridVisitedDTO formDTO);
List<GridVisitedDTO> selectGridVisitedByGridIdAndUserId(GridVisitedDTO formDTO);
int updateByVisitedId(GridVisitedDTO dto);
void deleteBatch(@Param("ids") List<String> ids);
}

26
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridVisitedServiceImpl.java

@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -42,10 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 网格访问记录表 用户对网格访问的一个记录只有在访问网格首页时才存储数据,一个用户一天对一个网格的访问只有一条记录
@ -165,16 +163,26 @@ public class GridVisitedServiceImpl extends BaseServiceImpl<GridVisitedDao, Grid
gridVisitedDTO.setVisitTime(date);
gridVisitedDTO.setUpdatedTime(date);
//查询是否存在历史数据( 一个用户一天对一个网格只存在一条访问记录)
GridVisitedDTO dto = baseDao.selectGridVisitedByGridIdAndUserId(gridVisitedDTO);
List<GridVisitedDTO> dto = baseDao.selectGridVisitedByGridIdAndUserId(gridVisitedDTO);
GridVisitedEntity entity = null;
if (dto == null || dto.getId() == null) {
boolean result = false;
if(null == dto || dto.size() <= NumConstant.ZERO){
entity = ConvertUtils.sourceToTarget(gridVisitedDTO, GridVisitedEntity.class);
return insert(entity);
}else{
dto.setUpdatedBy(visitedFormDTO.getUserId());
dto.setUpdatedTime(date);
return BaseServiceImpl.retBool(gridVisitedDao.updateByVisitedId(dto));
dto.get(NumConstant.ZERO).setUpdatedBy(visitedFormDTO.getUserId());
dto.get(NumConstant.ZERO).setUpdatedTime(date);
result = BaseServiceImpl.retBool(gridVisitedDao.updateByVisitedId(dto.get(NumConstant.ZERO)));
if(dto.size() > NumConstant.ONE){
List<String> ids = new LinkedList<>();
dto.subList(NumConstant.ONE,dto.size()).forEach(obj -> {
ids.add(obj.getId());
});
baseDao.deleteBatch(ids);
}
}
return result;
}
/**

16
epmet-user/epmet-user-server/src/main/resources/mapper/GridVisitedDao.xml

@ -48,13 +48,27 @@
<if test='visitTime != null'>
AND to_days(vi.visit_time) = to_days(#{visitTime})
</if>
ORDER BY
vi.visit_time DESC
</select>
<update id="updateByVisitedId">
UPDATE grid_visited
SET updated_by = #{updatedBy},
SET
visit_time = #{updatedTime},
updated_by = #{updatedBy},
updated_time = #{updatedTime}
WHERE id = #{id}
</update>
<update id="deleteBatch" parameterType="java.util.List">
UPDATE grid_visited
SET del_flag = '1',
updated_time = now()
WHERE
<foreach collection="ids" item="id" open="" separator="OR" close="">
ID = #{id}
</foreach>
</update>
</mapper>
Loading…
Cancel
Save