From f079a9ae773b327ff8fbd76fdd101bf709147303 Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Tue, 12 May 2020 10:30:49 +0800
Subject: [PATCH 01/22] =?UTF-8?q?=E6=96=B0=E5=A2=9Eepmet-common-service?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 epmet-gateway/pom.xml                         |   7 +
 .../src/main/resources/bootstrap.yml          |   8 +
 .../common-service-client/pom.xml             |  35 +++
 .../main/java/com/epmet/dto/CalenderDTO.java  | 131 ++++++++++++
 .../com/epmet/dto/form/WorkDayFormDTO.java    |  31 +++
 .../epmet/dto/result/WorkDayResultDTO.java    |  37 ++++
 .../common-service-server/Dockerfile          |  11 +
 .../common-service-server/docker-compose.yml  |  15 ++
 .../common-service-server/pom.xml             | 148 +++++++++++++
 .../epmet/EpmetCommonServiceApplication.java  |  31 +++
 .../com/epmet/config/ModuleConfigImpl.java    |  26 +++
 .../com/epmet/constant/ShowApiConstant.java   |  36 ++++
 .../epmet/controller/CalenderController.java  |  85 ++++++++
 .../epmet/controller/ShowApiController.java   |  62 ++++++
 .../epmet/controller/WorkDayController.java   |  41 ++++
 .../main/java/com/epmet/dao/CalenderDao.java  |  44 ++++
 .../java/com/epmet/entity/CalenderEntity.java | 101 +++++++++
 .../com/epmet/exception/ModuleErrorCode.java  |  25 +++
 .../com/epmet/result/DayDetailResultDTO.java  |  77 +++++++
 .../com/epmet/result/HolidayDetailDTO.java    |  44 ++++
 .../com/epmet/result/HolidayResultDTO.java    |  27 +++
 .../java/com/epmet/result/ShowApiResult.java  |  74 +++++++
 .../com/epmet/service/CalenderService.java    |  95 +++++++++
 .../com/epmet/service/ShowApiService.java     |  16 ++
 .../com/epmet/service/WorkDayService.java     |  16 ++
 .../service/impl/CalenderServiceImpl.java     |  97 +++++++++
 .../service/impl/ShowApiServiceImpl.java      | 201 ++++++++++++++++++
 .../service/impl/WorkDayServiceImpl.java      |  82 +++++++
 .../epmet/task/MultithreadScheduleTask.java   |  38 ++++
 .../com/epmet/task/SaticScheduleTask.java     |  31 +++
 .../java/com/epmet/utils/ShowApiUtil.java     | 106 +++++++++
 .../src/main/resources/bootstrap.yml          | 106 +++++++++
 .../src/main/resources/db/migration/db.sql    |   0
 .../src/main/resources/logback-spring.xml     | 158 ++++++++++++++
 .../src/main/resources/mapper/CalenderDao.xml |  64 ++++++
 epmet-module/epmet-common-service/pom.xml     |  21 ++
 epmet-module/pom.xml                          |   1 +
 37 files changed, 2128 insertions(+)
 create mode 100644 epmet-module/epmet-common-service/common-service-client/pom.xml
 create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
 create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/WorkDayFormDTO.java
 create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/WorkDayResultDTO.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/Dockerfile
 create mode 100644 epmet-module/epmet-common-service/common-service-server/docker-compose.yml
 create mode 100644 epmet-module/epmet-common-service/common-service-server/pom.xml
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/config/ModuleConfigImpl.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/ShowApiConstant.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/entity/CalenderEntity.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/exception/ModuleErrorCode.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/DayDetailResultDTO.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayDetailDTO.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayResultDTO.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/ShowApiResult.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ShowApiServiceImpl.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/MultithreadScheduleTask.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/utils/ShowApiUtil.java
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/db.sql
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/resources/logback-spring.xml
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/CalenderDao.xml
 create mode 100644 epmet-module/epmet-common-service/pom.xml
diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index e3c45756f4..4029f58948 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -174,6 +174,9 @@
                 
 
                 lb://gov-project-server 
+                
+                http://127.0.0.1:8103 
+
             
         
         
@@ -244,6 +247,8 @@
                 lb://gov-issue-server 
                 
                 lb://gov-project-server 
+                
+                lb://common-service-server 
             
          
         
@@ -312,6 +317,8 @@
                 lb://gov-issue-server 
                 
                 lb://gov-project-server 
+                
+                lb://common-service-server 
             
          
     
diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml
index 112369073e..a009c0c628 100644
--- a/epmet-gateway/src/main/resources/bootstrap.yml
+++ b/epmet-gateway/src/main/resources/bootstrap.yml
@@ -224,6 +224,14 @@ spring:
           filters:
             - StripPrefix=1
             - CpAuth=true
+        #政府工作端项目管理
+        - id: common-service-server
+          uri: @gateway.routes.common-service-server.uri@
+          order: 23
+          predicates:
+            - Path=${server.servlet.context-path}/commonservice/**
+          filters:
+            - StripPrefix=1
     nacos:
       discovery:
         server-addr: @nacos.server-addr@
diff --git a/epmet-module/epmet-common-service/common-service-client/pom.xml b/epmet-module/epmet-common-service/common-service-client/pom.xml
new file mode 100644
index 0000000000..d8b8c6d070
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/pom.xml
@@ -0,0 +1,35 @@
+
+
+    4.0.0 
+
+    
+        com.epmet 
+        epmet-common-service 
+        2.0.0 
+     
+
+    common-service-client 
+    jar 
+
+    
+        
+            com.epmet 
+            epmet-commons-tools 
+            2.0.0 
+         
+        
+            io.springfox 
+            springfox-swagger2 
+         
+        
+            io.springfox 
+            springfox-swagger-ui 
+         
+     
+
+    
+        ${project.artifactId} 
+     
+
+ 
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
new file mode 100644
index 0000000000..77c75ed9e3
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Data
+public class CalenderDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+	private String id;
+
+    /**
+     * 0表示成功,其他为失败
+     */
+	private Integer retCode;
+
+    /**
+     * 查询的日期:20200510
+     */
+	private String day;
+
+    /**
+     * 查询的日期:20200510
+     */
+	private Date queryDate;
+
+    /**
+     * 星期几的数字
+     */
+	private Integer weekday;
+
+    /**
+     * 节日或周末开始时间,如果是工作日,此字段为空串
+     */
+	private String begin;
+
+    /**
+     * 节日或周末结束时间,如果是工作日,此字段为空串
+     */
+	private String end;
+
+    /**
+     * 节日备注
+     */
+	private String holidayRemark;
+
+    /**
+     * 1为工作日,2为周末,3为节假日
+     */
+	private String type;
+
+    /**
+     * 工作日,周末,节假日
+     */
+	private String typeName;
+
+    /**
+     * 节日名称,工作日时显示“无”,周末时显示“周末”,节日时显示节日名称
+     */
+	private String holiday;
+
+    /**
+     * 星期几的英文名
+     */
+	private String en;
+
+    /**
+     * 星期几的中文名
+     */
+	private String cn;
+
+    /**
+     * 是否删除,0:未删除,1:已删除
+     */
+	private Integer delFlag;
+
+    /**
+     * 乐观锁
+     */
+	private Integer revision;
+
+    /**
+     * 创建者id
+     */
+	private String createdBy;
+
+    /**
+     * 创建时间
+     */
+	private Date createdTime;
+
+    /**
+     * 更新者id
+     */
+	private String updatedBy;
+
+    /**
+     * 更新时间
+     */
+	private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/WorkDayFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/WorkDayFormDTO.java
new file mode 100644
index 0000000000..3442f81481
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/WorkDayFormDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 工作日计算入参
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:53
+ */
+@Data
+public class WorkDayFormDTO implements Serializable {
+    private static final long serialVersionUID = 5018009446003442250L;
+
+    /**
+     * key
+     */
+    private  String id;
+
+    /**
+     * 起始日期
+     */
+    private String startDate;
+
+    /**
+     * 终止日期
+     */
+    private String endDate;
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/WorkDayResultDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/WorkDayResultDTO.java
new file mode 100644
index 0000000000..8c594b1298
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/WorkDayResultDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 工作日计算返参
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:48
+ */
+@Data
+public class WorkDayResultDTO implements Serializable {
+    private static final long serialVersionUID = 4578531109651717997L;
+
+    /**
+     * key
+     */
+    private String id;
+
+    /**
+     * 起始日期
+     */
+    private String startDate;
+
+    /**
+     * 终止日期
+     */
+    private String endDate;
+
+    /**
+     * 已滞留工作日
+     */
+    private String detentionDays;
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/Dockerfile b/epmet-module/epmet-common-service/common-service-server/Dockerfile
new file mode 100644
index 0000000000..456b190e80
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/Dockerfile
@@ -0,0 +1,11 @@
+FROM java:8
+
+RUN export LANG="zh_CN.UTF-8"
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+RUN echo 'Asia/Shanghai' > /etc/timezone
+
+COPY ./target/*.jar ./app.jar
+
+EXPOSE 8103
+
+ENTRYPOINT ["java","-Xms32m","-Xmx200m","-jar","./app.jar"]
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/docker-compose.yml b/epmet-module/epmet-common-service/common-service-server/docker-compose.yml
new file mode 100644
index 0000000000..9af8426d0d
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/docker-compose.yml
@@ -0,0 +1,15 @@
+version: "3.7"
+services:
+  common-service-server:
+    container_name: common-service-server-dev
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-dev/common-service-server:0.3.0
+    ports:
+      - "8103:8103"
+    network_mode: host # 使用现有网络
+    volumes:
+      - "/opt/epmet-cloud-logs/dev:/logs"
+    deploy:
+      resources:
+        limits:
+          cpus: '0.1'
+          memory: 250M
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/pom.xml b/epmet-module/epmet-common-service/common-service-server/pom.xml
new file mode 100644
index 0000000000..9bfa6132e5
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/pom.xml
@@ -0,0 +1,148 @@
+
+
+    4.0.0 
+    0.3.0 
+    
+        com.epmet 
+        epmet-common-service 
+        2.0.0 
+     
+    common-service-server 
+    jar 
+
+    
+        
+            com.epmet 
+            common-service-client 
+            2.0.0 
+         
+        
+            com.epmet 
+            epmet-commons-tools 
+            2.0.0 
+         
+        
+            com.epmet 
+            epmet-commons-mybatis 
+            2.0.0 
+         
+        
+            org.springframework.boot 
+            spring-boot-starter-web 
+         
+        
+            org.springframework 
+            spring-context-support 
+         
+        
+            org.springframework.boot 
+            spring-boot-starter-actuator 
+         
+        
+            de.codecentric 
+            spring-boot-admin-starter-client 
+            ${spring.boot.admin.version} 
+         
+        
+            com.alibaba.cloud 
+            spring-cloud-starter-alibaba-nacos-discovery 
+         
+        
+            com.alibaba.cloud 
+            spring-cloud-starter-alibaba-nacos-config 
+         
+        
+        
+            io.github.openfeign 
+            feign-httpclient 
+            10.3.0 
+         
+     
+
+    
+        ${project.artifactId} 
+        
+            
+                org.springframework.boot 
+                spring-boot-maven-plugin 
+             
+            
+                org.apache.maven.plugins 
+                maven-surefire-plugin 
+                
+                    true 
+                 
+             
+         
+        ${project.basedir}/src/main/java 
+        
+            
+                true 
+                ${basedir}/src/main/resources 
+             
+         
+     
+    
+        
+            dev-local 
+            
+                true 
+             
+            
+                8103 
+                dev 
+
+                
+                
+                    
+                 
+                root 
+                root 
+                
+                0 
+                192.168.1.130 
+                6379 
+                123456 
+                
+                false 
+                122.152.200.70:8848 
+                fcd6fc8f-ca3a-4b01-8026-2b05cdc5976b 
+                 
+                 
+                false 
+                 
+             
+         
+        
+            dev 
+            
+            
+                8103 
+                dev 
+
+                
+                
+                    
+                 
+                epmet 
+                elink@833066 
+                
+                0 
+                r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com 
+                6379 
+                EpmEtrEdIs!q@w 
+                
+                true 
+                192.168.10.150:8848 
+                67e3c350-533e-4d7c-9f8f-faf1b4aa82ae 
+                 
+                 
+                false 
+                 
+             
+         
+     
+ 
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java
new file mode 100644
index 0000000000..238b8546d4
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/EpmetCommonServiceApplication.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 模块
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+@EnableFeignClients
+public class EpmetCommonServiceApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(EpmetCommonServiceApplication.class, args);
+    }
+
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/config/ModuleConfigImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/config/ModuleConfigImpl.java
new file mode 100644
index 0000000000..6fbaa47ba2
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/config/ModuleConfigImpl.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.config;
+
+import com.epmet.commons.tools.config.ModuleConfig;
+import org.springframework.stereotype.Service;
+
+/**
+ * 模块配置信息
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Service
+public class ModuleConfigImpl implements ModuleConfig {
+    @Override
+    public String getName() {
+        return "commonservice";
+    }
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/ShowApiConstant.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/ShowApiConstant.java
new file mode 100644
index 0000000000..69799d4fde
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/constant/ShowApiConstant.java
@@ -0,0 +1,36 @@
+package com.epmet.constant;
+
+/**
+ * @Description 万维易源API
+ * @Author yinzuomei
+ * @Date 2020/5/11 16:56
+ */
+public interface ShowApiConstant {
+    /**
+     * showapi_appid
+     */
+    String SHOWAPI_APPID = "222733";
+
+    /**
+     * secret
+     */
+    String SHOWAPI_SIGN = "ada451c248454d4eaf2db178482f14a7";
+
+    /**
+     * 2020年我国节假日查询,持续更新中......
+     * api:https://route.showapi.com/894-5
+     * 第一个参数:showapi_appidshowapi_appid
+     * 第二个参数:showapi_sign=secret
+     * 第三个参数:输入格式yyyyMMdd。如果不输入,则默认是当天。
+     */
+    String QUERY_HOLIDAY_V2020 = "http://route.showapi.com/894-5?showapi_appid=%s&showapi_sign=%s&day=%s";
+
+    /**
+     * 根据年份查询当年的节假日列表
+     * api:https://route.showapi.com/894-5
+     * 第一个参数:showapi_appidshowapi_appid
+     * 第二个参数:showapi_sign=secret
+     * 第三个参数:year需要查询的年份,默认查询2019年的节假日列表
+     */
+    String HOLIDAY_LIST = "http://route.showapi.com/894-4?showapi_appid=%s&showapi_sign=%s&year=%s";
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
new file mode 100644
index 0000000000..a3acf8c5ff
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.controller;
+
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.commons.tools.validator.group.AddGroup;
+import com.epmet.commons.tools.validator.group.UpdateGroup;
+import com.epmet.commons.tools.validator.group.DefaultGroup;
+import com.epmet.dto.CalenderDTO;
+import com.epmet.service.CalenderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+
+/**
+ * 
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@RestController
+@RequestMapping("calender")
+public class CalenderController {
+    
+    @Autowired
+    private CalenderService calenderService;
+
+    @GetMapping("page")
+    public Result> page(@RequestParam Map params){
+        PageData page = calenderService.page(params);
+        return new Result>().ok(page);
+    }
+
+    @GetMapping("{id}")
+    public Result get(@PathVariable("id") String id){
+        CalenderDTO data = calenderService.get(id);
+        return new Result().ok(data);
+    }
+
+    @PostMapping
+    public Result save(@RequestBody CalenderDTO dto){
+        //效验数据
+        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+        calenderService.save(dto);
+        return new Result();
+    }
+
+    @PutMapping
+    public Result update(@RequestBody CalenderDTO dto){
+        //效验数据
+        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+        calenderService.update(dto);
+        return new Result();
+    }
+
+    @DeleteMapping
+    public Result delete(@RequestBody String[] ids){
+        //效验数据
+        AssertUtils.isArrayEmpty(ids, "id");
+        calenderService.delete(ids);
+        return new Result();
+    }
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
new file mode 100644
index 0000000000..209c3f4cc4
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
@@ -0,0 +1,62 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.service.ShowApiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description 工作日信息维护
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:39
+ */
+@RestController
+@RequestMapping("holiday")
+public class ShowApiController {
+
+    @Autowired
+    private ShowApiService showApiService;
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result
+     * @param year
+     * @Author yinzuomei
+     * @Description 初始化日历插入数据库
+     * @Date 2020/5/11 23:23 
+     **/
+    @PostMapping("init/{year}")
+    public Result initYearCalender(@PathVariable("year") String year) {
+        showApiService.initYearCalender(year);
+        return new Result();
+    }
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author yinzuomei
+     * @Description 2020年我国节假日查询
+     * @Date 2020/5/11 23:24
+     **/
+    @PostMapping("initWorkDayList/{year}")
+    public Result initWorkDayList(@PathVariable("year") String year) {
+        showApiService.initWorkDayList(year);
+        return new Result();
+    }
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result
+     * @param year
+     * @Author yinzuomei
+     * @Description 根据年份查询当年的节假日列表(调用api同步到本地)
+     * @Date 2020/5/11 23:24 
+     **/
+    @PostMapping("holidayList/{year}")
+    public Result holidayList(@PathVariable("year") String year) {
+        showApiService.holidayList(year);
+        return new Result();
+    }
+
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java
new file mode 100644
index 0000000000..679613a48d
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java
@@ -0,0 +1,41 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.WorkDayFormDTO;
+import com.epmet.dto.result.WorkDayResultDTO;
+import com.epmet.service.WorkDayService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @Description 工作日计算
+ * @Author yinzuomei
+ * @Date 2020/5/12 0:27
+ */
+@RestController
+@RequestMapping("workday")
+public class WorkDayController {
+
+    @Autowired
+    private WorkDayService workDayService;
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result>
+     * @param formDTO
+     * @Author yinzuomei
+     * @Description 根据每一组起止时间,计算工作日
+     * @Date 2020/5/12 2:08
+     **/
+    @PostMapping("detentiondays")
+    public Result> detentionDays(@RequestBody List formDTO) {
+        List list = workDayService.detentionDays(formDTO);
+        return new Result>().ok(list);
+    }
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
new file mode 100644
index 0000000000..1240add1e1
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.CalenderEntity;
+import com.epmet.result.HolidayDetailDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Mapper
+public interface CalenderDao extends BaseDao {
+
+    int updateHoliday(HolidayDetailDTO holidayDetail);
+
+    CalenderEntity selectByDay(String day);
+
+    List selectList(String year);
+
+    List selectByStartAndEnd(@Param("begin")String startDateStr, @Param("end")String endDateStr);
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/entity/CalenderEntity.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/entity/CalenderEntity.java
new file mode 100644
index 0000000000..831b102b38
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/entity/CalenderEntity.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("calender")
+public class CalenderEntity extends BaseEpmetEntity {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 0表示成功,其他为失败
+     */
+	private Integer retCode;
+
+    /**
+     * 查询的日期:20200510
+     */
+	private String day;
+
+    /**
+     * 查询的日期:20200510
+     */
+	private Date queryDate;
+
+    /**
+     * 星期几的数字
+     */
+	private Integer weekday;
+
+    /**
+     * 节日或周末开始时间,如果是工作日,此字段为空串
+     */
+	private String begin;
+
+    /**
+     * 节日或周末结束时间,如果是工作日,此字段为空串
+     */
+	private String end;
+
+    /**
+     * 节日备注
+     */
+	private String holidayRemark;
+
+    /**
+     * 1为工作日,2为周末,3为节假日
+     */
+	private String type;
+
+    /**
+     * 工作日,周末,节假日
+     */
+	private String typeName;
+
+    /**
+     * 节日名称,工作日时显示“无”,周末时显示“周末”,节日时显示节日名称
+     */
+	private String holiday;
+
+    /**
+     * 星期几的英文名
+     */
+	private String en;
+
+    /**
+     * 星期几的中文名
+     */
+	private String cn;
+
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/exception/ModuleErrorCode.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/exception/ModuleErrorCode.java
new file mode 100644
index 0000000000..1206c71b9a
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/exception/ModuleErrorCode.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.exception;
+
+
+import com.epmet.commons.tools.exception.ErrorCode;
+
+/**
+ * 模块错误编码,由9位数字组成,前6位为模块编码,后3位为业务编码
+ * 
+ * 如:100001001(100001代表模块,001代表业务代码)
+ * 
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+public interface ModuleErrorCode extends ErrorCode {
+
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/DayDetailResultDTO.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/DayDetailResultDTO.java
new file mode 100644
index 0000000000..827a27fcf9
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/DayDetailResultDTO.java
@@ -0,0 +1,77 @@
+package com.epmet.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 2020年我国节假日查询返参
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:27
+ */
+@Data
+public class DayDetailResultDTO implements Serializable {
+    /*{
+        "ret_code": 0,
+            "day": "20200511",
+            "weekDay": 1,
+            "begin": "",
+            "end": "",
+            "holiday_remark": "",
+            "type": "1",
+            "holiday": "无",
+            "en": "Monday",
+            "cn": "周一"
+    }*/
+
+    /**
+     * 0表示成功,其他为失败
+     */
+    private Integer ret_code;
+
+    /**
+     * 查询的日期20200510
+     */
+    private String day;
+
+    /**
+     * 星期几的数字
+     */
+    private Integer weekDay;
+
+    /**
+     * 节日或周末开始时间,如果是工作日,此字段为空串
+     */
+    private String begin;
+
+    /**
+     * 节日或周末结束时间,如果是工作日,此字段为空串
+     */
+    private String end;
+
+    /**
+     * 节日备注
+     */
+    private String holiday_remark;
+
+    /**
+     * 1为工作日,2为周末,3为节假日
+     */
+    private String type;
+
+    /**
+     * 节日名称,工作日时显示“无”,周末时显示“周末”,节日时显示节日名称
+     */
+    private String holiday;
+
+    /**
+     * 星期几(英文文)
+     */
+    private String en;
+
+    /**
+     * 星期几(中文)
+     */
+    private String cn;
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayDetailDTO.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayDetailDTO.java
new file mode 100644
index 0000000000..d47713fc3a
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayDetailDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description TODO
+ * @Author yinzuomei
+ * @Date 2020/5/11 22:55
+ */
+@Data
+public class HolidayDetailDTO implements Serializable {
+    private static final long serialVersionUID = -3840795046551145292L;
+
+    /*{
+        "holiday": "元旦",
+        "holiday_remark": "2020年1月1日放假,共1天。",
+        "end": "20200101",
+        "begin": "20200101"
+    }*/
+
+    /**
+     * 节假日名称:中秋节
+     */
+    private String holiday;
+
+    /**
+     * 节假日描述:共放假3天,周末连休,不需要调休。
+     */
+    private String holiday_remark;
+
+    /**
+     * 节假日的结束时间:20190915
+     */
+    private String end;
+
+    /**
+     * 节假日的开始时间:20190913
+     */
+    private String begin;
+
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayResultDTO.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayResultDTO.java
new file mode 100644
index 0000000000..c75adf0cbd
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/HolidayResultDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description 根据年份查询当年的节假日列表返参
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:27
+ */
+@Data
+public class HolidayResultDTO implements Serializable {
+
+    /**
+     * 接口调用是否成功,0表示成功,其他值默认失败
+     */
+    private Integer ret_code;
+
+    /**
+     * 整年的节假日列表
+     */
+    private List data;
+
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/ShowApiResult.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/ShowApiResult.java
new file mode 100644
index 0000000000..fbba994ece
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/result/ShowApiResult.java
@@ -0,0 +1,74 @@
+package com.epmet.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 万维易源-api返参
+ * @Author yinzuomei
+ * @Date 2020/5/11 16:36
+ */
+@Data
+public class ShowApiResult implements Serializable {
+
+//    {
+//        "showapi_res_error": "",
+//        "showapi_res_id": "5eb90db28d57baae12d8d42d",
+//        "showapi_res_code": 0,
+//        "showapi_res_body": {"ret_code":0,"day":"20200511","weekDay":1,"begin":"","end":"","holiday_remark":"","type":"1","holiday":"无","en":"Monday","cn":"周一"}
+//    }
+
+    /**
+     *易源返回标志,0为成功,其他为失败。
+     * 0成功
+     * -1,系统调用错误
+     * -2,可调用次数或金额为0
+     * -3,读取超时
+     * -4,服务端返回数据解析错误
+     * -5,后端服务器DNS解析错误
+     * -6,服务不存在或未上线
+     * -7, API创建者的网关资源不足
+     * -1000,系统维护
+     * -1002,showapi_appid字段必传
+     * -1003,showapi_sign字段必传
+     * -1004,签名sign验证有误
+     * -1005,showapi_timestamp无效
+     * -1006,app无权限调用接口
+     * -1007,没有订购套餐
+     * -1008,服务商关闭对您的调用权限
+     * -1009,调用频率受限
+     * -1010,找不到您的应用
+     * -1011,子授权app_child_id无效
+     * -1012,子授权已过期或失效
+     * -1013,子授权ip受限
+     * -1014,token权限无效
+     */
+    private int showapi_res_code=0;
+
+    /**
+     * 错误信息的展示 demo:用户输入有误!
+     */
+    private String showapi_res_error;
+
+    /**
+     * 本次请求id demo:ce135f6739294c63be0c021b76b6fbff
+     */
+    private String showapi_res_id;
+
+    /**
+     * 消息体的JSON封装,所有应用级的返回参数将嵌入此对象 。 demo:{"city":"昆明","prov":"云南"}
+     */
+    private String showapi_res_body;
+
+    @Override
+    public String toString() {
+        return "ShowApiResult{" +
+                "showapi_res_code=" + showapi_res_code +
+                ", showapi_res_error='" + showapi_res_error + '\'' +
+                ", showapi_res_id='" + showapi_res_id + '\'' +
+                ", showapi_res_body='" + showapi_res_body + '\'' +
+                '}';
+    }
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
new file mode 100644
index 0000000000..5dbc9c2634
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.service;
+
+import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.dto.CalenderDTO;
+import com.epmet.entity.CalenderEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+public interface CalenderService extends BaseService {
+
+    /**
+     * 默认分页
+     *
+     * @param params
+     * @return PageData
+     * @author generator
+     * @date 2020-05-11
+     */
+    PageData page(Map params);
+
+    /**
+     * 默认查询
+     *
+     * @param params
+     * @return java.util.List
+     * @author generator
+     * @date 2020-05-11
+     */
+    List list(Map params);
+
+    /**
+     * 单条查询
+     *
+     * @param id
+     * @return CalenderDTO
+     * @author generator
+     * @date 2020-05-11
+     */
+    CalenderDTO get(String id);
+
+    /**
+     * 默认保存
+     *
+     * @param dto
+     * @return void
+     * @author generator
+     * @date 2020-05-11
+     */
+    void save(CalenderDTO dto);
+
+    /**
+     * 默认更新
+     *
+     * @param dto
+     * @return void
+     * @author generator
+     * @date 2020-05-11
+     */
+    void update(CalenderDTO dto);
+
+    /**
+     * 批量删除
+     *
+     * @param ids
+     * @return void
+     * @author generator
+     * @date 2020-05-11
+     */
+    void delete(String[] ids);
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
new file mode 100644
index 0000000000..372c247ca7
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
@@ -0,0 +1,16 @@
+package com.epmet.service;
+
+/**
+ * @Description 工作日信息维护
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:55
+ */
+public interface ShowApiService {
+
+    void initYearCalender(String year);
+
+    void initWorkDayList(String year);
+
+    void holidayList(String year);
+
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java
new file mode 100644
index 0000000000..7433b154c1
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/WorkDayService.java
@@ -0,0 +1,16 @@
+package com.epmet.service;
+
+import com.epmet.dto.form.WorkDayFormDTO;
+import com.epmet.dto.result.WorkDayResultDTO;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @Description 工作日计算
+ * @Author yinzuomei
+ * @Date 2020/5/12 0:27
+ */
+public interface WorkDayService {
+    List detentionDays(List formDTO);
+}
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
new file mode 100644
index 0000000000..6c0dca44c8
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.service.impl;
+
+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.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.dao.CalenderDao;
+import com.epmet.dto.CalenderDTO;
+import com.epmet.entity.CalenderEntity;
+import com.epmet.service.CalenderService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-05-11
+ */
+@Service
+public class CalenderServiceImpl extends BaseServiceImpl implements CalenderService {
+
+    @Override
+    public PageData page(Map params) {
+        IPage page = baseDao.selectPage(
+                getPage(params, FieldConstant.CREATED_TIME, false),
+                getWrapper(params)
+        );
+        return getPageData(page, CalenderDTO.class);
+    }
+
+    @Override
+    public List list(Map params) {
+        List entityList = baseDao.selectList(getWrapper(params));
+
+        return ConvertUtils.sourceToTarget(entityList, CalenderDTO.class);
+    }
+
+    private QueryWrapper getWrapper(Map params) {
+        String id = (String) params.get(FieldConstant.ID_HUMP);
+
+        QueryWrapper wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+        return wrapper;
+    }
+
+    @Override
+    public CalenderDTO get(String id) {
+        CalenderEntity entity = baseDao.selectById(id);
+        return ConvertUtils.sourceToTarget(entity, CalenderDTO.class);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void save(CalenderDTO dto) {
+        CalenderEntity entity = ConvertUtils.sourceToTarget(dto, CalenderEntity.class);
+        insert(entity);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(CalenderDTO dto) {
+        CalenderEntity entity = ConvertUtils.sourceToTarget(dto, CalenderEntity.class);
+        updateById(entity);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void delete(String[] ids) {
+        // 逻辑删除(@TableLogic 注解)
+        baseDao.deleteBatchIds(Arrays.asList(ids));
+    }
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ShowApiServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ShowApiServiceImpl.java
new file mode 100644
index 0000000000..25a98d7bce
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ShowApiServiceImpl.java
@@ -0,0 +1,201 @@
+package com.epmet.service.impl;
+
+import com.epmet.commons.tools.exception.RenException;
+import com.epmet.dao.CalenderDao;
+import com.epmet.entity.CalenderEntity;
+import com.epmet.result.DayDetailResultDTO;
+import com.epmet.result.HolidayDetailDTO;
+import com.epmet.result.HolidayResultDTO;
+import com.epmet.service.ShowApiService;
+import com.epmet.utils.ShowApiUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description 工作日信息维护
+ * @Author yinzuomei
+ * @Date 2020/5/11 21:55
+ */
+@Service
+public class ShowApiServiceImpl implements ShowApiService {
+
+    private static Logger logger = LoggerFactory.getLogger(ShowApiServiceImpl.class);
+    private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+    private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
+    @Autowired
+    private CalenderDao calenderDao;
+
+    @Override
+    public void initYearCalender(String year) {
+        String dateStart = String.format("%s-01-01", year);
+        String dateEnd = String.format("%s-12-31", year);
+        long startTime = 0;//start
+        try {
+            startTime = dateFormat.parse(dateStart).getTime();
+            long endTime = dateFormat.parse(dateEnd).getTime();//end
+            long day = 1000 * 60 * 60 * 24;
+            for (long i = startTime; i <= endTime; i += day) {
+                CalenderEntity calender = calenderDao.selectByDay(simpleDateFormat.format(new Date(i)));
+                if (null == calender) {
+                    logger.info("日期:" + dateFormat.format(new Date(i)));
+                    CalenderEntity calenderEntity = new CalenderEntity();
+                    calenderEntity.setQueryDate(new Date(i));
+                    calenderEntity.setDay(simpleDateFormat.format(new Date(i)));
+                    calenderEntity.setEn(dateToWeekEn(dateFormat.format(new Date(i))));
+                    calenderEntity.setCn(dateToWeekCn(dateFormat.format(new Date(i))));
+                    calenderEntity.setWeekday(dateToWeek(dateFormat.format(new Date(i))));
+                    if (calenderEntity.getWeekday() >= 1 && calenderEntity.getWeekday() <= 5) {
+                        calenderEntity.setTypeName("工作日");
+                        calenderEntity.setType("1");
+                    } else {
+                        calenderEntity.setTypeName("周末");
+                        calenderEntity.setType("2");
+                    }
+                    calenderDao.insert(calenderEntity);
+                } else {
+                    logger.info(String.format("数据库存在日期:%s的记录", dateFormat.format(new Date(i))));
+                }
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void initWorkDayList(String year) {
+        try {
+            List entityList = calenderDao.selectList(year);
+            if (null != entityList && entityList.size() > 0) {
+                CalenderEntity calenderEntity = entityList.get(0);
+                logger.info("要查询的日期:" + calenderEntity.getDay());
+                DayDetailResultDTO dayDetailResultDTO = ShowApiUtil.queryHolidayV2020(calenderEntity.getDay());
+                if (0 == dayDetailResultDTO.getRet_code()) {
+                    calenderEntity.setRetCode(dayDetailResultDTO.getRet_code());
+                    calenderEntity.setWeekday(dayDetailResultDTO.getWeekDay());
+                    calenderEntity.setBegin(dayDetailResultDTO.getBegin());
+                    calenderEntity.setEnd(dayDetailResultDTO.getEnd());
+                    calenderEntity.setHoliday(dayDetailResultDTO.getHoliday());
+                    calenderEntity.setHolidayRemark(dayDetailResultDTO.getHoliday_remark());
+                    calenderEntity.setEn(dayDetailResultDTO.getEn());
+                    calenderEntity.setCn(dayDetailResultDTO.getCn());
+                    calenderEntity.setType(dayDetailResultDTO.getType());
+                    //1为工作日,2为周末,3为节假日
+                    if ("1".equals(dayDetailResultDTO.getType())) {
+                        calenderEntity.setTypeName("工作日");
+                    } else if ("2".equals(dayDetailResultDTO.getType())) {
+                        calenderEntity.setTypeName("周末");
+                    } else if ("3".equals(dayDetailResultDTO.getType())) {
+                        calenderEntity.setTypeName("节假日");
+                    }
+                    calenderDao.updateById(calenderEntity);
+                }
+
+            } else {
+                logger.info("无需更新");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void holidayList(String year) {
+        HolidayResultDTO holidayResultDTO = null;
+        try {
+            holidayResultDTO = ShowApiUtil.holidayList(year);
+            if (0 != holidayResultDTO.getRet_code()) {
+                throw new RenException("根据年份查询当年的节假日列表API【https://route.showapi.com/894-4】查询失败");
+            }
+            for (HolidayDetailDTO holidayDetail : holidayResultDTO.getData()) {
+                calenderDao.updateHoliday(holidayDetail);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RenException("根据年份查询当年的节假日列表API【https://route.showapi.com/894-4】查询异常");
+        }
+    }
+
+   /* public static void main(String[] args) throws ParseException {
+        String dateStart = "2020-01-01";
+        String dateEnd = "2020-12-31";
+        SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
+        long startTime = date.parse(dateStart).getTime();//start
+        long endTime = date.parse(dateEnd).getTime();//end
+        long day = 1000 * 60 * 60 * 24;
+        for (long i = startTime; i <= endTime; i += day) {
+            System.out.println(date.format(new Date(i)));
+        }
+    }*/
+
+    /**
+     * 根据日期获取当天是周几
+     *
+     * @param datetime 日期
+     * @return 周几
+     */
+    public static String dateToWeekCn(String datetime) {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String[] weekDays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
+        Calendar cal = Calendar.getInstance();
+        Date date;
+        try {
+            date = dateFormat.parse(datetime);
+            cal.setTime(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+        return weekDays[w];
+    }
+
+    /**
+     * 根据日期获取当天是周几
+     *
+     * @param datetime 日期
+     * @return 周几英文
+     */
+    public static String dateToWeekEn(String datetime) {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String[] weekDays = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
+        Calendar cal = Calendar.getInstance();
+        Date date;
+        try {
+            date = dateFormat.parse(datetime);
+            cal.setTime(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+        return weekDays[w];
+    }
+
+    /**
+     * 根据日期获取当天是周几
+     *
+     * @param datetime 日期
+     * @return 周几数字
+     */
+    public static Integer dateToWeek(String datetime) {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        int[] weekDays = {7, 1, 2, 3, 4, 5, 6};
+        Calendar cal = Calendar.getInstance();
+        Date date;
+        try {
+            date = dateFormat.parse(datetime);
+            cal.setTime(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
+        return weekDays[w];
+    }
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java
new file mode 100644
index 0000000000..25ede12e88
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java
@@ -0,0 +1,82 @@
+package com.epmet.service.impl;
+
+import com.epmet.commons.tools.exception.RenException;
+import com.epmet.dao.CalenderDao;
+import com.epmet.dto.form.WorkDayFormDTO;
+import com.epmet.dto.result.WorkDayResultDTO;
+import com.epmet.entity.CalenderEntity;
+import com.epmet.service.WorkDayService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @Description 工作日计算
+ * @Author yinzuomei
+ * @Date 2020/5/12 0:27
+ */
+@Service
+public class WorkDayServiceImpl implements WorkDayService {
+    private static Logger logger = LoggerFactory.getLogger(WorkDayServiceImpl.class);
+    @Autowired
+    private CalenderDao calenderDao;
+
+    @Override
+    public List detentionDays(List workDayFormDTO) {
+        List list = new ArrayList<>();
+        if (workDayFormDTO.isEmpty()) {
+            throw new RenException("起始时间、终止时间不能为空");
+        }
+        Iterator it = workDayFormDTO.iterator();
+        while (it.hasNext()) {
+            WorkDayResultDTO workDayResult = new WorkDayResultDTO();
+            WorkDayFormDTO workDayDTO = (WorkDayFormDTO) it.next();
+            workDayResult.setId(workDayDTO.getId());
+            workDayResult.setStartDate(workDayDTO.getStartDate());
+            workDayResult.setEndDate(workDayDTO.getEndDate());
+            workDayResult.setDetentionDays(this.caculateDetentionDays(workDayDTO.getStartDate(), workDayResult.getEndDate()));
+            list.add(workDayResult);
+        }
+        return list;
+    }
+
+    //公式:  当前日期 - 被吹日期 - 期间的节假日
+    private String caculateDetentionDays(String startDateStr, String endDateStr) {
+        if (startDateStr.equals(endDateStr)) {
+            logger.info(String.format("%s-%s起止时间一致,返回<1,",startDateStr,endDateStr));
+            return "<1";
+        }
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
+        try {
+            Date startDate = simpleDateFormat.parse(startDateStr);
+            Date endDate = simpleDateFormat.parse(endDateStr);
+            long day = (endDate.getTime() - startDate.getTime()) / (24 * 60 * 60 * 1000);
+            logger.info(String.format("当前日期[%s]-被吹日期[%s]=%s", endDateStr, startDateStr, day));
+            List list = calenderDao.selectByStartAndEnd(startDateStr, endDateStr);
+
+            long totalHoliday = 0;
+            for (CalenderEntity calenderEntity : list) {
+                if (!"1".equals(calenderEntity.getType())) {
+                    totalHoliday += 1;
+                }
+            }
+            logger.info(String.format("期间的节假日[%s-%s]=%s", endDateStr, startDateStr, totalHoliday));
+            long detentionDay = day - totalHoliday;
+            logger.info(String.format("当前日期[%s]-被吹日期[%s]-期间的节假日[%s]=%s", endDateStr, startDateStr, totalHoliday, detentionDay));
+            if (detentionDay < 1) {
+                return "<1";
+            }
+            return String.valueOf(detentionDay);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "-1";
+    }
+
+
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/MultithreadScheduleTask.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/MultithreadScheduleTask.java
new file mode 100644
index 0000000000..8485f229cb
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/MultithreadScheduleTask.java
@@ -0,0 +1,38 @@
+package com.epmet.task;
+
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Description TODO
+ * @Author yinzuomei
+ * @Date 2020/5/12 0:04
+ */
+//@Component注解用于对那些比较中立的类进行注释;
+//相对与在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释
+//@Component
+//@EnableScheduling   // 1.开启定时任务
+//@EnableAsync        // 2.开启多线程
+public class MultithreadScheduleTask {
+
+    @Async
+    @Scheduled(fixedDelay = 1000)  //间隔1秒
+    public void first() throws InterruptedException {
+        System.out.println("第一个定时任务开始 : " + LocalDateTime.now().toLocalTime() + "\r\n线程 : " + Thread.currentThread().getName());
+        System.out.println();
+        Thread.sleep(1000 * 10);
+    }
+
+    @Async
+    @Scheduled(fixedDelay = 2000)
+    public void second() {
+        System.out.println("第二个定时任务开始 : " + LocalDateTime.now().toLocalTime() + "\r\n线程 : " + Thread.currentThread().getName());
+        System.out.println();
+    }
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java
new file mode 100644
index 0000000000..bdca1553d2
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java
@@ -0,0 +1,31 @@
+package com.epmet.task;
+
+import com.epmet.service.ShowApiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Description TODO
+ * @Author yinzuomei
+ * @Date 2020/5/12 0:01
+ */
+//@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+//@EnableScheduling   // 2.开启定时任务
+public class SaticScheduleTask {
+    @Autowired
+    private ShowApiService showApiService;
+
+    //3.添加定时任务
+    @Scheduled(cron = "0/1 * * * * ?")
+    //或直接指定时间间隔,例如:5秒
+    //@Scheduled(fixedRate=5000)
+    private void configureTasks() {
+        showApiService.initWorkDayList("2020");
+        System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
+    }
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/utils/ShowApiUtil.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/utils/ShowApiUtil.java
new file mode 100644
index 0000000000..8e4c8f4de3
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/utils/ShowApiUtil.java
@@ -0,0 +1,106 @@
+package com.epmet.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.epmet.constant.ShowApiConstant;
+import com.epmet.result.DayDetailResultDTO;
+import com.epmet.result.HolidayResultDTO;
+import com.epmet.result.ShowApiResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.net.URL;
+
+/**
+ * @Description 万维易源-api工具类
+ * @Author yinzuomei
+ * @Date 2020/5/11 15:55
+ */
+public class ShowApiUtil {
+    private static Logger logger = LoggerFactory.getLogger(ShowApiUtil.class);
+    
+    /**
+     * @return com.epmet.result.showapi.ShowApiResult
+     * @param day 输入格式yyyyMMdd。如果不输入,则默认是当天
+     * @Author yinzuomei
+     * @Description 2020年我国节假日查询
+     * @Date 2020/5/11 21:20 
+     **/
+    public static DayDetailResultDTO queryHolidayV2020(String day) throws Exception {
+        String url=String.format(ShowApiConstant.QUERY_HOLIDAY_V2020,ShowApiConstant.SHOWAPI_APPID,ShowApiConstant.SHOWAPI_SIGN,day);
+        logger.info(String.format("(1)QUERY_HOLIDAY_V2020入参:%s",url));
+        URL u = new URL(url);
+        InputStream in = u.openStream();
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        try {
+            byte buf[] = new byte[1024];
+            int read = 0;
+            while ((read = in .read(buf)) > 0) {
+                out.write(buf, 0, read);
+            }
+        } finally {
+            if ( in != null) {
+                in .close();
+            }
+        }
+        byte b[] = out.toByteArray();
+        String resultStr=new String(b, "utf-8");
+        logger.info(String.format("(2)QUERY_HOLIDAY_V2020返参:%s",resultStr));
+        JSONObject jsonobject = JSONObject.parseObject(resultStr);
+        ShowApiResult showApiResult= (ShowApiResult)JSONObject.toJavaObject(jsonobject, ShowApiResult.class);
+        logger.info(showApiResult.toString());
+
+        JSONObject holidayJsonObject = JSONObject.parseObject(showApiResult.getShowapi_res_body());
+        DayDetailResultDTO dayDetailResultDTO= (DayDetailResultDTO)JSONObject.toJavaObject(holidayJsonObject, DayDetailResultDTO.class);
+        logger.info(String.format("(3)QUERY_HOLIDAY_V2020返参:%s",dayDetailResultDTO.toString()));
+        return dayDetailResultDTO;
+    }
+
+
+    /**
+     * @return com.epmet.result.HolidayResultDTO
+     * @param year
+     * @Author yinzuomei
+     * @Description 根据年份查询当年的节假日列表
+     * @Date 2020/5/11 22:58 
+     **/
+    public static HolidayResultDTO holidayList(String year) throws Exception {
+        String url=String.format(ShowApiConstant.HOLIDAY_LIST,ShowApiConstant.SHOWAPI_APPID,ShowApiConstant.SHOWAPI_SIGN,year);
+        logger.info(String.format("(1)HOLIDAY_LIST入参:%s",url));
+        URL u = new URL(url);
+        InputStream in = u.openStream();
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        try {
+            byte buf[] = new byte[1024];
+            int read = 0;
+            while ((read = in .read(buf)) > 0) {
+                out.write(buf, 0, read);
+            }
+        } finally {
+            if ( in != null) {
+                in .close();
+            }
+        }
+        byte b[] = out.toByteArray();
+        String resultStr=new String(b, "utf-8");
+        logger.info(String.format("(2)HOLIDAY_LIST返参:%s",resultStr));
+        JSONObject jsonobject = JSONObject.parseObject(resultStr);
+        ShowApiResult showApiResult= (ShowApiResult)JSONObject.toJavaObject(jsonobject, ShowApiResult.class);
+        logger.info(showApiResult.toString());
+
+        JSONObject holidayJsonObject = JSONObject.parseObject(showApiResult.getShowapi_res_body());
+        HolidayResultDTO holidayResultDTO= (HolidayResultDTO)JSONObject.toJavaObject(holidayJsonObject, HolidayResultDTO.class);
+        logger.info(String.format("(3)HOLIDAY_LIST返参:%s",holidayResultDTO.toString()));
+        return holidayResultDTO;
+    }
+    public static void main(String[] args) {
+        try {
+//            queryHolidayV2020("20200503");
+            holidayList("2020");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000000..15b337db7c
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml
@@ -0,0 +1,106 @@
+server:
+  port: @server.port@
+  servlet:
+    context-path: /commonservice
+
+spring:
+  main:
+    allow-bean-definition-overriding: true
+  application:
+    name: common-service-server
+  #环境 dev|test|prod
+  profiles:
+    active: dev
+  messages:
+    encoding: UTF-8
+    basename: i18n/messages,i18n/messages_common
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
+  redis:
+    database: @spring.redis.index@
+    host: @spring.redis.host@
+    port: @spring.redis.port@
+    password: @spring.redis.password@
+    timeout: 30s
+  datasource:
+    druid:
+      #MySQL
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      url: @spring.datasource.druid.url@
+      username: @spring.datasource.druid.username@
+      password: @spring.datasource.druid.password@
+  cloud:
+    nacos:
+      discovery:
+        server-addr: @nacos.server-addr@
+        #nacos的命名空间ID,默认是public
+        namespace: @nacos.discovery.namespace@
+        #不把自己注册到注册中心的地址
+        register-enabled: @nacos.register-enabled@
+        ip: @nacos.ip@
+      config:
+        enabled: @nacos.config-enabled@
+        server-addr: @nacos.server-addr@
+        namespace: @nacos.config.namespace@
+        group: @nacos.config.group@
+        file-extension: yaml
+        #指定共享配置,且支持动态刷新
+#        ext-config:
+#          - data-id: datasource.yaml
+#            group: ${spring.cloud.nacos.config.group}
+#            refresh: true
+#          - data-id: common.yaml
+#            group: ${spring.cloud.nacos.config.group}
+#            refresh: true
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: ALWAYS
+
+mybatis-plus:
+  mapper-locations: classpath:/mapper/**/*.xml
+  #实体扫描,多个package用逗号或者分号分隔
+  typeAliasesPackage: com.epmet.modules.*.entity
+  global-config:
+    #数据库相关配置
+    db-config:
+      #主键类型  AUTO:"数据库ID自增", INPUT:"用户输入ID", ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
+      id-type: ID_WORKER
+      #字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
+      field-strategy: NOT_NULL
+      #驼峰下划线转换
+      column-underline: true
+    banner: false
+  #原生配置
+  configuration:
+    map-underscore-to-camel-case: true
+    cache-enabled: false
+    call-setters-on-nulls: true
+    jdbc-type-for-null: 'null'
+
+feign:
+  hystrix:
+    enabled: true
+  client:
+    config:
+      default:
+        loggerLevel: BASIC
+  httpclient:
+    enabled: true
+
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          thread:
+            timeoutInMilliseconds: 60000 #缺省为1000
+
+ribbon:
+  ReadTimeout: 300000
+  ConnectTimeout: 300000
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/db.sql b/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/db.sql
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/logback-spring.xml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000000..e3cfdd0927
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/logback-spring.xml
@@ -0,0 +1,158 @@
+
+
+     
+
+     
+
+    
+     
+
+    
+    
+        
+        
+            debug 
+         
+        
+            ${CONSOLE_LOG_PATTERN} 
+            
+            UTF-8 
+         
+     
+
+    
+    
+    
+        
+        ${log.path}/debug.log 
+        
+        
+            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 
+            UTF-8  
+         
+        
+        
+            
+            ${log.path}/debug-%d{yyyy-MM-dd}.%i.log 
+            
+                100MB 
+             
+            
+            15 
+         
+        
+        
+            debug 
+            ACCEPT 
+            DENY 
+         
+     
+
+    
+    
+        
+        ${log.path}/info.log 
+        
+        
+            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 
+            UTF-8 
+         
+        
+        
+            
+            ${log.path}/info-%d{yyyy-MM-dd}.%i.log 
+            
+                100MB 
+             
+            
+            15 
+         
+        
+        
+            info 
+            ACCEPT 
+            DENY 
+         
+     
+
+    
+    
+        
+        ${log.path}/warn.log 
+        
+        
+            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 
+            UTF-8  
+         
+        
+        
+            ${log.path}/warn-%d{yyyy-MM-dd}.%i.log 
+            
+                100MB 
+             
+            
+            15 
+         
+        
+        
+            warn 
+            ACCEPT 
+            DENY 
+         
+     
+
+    
+    
+        
+        ${log.path}/error.log 
+        
+        
+            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 
+            UTF-8  
+         
+        
+        
+            ${log.path}/error-%d{yyyy-MM-dd}.%i.log 
+            
+                100MB 
+             
+            
+            15 
+         
+        
+        
+            ERROR 
+            ACCEPT 
+            DENY 
+         
+     
+
+    
+    
+         
+         
+         
+        
+             
+             
+             
+             
+         
+     
+
+    
+    
+         
+         
+         
+        
+             
+             
+             
+             
+             
+         
+     
+
+ 
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/CalenderDao.xml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/CalenderDao.xml
new file mode 100644
index 0000000000..b1a3ab8e8d
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/CalenderDao.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+    
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+         
+     
+
+    
+        select * from calender c
+        where c.del_flag='0'
+        and c.DAY=#{day}
+     
+
+    
+        UPDATE calender
+        SET type = '3',
+        TYPE_NAME = '节假日',
+        HOLIDAY_REMARK = #{holiday_remark},
+        HOLIDAY = #{holiday}
+        WHERE
+            DEL_FLAG = '0'
+            AND QUERY_DATE BETWEEN #{begin}
+            AND #{end}
+     
+
+    
+        select * from calender c
+        where c.del_flag='0'
+        AND (c.RET_CODE is null or c.ret_code!='')
+        and c.DAY like concat(#{year}, '%')
+        order by c.query_date asc
+     
+
+    
+        SELECT
+            *
+        FROM
+            calender
+        WHERE
+            DEL_FLAG = '0'
+            AND QUERY_DATE BETWEEN #{begin}
+            AND #{end}
+     
+ 
\ No newline at end of file
diff --git a/epmet-module/epmet-common-service/pom.xml b/epmet-module/epmet-common-service/pom.xml
new file mode 100644
index 0000000000..7882f594f0
--- /dev/null
+++ b/epmet-module/epmet-common-service/pom.xml
@@ -0,0 +1,21 @@
+
+
+	4.0.0 
+
+	
+		com.epmet 
+		epmet-module 
+		2.0.0 
+	 
+
+	com.epmet 
+	epmet-common-service 
+	pom 
+
+	
+		common-service-client 
+		common-service-server 
+	 
+
+ 
diff --git a/epmet-module/pom.xml b/epmet-module/pom.xml
index 50fdc831c0..5637182706 100644
--- a/epmet-module/pom.xml
+++ b/epmet-module/pom.xml
@@ -33,6 +33,7 @@
         resi-hall 
 		gov-issue 
 		gov-project 
+		epmet-common-service 
     
 
 
From 8800da948b1075697fcc646dd4a7afcbb32cceb3 Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Tue, 12 May 2020 10:36:31 +0800
Subject: [PATCH 02/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9epmet-common-service?=
 =?UTF-8?q?=EF=BC=8Cdb?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../epmet-common-service/common-service-server/pom.xml    | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/epmet-module/epmet-common-service/common-service-server/pom.xml b/epmet-module/epmet-common-service/common-service-server/pom.xml
index 9bfa6132e5..933a40b48d 100644
--- a/epmet-module/epmet-common-service/common-service-server/pom.xml
+++ b/epmet-module/epmet-common-service/common-service-server/pom.xml
@@ -95,10 +95,12 @@
 
                 
                 
-                    
+                    
                  
-                root 
-                root 
+
+
+                epmet_common_service_user 
+                EpmEt-db-UsEr 
                 
                 0 
                 192.168.1.130 
From 763d7b1d6fa59109fdb2718cc18dbd5d85af2a9b Mon Sep 17 00:00:00 2001
From: sunyuchao 
Date: Tue, 12 May 2020 15:27:31 +0800
Subject: [PATCH 03/22] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E7=AE=A1=E7=90=86-?=
 =?UTF-8?q?=E5=85=B3=E9=97=AD=E8=AE=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../com/epmet/dto/form/CloseIssueFormDTO.java |  27 +++++
 .../gov-issue/gov-issue-server/pom.xml        |  18 +++
 .../com/epmet/constant/IssueConstant.java     |  38 +++++++
 .../epmet/constant/UserMessageConstant.java   |  25 +++++
 .../controller/IssueManageController.java     |  28 +++++
 .../com/epmet/feign/GovOrgFeignClient.java    |  13 +++
 .../com/epmet/feign/MessageFeignClient.java   |  15 +++
 .../com/epmet/feign/ResiGroupFeignClient.java |  14 +++
 .../fallback/GovOrgFeignClientFallBack.java   |   8 ++
 .../fallback/MessageFeignClientFallback.java  |   8 ++
 .../ResiGroupFeignClientFallBack.java         |   9 ++
 .../java/com/epmet/service/IssueService.java  |   9 ++
 .../epmet/service/impl/IssueServiceImpl.java  | 105 ++++++++++++++++++
 .../epmet/dto/result/AgencyGridResultDTO.java |  52 +++++++++
 .../constant/CustomerAgencyConstant.java      |   4 +
 .../controller/CustomerAgencyController.java  |  13 +++
 .../epmet/service/CustomerAgencyService.java  |   9 ++
 .../impl/CustomerAgencyServiceImpl.java       |  37 +++++-
 .../topic/controller/ResiTopicController.java |  17 ++-
 .../topic/service/ResiTopicService.java       |   8 ++
 .../service/impl/ResiTopicServiceImpl.java    |   6 +
 21 files changed, 455 insertions(+), 8 deletions(-)
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CloseIssueFormDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java
 create mode 100644 epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridResultDTO.java
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CloseIssueFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CloseIssueFormDTO.java
new file mode 100644
index 0000000000..d633a49564
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CloseIssueFormDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 议题管理-关闭议题-接口入参
+ * @Author sun
+ */
+@Data
+public class CloseIssueFormDTO implements Serializable {
+    private static final long serialVersionUID = 4859779755214502427L;
+
+    @NotBlank(message = "议题Id不能为空")
+    private String issueId;
+
+    @NotBlank(message = "解决状态不能为空")
+    private String resolveType;
+
+    @NotBlank(message = "关闭理由不能为空")
+    @Length(max=1000,message = "手机号不能超过1000位")
+    private String closeReason;
+}
+
diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml
index 98fa317a75..35dc7a854b 100644
--- a/epmet-module/gov-issue/gov-issue-server/pom.xml
+++ b/epmet-module/gov-issue/gov-issue-server/pom.xml
@@ -60,6 +60,24 @@
             feign-httpclient 
             10.3.0 
         
+        
+            com.epmet 
+            gov-org-client 
+            2.0.0 
+            compile 
+         
+        
+            com.epmet 
+            resi-group-client 
+            2.0.0 
+            compile 
+         
+        
+            com.epmet 
+            epmet-message-client 
+            2.0.0 
+            compile 
+         
     
 
     
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java
index f8c36c2cac..48ed20352d 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java
@@ -14,4 +14,42 @@ package com.epmet.constant;
  * @since 1.0.0
  */
 public interface IssueConstant {
+    /**
+     * 议题状态-表决中
+     */
+    String ISSUE_VOTING = "voting";
+    /**
+     * 议题状态-已转项目
+     */
+    String ISSUE_SHIFT_PROJECT = "shift_project";
+    /**
+     * 议题状态-已关闭
+     */
+    String ISSUE_CLOSED = "closed";
+    /**
+     * 议题解决类型-已解决
+     */
+    String ISSUE_RESLOVED = "resloved";
+    /**
+     * 议题解决类型-未解决
+     */
+    String ISSUE_UNRESLOVED = "unresloved";
+
+    String SELECT_EXCEPTION = "获取议题详情数据失败";
+    String UPPDATE_EXCEPTION = "议题详情表数据更新失败";
+
+    /**
+     * 议题来源类型类型-话题
+     */
+    String ISSUE_RESI_TOPIC = "resi_topic";
+
+    String SELECT_TOPIC_EXCEPTION = "获取话题数据失败";
+    String SAVE_MSG_EXCEPTION = "关闭议题时给用户发送消息失败";
+
+    /**
+     * 议题管理-操作人所属机构类型(机构:agency | 部门:dept | 网格:grid)
+     */
+    String ISSUE_AGENCY = "agency";
+    String ISSUE_DEPT = "dept";
+    String ISSUE_GRID = "grid";
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java
new file mode 100644
index 0000000000..ccbb7faa87
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/UserMessageConstant.java
@@ -0,0 +1,25 @@
+package com.epmet.constant;
+
+/**
+ * @Description 议题管理模块消息通知
+ * @Author sun
+ */
+public interface UserMessageConstant {
+
+    /**
+     * 消息标题
+     */
+    String ISSUE_TITLE = "您有一条议题消息";
+
+    /**
+     * 议题关闭时,选择已解决
+     */
+    String ISSUE_RESLOVED_MSG = "您好,您发表的话题\"%s\"问题已解决,解决方案是:%s";
+
+    /**
+     * 议题关闭时,选择无需解决
+     */
+    String ISSUE_UNRESLOVED_MSG = "您好,您发表的话题\"%s\"问题无需解决,原因:%s";
+
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java
index 186e2a2e3a..6ad967cdca 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java
@@ -1,5 +1,16 @@
 package com.epmet.controller;
 
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.annotation.RequirePermission;
+import com.epmet.commons.tools.enums.RequirePermissionEnum;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dto.form.CloseIssueFormDTO;
+import com.epmet.service.IssueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -11,5 +22,22 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("manage")
 public class IssueManageController {
+
+    @Autowired
+    private IssueService issueService;
+
+    /**
+     * @param formDTO
+     * @return
+     * @Author sun
+     * @Description 议题管理-关闭议题
+     **/
+    @PostMapping("closeissue")
+    @RequirePermission(requirePermission = RequirePermissionEnum.WORK_GRASSROOTS_ISSUE_CLOSE)
+    public Result closeIssue(@LoginUser TokenDto tokenDTO, @RequestBody CloseIssueFormDTO formDTO) {
+        ValidatorUtils.validateEntity(formDTO);
+        issueService.closeIssue(formDTO);
+        return new Result();
+    }
 }
 
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
index b8f7090437..9cd829abe4 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
@@ -1,8 +1,13 @@
 package com.epmet.feign;
 
 import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.CustomerGridDTO;
+import com.epmet.dto.form.CustomerGridFormDTO;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.feign.fallback.GovOrgFeignClientFallBack;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
 
 /**
  * @Description 调用gov-org服务
@@ -11,4 +16,12 @@ import org.springframework.cloud.openfeign.FeignClient;
  */
 @FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class)
 public interface GovOrgFeignClient {
+    /**
+     * @param
+     * @return
+     * @Author sun
+     * @Description 根据组织Id、网格Id查询组织、网格名称
+     **/
+    @PostMapping("/gov/org/customergrid/getcustomergridbygridid")
+    Result getAgencyAndGrid(AgencyGridResultDTO agencyGridResultDTO);
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/MessageFeignClient.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/MessageFeignClient.java
index 0f61ebfa6b..3c994298c5 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/MessageFeignClient.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/MessageFeignClient.java
@@ -1,8 +1,14 @@
 package com.epmet.feign;
 
 import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.UserMessageFormDTO;
 import com.epmet.feign.fallback.MessageFeignClientFallback;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
 
 /**
  * @Description 调用epmet-message服务
@@ -11,4 +17,13 @@ import org.springframework.cloud.openfeign.FeignClient;
  */
 @FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallback = MessageFeignClientFallback.class)
 public interface MessageFeignClient {
+
+    /**
+     * @param msgList
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author sun
+     * @Description 关闭议题给话题创建人和议题发起人发送消息
+     **/
+    @PostMapping(value = "message/usermessage/saveusermessagelist", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    Result saveUserMessageList(List msgList);
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
index f47fd95a21..6ca577ec34 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
@@ -1,8 +1,13 @@
 package com.epmet.feign;
 
 import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.feign.fallback.ResiGroupFeignClientFallBack;
+import com.epmet.resi.group.dto.topic.ResiTopicDTO;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
 
 /**
  * @Description 调用resi-group服务
@@ -11,4 +16,13 @@ import org.springframework.cloud.openfeign.FeignClient;
  */
 @FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupFeignClientFallBack.class)
 public interface ResiGroupFeignClient {
+
+    /**
+     * @param
+     * @return
+     * @Author sun
+     * @Description 根据话题Id查询话题信息
+     **/
+    @PostMapping("/resi/group/topic/gettopicbyid/{topicId}")
+    Result getTopicById(@PathVariable("topicId") String topicId);
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java
index 5205700ec6..8aec17593a 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/GovOrgFeignClientFallBack.java
@@ -1,5 +1,9 @@
 package com.epmet.feign.fallback;
 
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.ModuleUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.feign.GovOrgFeignClient;
 import org.springframework.stereotype.Component;
 
@@ -9,4 +13,8 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class GovOrgFeignClientFallBack implements GovOrgFeignClient {
+    @Override
+    public Result getAgencyAndGrid(AgencyGridResultDTO agencyGridResultDTO) {
+        return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getagencyandgrid", agencyGridResultDTO);
+    }
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java
index ebd50f1adc..bb5491ea78 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/MessageFeignClientFallback.java
@@ -3,13 +3,21 @@ package com.epmet.feign.fallback;
 import com.epmet.commons.tools.constant.ServiceConstant;
 import com.epmet.commons.tools.utils.ModuleUtils;
 import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.UserMessageFormDTO;
 import com.epmet.feign.MessageFeignClient;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Description 调用epmet-message服务
  * @Author sun
  */
 @Component
 public class MessageFeignClientFallback implements MessageFeignClient {
+
+    @Override
+    public Result saveUserMessageList(List msgList) {
+        return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "saveUserMessageList", msgList);
+    }
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java
index dfb34c250d..6f09e42b89 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java
@@ -1,6 +1,11 @@
 package com.epmet.feign.fallback;
 
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.ModuleUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.feign.ResiGroupFeignClient;
+import com.epmet.resi.group.dto.topic.ResiTopicDTO;
 import org.springframework.stereotype.Component;
 
 /**
@@ -9,4 +14,8 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class ResiGroupFeignClientFallBack implements ResiGroupFeignClient {
+    @Override
+    public Result getTopicById(String topicId) {
+        return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "gettopicbyid", topicId);
+    }
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
index 7890e150fa..ab38c329c5 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
@@ -1,6 +1,7 @@
 package com.epmet.service;
 
 import com.epmet.commons.mybatis.service.BaseService;
+import com.epmet.dto.form.CloseIssueFormDTO;
 import com.epmet.dto.form.IssueDetailFormDTO;
 import com.epmet.dto.result.IssueResultDTO;
 import com.epmet.entity.IssueEntity;
@@ -19,4 +20,12 @@ public interface IssueService extends BaseService {
      */
     IssueResultDTO detail(IssueDetailFormDTO issueDetail);
 
+    /**
+     * @param formDTO
+     * @return
+     * @Author sun
+     * @Description 议题管理-关闭议题
+     **/
+    void closeIssue(CloseIssueFormDTO formDTO);
+
 }
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
index 327d135bd8..536a12307e 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
@@ -1,13 +1,34 @@
 package com.epmet.service.impl;
 
 import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.AppClientConstant;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.exception.RenException;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.constant.IssueConstant;
+import com.epmet.constant.ReadFlagConstant;
+import com.epmet.constant.UserMessageConstant;
 import com.epmet.dao.IssueDao;
+import com.epmet.dao.IssueProcessDao;
+import com.epmet.dto.form.CloseIssueFormDTO;
 import com.epmet.dto.form.IssueDetailFormDTO;
+import com.epmet.dto.form.UserMessageFormDTO;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.dto.result.IssueResultDTO;
 import com.epmet.entity.IssueEntity;
+import com.epmet.entity.IssueProcessEntity;
+import com.epmet.feign.GovOrgFeignClient;
+import com.epmet.feign.MessageFeignClient;
+import com.epmet.feign.ResiGroupFeignClient;
+import com.epmet.resi.group.dto.topic.ResiTopicDTO;
 import com.epmet.service.IssueService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @Author zxc
@@ -18,6 +39,14 @@ public class IssueServiceImpl extends BaseServiceImpl imp
 
     @Autowired
     private IssueDao issueDao;
+    @Autowired
+    private GovOrgFeignClient govOrgFeignClient;
+    @Autowired
+    private IssueProcessDao issueProcessDao;
+    @Autowired
+    private ResiGroupFeignClient resiGroupFeignClient;
+    @Autowired
+    private MessageFeignClient messageFeignClient;
 
     /**
      * @Description  议题详情
@@ -31,4 +60,80 @@ public class IssueServiceImpl extends BaseServiceImpl imp
         IssueResultDTO issueResult = issueDao.issueDetail(issueDetail);
         return issueResult;
     }
+
+    /**
+     * @param formDTO
+     * @return
+     * @Author sun
+     * @Description 议题管理-关闭议题
+     **/
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void closeIssue(CloseIssueFormDTO formDTO) {
+        Date date = new Date();
+        //1:更新议题详情表数据
+        IssueEntity entity = baseDao.selectById(formDTO.getIssueId());
+        if (null == entity) {
+            throw new RenException(IssueConstant.SELECT_EXCEPTION);
+        }
+        entity.setIssueStatus(IssueConstant.ISSUE_CLOSED);
+        entity.setCloseReason(formDTO.getCloseReason());
+        entity.setResolveType(formDTO.getResolveType());
+        entity.setVotingDeadline(date);
+        entity.setClosedTime(date);
+        if (baseDao.updateById(entity) < NumConstant.ONE) {
+            throw new RenException(IssueConstant.UPPDATE_EXCEPTION);
+        }
+        //2:调用gov-org服务,查询组织网格名称
+        AgencyGridResultDTO agencyGridResultDTO = new AgencyGridResultDTO();
+        agencyGridResultDTO.setAgencyId(entity.getOrgId());
+        agencyGridResultDTO.setGridId(entity.getGridId());
+        Result resultDTO = govOrgFeignClient.getAgencyAndGrid(agencyGridResultDTO);
+        agencyGridResultDTO = resultDTO.getData();
+        //3:议题进展记录表新增数据
+        IssueProcessEntity processEntity = new IssueProcessEntity();
+        processEntity.setIssueId(formDTO.getIssueId());
+        processEntity.setIssueStatus(IssueConstant.ISSUE_CLOSED);
+        processEntity.setOrgType(IssueConstant.ISSUE_GRID);
+        processEntity.setOrgId(entity.getOrgId());
+        processEntity.setOperationExplain(formDTO.getCloseReason());
+        processEntity.setOrgName(agencyGridResultDTO.getAgencyName()+"-"+agencyGridResultDTO.getGridName());
+        issueProcessDao.insert(processEntity);
+        //4:调用epmet-message服务,给居民端话题创建人和议题发起人发送消息
+        if(!saveUserMessageList(formDTO, entity).success()){
+            throw new RenException(IssueConstant.SAVE_MSG_EXCEPTION);
+        }
+    }
+    /**
+     * @Description 关闭议题给话题创建人和议题发起人发送消息
+     * @author sun
+     */
+    private Result saveUserMessageList(CloseIssueFormDTO formDTO, IssueEntity entity){
+        //1:调用resi-group查询话题创建人数据(目前议题来源只有来自话题)
+        Result resultTopicDTO = resiGroupFeignClient.getTopicById(entity.getSourceId());
+        if (!resultTopicDTO.success() || null == resultTopicDTO.getData()) {
+            throw new RenException(IssueConstant.SELECT_TOPIC_EXCEPTION);
+        }
+        ResiTopicDTO topicDTO = resultTopicDTO.getData();
+        //2:分别给话题创建人、议题发起人发送消息
+        List msgList = new ArrayList<>();
+        UserMessageFormDTO msgDTO = new UserMessageFormDTO();
+        msgDTO.setCustomerId(entity.getCustomerId());
+        msgDTO.setGridId(entity.getGridId());
+        msgDTO.setApp(AppClientConstant.APP_RESI);
+        msgDTO.setTitle(UserMessageConstant.ISSUE_TITLE);
+        String messageContent = "";
+        if (IssueConstant.ISSUE_RESLOVED.equals(formDTO.getResolveType())) {
+            messageContent = String.format(UserMessageConstant.ISSUE_RESLOVED_MSG, topicDTO.getTopicContent(), formDTO.getCloseReason());
+        } else if (IssueConstant.ISSUE_UNRESLOVED.equals(formDTO.getResolveType())) {
+            messageContent = String.format(UserMessageConstant.ISSUE_UNRESLOVED_MSG, topicDTO.getTopicContent(), formDTO.getCloseReason());
+        }
+        msgDTO.setMessageContent(messageContent);
+        msgDTO.setReadFlag(ReadFlagConstant.UN_READ);
+        msgDTO.setUserId(topicDTO.getCreatedBy());
+        msgList.add(msgDTO);
+        msgDTO.setUserId(entity.getCreatedBy());
+        msgList.add(msgDTO);
+        return messageFeignClient.saveUserMessageList(msgList);
+    }
 }
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridResultDTO.java
new file mode 100644
index 0000000000..26fe8f9292
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/AgencyGridResultDTO.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 查询组织网格名称-接口返参
+ *
+ * @author sun
+ */
+@Data
+public class AgencyGridResultDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 机关组织Id
+     */
+    private String agencyId;
+    /**
+     * 机关组织名称
+     */
+    private String agencyName;
+    /**
+     * 网格Id
+     */
+    private String gridId;
+    /**
+     * 网格名称
+     */
+    private String gridName;
+
+}
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java
index 7200bca2a3..330185b612 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java
@@ -34,4 +34,8 @@ public interface CustomerAgencyConstant {
 	 * 区县名称不能为空
 	 */
 	String DISTRICT_EXCEPTION = "区县级机关名称不能为空";
+	/**
+	 * 组织信息查询失败
+	 */
+	String SELECT_EXCEPTION = "根据组织ID未查询到机构组织信息";
 }
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
index 9de0e27f8e..ee839de020 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerAgencyController.java
@@ -27,6 +27,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
 import com.epmet.commons.tools.validator.group.UpdateGroup;
 import com.epmet.dto.CustomerAgencyDTO;
 import com.epmet.dto.form.StaffOrgFormDTO;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.dto.result.StaffOrgsResultDTO;
 import com.epmet.excel.CustomerAgencyExcel;
 import com.epmet.service.CustomerAgencyService;
@@ -104,4 +105,16 @@ public class CustomerAgencyController {
     public Result> getStaffOrgList(@RequestBody StaffOrgFormDTO staffOrgsFormDTO) {
         return customerAgencyService.getStaffOrgList(staffOrgsFormDTO);
     }
+
+    /**
+     * @param agencyGridResultDTO
+     * @return
+     * @Author sun
+     * @Description 根据组织Id、网格Id查询组织、网格名称
+     **/
+    @PostMapping("getagencyandgrid")
+    public Result getAgencyAndGrid(@RequestBody AgencyGridResultDTO agencyGridResultDTO) {
+        return new Result().ok(customerAgencyService.getAgencyAndGrid(agencyGridResultDTO));
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
index 62892b4576..dceb37c12e 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CustomerAgencyService.java
@@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.dto.CustomerAgencyDTO;
 import com.epmet.dto.form.StaffOrgFormDTO;
+import com.epmet.dto.result.AgencyGridResultDTO;
 import com.epmet.dto.result.StaffOrgsResultDTO;
 import com.epmet.entity.CustomerAgencyEntity;
 
@@ -104,4 +105,12 @@ public interface CustomerAgencyService extends BaseService
      * @Date 2020/4/20 21:45
      **/
     Result> getStaffOrgList(StaffOrgFormDTO staffOrgsFormDTO);
+
+    /**
+     * @param agencyGridResultDTO
+     * @return
+     * @Author sun
+     * @Description 根据组织Id、网格Id查询组织、网格名称
+     **/
+    AgencyGridResultDTO getAgencyAndGrid(AgencyGridResultDTO agencyGridResultDTO);
 }
\ No newline at end of file
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
index 06f83a0d25..43d442b32e 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerAgencyServiceImpl.java
@@ -21,19 +21,22 @@ 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.EpmetErrorCode;
 import com.epmet.commons.tools.exception.RenException;
 import com.epmet.commons.tools.page.PageData;
 import com.epmet.commons.tools.utils.ConvertUtils;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.constant.CustomerAgencyConstant;
+import com.epmet.constant.CustomerGridConstant;
 import com.epmet.dao.CustomerAgencyDao;
+import com.epmet.dao.CustomerGridDao;
 import com.epmet.dto.CustomerAgencyDTO;
 import com.epmet.dto.CustomerDTO;
-import com.epmet.dto.form.*;
-import com.epmet.dto.result.*;
+import com.epmet.dto.form.CustomerFormDTO;
+import com.epmet.dto.form.StaffOrgFormDTO;
+import com.epmet.dto.result.AgencyGridResultDTO;
+import com.epmet.dto.result.StaffOrgsResultDTO;
 import com.epmet.entity.CustomerAgencyEntity;
+import com.epmet.entity.CustomerGridEntity;
 import com.epmet.feign.OperCrmFeignClient;
 import com.epmet.redis.CustomerAgencyRedis;
 import com.epmet.service.CustomerAgencyService;
@@ -62,6 +65,8 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl page(Map params) {
         IPage page = baseDao.selectPage(
@@ -138,4 +143,28 @@ public class CustomerAgencyServiceImpl extends BaseServiceImpl>().ok(list);
     }
+
+    /**
+     * @param agencyGridResultDTO
+     * @return
+     * @Author sun
+     * @Description 根据组织Id、网格Id查询组织、网格名称
+     **/
+    @Override
+    public AgencyGridResultDTO getAgencyAndGrid(AgencyGridResultDTO agencyGridResultDTO) {
+        //1:查询组织机关信息
+        CustomerAgencyEntity agencyEntity = baseDao.selectById(agencyGridResultDTO.getAgencyId());
+        if (null == agencyEntity) {
+            throw new RenException(CustomerAgencyConstant.SELECT_EXCEPTION);
+        }
+        agencyGridResultDTO.setAgencyName(agencyEntity.getOrganizationName());
+        //2:查询网格信
+        CustomerGridEntity gridEntity = customerGridDao.selectById(agencyGridResultDTO.getGridId());
+        if (null == gridEntity) {
+            throw new RenException(CustomerGridConstant.SELECT_EXCEPTION);
+        }
+        agencyGridResultDTO.setGridName(gridEntity.getGridName());
+        return agencyGridResultDTO;
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
index 6a86db52ff..9391a4c9d6 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
@@ -5,6 +5,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.commons.tools.validator.ValidatorUtils;
 import com.epmet.modules.topic.service.ResiTopicService;
+import com.epmet.resi.group.dto.topic.ResiTopicDTO;
 import com.epmet.resi.group.dto.topic.TopicInfoDTO;
 import com.epmet.resi.group.dto.topic.form.*;
 import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
@@ -12,10 +13,7 @@ import com.epmet.resi.group.dto.topic.result.ResiTopicIncludeIssueDetailResultDT
 import com.epmet.resi.group.dto.topic.result.ResiTopicIncludeIssueInfoResultDTO;
 import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -199,4 +197,15 @@ public class ResiTopicController {
         return new Result().ok(topicService.selectDetail(topicInfo));
     }
 
+    /**
+     * @param topicId
+     * @return
+     * @Author sun
+     * @Description 根据话题Id查询话题信息
+     **/
+    @PostMapping(value = "gettopicbyid/{topicId}")
+    public Result getTopicById(@PathVariable("topicId") String topicId){
+        return new Result().ok(topicService.getTopicById(topicId));
+    }
+
 }
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
index f7694dcf76..74cc6c3633 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
@@ -229,4 +229,12 @@ public interface ResiTopicService extends BaseService {
      */
     TopicInfoDTO selectDetail(TopicInfoFormDTO formDTO);
 
+    /**
+     * @param topicId
+     * @return
+     * @Author sun
+     * @Description 根据话题Id查询话题信息
+     **/
+    ResiTopicDTO getTopicById(String topicId);
+
 }
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
index 920c6cfda4..f775c004d6 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
@@ -931,6 +931,12 @@ public class ResiTopicServiceImpl extends BaseServiceImpl
Date: Tue, 12 May 2020 15:35:21 +0800
Subject: [PATCH 04/22] =?UTF-8?q?=E6=BB=9E=E7=95=99=E5=A4=A9=E6=95=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../handler/FieldMetaObjectHandler.java       |  2 +-
 .../main/java/com/epmet/dto/CalenderDTO.java  |  6 ++
 .../com/epmet/dto/form/CalenderFormDTO.java   | 68 +++++++++++++
 .../epmet/controller/CalenderController.java  |  3 +-
 .../epmet/controller/ShowApiController.java   | 20 +++-
 .../main/java/com/epmet/dao/CalenderDao.java  |  2 +-
 .../com/epmet/service/CalenderService.java    |  3 +-
 .../com/epmet/service/ShowApiService.java     |  4 +
 .../service/impl/CalenderServiceImpl.java     | 96 ++++++++++++++++++-
 .../service/impl/ShowApiServiceImpl.java      | 71 +++++++++++++-
 ...duleTask.java => WorkDayScheduleTask.java} | 20 ++--
 .../java/com/epmet/dao/OperLanguageDao.java   |  1 +
 .../service/impl/OperLanguageServiceImpl.java |  2 +-
 .../main/resources/mapper/OperLanguageDao.xml |  5 +
 14 files changed, 280 insertions(+), 23 deletions(-)
 create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java
 rename epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/{SaticScheduleTask.java => WorkDayScheduleTask.java} (51%)
diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java
index fcd85b0c0e..1b9215e22a 100644
--- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java
+++ b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java
@@ -61,7 +61,7 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
             setFieldValByName(FieldConstant.DEL_FLAG_HUMP, EpmetDelFlagEnum.NORMAL.value(), metaObject);
             // 数据权限标志
             //setInsertFieldValByName(DEPT_ID, deptId, metaObject);
-        } else {
+        } else if (metaObject.getOriginalObject() instanceof BaseEntity) {
             UserDetail user = SecurityUser.getUser();
             // renren自带的
             if (user == null) {
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
index 77c75ed9e3..220ec8ef12 100644
--- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
@@ -19,7 +19,10 @@ package com.epmet.dto;
 
 import java.io.Serializable;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.hibernate.validator.constraints.Length;
 
 
 /**
@@ -51,6 +54,7 @@ public class CalenderDTO implements Serializable {
     /**
      * 查询的日期:20200510
      */
+    @JsonFormat(pattern="yyyy-MM-dd")
 	private Date queryDate;
 
     /**
@@ -61,11 +65,13 @@ public class CalenderDTO implements Serializable {
     /**
      * 节日或周末开始时间,如果是工作日,此字段为空串
      */
+    @Length(max = 8)
 	private String begin;
 
     /**
      * 节日或周末结束时间,如果是工作日,此字段为空串
      */
+    @Length(max = 8)
 	private String end;
 
     /**
diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java
new file mode 100644
index 0000000000..e2e8ab6512
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java
@@ -0,0 +1,68 @@
+package com.epmet.dto.form;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description TODO
+ * @Author yinzuomei
+ * @Date 2020/5/12 14:09
+ */
+@Data
+public class CalenderFormDTO implements Serializable {
+    private static final long serialVersionUID = -62868343447396944L;
+
+    /**
+     * 查询的日期:20200510
+     */
+    @JsonFormat(pattern="yyyy-MM-dd")
+    private Date queryDate;
+
+    /**
+     * 星期几的数字
+     */
+    private Integer weekday;
+
+    /**
+     * 节日或周末开始时间,如果是工作日,此字段为空串
+     */
+    @Length(max = 8)
+    private String begin;
+
+    /**
+     * 节日或周末结束时间,如果是工作日,此字段为空串
+     */
+    @Length(max = 8)
+    private String end;
+
+    /**
+     * 节日备注
+     */
+    private String holidayRemark;
+
+    /**
+     * 1为工作日,2为周末,3为节假日
+     */
+    private String type;
+
+    /**
+     * 节日名称,工作日时显示“无”,周末时显示“周末”,节日时显示节日名称
+     */
+    private String holiday;
+
+    /**
+     * 星期几的英文名
+     */
+    private String en;
+
+    /**
+     * 星期几的中文名
+     */
+    private String cn;
+
+}
+
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
index a3acf8c5ff..80d0062bec 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
@@ -25,6 +25,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
 import com.epmet.commons.tools.validator.group.UpdateGroup;
 import com.epmet.commons.tools.validator.group.DefaultGroup;
 import com.epmet.dto.CalenderDTO;
+import com.epmet.dto.form.CalenderFormDTO;
 import com.epmet.service.CalenderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -58,7 +59,7 @@ public class CalenderController {
     }
 
     @PostMapping
-    public Result save(@RequestBody CalenderDTO dto){
+    public Result save(@RequestBody CalenderFormDTO dto){
         //效验数据
         ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
         calenderService.save(dto);
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
index 209c3f4cc4..7b01acac0c 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
@@ -21,11 +21,11 @@ public class ShowApiController {
     private ShowApiService showApiService;
 
     /**
-     * @return com.epmet.commons.tools.utils.Result
      * @param year
+     * @return com.epmet.commons.tools.utils.Result
      * @Author yinzuomei
      * @Description 初始化日历插入数据库
-     * @Date 2020/5/11 23:23 
+     * @Date 2020/5/11 23:23
      **/
     @PostMapping("init/{year}")
     public Result initYearCalender(@PathVariable("year") String year) {
@@ -46,11 +46,11 @@ public class ShowApiController {
     }
 
     /**
-     * @return com.epmet.commons.tools.utils.Result
      * @param year
+     * @return com.epmet.commons.tools.utils.Result
      * @Author yinzuomei
      * @Description 根据年份查询当年的节假日列表(调用api同步到本地)
-     * @Date 2020/5/11 23:24 
+     * @Date 2020/5/11 23:24
      **/
     @PostMapping("holidayList/{year}")
     public Result holidayList(@PathVariable("year") String year) {
@@ -58,5 +58,17 @@ public class ShowApiController {
         return new Result();
     }
 
+    /**
+     * @param day yyyyMMdd
+     * @return com.epmet.commons.tools.utils.Result
+     * @Author yinzuomei
+     * @Description 拉取某一天的日历详情
+     * @Date 2020/5/12 14:45
+     **/
+    @PostMapping("initWorkDay/{day}")
+    public Result initWorkDay(@PathVariable("day") String day) {
+        showApiService.initWorkDay(day);
+        return new Result();
+    }
 }
 
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
index 1240add1e1..2d18e22648 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
@@ -36,7 +36,7 @@ public interface CalenderDao extends BaseDao {
 
     int updateHoliday(HolidayDetailDTO holidayDetail);
 
-    CalenderEntity selectByDay(String day);
+    List selectByDay(String day);
 
     List selectList(String year);
 
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
index 5dbc9c2634..0f4fac02b8 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
@@ -20,6 +20,7 @@ package com.epmet.service;
 import com.epmet.commons.mybatis.service.BaseService;
 import com.epmet.commons.tools.page.PageData;
 import com.epmet.dto.CalenderDTO;
+import com.epmet.dto.form.CalenderFormDTO;
 import com.epmet.entity.CalenderEntity;
 
 import java.util.List;
@@ -71,7 +72,7 @@ public interface CalenderService extends BaseService {
      * @author generator
      * @date 2020-05-11
      */
-    void save(CalenderDTO dto);
+    void save(CalenderFormDTO dto);
 
     /**
      * 默认更新
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
index 372c247ca7..b5dc546c2b 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
@@ -1,5 +1,7 @@
 package com.epmet.service;
 
+import java.util.Date;
+
 /**
  * @Description 工作日信息维护
  * @Author yinzuomei
@@ -13,4 +15,6 @@ public interface ShowApiService {
 
     void holidayList(String year);
 
+    void initWorkDay(String currentDate);
+
 }
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
index 6c0dca44c8..518577e6c0 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
@@ -25,13 +25,16 @@ import com.epmet.commons.tools.utils.ConvertUtils;
 import com.epmet.commons.tools.constant.FieldConstant;
 import com.epmet.dao.CalenderDao;
 import com.epmet.dto.CalenderDTO;
+import com.epmet.dto.form.CalenderFormDTO;
 import com.epmet.entity.CalenderEntity;
 import com.epmet.service.CalenderService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -60,9 +63,11 @@ public class CalenderServiceImpl extends BaseServiceImpl getWrapper(Map params) {
         String id = (String) params.get(FieldConstant.ID_HUMP);
-
+        String day = (String) params.get("day");
         QueryWrapper wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+        wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id)
+                .like(StringUtils.isNotBlank(day),"day",day);
+        wrapper.orderByAsc("QUERY_DATE");
 
         return wrapper;
     }
@@ -75,18 +80,91 @@ public class CalenderServiceImpl extends BaseServiceImpl calenderList = calenderDao.selectByDay(simpleDateFormat.format(new Date(i)));
+                if (null == calenderList || calenderList.size() < 1) {
                     logger.info("日期:" + dateFormat.format(new Date(i)));
                     CalenderEntity calenderEntity = new CalenderEntity();
                     calenderEntity.setQueryDate(new Date(i));
@@ -123,6 +124,72 @@ public class ShowApiServiceImpl implements ShowApiService {
         }
     }
 
+    @Override
+    public void initWorkDay(String currentDate) {
+        DayDetailResultDTO dayDetailResultDTO = null;
+        try {
+            dayDetailResultDTO = ShowApiUtil.queryHolidayV2020(currentDate);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        List list = calenderDao.selectByDay(currentDate);
+        if(null!=list&&list.size()>0){
+            if (null != dayDetailResultDTO && 0 == dayDetailResultDTO.getRet_code()) {
+                for (CalenderEntity calenderEntity : list) {
+                    calenderEntity.setRetCode(dayDetailResultDTO.getRet_code());
+                    calenderEntity.setWeekday(dayDetailResultDTO.getWeekDay());
+                    calenderEntity.setBegin(dayDetailResultDTO.getBegin());
+                    calenderEntity.setEnd(dayDetailResultDTO.getEnd());
+                    calenderEntity.setHoliday(dayDetailResultDTO.getHoliday());
+                    calenderEntity.setHolidayRemark(dayDetailResultDTO.getHoliday_remark());
+                    calenderEntity.setEn(dayDetailResultDTO.getEn());
+                    calenderEntity.setCn(dayDetailResultDTO.getCn());
+                    calenderEntity.setType(dayDetailResultDTO.getType());
+                    //1为工作日,2为周末,3为节假日
+                    if ("1".equals(dayDetailResultDTO.getType())) {
+                        calenderEntity.setTypeName("工作日");
+                    } else if ("2".equals(dayDetailResultDTO.getType())) {
+                        calenderEntity.setTypeName("周末");
+                    } else if ("3".equals(dayDetailResultDTO.getType())) {
+                        calenderEntity.setTypeName("节假日");
+                    }
+                    calenderDao.updateById(calenderEntity);
+                }
+            }
+        }else {
+            calenderDao.insert(getCalenderEntity(dayDetailResultDTO));
+        }
+    }
+
+    public CalenderEntity getCalenderEntity(DayDetailResultDTO dayDetailResultDTO) {
+        CalenderEntity calenderEntity = new CalenderEntity();
+        calenderEntity.setDay(dayDetailResultDTO.getDay());
+        try {
+            Date queryDate=simpleDateFormat.parse(dayDetailResultDTO.getDay());
+            calenderEntity.setQueryDate(queryDate);
+        } catch (ParseException e) {
+            logger.error("QUERY_DATE 赋值 错误");
+            e.printStackTrace();
+        }
+        calenderEntity.setRetCode(dayDetailResultDTO.getRet_code());
+        calenderEntity.setWeekday(dayDetailResultDTO.getWeekDay());
+        calenderEntity.setBegin(dayDetailResultDTO.getBegin());
+        calenderEntity.setEnd(dayDetailResultDTO.getEnd());
+        calenderEntity.setHoliday(dayDetailResultDTO.getHoliday());
+        calenderEntity.setHolidayRemark(dayDetailResultDTO.getHoliday_remark());
+        calenderEntity.setEn(dayDetailResultDTO.getEn());
+        calenderEntity.setCn(dayDetailResultDTO.getCn());
+        calenderEntity.setType(dayDetailResultDTO.getType());
+        //1为工作日,2为周末,3为节假日
+        if ("1".equals(dayDetailResultDTO.getType())) {
+            calenderEntity.setTypeName("工作日");
+        } else if ("2".equals(dayDetailResultDTO.getType())) {
+            calenderEntity.setTypeName("周末");
+        } else if ("3".equals(dayDetailResultDTO.getType())) {
+            calenderEntity.setTypeName("节假日");
+        }
+        return calenderEntity;
+    }
    /* public static void main(String[] args) throws ParseException {
         String dateStart = "2020-01-01";
         String dateEnd = "2020-12-31";
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java
similarity index 51%
rename from epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java
rename to epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java
index bdca1553d2..b26ab24cb7 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java
@@ -6,25 +6,27 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
- * @Description TODO
+ * @Description 定时任务
  * @Author yinzuomei
  * @Date 2020/5/12 0:01
  */
-//@Configuration      //1.主要用于标记配置类,兼备Component的效果。
-//@EnableScheduling   // 2.开启定时任务
-public class SaticScheduleTask {
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+public class WorkDayScheduleTask {
     @Autowired
     private ShowApiService showApiService;
 
-    //3.添加定时任务
-    @Scheduled(cron = "0/1 * * * * ?")
-    //或直接指定时间间隔,例如:5秒
-    //@Scheduled(fixedRate=5000)
+    //每天晚上00:00:01执行{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}
+    @Scheduled(cron = "1 0 0 * * ?")
     private void configureTasks() {
-        showApiService.initWorkDayList("2020");
+        Date nowDate = new Date();
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+        showApiService.initWorkDay(format.format(nowDate));
         System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
     }
 }
diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
index d681d328c3..0085399c5b 100644
--- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
+++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
@@ -24,4 +24,5 @@ public interface OperLanguageDao extends BaseDao {
 
     void updateLanguage(OperLanguageEntity entity);
 
+    void insert1(OperLanguageEntity entity);
 }
diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
index ee486aa224..04c85454f7 100644
--- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
+++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
@@ -112,7 +112,7 @@ public class OperLanguageServiceImpl extends BaseServiceImpl
 
+    
+        INSERT INTO `oper_language` ( `table_name`, `table_id`, `field_name`, `field_value`, `language` )
+        VALUES
+        ( #{tableName}, #{tableId}, #{fieldName}, #{fieldValue}, #{language} )
+     
 
From 15e78da1ac7c91a4435294079b59c048ef1e5f51 Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Tue, 12 May 2020 15:37:40 +0800
Subject: [PATCH 05/22] insertOperLanguageEntity
---
 .../src/main/java/com/epmet/dao/OperLanguageDao.java            | 2 +-
 .../java/com/epmet/service/impl/OperLanguageServiceImpl.java    | 2 +-
 .../src/main/resources/mapper/OperLanguageDao.xml               | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
index 0085399c5b..dfca54a9ab 100644
--- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
+++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
@@ -24,5 +24,5 @@ public interface OperLanguageDao extends BaseDao {
 
     void updateLanguage(OperLanguageEntity entity);
 
-    void insert1(OperLanguageEntity entity);
+    void insertOperLanguageEntity(OperLanguageEntity entity);
 }
diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
index 04c85454f7..7ed89ecf7b 100644
--- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
+++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
@@ -112,7 +112,7 @@ public class OperLanguageServiceImpl extends BaseServiceImpl
 
-    
+    
         INSERT INTO `oper_language` ( `table_name`, `table_id`, `field_name`, `field_value`, `language` )
         VALUES
         ( #{tableName}, #{tableId}, #{fieldName}, #{fieldValue}, #{language} )
From f777848ee8085c581c659b0f033916ff110a01bd Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Tue, 12 May 2020 15:40:22 +0800
Subject: [PATCH 06/22] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E5=A4=9A=E4=BD=99?=
 =?UTF-8?q?=E5=BC=95=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../src/main/java/com/epmet/controller/WorkDayController.java    | 1 -
 1 file changed, 1 deletion(-)
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java
index 679613a48d..0d975a0c31 100644
--- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/WorkDayController.java
@@ -11,7 +11,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
-import java.util.Set;
 
 /**
  * @Description 工作日计算
From 68c87a9197d5b74a9fb55eb94ed548a76d23d18d Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Tue, 12 May 2020 15:49:58 +0800
Subject: [PATCH 07/22] =?UTF-8?q?=E5=88=A0=E9=99=A4resi-hall,gov-issue,gov?=
 =?UTF-8?q?-projecctdemo?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../com/epmet/dto/form/DemoTestFormDTO.java   | 21 ---------------
 .../controller/GovIssueDemoController.java    | 27 -------------------
 .../controller/ResiHallDemoController.java    | 27 -------------------
 .../com/epmet/dto/form/DemoTestFormDTO.java   | 21 ---------------
 .../controller/GovProjectDemoController.java  | 27 -------------------
 .../com/epmet/dto/form/DemoTestFormDTO.java   | 21 ---------------
 6 files changed, 144 deletions(-)
 delete mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
 delete mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/GovIssueDemoController.java
 delete mode 100644 epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/ResiHallDemoController.java
 delete mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
 delete mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/GovProjectDemoController.java
 delete mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
deleted file mode 100644
index fc93172558..0000000000
--- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.epmet.dto.form;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import java.io.Serializable;
-
-/**
- * @Description 测试入参
- * @Author yinzuomei
- * @Date 2020/5/8 10:00
- */
-@Data
-public class DemoTestFormDTO implements Serializable {
-    private static final long serialVersionUID = 4859779755214502427L;
-    @NotBlank(message = "客户id不能为空")
-    private String customerId;
-    @NotBlank(message = "网格id不能为空")
-    private String gridId;
-}
-
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/GovIssueDemoController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/GovIssueDemoController.java
deleted file mode 100644
index 174ac7a057..0000000000
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/GovIssueDemoController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.epmet.controller;
-
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.dto.form.DemoTestFormDTO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @Description 测试
- * @Author yinzuomei
- * @Date 2020/5/7 22:47
- */
-@RestController
-@RequestMapping("demo")
-public class GovIssueDemoController {
-    private static final Logger logger = LoggerFactory.getLogger(GovIssueDemoController.class);
-
- /*   @PostMapping("test")
-    public Result test(@RequestBody DemoTestFormDTO formDTO) {
-        ValidatorUtils.validateEntity(formDTO);
-        logger.info(String.format("请求成功客户id[%s],网格id[%s]",formDTO.getCustomerId(),formDTO.getGridId()));
-        return new Result().ok("gov-issue-server请求成功");
-    }*/
-}
-
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/ResiHallDemoController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/ResiHallDemoController.java
deleted file mode 100644
index 6f8021d0df..0000000000
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/ResiHallDemoController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.epmet.controller;
-
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.dto.form.DemoTestFormDTO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @Description 测试
- * @Author yinzuomei
- * @Date 2020/5/7 22:47
- */
-@RestController
-@RequestMapping("demo")
-public class ResiHallDemoController {
-    private static final Logger logger = LoggerFactory.getLogger(ResiHallDemoController.class);
-
-   /* @PostMapping("test")
-    public Result test(@RequestBody DemoTestFormDTO formDTO) {
-        logger.info(String.format("请求成功客户id[%s],网格id[%s]",formDTO.getCustomerId(),formDTO.getGridId()));
-        ValidatorUtils.validateEntity(formDTO);
-        return new Result().ok("resi-hall-server请求成功");
-    }*/
-}
-
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
deleted file mode 100644
index fc93172558..0000000000
--- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.epmet.dto.form;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import java.io.Serializable;
-
-/**
- * @Description 测试入参
- * @Author yinzuomei
- * @Date 2020/5/8 10:00
- */
-@Data
-public class DemoTestFormDTO implements Serializable {
-    private static final long serialVersionUID = 4859779755214502427L;
-    @NotBlank(message = "客户id不能为空")
-    private String customerId;
-    @NotBlank(message = "网格id不能为空")
-    private String gridId;
-}
-
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/GovProjectDemoController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/GovProjectDemoController.java
deleted file mode 100644
index e099bd801c..0000000000
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/GovProjectDemoController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.epmet.controller;
-
-import com.epmet.commons.tools.utils.Result;
-import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.dto.form.DemoTestFormDTO;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @Description 测试
- * @Author yinzuomei
- * @Date 2020/5/7 22:47
- */
-@RestController
-@RequestMapping("demo")
-public class GovProjectDemoController {
-    private static final Logger logger = LoggerFactory.getLogger(GovProjectDemoController.class);
-
-    @PostMapping("test")
-    public Result test(@RequestBody DemoTestFormDTO formDTO) {
-        ValidatorUtils.validateEntity(formDTO);
-        logger.info(String.format("请求成功客户id[%s],网格id[%s]",formDTO.getCustomerId(),formDTO.getGridId()));
-        return new Result().ok("gov-project-server请求成功");
-    }
-}
-
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
deleted file mode 100644
index fc93172558..0000000000
--- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/DemoTestFormDTO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.epmet.dto.form;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import java.io.Serializable;
-
-/**
- * @Description 测试入参
- * @Author yinzuomei
- * @Date 2020/5/8 10:00
- */
-@Data
-public class DemoTestFormDTO implements Serializable {
-    private static final long serialVersionUID = 4859779755214502427L;
-    @NotBlank(message = "客户id不能为空")
-    private String customerId;
-    @NotBlank(message = "网格id不能为空")
-    private String gridId;
-}
-
From 077409f35e9004db0d84f13f0df9ca9e1b0f84bd Mon Sep 17 00:00:00 2001
From: yinzuomei <576302893@qq.com>
Date: Tue, 12 May 2020 15:57:34 +0800
Subject: [PATCH 08/22] =?UTF-8?q?calender=E6=95=B0=E6=8D=AE=E5=BA=93?=
 =?UTF-8?q?=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../src/main/resources/db/migration/db.sql    |   0
 .../db/migration/epmet_common_service.sql     | 418 ++++++++++++++++++
 2 files changed, 418 insertions(+)
 delete mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/db.sql
 create mode 100644 epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/epmet_common_service.sql
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/db.sql b/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/db.sql
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/epmet_common_service.sql b/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/epmet_common_service.sql
new file mode 100644
index 0000000000..1e2005a491
--- /dev/null
+++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/epmet_common_service.sql
@@ -0,0 +1,418 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 党群e事通开发库!!!!!
+ Source Server Type    : MySQL
+ Source Server Version : 50728
+ Source Host           : 192.168.1.130:3306
+ Source Schema         : epmet_common_service
+
+ Target Server Type    : MySQL
+ Target Server Version : 50728
+ File Encoding         : 65001
+
+ Date: 12/05/2020 15:55:09
+*/
+CREATE DATABASE `epmet_common_service` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for calender
+-- ----------------------------
+DROP TABLE IF EXISTS `calender`;
+CREATE TABLE `calender`  (
+  `ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
+  `RET_CODE` int(11) DEFAULT NULL COMMENT '0表示成功,其他为失败',
+  `DAY` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '查询的日期:20200510',
+  `QUERY_DATE` date NOT NULL COMMENT '查询的日期:2020-05-10',
+  `WEEKDAY` int(11) DEFAULT NULL COMMENT '星期几的数字',
+  `BEGIN` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '节日或周末开始时间,如果是工作日,此字段为空串',
+  `END` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '节日或周末结束时间,如果是工作日,此字段为空串',
+  `HOLIDAY_REMARK` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '节日备注',
+  `TYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '1为工作日,2为周末,3为节假日',
+  `TYPE_NAME` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '工作日,周末,节假日',
+  `HOLIDAY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '节日名称,工作日时显示“无”,周末时显示“周末”,节日时显示节日名称',
+  `EN` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '星期几的英文名',
+  `CN` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '星期几的中文名',
+  `DEL_FLAG` tinyint(1) DEFAULT NULL COMMENT '是否删除,0:未删除,1:已删除',
+  `REVISION` int(10) DEFAULT NULL COMMENT '乐观锁',
+  `CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建者id',
+  `CREATED_TIME` datetime(0) DEFAULT NULL COMMENT '创建时间',
+  `UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新者id',
+  `UPDATED_TIME` datetime(0) DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of calender
+-- ----------------------------
+INSERT INTO `calender` VALUES ('00772611b7a8b243e7483ac969069ad7', 0, '20200127', '2020-01-27', 1, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:38');
+INSERT INTO `calender` VALUES ('015563ec89e212d364f68f4f3403c5d5', 0, '20200923', '2020-09-23', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:53');
+INSERT INTO `calender` VALUES ('01e663161394a1f140492a5f7d8b97eb', 0, '20201003', '2020-10-03', 6, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:03');
+INSERT INTO `calender` VALUES ('04086dfd9da61e4458a707e3acd0332d', 0, '20201126', '2020-11-26', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:08:57');
+INSERT INTO `calender` VALUES ('043fbcccb3041e7bdb91f39ec1a034d0', 0, '20201218', '2020-12-18', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:19');
+INSERT INTO `calender` VALUES ('04c71d105ee141fdbdf861a3bd6909a8', 0, '20200920', '2020-09-20', 7, '20200919', '20200920', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:50');
+INSERT INTO `calender` VALUES ('0557c67c004e2fceb263710a83085b9c', 0, '20200530', '2020-05-30', 6, '20200530', '20200531', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:47');
+INSERT INTO `calender` VALUES ('05f13378cf30526a739ba4a106a1afdf', 0, '20200625', '2020-06-25', 4, '20200625', '20200627', '6月25日至27日放假调休,共3天。6月28日(星期日)上班。', '3', '节假日', '端午节', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:13');
+INSERT INTO `calender` VALUES ('0618e52ca29f63a1ea3abf379616212b', 0, '20200713', '2020-07-13', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:34');
+INSERT INTO `calender` VALUES ('07a46691ca6a6d7e3976066a4f7f34a5', 0, '20201204', '2020-12-04', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:05');
+INSERT INTO `calender` VALUES ('07a71b25734c80c43a45e950d3fa2e0c', 0, '20200622', '2020-06-22', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:10');
+INSERT INTO `calender` VALUES ('07e47b290d4406e5ebd3febe83c487b6', 0, '20200727', '2020-07-27', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:55');
+INSERT INTO `calender` VALUES ('083ecab55950baf3d88ae1f74cafc0ba', 0, '20201022', '2020-10-22', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:22');
+INSERT INTO `calender` VALUES ('08dbe97e3bc9093aa5c4ff86f1684bc0', 0, '20201012', '2020-10-12', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:12');
+INSERT INTO `calender` VALUES ('0a864c30779ddb5bc8a745a48c3bf3c9', 0, '20201010', '2020-10-10', 6, '', '', '调休', '1', '工作日', '无', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:10');
+INSERT INTO `calender` VALUES ('0b4aacfe39f3a811cfd155aa260cecee', 0, '20200324', '2020-03-24', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:35');
+INSERT INTO `calender` VALUES ('0b827ba3f7378db479ff1a7ab903e078', 0, '20200429', '2020-04-29', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:16');
+INSERT INTO `calender` VALUES ('0b8fb4322ecd09d860d86b2c58c43a39', 0, '20200115', '2020-01-15', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:26');
+INSERT INTO `calender` VALUES ('0c9f5fa23d92635f5ed11a7bf6cae56e', 0, '20200909', '2020-09-09', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:39');
+INSERT INTO `calender` VALUES ('0e63308f0414891105084a474d8c769e', 0, '20201127', '2020-11-27', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:08:58');
+INSERT INTO `calender` VALUES ('0f5c75c7e3e1e5ee5c2bd194c90c9871', 0, '20201211', '2020-12-11', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:12');
+INSERT INTO `calender` VALUES ('0fd9e1f8cb216b88c30e1a59ccbda280', 0, '20200219', '2020-02-19', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:01');
+INSERT INTO `calender` VALUES ('1101f3fced7c928de1084da60149ad6e', 0, '20200216', '2020-02-16', 7, '20200215', '20200216', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:58');
+INSERT INTO `calender` VALUES ('11287964df15adc3686181b09d73413c', 0, '20200415', '2020-04-15', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:02');
+INSERT INTO `calender` VALUES ('117d392a4b50198fcc04904783884258', 0, '20200627', '2020-06-27', 6, '20200625', '20200627', '6月25日至27日放假调休,共3天。6月28日(星期日)上班。', '3', '节假日', '端午节', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:15');
+INSERT INTO `calender` VALUES ('11b71e4b502cda8ac2ec1639b34ae7ba', 0, '20200210', '2020-02-10', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:52');
+INSERT INTO `calender` VALUES ('120c79f65227a5e4f6b1eb250ee582d4', 0, '20200402', '2020-04-02', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:44');
+INSERT INTO `calender` VALUES ('1315ab74554c2eada60f990648c727a2', 0, '20200520', '2020-05-20', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:37');
+INSERT INTO `calender` VALUES ('14c0af69f33054a1908b74dcd0014ccc', 0, '20200914', '2020-09-14', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:44');
+INSERT INTO `calender` VALUES ('15788edb4a2b74f6184d09b4bdedc744', 0, '20200618', '2020-06-18', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:06');
+INSERT INTO `calender` VALUES ('15eb046a77104526826011455885ed1e', 0, '20201030', '2020-10-30', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:30');
+INSERT INTO `calender` VALUES ('16ffbe75a5e481b8db707f27cf311938', 0, '20200621', '2020-06-21', 7, '20200620', '20200621', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:09');
+INSERT INTO `calender` VALUES ('177c471557a6f1b166aa0f95154cbdc4', 0, '20200608', '2020-06-08', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:56');
+INSERT INTO `calender` VALUES ('17abef8746f124276dbdfc030ff61242', 0, '20200218', '2020-02-18', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:00');
+INSERT INTO `calender` VALUES ('1beeb2e463a26e9ce9b646ec6f957d46', 0, '20200409', '2020-04-09', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:56');
+INSERT INTO `calender` VALUES ('1ddc589480effe59966c8921648e0b35', 0, '20200701', '2020-07-01', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:19');
+INSERT INTO `calender` VALUES ('1e61f63af7016b8be15d61d7e0234423', 0, '20200620', '2020-06-20', 6, '20200620', '20200621', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:08');
+INSERT INTO `calender` VALUES ('1e6cc5df300bb7b92d46195993f98b18', 0, '20201124', '2020-11-24', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:08:55');
+INSERT INTO `calender` VALUES ('1edc7bcaca576ad95b3a02ae86912fd4', 0, '20200313', '2020-03-13', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:24');
+INSERT INTO `calender` VALUES ('200d6379adf4ffbec93401c740402cb6', 0, '20201109', '2020-11-09', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:40');
+INSERT INTO `calender` VALUES ('2088057fcddf14eb8745f6256bc1dac7', 0, '20201203', '2020-12-03', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:04');
+INSERT INTO `calender` VALUES ('235023dcae390acc4e7321c4e181d704', 0, '20200525', '2020-05-25', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:42');
+INSERT INTO `calender` VALUES ('23e4ecb7cc8a14278a3b290df6d2a25f', 0, '20200616', '2020-06-16', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:04');
+INSERT INTO `calender` VALUES ('24316d9923eff4145bcec276e77c4799', 0, '20201002', '2020-10-02', 5, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:02');
+INSERT INTO `calender` VALUES ('2435690c26aaf4501da48d1e4822621e', 0, '20200802', '2020-08-02', 7, '20200801', '20200802', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:01');
+INSERT INTO `calender` VALUES ('250a13d98c6505c40e4101b75bdf18bc', 0, '20200112', '2020-01-12', 7, '20200111', '20200112', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:23');
+INSERT INTO `calender` VALUES ('25186aec5e48d8271439015d36851953', 0, '20200528', '2020-05-28', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:45');
+INSERT INTO `calender` VALUES ('253d7cbe2043adb6f991764f63b4e40d', 0, '20200812', '2020-08-12', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:11');
+INSERT INTO `calender` VALUES ('260ba059b8beb21bd859e33b709e761f', 0, '20200821', '2020-08-21', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:20');
+INSERT INTO `calender` VALUES ('2639911071b61a79495a9d2b6407dff6', 0, '20200617', '2020-06-17', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:05');
+INSERT INTO `calender` VALUES ('26576a2b746a8ec8d143728d4221aa9e', 0, '20201217', '2020-12-17', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:18');
+INSERT INTO `calender` VALUES ('26d7b7234c6fb53bb18e4177410bd3d9', 0, '20201004', '2020-10-04', 7, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:04');
+INSERT INTO `calender` VALUES ('280714eb7ffab1a0acbe41209cd7dc01', 0, '20200507', '2020-05-07', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:24');
+INSERT INTO `calender` VALUES ('284c8b466b6ac1fd4d362b0ae05e9e2a', 0, '20201206', '2020-12-06', 7, '20201205', '20201206', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:07');
+INSERT INTO `calender` VALUES ('287b7c1aa0790162598f10dbc8346e1c', 0, '20200908', '2020-09-08', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:38');
+INSERT INTO `calender` VALUES ('289838dfb96ddf77a6cfc879474ca8ab', 0, '20201108', '2020-11-08', 7, '20201107', '20201108', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:39');
+INSERT INTO `calender` VALUES ('28bd0ae01f313542f4e46bdbe5aa9409', 0, '20200714', '2020-07-14', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:35');
+INSERT INTO `calender` VALUES ('28ea70a7fef8c4eb9f17b28e29bc817c', 0, '20200205', '2020-02-05', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:47');
+INSERT INTO `calender` VALUES ('2935651d95ad7e4deeda0d382648c25e', 0, '20200910', '2020-09-10', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:40');
+INSERT INTO `calender` VALUES ('295271c37d6000964c0001d131862c1d', 0, '20200420', '2020-04-20', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:07');
+INSERT INTO `calender` VALUES ('2a5c2946835dcf2ee1defe93c3c78a7b', 0, '20200404', '2020-04-04', 6, '20200404', '20200406', '4月4日至6日放假调休,共3天。', '3', '节假日', '清明节', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:46');
+INSERT INTO `calender` VALUES ('2a866f98885a810387e6c3ee61a8741f', 0, '20200213', '2020-02-13', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:55');
+INSERT INTO `calender` VALUES ('2acfc102d2d9d75938ac5df07e106acd', 0, '20201111', '2020-11-11', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:42');
+INSERT INTO `calender` VALUES ('2aea7d3e6fbcc129b62dba7de380ed51', 0, '20200206', '2020-02-06', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:48');
+INSERT INTO `calender` VALUES ('2b0192a253a17e826bbd1d4b03ffe193', 0, '20200221', '2020-02-21', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:03');
+INSERT INTO `calender` VALUES ('2b1b42fa7780f15dc37674f209a029c7', 0, '20200628', '2020-06-28', 7, '', '', '调休', '1', '工作日', '无', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:16');
+INSERT INTO `calender` VALUES ('2b41b96f3a0ab22d51ae44fecf3bcd96', 0, '20201222', '2020-12-22', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:23');
+INSERT INTO `calender` VALUES ('2baba2f670b4c163c5caf4265d57abb3', 0, '20201031', '2020-10-31', 6, '20201031', '20201101', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:31');
+INSERT INTO `calender` VALUES ('2c379162cb1722267b3e476fddeb6635', 0, '20200105', '2020-01-05', 7, '20200104', '20200105', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:16');
+INSERT INTO `calender` VALUES ('2cdabfe51f604876a593080fd774f00b', 0, '20200508', '2020-05-08', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:25');
+INSERT INTO `calender` VALUES ('2da80e1e1b742bff640dbd6ddc34dd0f', 0, '20200422', '2020-04-22', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:09');
+INSERT INTO `calender` VALUES ('2e2391d3a4e48028d544e59df58b957f', 0, '20200117', '2020-01-17', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:28');
+INSERT INTO `calender` VALUES ('31e9754502ee9536d4f7a538db562441', 0, '20200817', '2020-08-17', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:16');
+INSERT INTO `calender` VALUES ('32333db31fe5f85734cccf6de4de3306', 0, '20200629', '2020-06-29', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:17');
+INSERT INTO `calender` VALUES ('325ff6deeab73321c6414bab9d0f92c8', 0, '20201123', '2020-11-23', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:08:54');
+INSERT INTO `calender` VALUES ('32c29f3f2a7357ef1fda873463ce2d51', 0, '20200524', '2020-05-24', 7, '20200523', '20200524', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:41');
+INSERT INTO `calender` VALUES ('3338470760bd4a130d4ca00b48f1a307', 0, '20200228', '2020-02-28', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:10');
+INSERT INTO `calender` VALUES ('3400841da13e6120a07d38e85f69b09a', 0, '20201013', '2020-10-13', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:13');
+INSERT INTO `calender` VALUES ('373ea083f70ec4983b59b444ea89b5d6', 0, '20200114', '2020-01-14', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:25');
+INSERT INTO `calender` VALUES ('37bb0ba68b6c078976749b0e6c864fac', 0, '20201212', '2020-12-12', 6, '20201212', '20201213', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:13');
+INSERT INTO `calender` VALUES ('37d2de5e0bbfebc54132b6cc9717ba19', 0, '20200109', '2020-01-09', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:20');
+INSERT INTO `calender` VALUES ('37f2113f4305b0507400b745e94b2e25', 0, '20200720', '2020-07-20', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:48');
+INSERT INTO `calender` VALUES ('381483f9bb8f6bd2f0f74b8626e151ca', 0, '20200131', '2020-01-31', 5, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:42');
+INSERT INTO `calender` VALUES ('388c1e01adf0e544056f99d2aa14554b', 0, '20200911', '2020-09-11', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:41');
+INSERT INTO `calender` VALUES ('399c52c96937cfb5b8e33806c81bf7df', 0, '20201006', '2020-10-06', 2, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:06');
+INSERT INTO `calender` VALUES ('3a79f5f0d110f04ffd2cf63074722cf8', 0, '20201209', '2020-12-09', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:10');
+INSERT INTO `calender` VALUES ('3b15fed402667e5d6c9e36dfee52402e', 0, '20201130', '2020-11-30', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:01');
+INSERT INTO `calender` VALUES ('3c2540b55ef42725a194204c9fe00ed7', 0, '20200927', '2020-09-27', 7, '', '', '调休', '1', '工作日', '无', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:57');
+INSERT INTO `calender` VALUES ('3e5edafa4fdeecea63a8b3c816a9c5da', 0, '20200411', '2020-04-11', 6, '20200411', '20200412', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:58');
+INSERT INTO `calender` VALUES ('3e942bd8b06010b4d4d93d0ab4f2359b', 0, '20200417', '2020-04-17', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:04');
+INSERT INTO `calender` VALUES ('3ef43497b5de651f4e68571a2025f84d', 0, '20200425', '2020-04-25', 6, '20200425', '20200426', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:12');
+INSERT INTO `calender` VALUES ('405c8b61fff45de8c43e4ad159e0bcf9', 0, '20200406', '2020-04-06', 1, '20200404', '20200406', '4月4日至6日放假调休,共3天。', '3', '节假日', '清明节', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:54');
+INSERT INTO `calender` VALUES ('41ac7c37cd7c785cbd367efaf7c0a8d9', 0, '20200905', '2020-09-05', 6, '20200905', '20200906', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:35');
+INSERT INTO `calender` VALUES ('41b172f48b8f899f3079c53740d91959', 0, '20200410', '2020-04-10', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:57');
+INSERT INTO `calender` VALUES ('425504d92c453c4816de11faaaf46fa8', 0, '20201121', '2020-11-21', 6, '20201121', '20201122', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:52');
+INSERT INTO `calender` VALUES ('4333496d67495985712be0e415b540bf', 0, '20200825', '2020-08-25', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:24');
+INSERT INTO `calender` VALUES ('43a4c8acfce501e1bb93fe94470b4365', 0, '20200102', '2020-01-02', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:13');
+INSERT INTO `calender` VALUES ('43b90b7dfecb085965e93e5f266c0080', 0, '20200119', '2020-01-19', 7, '', '', '调休', '1', '工作日', '无', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:30');
+INSERT INTO `calender` VALUES ('45ab33adabf4c310cb87aa9263f9984f', 0, '20200930', '2020-09-30', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:00');
+INSERT INTO `calender` VALUES ('466174553709b06c8f5d3cc423c706d6', 0, '20200501', '2020-05-01', 5, '20200501', '20200505', '5月1日至5日放假调休,共5天。4月26日(星期日)、5月9日(星期六)上班。', '3', '节假日', '劳动节', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:00', 'fa5e50ca724911eab9c900163e08c0f9', '2020-05-12 13:25:40');
+INSERT INTO `calender` VALUES ('497a55e25d4873f5834277675f455949', 0, '20200814', '2020-08-14', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:13');
+INSERT INTO `calender` VALUES ('49b966643f4e462dabf84f0794252dfb', 0, '20200421', '2020-04-21', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:08');
+INSERT INTO `calender` VALUES ('4abe3faa45c1f2f742f74685fcef3396', 0, '20201014', '2020-10-14', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:14');
+INSERT INTO `calender` VALUES ('4bedb3e95445daeee80e81465404e1a1', 0, '20200222', '2020-02-22', 6, '20200222', '20200223', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:04');
+INSERT INTO `calender` VALUES ('4c07241907b8191fd072d119c0de1499', 0, '20200726', '2020-07-26', 7, '20200725', '20200726', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:54');
+INSERT INTO `calender` VALUES ('4d5ffbc450704e0c34c2937e232327e8', 0, '20200209', '2020-02-09', 7, '20200208', '20200209', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:51');
+INSERT INTO `calender` VALUES ('4d96c864299c75af30bf1ef8abda79c0', 0, '20200907', '2020-09-07', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:37');
+INSERT INTO `calender` VALUES ('4e9708999d7f1c44474a9566f6ef87a3', 0, '20201007', '2020-10-07', 3, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:07');
+INSERT INTO `calender` VALUES ('4ea0549e3df1f00a01d4ed47b6505806', 0, '20201216', '2020-12-16', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:17');
+INSERT INTO `calender` VALUES ('4eaabd3b9a2d7d41bad412f799287a8b', 0, '20200917', '2020-09-17', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:47');
+INSERT INTO `calender` VALUES ('4f44c462d822633211a01f2414dff6b2', 0, '20200719', '2020-07-19', 7, '20200718', '20200719', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:47');
+INSERT INTO `calender` VALUES ('4f771427c832f53dca43d8e12ba5d9f3', 0, '20200706', '2020-07-06', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:24');
+INSERT INTO `calender` VALUES ('4f8e34a9114a839f138cabb7608cd1f9', 0, '20200427', '2020-04-27', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:14');
+INSERT INTO `calender` VALUES ('503739a1645e5c3abd3fc11f32d1f5bc', 0, '20201228', '2020-12-28', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:29');
+INSERT INTO `calender` VALUES ('528b4f7a35799bba7ebcece0c467f5c7', 0, '20201225', '2020-12-25', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:26');
+INSERT INTO `calender` VALUES ('5456c30f69404e853f359afaa2125aed', 0, '20200816', '2020-08-16', 7, '20200815', '20200816', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:15');
+INSERT INTO `calender` VALUES ('55e3cd4240f91ec5ba48f3c4eaa6109a', 0, '20200510', '2020-05-10', 7, '20200509', '20200510', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:27');
+INSERT INTO `calender` VALUES ('5695115b49fad95392b89f921836d50f', 0, '20200808', '2020-08-08', 6, '20200808', '20200809', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:07');
+INSERT INTO `calender` VALUES ('56bccf7bc2544f4af86ac20aa8fa19a3', 0, '20200724', '2020-07-24', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:52');
+INSERT INTO `calender` VALUES ('572647c501e6d4b1872f16e962f33396', 0, '20201229', '2020-12-29', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:30');
+INSERT INTO `calender` VALUES ('574df73fc7f7f71cbd0c99756e611fe3', 0, '20200413', '2020-04-13', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:00');
+INSERT INTO `calender` VALUES ('578a1bfdf1157fdf6e25ea055d0d2fc0', 0, '20201027', '2020-10-27', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:27');
+INSERT INTO `calender` VALUES ('5799f19de34ce3cc709572a3e95637c8', 0, '20200929', '2020-09-29', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:59');
+INSERT INTO `calender` VALUES ('579a9b8b394683fb859d0d678a0a911f', 0, '20200122', '2020-01-22', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:33');
+INSERT INTO `calender` VALUES ('57c0d73f761c533561d7a02e06b7334a', 0, '20201113', '2020-11-13', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:44');
+INSERT INTO `calender` VALUES ('5829c9a0cf12a74c18f88dd365aceb0a', 0, '20201129', '2020-11-29', 7, '20201128', '20201129', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:00');
+INSERT INTO `calender` VALUES ('5a9addfc372e1b260d1469e441941e1e', 0, '20201028', '2020-10-28', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:28');
+INSERT INTO `calender` VALUES ('5c2ea6d391dea3fc37204df982cc0085', 0, '20200830', '2020-08-30', 7, '20200829', '20200830', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:29');
+INSERT INTO `calender` VALUES ('5c6a4083b28afe7bcb5d7c77af36f7db', 0, '20200601', '2020-06-01', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:49');
+INSERT INTO `calender` VALUES ('5e2c90dd98b0e1c5da3834fdcf06041b', 0, '20200613', '2020-06-13', 6, '20200613', '20200614', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:01');
+INSERT INTO `calender` VALUES ('5e3577c73f5222322473a422467720a3', 0, '20200702', '2020-07-02', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:20');
+INSERT INTO `calender` VALUES ('5ee07ad9dd5cc393059670189656fb56', 0, '20200405', '2020-04-05', 7, '20200404', '20200406', '4月4日至6日放假调休,共3天。', '3', '节假日', '清明节', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:47');
+INSERT INTO `calender` VALUES ('5f36c0eb792ba6df86fbf1904757723b', 0, '20200604', '2020-06-04', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:52');
+INSERT INTO `calender` VALUES ('5fe174bb9d525769c189d4533eba68ae', 0, '20200813', '2020-08-13', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:12');
+INSERT INTO `calender` VALUES ('5fe27a25bcb9b7700c2abb1457125a96', 0, '20200315', '2020-03-15', 7, '20200314', '20200315', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:26');
+INSERT INTO `calender` VALUES ('602b1df285eb9ed688fa72bd550c080e', 0, '20200818', '2020-08-18', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:17');
+INSERT INTO `calender` VALUES ('60b4e174c6678fd476f0c7216f33c737', 0, '20200605', '2020-06-05', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:53');
+INSERT INTO `calender` VALUES ('6183f599f32bba424f0ad2412c6de8fa', 0, '20200217', '2020-02-17', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:59');
+INSERT INTO `calender` VALUES ('61b69da6b60c57ad9b04e60548f94738', 0, '20200309', '2020-03-09', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:20');
+INSERT INTO `calender` VALUES ('62286591902fe09200caaf0c96fd3c32', 0, '20200722', '2020-07-22', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:50');
+INSERT INTO `calender` VALUES ('627101bb1e345917fa876bf0b3059ca2', 0, '20200311', '2020-03-11', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:22');
+INSERT INTO `calender` VALUES ('638699eec96c32ca687ec14ed69bd9b5', 0, '20200314', '2020-03-14', 6, '20200314', '20200315', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:25');
+INSERT INTO `calender` VALUES ('639ad0b81360034a767bcc6f1fc2da8d', 0, '20200301', '2020-03-01', 7, '20200229', '20200301', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:12');
+INSERT INTO `calender` VALUES ('63d607d61d097a75ce89070129996c52', 0, '20200823', '2020-08-23', 7, '20200822', '20200823', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:22');
+INSERT INTO `calender` VALUES ('63f0c4adefad4300739b0154f97d5fb0', 0, '20200906', '2020-09-06', 7, '20200905', '20200906', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:36');
+INSERT INTO `calender` VALUES ('63fecd4c197a5df375c5e1a19d792bf9', 0, '20200805', '2020-08-05', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:04');
+INSERT INTO `calender` VALUES ('6423caaf3807ff6ac86ab8f6d118cc56', 0, '20200822', '2020-08-22', 6, '20200822', '20200823', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:21');
+INSERT INTO `calender` VALUES ('643d46399faa6923f376464ff9476e8e', 0, '20200318', '2020-03-18', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:29');
+INSERT INTO `calender` VALUES ('650d6c705a0bdec2f1e41500834bdd3d', 0, '20200916', '2020-09-16', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:46');
+INSERT INTO `calender` VALUES ('65afbf89b4a18c263fbc82748782dad1', 0, '20201021', '2020-10-21', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:21');
+INSERT INTO `calender` VALUES ('65ecd41d0d8fc4481cf453195f69602c', 0, '20200928', '2020-09-28', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:58');
+INSERT INTO `calender` VALUES ('66d928d9ab3a6308827572f696173aa7', 0, '20201208', '2020-12-08', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:09');
+INSERT INTO `calender` VALUES ('677c9a5f08ef2e4cead832fb34a50507', 0, '20200913', '2020-09-13', 7, '20200912', '20200913', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:43');
+INSERT INTO `calender` VALUES ('67eb65a1f399bf18efa389761841b8e3', 0, '20200926', '2020-09-26', 6, '20200926', '20200927', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:56');
+INSERT INTO `calender` VALUES ('69a42744623b380b6f93f0a4ee25a012', 0, '20200407', '2020-04-07', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:54');
+INSERT INTO `calender` VALUES ('6acb73aa51e2e6a4c2c7542b2d6da65c', 0, '20200214', '2020-02-14', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:56');
+INSERT INTO `calender` VALUES ('6aec4a9d14bb264f360e0d5404cce0e4', 0, '20200513', '2020-05-13', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:30');
+INSERT INTO `calender` VALUES ('6b782599cb98a39c885e9bc981b8cb8d', 0, '20201024', '2020-10-24', 6, '20201024', '20201025', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:24');
+INSERT INTO `calender` VALUES ('6ca72d609d74eaada1a1f78c58b6bf8a', 0, '20200207', '2020-02-07', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:49');
+INSERT INTO `calender` VALUES ('6d435cb2af1d32985d9cb4648356bc3a', 0, '20200116', '2020-01-16', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:27');
+INSERT INTO `calender` VALUES ('6e9d5b2323b457108b17268a2aa15727', 0, '20201213', '2020-12-13', 7, '20201212', '20201213', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:14');
+INSERT INTO `calender` VALUES ('6ff46ba71c64fb5ab07fb3170966e807', 0, '20200527', '2020-05-27', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:44');
+INSERT INTO `calender` VALUES ('70936a4d29c398e5056aeae3ad3f7bee', 0, '20201017', '2020-10-17', 6, '20201017', '20201018', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:17');
+INSERT INTO `calender` VALUES ('711f8295c0c724983542b49232f32f1b', 0, '20201112', '2020-11-12', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:43');
+INSERT INTO `calender` VALUES ('713cef5cea8098aa265216a067413df1', 0, '20200211', '2020-02-11', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:53');
+INSERT INTO `calender` VALUES ('7167b3c5a72fc825c45ff0c40b005ff2', 0, '20200304', '2020-03-04', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:15');
+INSERT INTO `calender` VALUES ('722ce498729fbaf200815e69ce40fb8e', 0, '20200506', '2020-05-06', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:23');
+INSERT INTO `calender` VALUES ('727131cfdbed81741c64ec6c37dfe0ab', 0, '20201226', '2020-12-26', 6, '20201226', '20201227', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:27');
+INSERT INTO `calender` VALUES ('72b063e24e0a248571062abf7b54a008', 0, '20200709', '2020-07-09', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:30');
+INSERT INTO `calender` VALUES ('74477c2f229cc5b97186858a93e94ca7', 0, '20200828', '2020-08-28', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:27');
+INSERT INTO `calender` VALUES ('74a40753287c8dbbcd336b337642bec1', 0, '20200118', '2020-01-18', 6, '20200118', '20200119', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:29');
+INSERT INTO `calender` VALUES ('7541358d6048f240b9dc7e736240d214', 0, '20200416', '2020-04-16', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:03');
+INSERT INTO `calender` VALUES ('75e091dccff0d94d6cce9baeb3a4fd88', 0, '20201223', '2020-12-23', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:24');
+INSERT INTO `calender` VALUES ('77fb505be58a4faa56005e9745d2ffbf', 0, '20201016', '2020-10-16', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:16');
+INSERT INTO `calender` VALUES ('77fe0cbba30685282bd732b45e0c478d', 0, '20201119', '2020-11-19', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:50');
+INSERT INTO `calender` VALUES ('7834e6a35a8de08c7091f39d5960368f', 0, '20200321', '2020-03-21', 6, '20200321', '20200322', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:32');
+INSERT INTO `calender` VALUES ('7af0abffbcf9a9cbd2c19bf84208dd0c', 0, '20201202', '2020-12-02', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:03');
+INSERT INTO `calender` VALUES ('7bfbdb63ef08e278de7d27b5df3320bf', 0, '20200225', '2020-02-25', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:07');
+INSERT INTO `calender` VALUES ('7d73458d55241b8d463626189344dc0f', 0, '20200731', '2020-07-31', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:59');
+INSERT INTO `calender` VALUES ('7e93d473eb0660db990425f1f66d0d89', 0, '20201221', '2020-12-21', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:22');
+INSERT INTO `calender` VALUES ('7ec9ba846980898696189790f44b12f9', 0, '20200522', '2020-05-22', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:39');
+INSERT INTO `calender` VALUES ('7f994602a59a4eae7319a7bfe1b0842b', 0, '20201009', '2020-10-09', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:09');
+INSERT INTO `calender` VALUES ('8160bc4a4ddb02dd1ed50d4810b1afd0', 0, '20201214', '2020-12-14', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:15');
+INSERT INTO `calender` VALUES ('82615c65b4719ba5ddb3ff50e51cbbab', 0, '20200801', '2020-08-01', 6, '20200801', '20200802', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:00');
+INSERT INTO `calender` VALUES ('84cb6529a88b9042aaf2d6ff24f24242', 0, '20201120', '2020-11-20', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:51');
+INSERT INTO `calender` VALUES ('8525e5587c3b0e993f9cb7318fbe9069', 0, '20200414', '2020-04-14', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:01');
+INSERT INTO `calender` VALUES ('894e892afc0fa37ef2d04b97f59197e3', 0, '20200223', '2020-02-23', 7, '20200222', '20200223', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:05');
+INSERT INTO `calender` VALUES ('89a5585272d7f73536e7f94f8d466b60', 0, '20200208', '2020-02-08', 6, '20200208', '20200209', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:50');
+INSERT INTO `calender` VALUES ('8a345d642de6a7599b7793912e7d0dc6', 0, '20201104', '2020-11-04', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:35');
+INSERT INTO `calender` VALUES ('8a9375f65b259543b92262ef09cef9a6', 0, '20200922', '2020-09-22', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:52');
+INSERT INTO `calender` VALUES ('8fd168963beed42c166e89068b2356aa', 0, '20200302', '2020-03-02', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:13');
+INSERT INTO `calender` VALUES ('9003359311238972047df6792ae036b1', 0, '20200918', '2020-09-18', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:48');
+INSERT INTO `calender` VALUES ('9018aed1fb8bab39ef8b0d890cb917c3', 0, '20201107', '2020-11-07', 6, '20201107', '20201108', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:38');
+INSERT INTO `calender` VALUES ('905c4a507f375f4982d1899e7af08d92', 0, '20200526', '2020-05-26', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:43');
+INSERT INTO `calender` VALUES ('911212b3d29c571198b06485e4e22abb', 0, '20200227', '2020-02-27', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:09');
+INSERT INTO `calender` VALUES ('9291313a667d094d501c47dee9bf4a1a', 0, '20200915', '2020-09-15', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:45');
+INSERT INTO `calender` VALUES ('93e4caa95884e65d47d49074cad1fa07', 0, '20200815', '2020-08-15', 6, '20200815', '20200816', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:14');
+INSERT INTO `calender` VALUES ('957a5fd2df242bc4e8e7b6eb4d155894', 0, '20200305', '2020-03-05', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:16');
+INSERT INTO `calender` VALUES ('957c9224115ba031b9bc5ef8263378e2', 0, '20201103', '2020-11-03', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:34');
+INSERT INTO `calender` VALUES ('962ea61a07c55ab064f3cea26a5f04e3', 0, '20201224', '2020-12-24', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:25');
+INSERT INTO `calender` VALUES ('965b2c9ea31049e79f8083af4b158b1f', 0, '20200104', '2020-01-04', 6, '20200104', '20200105', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:15');
+INSERT INTO `calender` VALUES ('96b159463a35806414a361e65d18d75f', 0, '20201011', '2020-10-11', 7, '20201010', '20201011', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:11');
+INSERT INTO `calender` VALUES ('972dce32107b1d4544d1cbcbe080fdda', 0, '20201125', '2020-11-25', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:08:56');
+INSERT INTO `calender` VALUES ('9747a58c8b33a35fc5b17cafe0007089', 0, '20200419', '2020-04-19', 7, '20200418', '20200419', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:06');
+INSERT INTO `calender` VALUES ('97a6ae19ff9ff2080e3466fe2f64d0d6', 0, '20200229', '2020-02-29', 6, '20200229', '20200301', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:11');
+INSERT INTO `calender` VALUES ('98cb573a23f892db776cb051edf770a8', 0, '20200312', '2020-03-12', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:23');
+INSERT INTO `calender` VALUES ('9944c3a188f8a511c556da17e90c99e6', 0, '20201220', '2020-12-20', 7, '20201219', '20201220', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:21');
+INSERT INTO `calender` VALUES ('996d36d081ba61239fd8c972016a30bf', 0, '20200723', '2020-07-23', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:51');
+INSERT INTO `calender` VALUES ('99a15f8af7817ccaa311d20c5114d5b3', 0, '20200716', '2020-07-16', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:44');
+INSERT INTO `calender` VALUES ('9a2ec07e2e3a9a4a6a5368073bd3b85e', 0, '20201101', '2020-11-01', 7, '20201031', '20201101', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:32');
+INSERT INTO `calender` VALUES ('9ad9626d555a3a8140ef0e1d5d02ce76', 0, '20201015', '2020-10-15', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:15');
+INSERT INTO `calender` VALUES ('9c2542eb5ef7c08d3f82cce32e7e0c18', 0, '20200107', '2020-01-07', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:18');
+INSERT INTO `calender` VALUES ('9c4b4bc32bb61d9da24c9a90fa524d77', 0, '20200602', '2020-06-02', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:50');
+INSERT INTO `calender` VALUES ('9c9ac3c629ae1b5b370e0963a8449f54', 0, '20200226', '2020-02-26', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:08');
+INSERT INTO `calender` VALUES ('9d0f767f9d0393389a7c077737d07784', 0, '20200804', '2020-08-04', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:03');
+INSERT INTO `calender` VALUES ('9de2dfaf07e74819a60e1d52e0de8155', 0, '20200121', '2020-01-21', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:32');
+INSERT INTO `calender` VALUES ('9f61e0b49c7d46bb5fe926b9fd09d049', 0, '20200824', '2020-08-24', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:23');
+INSERT INTO `calender` VALUES ('a1f25a7e1f9c72e1e041ea0b0f4baabb', 0, '20200531', '2020-05-31', 7, '20200530', '20200531', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:48');
+INSERT INTO `calender` VALUES ('a220f73c1e4c1a8949c3e0b3f6588113', 0, '20201117', '2020-11-17', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:48');
+INSERT INTO `calender` VALUES ('a26694dba8bc36ac7d2f005976c66682', 0, '20200715', '2020-07-15', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:44');
+INSERT INTO `calender` VALUES ('a2f3859d691ba6e2e20eeaf50a2ac2e8', 0, '20201116', '2020-11-16', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:47');
+INSERT INTO `calender` VALUES ('a38af258bd29555cf080683ae15afa25', 0, '20200212', '2020-02-12', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:54');
+INSERT INTO `calender` VALUES ('a39fb936fcb1c921185b9576fe6deec3', 0, '20200712', '2020-07-12', 7, '20200711', '20200712', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:33');
+INSERT INTO `calender` VALUES ('a3c483ade5847a2fc1134fa7623d8299', 0, '20201001', '2020-10-01', 4, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:01');
+INSERT INTO `calender` VALUES ('a4422d3af0500379a2e50de1e17ed777', 0, '20200113', '2020-01-13', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:24');
+INSERT INTO `calender` VALUES ('a6e84df4f6ba1e4226a26a6ec866dd0c', 0, '20200707', '2020-07-07', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:25');
+INSERT INTO `calender` VALUES ('a6e890984e034c980287720f9d0fcaf3', 0, '20200329', '2020-03-29', 7, '20200328', '20200329', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:40');
+INSERT INTO `calender` VALUES ('a7192be90a5771777b4b45ae8ce3f81a', 0, '20200106', '2020-01-06', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:17');
+INSERT INTO `calender` VALUES ('a74e5bd1c6c789686444f821ca41ecfd', 0, '20200327', '2020-03-27', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:38');
+INSERT INTO `calender` VALUES ('a8a42e37b75deb49a8e9ec5d5e447420', 0, '20200220', '2020-02-20', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:02');
+INSERT INTO `calender` VALUES ('a8e78ba44f004579851bef77937169ff', 0, '20200919', '2020-09-19', 6, '20200919', '20200920', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:49');
+INSERT INTO `calender` VALUES ('a988f55221d30358ebd514800f18a729', 0, '20200704', '2020-07-04', 6, '20200704', '20200705', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:22');
+INSERT INTO `calender` VALUES ('a9a8f9d624a7c4fd69edf3d74147694b', 0, '20200623', '2020-06-23', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:11');
+INSERT INTO `calender` VALUES ('ab979f394ce5d92518f3bc19d7717533', 0, '20200128', '2020-01-28', 2, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:39');
+INSERT INTO `calender` VALUES ('abd19dddb8395cb60a6a86101bfe1e37', 0, '20200514', '2020-05-14', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:31');
+INSERT INTO `calender` VALUES ('acaca3af51abaf9e27809f496c5526d8', 0, '20201020', '2020-10-20', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:20');
+INSERT INTO `calender` VALUES ('ad20289feb817e89c88eefd2e32eb8e7', 0, '20200512', '2020-05-12', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 15:13:00', 'APP_USER', '2020-05-12 15:20:16');
+INSERT INTO `calender` VALUES ('ad43595b890c2506f0395701872dbd28', 0, '20201025', '2020-10-25', 7, '20201024', '20201025', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:25');
+INSERT INTO `calender` VALUES ('ad4cef1494372f2916e615e33a9786b2', 0, '20200319', '2020-03-19', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:30');
+INSERT INTO `calender` VALUES ('ae219cfaf884e87bcfe43169351c376e', 0, '20201227', '2020-12-27', 7, '20201226', '20201227', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:28');
+INSERT INTO `calender` VALUES ('ae7abb91187d64643028e15d565a8af5', 0, '20200322', '2020-03-22', 7, '20200321', '20200322', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:33');
+INSERT INTO `calender` VALUES ('aefdc740c53135b161bb1cf856182c82', 0, '20200323', '2020-03-23', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:34');
+INSERT INTO `calender` VALUES ('af558b6871e0bbc9f7849d753834d743', 0, '20200310', '2020-03-10', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:21');
+INSERT INTO `calender` VALUES ('af5c4970e8c2ebc91b3dc3e8c86a6685', 0, '20201128', '2020-11-28', 6, '20201128', '20201129', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:08:59');
+INSERT INTO `calender` VALUES ('af92d34b56bd10bb4053d748c7369afe', 0, '20200607', '2020-06-07', 7, '20200606', '20200607', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:55');
+INSERT INTO `calender` VALUES ('b001a9d059daf65591410098e01ab9fc', 0, '20200624', '2020-06-24', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:12');
+INSERT INTO `calender` VALUES ('b1cdcd8ae1a8d664bef145d22748ca12', 0, '20201207', '2020-12-07', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:08');
+INSERT INTO `calender` VALUES ('b3a48d7a40374388c3fbe8ce334fff79', 0, '20200108', '2020-01-08', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:19');
+INSERT INTO `calender` VALUES ('b50e17770f2d938b07592556975c6fae', 0, '20200921', '2020-09-21', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:51');
+INSERT INTO `calender` VALUES ('b5626f521fd021963129722902b8eed5', 0, '20200320', '2020-03-20', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:31');
+INSERT INTO `calender` VALUES ('b569b83a1ac18c0946cb497af732462e', 0, '20200328', '2020-03-28', 6, '20200328', '20200329', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:39');
+INSERT INTO `calender` VALUES ('b6002c882de5667ad1cfd209a3f6470e', 0, '20201205', '2020-12-05', 6, '20201205', '20201206', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:06');
+INSERT INTO `calender` VALUES ('b72f5e80d3af1c0b304c852677911f9a', 0, '20201102', '2020-11-02', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:33');
+INSERT INTO `calender` VALUES ('b7e0b1301db848599b7f795f5df43bc8', 0, '20200201', '2020-02-01', 6, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:43');
+INSERT INTO `calender` VALUES ('b7eaea10818d42112597e33f9a4eda43', 0, '20200827', '2020-08-27', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:26');
+INSERT INTO `calender` VALUES ('b802c436d0a48141936a24cada58790d', 0, '20200326', '2020-03-26', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:37');
+INSERT INTO `calender` VALUES ('b80adb6cbd61dae541d1f1ca44e610ea', 0, '20200519', '2020-05-19', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:36');
+INSERT INTO `calender` VALUES ('ba39168e4dbd363f0f7d37dd5a5d0559', 0, '20200703', '2020-07-03', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:21');
+INSERT INTO `calender` VALUES ('bbd1953264041dcd491e3b87b533b985', 0, '20200202', '2020-02-02', 7, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:44');
+INSERT INTO `calender` VALUES ('bca5f780c44b64cf9fd6a78017fc9c76', 0, '20200502', '2020-05-02', 6, '20200501', '20200505', '5月1日至5日放假调休,共5天。4月26日(星期日)、5月9日(星期六)上班。', '3', '节假日', '劳动节', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:19');
+INSERT INTO `calender` VALUES ('bd4bf9f82d91d2196757ebba7bc5e15c', 0, '20200826', '2020-08-26', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:25');
+INSERT INTO `calender` VALUES ('bdb5fcb7b59f12d0f7099568ec5c110b', 0, '20201110', '2020-11-10', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:41');
+INSERT INTO `calender` VALUES ('bec5e8e884c96ecb38338cc525dd2596', 0, '20201019', '2020-10-19', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:19');
+INSERT INTO `calender` VALUES ('bf4111aa99a4f7fa514df2b017c16751', 0, '20200403', '2020-04-03', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:45');
+INSERT INTO `calender` VALUES ('c12e129828fccc5b04ccce4c0e018fbf', 0, '20200401', '2020-04-01', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:43');
+INSERT INTO `calender` VALUES ('c17f20250a118441752664a8f067a6cf', 0, '20200708', '2020-07-08', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:29');
+INSERT INTO `calender` VALUES ('c1e31cdac72e2e9e029540cca8bdfdba', 0, '20200717', '2020-07-17', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:45');
+INSERT INTO `calender` VALUES ('c29792f840935b31d96a009fcdb727c0', 0, '20201018', '2020-10-18', 7, '20201017', '20201018', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:18');
+INSERT INTO `calender` VALUES ('c37e020ddc1b41bba979403c99d4a30e', 0, '20201231', '2020-12-31', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:32');
+INSERT INTO `calender` VALUES ('c49971e3825c6dcac005512de1ee9fb3', 0, '20200619', '2020-06-19', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:07');
+INSERT INTO `calender` VALUES ('c4c446b4eebe9601abcf49ea38fda2af', 0, '20200204', '2020-02-04', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:46');
+INSERT INTO `calender` VALUES ('c539bdbfa0890f009f4621cdb163eb84', 0, '20200718', '2020-07-18', 6, '20200718', '20200719', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:46');
+INSERT INTO `calender` VALUES ('c5acee5c1223adb9cd2c0163355329ad', 0, '20200518', '2020-05-18', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:35');
+INSERT INTO `calender` VALUES ('c65763e6f67bcd9aa5017683582c9e67', 0, '20200412', '2020-04-12', 7, '20200411', '20200412', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:59');
+INSERT INTO `calender` VALUES ('c68ffa615ab4935a01562dadbf2d4164', 0, '20200331', '2020-03-31', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:42');
+INSERT INTO `calender` VALUES ('c6ee81702bbe1766969dfa0cbc978755', 0, '20200511', '2020-05-11', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:28');
+INSERT INTO `calender` VALUES ('c702f672cb824f7b18f7efb0ef6d8535', 0, '20200307', '2020-03-07', 6, '20200307', '20200308', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:18');
+INSERT INTO `calender` VALUES ('c7e5ba7dd3e1e235f0ba35a198491886', 0, '20200408', '2020-04-08', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:55');
+INSERT INTO `calender` VALUES ('c7fd43d7bc3bed38f7f822436ec3fca6', 0, '20201215', '2020-12-15', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:16');
+INSERT INTO `calender` VALUES ('c8407ba7fdfad2ab0f800a2d81ae6e7c', 0, '20201106', '2020-11-06', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:37');
+INSERT INTO `calender` VALUES ('c983a79355646c357231d75bc4ee6325', 0, '20200725', '2020-07-25', 6, '20200725', '20200726', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:53');
+INSERT INTO `calender` VALUES ('c9a8708b7e06862bb54d299bbe93ed7b', 0, '20200103', '2020-01-03', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:14');
+INSERT INTO `calender` VALUES ('c9af06bda9dad8c1c95323c516144f0c', 0, '20200303', '2020-03-03', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:14');
+INSERT INTO `calender` VALUES ('c9c34f244eedd2d6531e69b64e972c4c', 0, '20200626', '2020-06-26', 5, '20200625', '20200627', '6月25日至27日放假调休,共3天。6月28日(星期日)上班。', '3', '节假日', '端午节', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:14');
+INSERT INTO `calender` VALUES ('c9d71d90951d24c0b6c2473bd64e997f', 0, '20200615', '2020-06-15', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:03');
+INSERT INTO `calender` VALUES ('ca2cbd7a8fca795523f036bc556dd9c8', 0, '20200819', '2020-08-19', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:18');
+INSERT INTO `calender` VALUES ('ca91ce6d49f32351936625a782048f37', 0, '20200418', '2020-04-18', 6, '20200418', '20200419', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:05');
+INSERT INTO `calender` VALUES ('caeb4101a59994f4d6c5f9fc2abf7d85', 0, '20200523', '2020-05-23', 6, '20200523', '20200524', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:40');
+INSERT INTO `calender` VALUES ('cb2f8f5feb2b53beb656ae79f19a5e0a', 0, '20200110', '2020-01-10', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:21');
+INSERT INTO `calender` VALUES ('cc3e4ed16b2618e77f6388e05cf1ac3b', 0, '20200829', '2020-08-29', 6, '20200829', '20200830', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:28');
+INSERT INTO `calender` VALUES ('cc702f50b9969de7ce7848dbc7bbb9f7', 0, '20200428', '2020-04-28', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:15');
+INSERT INTO `calender` VALUES ('cce60aad407c8c81f9fc201047ff9bc1', 0, '20200426', '2020-04-26', 7, '', '', '调休', '1', '工作日', '无', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:13');
+INSERT INTO `calender` VALUES ('cd028fff99e9ac69bab3d61388016d43', 0, '20200809', '2020-08-09', 7, '20200808', '20200809', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:08');
+INSERT INTO `calender` VALUES ('cd565b415036df24075d4de19ef5a7cb', 0, '20200306', '2020-03-06', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:17');
+INSERT INTO `calender` VALUES ('cdc332fb34673a8b3d0c21be380314b6', 0, '20201029', '2020-10-29', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:29');
+INSERT INTO `calender` VALUES ('cdd673d1816f5e6831f54075ec26d9c4', 0, '20201201', '2020-12-01', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:02');
+INSERT INTO `calender` VALUES ('cde81c3d82e8a44c268e736d6dfaa9aa', 0, '20200729', '2020-07-29', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:57');
+INSERT INTO `calender` VALUES ('cf8129d0a7d4ee8c2a8bd00a8de2552d', 0, '20200330', '2020-03-30', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:41');
+INSERT INTO `calender` VALUES ('d0b8b7fde6e0a0e76a49108c11f8f8a1', 0, '20200924', '2020-09-24', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:54');
+INSERT INTO `calender` VALUES ('d0da8d5ae49f15fac5922e852b24ff35', 0, '20200224', '2020-02-24', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:06');
+INSERT INTO `calender` VALUES ('d10e7145a8a9a5668072f6e772775554', 0, '20201118', '2020-11-18', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:49');
+INSERT INTO `calender` VALUES ('d11f4c89b5fbed55298f79b2fc5d67b6', 0, '20200203', '2020-02-03', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:45');
+INSERT INTO `calender` VALUES ('d18bf8256f1144cd56fbae9bee2e333a', 0, '20200807', '2020-08-07', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:06');
+INSERT INTO `calender` VALUES ('d18c5725a73f6053b9f77410b6bea392', 0, '20201008', '2020-10-08', 4, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:08');
+INSERT INTO `calender` VALUES ('d26f0417bfbdf7cadaac7e8ce4b5f4a5', 0, '20200925', '2020-09-25', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:55');
+INSERT INTO `calender` VALUES ('d50647890023f9d8161a0e3835caeb04', 0, '20200129', '2020-01-29', 3, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:40');
+INSERT INTO `calender` VALUES ('d5eaba89a103b378d24fad69a24e8a0c', 0, '20201219', '2020-12-19', 6, '20201219', '20201220', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:20');
+INSERT INTO `calender` VALUES ('d5ede55a05374c0fc31ac3aee1a714ab', 0, '20200609', '2020-06-09', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:57');
+INSERT INTO `calender` VALUES ('d64c473a123605fa1442f4ef2322ced5', 0, '20200529', '2020-05-29', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:46');
+INSERT INTO `calender` VALUES ('d765cf0bcaa3679bc41524f9706ffe72', 0, '20200612', '2020-06-12', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:00');
+INSERT INTO `calender` VALUES ('d7fa163e01713d5d500ebf8f83db2395', 0, '20200503', '2020-05-03', 7, '20200501', '20200505', '5月1日至5日放假调休,共5天。4月26日(星期日)、5月9日(星期六)上班。', '3', '节假日', '劳动节', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:20');
+INSERT INTO `calender` VALUES ('d8bd7296f660a3bf16de959b4431341a', 0, '20200517', '2020-05-17', 7, '20200516', '20200517', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:34');
+INSERT INTO `calender` VALUES ('d90e6be07881b5899d57882b07461c62', 0, '20200125', '2020-01-25', 6, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:36');
+INSERT INTO `calender` VALUES ('da255693a2012a4c3e79b257eadb9deb', 0, '20200614', '2020-06-14', 7, '20200613', '20200614', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:02');
+INSERT INTO `calender` VALUES ('db4018d06ab9e21759892b18d4f0a90d', 0, '20200705', '2020-07-05', 7, '20200704', '20200705', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:23');
+INSERT INTO `calender` VALUES ('dc66f6a90771ee625c68cb35bd12caaa', 0, '20200111', '2020-01-11', 6, '20200111', '20200112', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:22');
+INSERT INTO `calender` VALUES ('dc734aa279bc49d095e9943d4aaa926a', 0, '20200504', '2020-05-04', 1, '20200501', '20200505', '5月1日至5日放假调休,共5天。4月26日(星期日)、5月9日(星期六)上班。', '3', '节假日', '劳动节', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:21');
+INSERT INTO `calender` VALUES ('dcd679675734164f9a42c11ee42f37df', 0, '20200515', '2020-05-15', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:32');
+INSERT INTO `calender` VALUES ('dd57752897902f2d36ae7e2530d6a0bc', 0, '20200831', '2020-08-31', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:30');
+INSERT INTO `calender` VALUES ('dd90ae4c03f15a7623300dee293af6d7', 0, '20201230', '2020-12-30', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:31');
+INSERT INTO `calender` VALUES ('ddf4c93eb9a52a31a2c132c9b71d5ae9', 0, '20200611', '2020-06-11', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:59');
+INSERT INTO `calender` VALUES ('df53b975c872875e564f237e892a7f45', 0, '20200606', '2020-06-06', 6, '20200606', '20200607', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:54');
+INSERT INTO `calender` VALUES ('df772282ee6f8e0062fb5cc6e97ae90d', 0, '20200803', '2020-08-03', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:02');
+INSERT INTO `calender` VALUES ('e182ab81b8a209acc50e0a64549aca88', 0, '20200325', '2020-03-25', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:36');
+INSERT INTO `calender` VALUES ('e1ca27bc239520538806abf727bfc200', 0, '20201026', '2020-10-26', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:26');
+INSERT INTO `calender` VALUES ('e2f0428aafcb13bf08e65bea14419a66', 0, '20200710', '2020-07-10', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:31');
+INSERT INTO `calender` VALUES ('e3967c80b22f8a37d9c025b0e56e5834', 0, '20200903', '2020-09-03', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:33');
+INSERT INTO `calender` VALUES ('e3f3e1f7a18c0239ac47980c8ca278ec', 0, '20200730', '2020-07-30', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:58');
+INSERT INTO `calender` VALUES ('e4a873788c057b427e5fbf5feca8efdc', 0, '20200130', '2020-01-30', 4, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:41');
+INSERT INTO `calender` VALUES ('e510c73bf124435322c309b64bf4e962', 0, '20201122', '2020-11-22', 7, '20201121', '20201122', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:53');
+INSERT INTO `calender` VALUES ('e520597165e33e4153c3d1f413ae21a1', 0, '20201115', '2020-11-15', 7, '20201114', '20201115', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:46');
+INSERT INTO `calender` VALUES ('e629863ed9e816ef5f7dddcf8c58fe5e', 0, '20200123', '2020-01-23', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:34');
+INSERT INTO `calender` VALUES ('e6374c05c6971018d931c67359fa1535', 0, '20200215', '2020-02-15', 6, '20200215', '20200216', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:57');
+INSERT INTO `calender` VALUES ('e701c2bfc6364efe9d0192a54a371202', 0, '20201114', '2020-11-14', 6, '20201114', '20201115', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:45');
+INSERT INTO `calender` VALUES ('e8ce8b627acff52e69de7eaf43a69d4e', 0, '20200630', '2020-06-30', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:18');
+INSERT INTO `calender` VALUES ('ea12f27e6f7c334883c5fc3cd6c9e2a7', 0, '20200120', '2020-01-20', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:31');
+INSERT INTO `calender` VALUES ('ea42c692fa8b41a63a2bad81581eeed2', 0, '20200806', '2020-08-06', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:05');
+INSERT INTO `calender` VALUES ('ead79d70f88de33eb312d685543ca39f', 0, '20200317', '2020-03-17', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:28');
+INSERT INTO `calender` VALUES ('ec9cc81dc46a38b05e6c9d6111b5a747', 0, '20200610', '2020-06-10', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:58');
+INSERT INTO `calender` VALUES ('ecb2989db7e4947262e26fc391078d91', 0, '20200124', '2020-01-24', 5, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:35');
+INSERT INTO `calender` VALUES ('eccc0c1b98d1c2fe893e034b63949a1e', 0, '20200721', '2020-07-21', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:49');
+INSERT INTO `calender` VALUES ('ecd5cec32212253b2e75206f48109aa6', 0, '20200811', '2020-08-11', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:10');
+INSERT INTO `calender` VALUES ('ed64f2920a350691ba8e35e4be53efe2', 0, '20200820', '2020-08-20', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:19');
+INSERT INTO `calender` VALUES ('edc0394f130c6541c9929902428e920f', 0, '20200505', '2020-05-05', 2, '20200501', '20200505', '5月1日至5日放假调休,共5天。4月26日(星期日)、5月9日(星期六)上班。', '3', '节假日', '劳动节', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:22');
+INSERT INTO `calender` VALUES ('edc0b603d0180d7a7d458729207d321c', 0, '20200423', '2020-04-23', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:10');
+INSERT INTO `calender` VALUES ('ee4ee5fe78a69c126df116db0469eb49', 0, '20201105', '2020-11-05', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:36');
+INSERT INTO `calender` VALUES ('f211b321e826467d855312b2990c3ab6', 0, '20200810', '2020-08-10', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:09');
+INSERT INTO `calender` VALUES ('f2feb01264e6514b3b302f0cc1ec24f0', 0, '20200316', '2020-03-16', 1, '', '', '', '1', '工作日', '无', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:27');
+INSERT INTO `calender` VALUES ('f38bd5ad9aa6b4e729aff1a0a3d99bd6', 0, '20200904', '2020-09-04', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:34');
+INSERT INTO `calender` VALUES ('f3fb39f3eeeceebdbd57ede89623cb28', 0, '20200430', '2020-04-30', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:17');
+INSERT INTO `calender` VALUES ('f4317a5304c4753a8ea3d70efab3ecaa', 0, '20200516', '2020-05-16', 6, '20200516', '20200517', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:33');
+INSERT INTO `calender` VALUES ('f447b913d68dd9ff3de429e7b531bede', 0, '20200901', '2020-09-01', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:31');
+INSERT INTO `calender` VALUES ('f51d1825b43afe99f478664bfc179f1f', 0, '20200728', '2020-07-28', 2, '', '', '', '1', '工作日', '无', 'Tuesday', '周二', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:56');
+INSERT INTO `calender` VALUES ('f6b262efde2bb391bfe1ca3db9a56472', 0, '20201210', '2020-12-10', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:27', 'APP_USER', '2020-05-12 10:09:11');
+INSERT INTO `calender` VALUES ('f762a73ff252cb0eb9e05534ad849d1e', 0, '20200521', '2020-05-21', 4, '', '', '', '1', '工作日', '无', 'Thursday', '周四', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:38');
+INSERT INTO `calender` VALUES ('f806b608c775f98ee4bc398b7725d3ad', 0, '20200308', '2020-03-08', 7, '20200307', '20200308', '', '2', '周末', '周末', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:04:19');
+INSERT INTO `calender` VALUES ('fa73f2294e0a4eee0c69615c974168cb', 0, '20200912', '2020-09-12', 6, '20200912', '20200913', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:42');
+INSERT INTO `calender` VALUES ('fae8a185567ae608b0817da8344ae306', 0, '20200126', '2020-01-26', 7, '20200124', '20200202', '1月24日至2月2日放假,共8天。1月19日(星期日)上班。', '3', '节假日', '春节', 'Sunday', '周日', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:03:37');
+INSERT INTO `calender` VALUES ('fb90507b253c954641fa5c12d40fd8fa', 0, '20200509', '2020-05-09', 6, '', '', '调休', '1', '工作日', '无', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:26');
+INSERT INTO `calender` VALUES ('fcee0731147e0d43a3c9ec9753177943', 0, '20200603', '2020-06-03', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:05:51');
+INSERT INTO `calender` VALUES ('fd059c1e43782ca8cc076f0ad49df900', 0, '20201005', '2020-10-05', 1, '20201001', '20201008', '10月1日至8日放假调休,共8天。9月27日(星期日)、10月10日(星期六)上班。', '3', '节假日', '国庆节、中秋节', 'Monday', '周一', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:05');
+INSERT INTO `calender` VALUES ('fd1845c5ac1eb3ca2e1ddb3cc85f7f54', 0, '20201023', '2020-10-23', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:08:23');
+INSERT INTO `calender` VALUES ('fd4a1e46c44e492c460fab94c1071452', 0, '20200902', '2020-09-02', 3, '', '', '', '1', '工作日', '无', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:07:32');
+INSERT INTO `calender` VALUES ('fe45e48535e36660744c5856def4b64d', 0, '20200101', '2020-01-01', 3, '20200101', '20200101', '2020年1月1日放假,共1天。', '3', '节假日', '元旦', 'Wednesday', '周三', 0, 0, 'APP_USER', '2020-05-12 01:32:00', 'fa5e50ca724911eab9c900163e08c0f9', '2020-05-12 13:48:50');
+INSERT INTO `calender` VALUES ('ff7e08ece3008eeb1661a2b1d8b4e20e', 0, '20200711', '2020-07-11', 6, '20200711', '20200712', '', '2', '周末', '周末', 'Saturday', '周六', 0, 0, 'APP_USER', '2020-05-12 01:32:26', 'APP_USER', '2020-05-12 10:06:32');
+INSERT INTO `calender` VALUES ('ffe45e7059c67874f88498cfcfd19b4c', 0, '20200424', '2020-04-24', 5, '', '', '', '1', '工作日', '无', 'Friday', '周五', 0, 0, 'APP_USER', '2020-05-12 01:32:25', 'APP_USER', '2020-05-12 10:05:11');
+
+SET FOREIGN_KEY_CHECKS = 1;
From 9778dd748cc68aa4c1998b8fad0c8cc4991e6af5 Mon Sep 17 00:00:00 2001
From: sunyuchao 
Date: Tue, 12 May 2020 16:15:29 +0800
Subject: [PATCH 09/22] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B7=9F=E8=B8=AA-?=
 =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=A4=84=E7=90=86=E8=BF=9B=E5=B1=95=E5=88=97?=
 =?UTF-8?q?=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../src/main/java/com/epmet/dto/form/.gitkeep |  0
 .../epmet/dto/form/ProcessListFormDTO.java    | 20 ++++++
 .../main/java/com/epmet/dto/result/.gitkeep   |  0
 .../dto/result/ProcesslistResultDTO.java      | 71 +++++++++++++++++++
 .../main/java/com/epmet/controller/.gitkeep   |  0
 .../controller/ProjectTraceController.java    | 30 ++++++++
 .../src/main/java/com/epmet/dao/.gitkeep      |  0
 .../java/com/epmet/dao/ProjectProcessDao.java | 13 +++-
 .../src/main/java/com/epmet/entity/.gitkeep   |  0
 .../src/main/java/com/epmet/service/.gitkeep  |  0
 .../epmet/service/ProjectProcessService.java  | 10 +++
 .../impl/ProjectProcessServiceImpl.java       | 26 +++++--
 .../src/main/resources/mapper/.gitkeep        |  0
 .../resources/mapper/ProjectProcessDao.xml    | 32 ++++-----
 14 files changed, 181 insertions(+), 21 deletions(-)
 delete mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/.gitkeep
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListFormDTO.java
 delete mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/.gitkeep
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcesslistResultDTO.java
 delete mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/.gitkeep
 delete mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/.gitkeep
 delete mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/.gitkeep
 delete mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/.gitkeep
 delete mode 100644 epmet-module/gov-project/gov-project-server/src/main/resources/mapper/.gitkeep
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/.gitkeep b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListFormDTO.java
new file mode 100644
index 0000000000..ec88405a6e
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProcessListFormDTO.java
@@ -0,0 +1,20 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 项目处理进展列表-接口入参
+ * @Author sun
+ */
+@Data
+public class ProcessListFormDTO implements Serializable {
+    private static final long serialVersionUID = 4859779755214502427L;
+
+    @NotBlank(message = "项目Id不能为空")
+    private String projectId;
+
+}
+
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/.gitkeep b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcesslistResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcesslistResultDTO.java
new file mode 100644
index 0000000000..d77367e075
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProcesslistResultDTO.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 项目跟踪-项目处理进展列表-接口返参
+ *
+ * @author sun
+ */
+@Data
+public class ProcesslistResultDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 项目Id
+     */
+    private String projectId = "";
+
+    /**
+     * 项目处理进展Id
+     */
+    private String processId = "";
+
+    /**
+     * 处理进展名称
+     */
+    private String processName = "";
+
+    /**
+     * 处理进展时间
+     */
+    private Long processTime;
+
+    /**
+     * 处理部门
+     */
+    private String departmentName = "";
+
+    /**
+     * 公开答复
+     */
+    private String publicReply = "";
+
+    /**
+     * 内部备注
+     */
+    private String internalRemark = "";
+}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/.gitkeep b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
index 9a4329be26..6d7d98ba0f 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
@@ -1,8 +1,22 @@
 package com.epmet.controller;
 
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.annotation.RequirePermission;
+import com.epmet.commons.tools.enums.RequirePermissionEnum;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dto.form.ProcessListFormDTO;
+import com.epmet.dto.result.ProcesslistResultDTO;
+import com.epmet.service.ProjectProcessService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * @Description 政府端-项目跟踪
  * @Author yinzuomei
@@ -11,5 +25,21 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("trace")
 public class ProjectTraceController {
+
+    @Autowired
+    private ProjectProcessService projectProcessService;
+
+    /**
+     * @param formDTO
+     * @return
+     * @Author sun
+     * @Description 项目跟踪-项目处理进展列表
+     **/
+    @PostMapping("processlist")
+    @RequirePermission(requirePermission = RequirePermissionEnum.WORK_PROJECT_TRACE_DETAIL)
+    public Result> processList(@LoginUser TokenDto tokenDTO, @RequestBody ProcessListFormDTO formDTO) {
+        ValidatorUtils.validateEntity(formDTO);
+        return new Result>().ok(projectProcessService.progressList(formDTO));
+    }
 }
 
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/.gitkeep b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
index 5472b13ba0..825918297a 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectProcessDao.java
@@ -18,8 +18,12 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.result.ProcesslistResultDTO;
 import com.epmet.entity.ProjectProcessEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 项目处理进展表
@@ -29,5 +33,12 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface ProjectProcessDao extends BaseDao {
-	
+
+    /**
+     * @param projectId
+     * @return
+     * @Author sun
+     * @Description 根据项目Id查询项目处理进展列表
+     **/
+    List getProcessListByProjectId(@Param("projectId") String projectId);
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/.gitkeep b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/.gitkeep b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
index b44896e261..ce4889776a 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectProcessService.java
@@ -20,6 +20,8 @@ package com.epmet.service;
 import com.epmet.commons.mybatis.service.BaseService;
 import com.epmet.commons.tools.page.PageData;
 import com.epmet.dto.ProjectProcessDTO;
+import com.epmet.dto.form.ProcessListFormDTO;
+import com.epmet.dto.result.ProcesslistResultDTO;
 import com.epmet.entity.ProjectProcessEntity;
 
 import java.util.List;
@@ -92,4 +94,12 @@ public interface ProjectProcessService extends BaseService
      * @date 2020-05-11
      */
     void delete(String[] ids);
+
+    /**
+     * @param formDTO
+     * @return
+     * @Author sun
+     * @Description 项目跟踪-项目处理进展列表
+     **/
+    List progressList(ProcessListFormDTO formDTO);
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
index 3d43b730eb..6c45ca75e9 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectProcessServiceImpl.java
@@ -20,12 +20,16 @@ package com.epmet.service.impl;
 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.page.PageData;
 import com.epmet.commons.tools.utils.ConvertUtils;
-import com.epmet.commons.tools.constant.FieldConstant;
 import com.epmet.dao.ProjectProcessDao;
+import com.epmet.dao.ProjectStaffDao;
 import com.epmet.dto.ProjectProcessDTO;
+import com.epmet.dto.form.ProcessListFormDTO;
+import com.epmet.dto.result.ProcesslistResultDTO;
 import com.epmet.entity.ProjectProcessEntity;
+import com.epmet.feign.GovOrgFeignClient;
 import com.epmet.redis.ProjectProcessRedis;
 import com.epmet.service.ProjectProcessService;
 import org.apache.commons.lang3.StringUtils;
@@ -33,9 +37,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.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 项目处理进展表
@@ -48,6 +50,10 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl page(Map params) {
@@ -101,4 +107,16 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl progressList(ProcessListFormDTO formDTO) {
+        //根据项目Id查询所有处理进展数据,按时间倒序
+        return  baseDao.getProcessListByProjectId(formDTO.getProjectId());
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/.gitkeep b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml
index 9350f107ea..a952540452 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectProcessDao.xml
@@ -3,22 +3,22 @@
 
 
 
-    
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-         
-     
+    
+        SELECT
+            id AS "processId",
+            project_id AS "projectId",
+            operation_name AS "processName",
+            UNIX_TIMESTAMP(created_time) AS "processTime",
+            department_name AS "departmentName",
+            public_reply AS "publicReply",
+            internal_remark AS "internalRemark"
+        FROM
+            project_process
+        WHERE
+            del_flag = '0'
+        AND project_id = #{projectId}
+        ORDER BY created_time DESC
+     
 
 
  
\ No newline at end of file
From ac67a34cea13235bef6237fee05aa95b4625c0e9 Mon Sep 17 00:00:00 2001
From: zhaoqifeng 
Date: Tue, 12 May 2020 16:58:04 +0800
Subject: [PATCH 10/22] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8?=
 =?UTF-8?q?=E5=92=8C=E8=AF=A6=E6=83=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../tools/constant/ServiceConstant.java       |   5 +
 .../epmet/dto/form/ProjectClosedFromDTO.java  |  32 ++
 .../epmet/dto/form/ProjectDetailFromDTO.java  |  25 ++
 .../epmet/dto/form/ProjectListFromDTO.java    |  31 ++
 .../com/epmet/dto/form/ReturnFromDTO.java     |  32 ++
 .../com/epmet/dto/form/ReturnListFromDTO.java |  19 ++
 .../dto/result/CreatedListResultDTO.java      |  42 +++
 .../epmet/dto/result/DepartmentResultDTO.java |  23 ++
 .../dto/result/InvolvedListResultDTO.java     |  41 +++
 .../dto/result/PendProjectListResultDTO.java  |  36 +++
 .../dto/result/ProjectDetailResultDTO.java    |  49 +++
 .../epmet/dto/result/ReturnListResultDTO.java |  23 ++
 .../gov-project/gov-project-server/pom.xml    |   6 +
 .../epmet/constant/ParameterKeyConstant.java  |  14 +
 .../com/epmet/constant/ProjectConstant.java   |  71 +++++
 .../controller/ProjectTraceController.java    | 117 ++++++-
 .../dao/CustomerProjectParameterDao.java      |   9 +
 .../main/java/com/epmet/dao/ProjectDao.java   |  57 +++-
 .../java/com/epmet/dao/ProjectStaffDao.java   |  16 +-
 .../com/epmet/feign/CommonFeignClient.java    |  23 ++
 .../fallback/CommonFeignClientFallBack.java   |  24 ++
 .../CustomerProjectParameterService.java      |   9 +
 .../com/epmet/service/ProjectService.java     | 155 ++++++----
 .../epmet/service/ProjectStaffService.java    |  11 +
 .../epmet/service/ProjectTraceService.java    |  91 ++++++
 .../CustomerProjectParameterServiceImpl.java  |   6 +
 .../service/impl/ProjectServiceImpl.java      | 285 ++++++++++++++----
 .../service/impl/ProjectStaffServiceImpl.java |   6 +
 .../service/impl/ProjectTraceServiceImpl.java |  60 ++++
 .../mapper/CustomerProjectParameterDao.xml    |   9 +
 .../src/main/resources/mapper/ProjectDao.xml  |  89 ++++++
 .../main/resources/mapper/ProjectStaffDao.xml |  12 +
 32 files changed, 1311 insertions(+), 117 deletions(-)
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDetailFromDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectListFromDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnListFromDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CreatedListResultDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/DepartmentResultDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/InvolvedListResultDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendProjectListResultDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ReturnListResultDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java
 create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
 create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/CommonFeignClient.java
 create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/CommonFeignClientFallBack.java
 create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
 create mode 100644 epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
index 5fd9af0bd1..c6b5591ff0 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
@@ -98,4 +98,9 @@ public interface ServiceConstant {
      * 政府端项目跟踪(项目管理)
      */
     String GOV_PROJECT_SERVER="gov-project-server";
+
+    /**
+     * 共通
+     */
+    String EPMET_COMMON_SERVICE = "epmet-common-service";
 }
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java
new file mode 100644
index 0000000000..29f755243b
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectClosedFromDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 项目结案
+ * @date 2020/5/11 15:44
+ */
+@Data
+public class ProjectClosedFromDTO implements Serializable {
+
+	private static final long serialVersionUID = -7383213527369892832L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+	/**
+	 * 是否解决(已解决 resolved,未解决 unresolved)
+	 */
+	private String closedStatus;
+	/**
+	 * 公开答复内容
+	 */
+	private String publicReply;
+	/**
+	 * 内部备注内容
+	 */
+	private String internalRemark;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDetailFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDetailFromDTO.java
new file mode 100644
index 0000000000..28178701c5
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectDetailFromDTO.java
@@ -0,0 +1,25 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 项目详情入参
+ * @date 2020/5/11 15:24
+ */
+@Data
+public class ProjectDetailFromDTO implements Serializable {
+	private static final long serialVersionUID = 1246868104866189698L;
+
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+
+	/**
+	 * 用户ID
+	 */
+	private String userId;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectListFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectListFromDTO.java
new file mode 100644
index 0000000000..d608acf068
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectListFromDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/11 14:01
+ */
+@Data
+public class ProjectListFromDTO implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 客户ID
+	 */
+	private String customerId;
+	/**
+	 * 用户ID
+	 */
+	private String userId;
+	/**
+	 * 页码
+	 */
+	private Integer pageNo;
+	/**
+	 * 每页显示数量
+	 */
+	private Integer pageSize;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java
new file mode 100644
index 0000000000..12ec7137d1
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnFromDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 项目退回
+ * @date 2020/5/11 15:55
+ */
+@Data
+public class ReturnFromDTO implements Serializable {
+
+	private static final long serialVersionUID = -8747667324909671154L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+	/**
+	 * 流程节点Id
+	 */
+	private String projectProcessId;
+	/**
+	 * 公开答复内容
+	 */
+	private String publicReply;
+	/**
+	 * 内部流转意见
+	 */
+	private String internalRemark;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnListFromDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnListFromDTO.java
new file mode 100644
index 0000000000..cd0aa2638a
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ReturnListFromDTO.java
@@ -0,0 +1,19 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 可退回节点列表
+ * @date 2020/5/11 15:49
+ */
+@Data
+public class ReturnListFromDTO implements Serializable {
+	private static final long serialVersionUID = 741782201514313323L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CreatedListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CreatedListResultDTO.java
new file mode 100644
index 0000000000..3481754cba
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/CreatedListResultDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 我发起的项目列表
+ * @date 2020/5/11 15:57
+ */
+@Data
+public class CreatedListResultDTO implements Serializable {
+
+	private static final long serialVersionUID = 5957826616179876849L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+	/**
+	 * 项目标题
+	 */
+	private String projectTitle;
+	/**
+	 * 项目创建时间
+	 */
+	private Long projectTime;
+	/**
+	 * 滞留天数
+	 */
+	private String detentionDays;
+	/**
+	 * 当前处理部门(组织-网格、组织-部门 )
+	 */
+	private List departmentNameList;
+	/**
+	 * 是否超期预警
+	 */
+	private Boolean warningFlag;
+
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/DepartmentResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/DepartmentResultDTO.java
new file mode 100644
index 0000000000..d63091b73e
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/DepartmentResultDTO.java
@@ -0,0 +1,23 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/12 16:29
+ */
+@Data
+public class DepartmentResultDTO implements Serializable {
+	private static final long serialVersionUID = 394316321928642799L;
+	/**
+	 * 项目人员关联表ID
+	 */
+	private String projectStaffId;
+	/**
+	 * 部门名
+	 */
+	private String departmentName;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/InvolvedListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/InvolvedListResultDTO.java
new file mode 100644
index 0000000000..39c552f9e5
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/InvolvedListResultDTO.java
@@ -0,0 +1,41 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 我参与的项目列表
+ * @date 2020/5/11 16:06
+ */
+@Data
+public class InvolvedListResultDTO implements Serializable {
+
+	private static final long serialVersionUID = 6050021263050922594L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+	/**
+	 * 项目标题
+	 */
+	private String projectTitle;
+	/**
+	 * 创建时间
+	 */
+	private Long projectTime;
+	/**
+	 * 滞留天数
+	 */
+	private String detentionDays;
+	/**
+	 * 当前处理部门(组织-网格、组织-部门 )
+	 */
+	private List departmentNameList;
+	/**
+	 * 是否超期预警
+	 */
+	private Boolean warningFlag;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendProjectListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendProjectListResultDTO.java
new file mode 100644
index 0000000000..a2fe308a27
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendProjectListResultDTO.java
@@ -0,0 +1,36 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 待处理项目列表
+ * @date 2020/5/11 15:38
+ */
+@Data
+public class PendProjectListResultDTO implements Serializable {
+
+	private static final long serialVersionUID = -7900117646827271573L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+	/**
+	 * 项目标题
+	 */
+	private String projectTitle;
+	/**
+	 * 项目创建时间
+	 */
+	private Long projectTime;
+	/**
+	 * 滞留天数
+	 */
+	private String detentionDays;
+	/**
+	 * 是否超期预警
+	 */
+	private Boolean warningFlag;
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java
new file mode 100644
index 0000000000..9c9425d36f
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectDetailResultDTO.java
@@ -0,0 +1,49 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/11 15:33
+ */
+@Data
+public class ProjectDetailResultDTO implements Serializable {
+
+	private static final long serialVersionUID = -2969103790181586848L;
+	/**
+	 * 项目Id
+	 */
+	private String projectId;
+	/**
+	 * 来源
+	 */
+	private String origin;
+	/**
+	 * 来源Id
+	 */
+	private String originId;
+	/**
+	 * 项目标题
+	 */
+	private String projectTitle;
+	/**
+	 * 项目方案
+	 */
+	private String publicReply;
+	/**
+	 * 内部备注
+	 */
+	private String internalRemark;
+	/**
+	 * 项目状态(待处理 pending,结案closed)
+	 */
+	private String projectStatus;
+	/**
+	 * 处理状态(是否由我处理)
+	 */
+	private Boolean processable;
+
+}
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ReturnListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ReturnListResultDTO.java
new file mode 100644
index 0000000000..229f769753
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ReturnListResultDTO.java
@@ -0,0 +1,23 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 可退回节点列表
+ * @date 2020/5/11 15:50
+ */
+@Data
+public class ReturnListResultDTO implements Serializable {
+	private static final long serialVersionUID = -7082368401375611559L;
+	/**
+	 * 处理进展表Id
+	 */
+	private String projectProcessId;
+	/**
+	 * 处理人名称(组织-部门-人员 组织-网格-人员 组织-人员)
+	 */
+	private String processor;
+}
diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml
index a1329fba1c..7fa15bd39f 100644
--- a/epmet-module/gov-project/gov-project-server/pom.xml
+++ b/epmet-module/gov-project/gov-project-server/pom.xml
@@ -60,6 +60,12 @@
             feign-httpclient 
             10.3.0 
         
+        
+            com.epmet 
+            common-service-client 
+            2.0.0 
+            compile 
+         
     
 
     
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java
new file mode 100644
index 0000000000..502b895544
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ParameterKeyConstant.java
@@ -0,0 +1,14 @@
+package com.epmet.constant;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 客户定制参数key
+ * @date 2020/5/12 11:02
+ */
+public interface ParameterKeyConstant {
+
+	/**
+	 * 可滞留天数
+	 */
+	String DETENTION_DAYS = "detention_days";
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
new file mode 100644
index 0000000000..e9b81ef0f9
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
@@ -0,0 +1,71 @@
+package com.epmet.constant;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 项目相关常量
+ * @date 2020/5/12 10:47
+ */
+public interface ProjectConstant {
+	/**
+	 * 项目来源-议题
+	 */
+	String ISSUE = "issue";
+	/**
+	 * 状态-待处理
+	 */
+	String PENDING = "pending";
+	/**
+	 * 状态-结案
+	 */
+	String CLOSED = "closed";
+	/**
+	 * 结案状态-已解决
+	 */
+	String RESOLVED = "resolved";
+	/**
+	 * 结案状态-未解决
+	 */
+	String UNRESOLVED = "unresolved";
+
+	/**
+	 * 处理-结案
+	 */
+	String OPERATION_CLOSE = "close";
+	/**
+	 * 处理名-结案
+	 */
+	String OPERATION_CLOSE_NAME = "结案";
+	/**
+	 * 处理-退回
+	 */
+	String OPERATION_RETURN = "return";
+	/**
+	 * 处理名-退回
+	 */
+	String OPERATION_RETURN_NAME = "退回";
+	/**
+	 * 处理-部门流转
+	 */
+	String OPERATION_TRANSFER = "transfer";
+	/**
+	 * 处理名-部门流转
+	 */
+	String OPERATION_TRANSFER_NAME = "部门流转";
+	/**
+	 * 处理-转项目
+	 */
+	String OPERATION_CREATED = "created";
+	/**
+	 * 处理名-转项目
+	 */
+	String OPERATION_CREATED_NAME = "转项目";
+
+	/**
+	 * 是否处理-未处理
+	 */
+	String UNHANDLED = "unhandled";
+	/**
+	 * 是否处理-已处理
+	 */
+	String HANDLE = "handle";
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
index 6d7d98ba0f..b862ba1085 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
@@ -6,9 +6,10 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum;
 import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.commons.tools.validator.ValidatorUtils;
-import com.epmet.dto.form.ProcessListFormDTO;
-import com.epmet.dto.result.ProcesslistResultDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.*;
 import com.epmet.service.ProjectProcessService;
+import com.epmet.service.ProjectTraceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -26,8 +27,116 @@ import java.util.List;
 @RequestMapping("trace")
 public class ProjectTraceController {
 
-    @Autowired
-    private ProjectProcessService projectProcessService;
+	@Autowired
+	private ProjectTraceService projectTraceService;
+
+	@Autowired
+	private ProjectProcessService projectProcessService;
+
+	/**
+	 * 待处理项目列表
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:14
+	 */
+	@PostMapping("pendprojectlist")
+	public Result> getPendProjectList(@LoginUser TokenDto tokenDto, @RequestBody ProjectListFromDTO fromDTO) {
+		List result = projectTraceService.getPendProjectList(tokenDto, fromDTO);
+		return new Result>().ok(result);
+	}
+
+	/**
+	 * 我发起的项目列表
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:19
+	 */
+	@PostMapping("createdlist")
+	public Result> getCreatedList(@LoginUser TokenDto tokenDto, @RequestBody ProjectListFromDTO fromDTO) {
+		List result = projectTraceService.getCreatedList(tokenDto, fromDTO);
+		return new Result>().ok(result);
+	}
+
+	/**
+	 * 我参与的项目列表
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:21
+	 */
+	@PostMapping("involvedlist")
+	public Result> getInvolvedList(@LoginUser TokenDto tokenDto, @RequestBody ProjectListFromDTO fromDTO) {
+		List result = projectTraceService.getInvolvedList(tokenDto, fromDTO);
+		return new Result>().ok(result);
+	}
+
+	/**
+	 * 项目详情
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:25
+	 */
+	@PostMapping("projectdetail")
+	public Result getProjectDetail(@LoginUser TokenDto tokenDto, @RequestBody ProjectDetailFromDTO fromDTO) {
+		ProjectDetailResultDTO result = projectTraceService.getProjectDetail(tokenDto, fromDTO);
+		return new Result().ok(result);
+	}
+
+	/**
+	 * 项目结案
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:27
+	 */
+	@PostMapping("closeproject")
+	public Result closed(@LoginUser TokenDto tokenDto, @RequestBody ProjectClosedFromDTO fromDTO) {
+		projectTraceService.closed(tokenDto, fromDTO);
+		return new Result();
+	}
+
+	/**
+	 * 可退回节点列表
+	 *
+	 * @param fromDTO 入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:30
+	 */
+	@PostMapping("returnablelist")
+	public Result> getReturnableList(@RequestBody ReturnListFromDTO fromDTO) {
+		List result = projectTraceService.getReturnableList(fromDTO);
+		return new Result>().ok(result);
+	}
+
+	/**
+	 * 项目退回
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:32
+	 */
+	@PostMapping("return")
+	public Result projectReturn(@LoginUser TokenDto tokenDto, @RequestBody ReturnFromDTO fromDTO) {
+		projectTraceService.projectReturn(tokenDto, fromDTO);
+		return new Result();
+	}
+
 
     /**
      * @param formDTO
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java
index 715945aaca..c94ad69046 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/CustomerProjectParameterDao.java
@@ -20,6 +20,7 @@ package com.epmet.dao;
 import com.epmet.commons.mybatis.dao.BaseDao;
 import com.epmet.entity.CustomerProjectParameterEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 项目客户参数订制表
@@ -29,5 +30,13 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface CustomerProjectParameterDao extends BaseDao {
+	/**
+	 * 根据key查找value
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 10:39
+	 * @param entity 参数
+	 * @return java.lang.String
+	 */
+	String selectParameterValueByKey(CustomerProjectParameterEntity entity);
 	
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
index e7ba5bd385..c84c8d6f2d 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
@@ -18,8 +18,15 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.ProjectDTO;
+import com.epmet.dto.form.ProjectListFromDTO;
+import com.epmet.dto.result.DepartmentResultDTO;
+import com.epmet.dto.result.ProjectDetailResultDTO;
 import com.epmet.entity.ProjectEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 项目表
@@ -29,5 +36,53 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface ProjectDao extends BaseDao {
-	
+	/**
+	 * 待处理项目列表
+	 *
+	 * @param fromDTO 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 17:04
+	 **/
+	List selectPendList(ProjectListFromDTO fromDTO);
+
+	/**
+	 * 我发起的项目列表
+	 *
+	 * @param fromDTO 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 13:59
+	 */
+	List selectCreatedList(ProjectListFromDTO fromDTO);
+
+	/**
+	 * 我参与的项目列表
+	 *
+	 * @param fromDTO 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 14:16
+	 */
+	List selectInvolvedList(ProjectListFromDTO fromDTO);
+
+	/**
+	 * 当前处理部门
+	 *
+	 * @param dto 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 14:47
+	 */
+	List selectDepartmentNameList(ProjectDTO dto);
+
+	/**
+	 * 获取项目详情
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 15:18
+	 * @param id
+	 * @return com.epmet.dto.ProjectDTO
+	 */
+	ProjectDetailResultDTO selectProjectDetail(@Param("id") String id);
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java
index e78229e0f5..b93b670473 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectStaffDao.java
@@ -18,9 +18,13 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.ProjectStaffDTO;
+import com.epmet.dto.result.DepartmentResultDTO;
 import com.epmet.entity.ProjectStaffEntity;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 项目人员关联表
  *
@@ -29,5 +33,15 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface ProjectStaffDao extends BaseDao {
-	
+
+	/**
+	 * 未处理部门列表
+	 *
+	 * @param dto 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 16:40
+	 */
+	List selectDepartmentNameList(ProjectStaffDTO dto);
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/CommonFeignClient.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/CommonFeignClient.java
new file mode 100644
index 0000000000..10ed3733c3
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/CommonFeignClient.java
@@ -0,0 +1,23 @@
+package com.epmet.feign;
+
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.WorkDayFormDTO;
+import com.epmet.dto.result.WorkDayResultDTO;
+import com.epmet.feign.fallback.CommonFeignClientFallBack;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/12 15:48
+ */
+@FeignClient(name = ServiceConstant.EPMET_COMMON_SERVICE, fallback = CommonFeignClientFallBack.class)
+public interface CommonFeignClient {
+	@PostMapping("commonservice/workday/detentiondays")
+	Result> detentionDays(@RequestBody List formDTO);
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/CommonFeignClientFallBack.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/CommonFeignClientFallBack.java
new file mode 100644
index 0000000000..0d7aa93769
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/CommonFeignClientFallBack.java
@@ -0,0 +1,24 @@
+package com.epmet.feign.fallback;
+
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.ModuleUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.WorkDayFormDTO;
+import com.epmet.dto.result.WorkDayResultDTO;
+import com.epmet.feign.CommonFeignClient;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/12 15:51
+ */
+@Component
+public class CommonFeignClientFallBack implements CommonFeignClient {
+	@Override
+	public Result> detentionDays(List formDTO) {
+		return ModuleUtils.feignConError(ServiceConstant.EPMET_COMMON_SERVICE, "detentionDays", formDTO);
+	}
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java
index ba787d4171..87664dc583 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/CustomerProjectParameterService.java
@@ -92,4 +92,13 @@ public interface CustomerProjectParameterService extends BaseService {
 
-    /**
-     * 默认分页
-     *
-     * @param params
-     * @return PageData
-     * @author generator
-     * @date 2020-05-11
-     */
-    PageData page(Map params);
+	/**
+	 * 默认分页
+	 *
+	 * @param params
+	 * @return PageData
+	 * @author generator
+	 * @date 2020-05-11
+	 */
+	PageData page(Map params);
 
-    /**
-     * 默认查询
-     *
-     * @param params
-     * @return java.util.List
-     * @author generator
-     * @date 2020-05-11
-     */
-    List list(Map params);
+	/**
+	 * 默认查询
+	 *
+	 * @param params
+	 * @return java.util.List
+	 * @author generator
+	 * @date 2020-05-11
+	 */
+	List list(Map params);
 
-    /**
-     * 单条查询
-     *
-     * @param id
-     * @return ProjectDTO
-     * @author generator
-     * @date 2020-05-11
-     */
-    ProjectDTO get(String id);
+	/**
+	 * 单条查询
+	 *
+	 * @param id
+	 * @return ProjectDTO
+	 * @author generator
+	 * @date 2020-05-11
+	 */
+	ProjectDTO get(String id);
 
-    /**
-     * 默认保存
-     *
-     * @param dto
-     * @return void
-     * @author generator
-     * @date 2020-05-11
-     */
-    void save(ProjectDTO dto);
+	/**
+	 * 默认保存
+	 *
+	 * @param dto
+	 * @return void
+	 * @author generator
+	 * @date 2020-05-11
+	 */
+	void save(ProjectDTO dto);
 
-    /**
-     * 默认更新
-     *
-     * @param dto
-     * @return void
-     * @author generator
-     * @date 2020-05-11
-     */
-    void update(ProjectDTO dto);
+	/**
+	 * 默认更新
+	 *
+	 * @param dto
+	 * @return void
+	 * @author generator
+	 * @date 2020-05-11
+	 */
+	void update(ProjectDTO dto);
 
-    /**
-     * 批量删除
-     *
-     * @param ids
-     * @return void
-     * @author generator
-     * @date 2020-05-11
-     */
-    void delete(String[] ids);
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return void
+	 * @author generator
+	 * @date 2020-05-11
+	 */
+	void delete(String[] ids);
+
+	/**
+	 * 待处理项目列表
+	 *
+	 * @param fromDTO 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 10:23
+	 */
+	List getPendProjectList(ProjectListFromDTO fromDTO);
+
+	/**
+	 * 我发起的项目列表
+	 *
+	 * @param fromDTO 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 13:58
+	 */
+	List getCreatedList(ProjectListFromDTO fromDTO);
+
+	/**
+	 * 我参与的项目列表
+	 *
+	 * @param fromDTO 参数
+	 * @return java.util.List
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 14:57
+	 */
+	List getInvolvedList(ProjectListFromDTO fromDTO);
+
+	/**
+	 * 项目详情
+	 *
+	 * @param fromDTO 参数
+	 * @return com.epmet.dto.result.ProjectDetailResultDTO
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 15:13
+	 */
+	ProjectDetailResultDTO getProjectDetail(ProjectDetailFromDTO fromDTO);
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java
index 30b07ac3b1..62d3b66965 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectStaffService.java
@@ -20,6 +20,7 @@ package com.epmet.service;
 import com.epmet.commons.mybatis.service.BaseService;
 import com.epmet.commons.tools.page.PageData;
 import com.epmet.dto.ProjectStaffDTO;
+import com.epmet.dto.result.DepartmentResultDTO;
 import com.epmet.entity.ProjectStaffEntity;
 
 import java.util.List;
@@ -92,4 +93,14 @@ public interface ProjectStaffService extends BaseService {
      * @date 2020-05-11
      */
     void delete(String[] ids);
+
+    /**
+     * 未处理部门列表
+     *
+     * @param dto 参数
+     * @return java.util.List
+     * @author zhaoqifeng
+     * @date 2020/5/12 16:40
+     */
+    List getDepartmentNameList(ProjectStaffDTO dto);
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
new file mode 100644
index 0000000000..f91afc3c3a
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectTraceService.java
@@ -0,0 +1,91 @@
+package com.epmet.service;
+
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.*;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription 项目追踪
+ * @date 2020/5/11 16:34
+ */
+public interface ProjectTraceService {
+	/**
+	 * 待处理项目列表
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:14
+	 */
+	List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO);
+
+	/**
+	 * 我发起的项目列表
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:19
+	 */
+	List getCreatedList(TokenDto tokenDto, ProjectListFromDTO fromDTO);
+
+	/**
+	 * 我参与的项目列表
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:21
+	 */
+	List getInvolvedList(TokenDto tokenDto, ProjectListFromDTO fromDTO);
+
+	/**
+	 * 项目详情
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:25
+	 */
+	ProjectDetailResultDTO getProjectDetail(TokenDto tokenDto, ProjectDetailFromDTO fromDTO);
+
+	/**
+	 * 项目结案
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:27
+	 */
+	void closed(TokenDto tokenDto, ProjectClosedFromDTO fromDTO);
+
+	/**
+	 * 可退回节点列表
+	 *
+	 * @param fromDTO 入参
+	 * @return com.epmet.commons.tools.utils.Result>
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:30
+	 */
+	List getReturnableList(ReturnListFromDTO fromDTO);
+
+	/**
+	 * 项目退回
+	 *
+	 * @param tokenDto token
+	 * @param fromDTO  入参
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/5/11 16:32
+	 */
+	void projectReturn(TokenDto tokenDto, ReturnFromDTO fromDTO);
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java
index a3942c0295..3df0971eb3 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/CustomerProjectParameterServiceImpl.java
@@ -101,4 +101,10 @@ public class CustomerProjectParameterServiceImpl extends BaseServiceImpl implements ProjectService {
 
-    @Autowired
-    private ProjectRedis projectRedis;
-
-    @Override
-    public PageData page(Map params) {
-        IPage page = baseDao.selectPage(
-                getPage(params, FieldConstant.CREATED_TIME, false),
-                getWrapper(params)
-        );
-        return getPageData(page, ProjectDTO.class);
-    }
-
-    @Override
-    public List list(Map params) {
-        List entityList = baseDao.selectList(getWrapper(params));
-
-        return ConvertUtils.sourceToTarget(entityList, ProjectDTO.class);
-    }
-
-    private QueryWrapper getWrapper(Map params){
-        String id = (String)params.get(FieldConstant.ID_HUMP);
-
-        QueryWrapper wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
-
-        return wrapper;
-    }
-
-    @Override
-    public ProjectDTO get(String id) {
-        ProjectEntity entity = baseDao.selectById(id);
-        return ConvertUtils.sourceToTarget(entity, ProjectDTO.class);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void save(ProjectDTO dto) {
-        ProjectEntity entity = ConvertUtils.sourceToTarget(dto, ProjectEntity.class);
-        insert(entity);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void update(ProjectDTO dto) {
-        ProjectEntity entity = ConvertUtils.sourceToTarget(dto, ProjectEntity.class);
-        updateById(entity);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void delete(String[] ids) {
-        // 逻辑删除(@TableLogic 注解)
-        baseDao.deleteBatchIds(Arrays.asList(ids));
-    }
+	@Autowired
+	private ProjectRedis projectRedis;
+	@Autowired
+	private CustomerProjectParameterService parameterService;
+	@Autowired
+	private CommonFeignClient commonFeignClient;
+	@Autowired
+	private ProjectStaffService projectStaffService;
+
+	private final static String ONE_DAY = "<1";
+
+	@Override
+	public PageData page(Map params) {
+		IPage page = baseDao.selectPage(
+				getPage(params, FieldConstant.CREATED_TIME, false),
+				getWrapper(params)
+		);
+		return getPageData(page, ProjectDTO.class);
+	}
+
+	@Override
+	public List list(Map params) {
+		List entityList = baseDao.selectList(getWrapper(params));
+
+		return ConvertUtils.sourceToTarget(entityList, ProjectDTO.class);
+	}
+
+	private QueryWrapper getWrapper(Map params) {
+		String id = (String) params.get(FieldConstant.ID_HUMP);
+
+		QueryWrapper wrapper = new QueryWrapper<>();
+		wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+		return wrapper;
+	}
+
+	@Override
+	public ProjectDTO get(String id) {
+		ProjectEntity entity = baseDao.selectById(id);
+		return ConvertUtils.sourceToTarget(entity, ProjectDTO.class);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void save(ProjectDTO dto) {
+		ProjectEntity entity = ConvertUtils.sourceToTarget(dto, ProjectEntity.class);
+		insert(entity);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void update(ProjectDTO dto) {
+		ProjectEntity entity = ConvertUtils.sourceToTarget(dto, ProjectEntity.class);
+		updateById(entity);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delete(String[] ids) {
+		// 逻辑删除(@TableLogic 注解)
+		baseDao.deleteBatchIds(Arrays.asList(ids));
+	}
+
+	@Override
+	public List getPendProjectList(ProjectListFromDTO fromDTO) {
+		List list = new ArrayList<>();
+
+		List projectList = baseDao.selectPendList(fromDTO);
+		//获取客户定制的可滞留天数
+		Integer finalDays = getDays(fromDTO);
+		projectList.forEach(p -> {
+			PendProjectListResultDTO pend = new PendProjectListResultDTO();
+			pend.setProjectId(p.getId());
+			pend.setProjectTitle(p.getTitle());
+			pend.setProjectTime(p.getCreatedTime().getTime());
+			String detentionDays = getDetentionDays(p);
+			if (!ONE_DAY.equals(detentionDays) && Integer.parseInt(detentionDays) > finalDays) {
+				pend.setWarningFlag(true);
+				pend.setDetentionDays(detentionDays);
+			} else {
+				pend.setDetentionDays(detentionDays);
+				pend.setWarningFlag(false);
+			}
+			list.add(pend);
+		});
+
+		return list;
+	}
+
+	@Override
+	public List getCreatedList(ProjectListFromDTO fromDTO) {
+		List list = new ArrayList<>();
+		List projectList = baseDao.selectCreatedList(fromDTO);
+		//获取客户定制的可滞留天数
+		Integer finalDays = getDays(fromDTO);
+		projectList.forEach(p -> {
+			CreatedListResultDTO created = new CreatedListResultDTO();
+			created.setProjectId(p.getId());
+			created.setProjectTitle(p.getTitle());
+			created.setProjectTime(p.getCreatedTime().getTime());
+			String detentionDays = getDetentionDays(p);
+			if (!ONE_DAY.equals(detentionDays) && Integer.parseInt(detentionDays) > finalDays) {
+				created.setWarningFlag(true);
+				created.setDetentionDays(detentionDays);
+			} else {
+				created.setDetentionDays(detentionDays);
+				created.setWarningFlag(false);
+			}
+			//获取当前处理部门
+			List departmentNameList = new ArrayList<>();
+			if (ProjectConstant.CLOSED.equals(p.getStatus())) {
+				created.setDepartmentNameList(departmentNameList);
+			} else {
+				departmentNameList = baseDao.selectDepartmentNameList(p);
+				created.setDepartmentNameList(departmentNameList);
+			}
+			list.add(created);
+		});
+		return list;
+	}
+
+	@Override
+	public List getInvolvedList(ProjectListFromDTO fromDTO) {
+		List list = new ArrayList<>();
+		List projectList = baseDao.selectCreatedList(fromDTO);
+		//获取客户定制的可滞留天数
+		Integer finalDays = getDays(fromDTO);
+		projectList.forEach(p -> {
+			InvolvedListResultDTO involved = new InvolvedListResultDTO();
+			involved.setProjectId(p.getId());
+			involved.setProjectTitle(p.getTitle());
+			involved.setProjectTime(p.getCreatedTime().getTime());
+			String detentionDays = getDetentionDays(p);
+			if (!ONE_DAY.equals(detentionDays) && Integer.parseInt(detentionDays) > finalDays) {
+				involved.setWarningFlag(true);
+				involved.setDetentionDays(detentionDays);
+			} else {
+				involved.setDetentionDays(detentionDays);
+				involved.setWarningFlag(false);
+			}
+			//获取当前处理部门
+			List departmentNameList = new ArrayList<>();
+			if (ProjectConstant.CLOSED.equals(p.getStatus())) {
+				involved.setDepartmentNameList(departmentNameList);
+			} else {
+				departmentNameList = baseDao.selectDepartmentNameList(p);
+				involved.setDepartmentNameList(departmentNameList);
+			}
+			list.add(involved);
+		});
+		return list;
+	}
+
+	@Override
+	public ProjectDetailResultDTO getProjectDetail(ProjectDetailFromDTO fromDTO) {
+		ProjectDetailResultDTO resultDTO = baseDao.selectProjectDetail(fromDTO.getProjectId());
+		if (ProjectConstant.CLOSED.equals(resultDTO.getProjectStatus())) {
+			resultDTO.setProcessable(true);
+		} else {
+			//获取我未处理的部门
+			ProjectStaffDTO projectStaffDTO = new ProjectStaffDTO();
+			projectStaffDTO.setProjectId(fromDTO.getProjectId());
+			projectStaffDTO.setStaffId(fromDTO.getUserId());
+			List departmentList = projectStaffService.getDepartmentNameList(projectStaffDTO);
+			if (null != departmentList && departmentList.size() > 0) {
+				resultDTO.setProcessable(false);
+			} else {
+				resultDTO.setProcessable(true);
+			}
+		}
+
+		return resultDTO;
+	}
+
+	/**
+	 * 获取客户定制的可滞留天数
+	 *
+	 * @param fromDTO
+	 * @return java.lang.Integer
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 16:20
+	 */
+	private Integer getDays(ProjectListFromDTO fromDTO) {
+		//获取客户定制的可滞留天数
+		CustomerProjectParameterDTO dto = new CustomerProjectParameterDTO();
+		dto.setCustomerId(fromDTO.getCustomerId());
+		dto.setParameterKey(ParameterKeyConstant.DETENTION_DAYS);
+		String value = parameterService.getParameterValueByKey(dto);
+		Integer days = 5;
+		if (value != null) {
+			days = Integer.valueOf(value);
+		}
+		return days;
+	}
+
+	/**
+	 * 工作日计算
+	 *
+	 * @param projectDTO
+	 * @return java.lang.String
+	 * @author zhaoqifeng
+	 * @date 2020/5/12 16:20
+	 */
+	private String getDetentionDays(ProjectDTO projectDTO) {
+		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+
+		List list = new ArrayList<>();
+		WorkDayFormDTO workDayFormDTO = new WorkDayFormDTO();
+		workDayFormDTO.setId(projectDTO.getId());
+		workDayFormDTO.setStartDate(format.format(projectDTO.getCreatedTime()));
+		workDayFormDTO.setEndDate(format.format(new Date()));
+		Result> detentionDays = commonFeignClient.detentionDays(list);
+		return detentionDays.getData().get(0).getDetentionDays();
+	}
 
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java
index 0eea5ed1fc..bfab5baef5 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectStaffServiceImpl.java
@@ -25,6 +25,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
 import com.epmet.commons.tools.constant.FieldConstant;
 import com.epmet.dao.ProjectStaffDao;
 import com.epmet.dto.ProjectStaffDTO;
+import com.epmet.dto.result.DepartmentResultDTO;
 import com.epmet.entity.ProjectStaffEntity;
 import com.epmet.redis.ProjectStaffRedis;
 import com.epmet.service.ProjectStaffService;
@@ -101,4 +102,9 @@ public class ProjectStaffServiceImpl extends BaseServiceImpl getDepartmentNameList(ProjectStaffDTO dto) {
+        return baseDao.selectDepartmentNameList(dto);
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
new file mode 100644
index 0000000000..d7ff474a5d
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
@@ -0,0 +1,60 @@
+package com.epmet.service.impl;
+
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.*;
+import com.epmet.service.ProjectService;
+import com.epmet.service.ProjectTraceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2020/5/11 16:35
+ */
+@Service
+public class ProjectTraceServiceImpl implements ProjectTraceService {
+	@Autowired
+	private ProjectService projectService;
+
+	@Override
+	public List getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
+		fromDTO.setUserId(tokenDto.getUserId());
+		return projectService.getPendProjectList(fromDTO);
+	}
+
+	@Override
+	public List getCreatedList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
+		fromDTO.setUserId(tokenDto.getUserId());
+		return projectService.getCreatedList(fromDTO);
+	}
+
+	@Override
+	public List getInvolvedList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
+		fromDTO.setUserId(tokenDto.getUserId());
+		return projectService.getInvolvedList(fromDTO);
+	}
+
+	@Override
+	public ProjectDetailResultDTO getProjectDetail(TokenDto tokenDto, ProjectDetailFromDTO fromDTO) {
+		return null;
+	}
+
+	@Override
+	public void closed(TokenDto tokenDto, ProjectClosedFromDTO fromDTO) {
+
+	}
+
+	@Override
+	public List getReturnableList(ReturnListFromDTO fromDTO) {
+		return null;
+	}
+
+	@Override
+	public void projectReturn(TokenDto tokenDto, ReturnFromDTO fromDTO) {
+
+	}
+}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml
index 5883ac863f..25a30d23a9 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/CustomerProjectParameterDao.xml
@@ -17,6 +17,15 @@
          
          
     
+    
+        select
+               PARAMETER_VALUE
+        from
+             customer_project_parameter
+        where DEL_FLAG = '0'
+          and CUSTOMER_ID = #{customerId}
+          and PARAMETER_KEY = #{parameterKey}
+     
 
 
 
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
index e14269cbb7..9b8fd485ff 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
@@ -19,6 +19,95 @@
          
          
     
+    
+        SELECT distinct
+            p.ID,
+            p.TITLE,
+            psp.CREATED_TIME
+        FROM project p
+                 INNER JOIN (SELECT
+                                 ps.PROJECT_ID,
+                                 MAX(ps.CREATED_TIME) AS CREATED_TIME
+                             FROM
+                                 project_staff ps
+                             WHERE
+                                 ps.DEL_FLAG = '0'
+                               AND ps.IS_HANDLE = 'unhandled'
+                               AND ps.STAFF_ID = #{userId}
+                             GROUP BY ps.PROJECT_ID) psp ON p.ID = psp.PROJECT_ID
+        WHERE p.DEL_FLAG = '0'
+        AND p.status = 'pending'
+        ORDER BY psp.CREATED_TIME ASC
+     
+    
+        SELECT distinct
+            p.ID,
+            p.TITLE,
+            p.STATUS,
+            psp.CREATED_TIME
+        FROM project p
+                 INNER JOIN (SELECT
+                                 ps.PROJECT_ID,
+                                 MAX(ps.CREATED_TIME) AS CREATED_TIME
+                             FROM
+                                 project_staff ps
+                             INNER JOIN  project_process pp ON ps.PROCESS_ID = pp.ID AND pp.DEL_FLAG = '0'
+                                        AND pp.OPERATION = 'created'
+                             WHERE
+                                 ps.DEL_FLAG = '0'
+                               AND ps.IS_HANDLE = 'handle'
+                               AND ps.STAFF_ID = #{userId}
+                             GROUP BY ps.PROJECT_ID) psp ON p.ID = psp.PROJECT_ID
+        WHERE p.DEL_FLAG = '0'
+        ORDER BY psp.CREATED_TIME ASC
+     
+    
+        SELECT distinct
+            p.ID,
+            p.TITLE,
+            p.STATUS,
+            psp.CREATED_TIME
+        FROM project p
+                 INNER JOIN (SELECT
+                                 ps.PROJECT_ID,
+                                 MAX(ps.CREATED_TIME) AS CREATED_TIME
+                             FROM
+                                 project_staff ps
+                                     INNER JOIN  project_process pp ON ps.PROCESS_ID = pp.ID AND pp.DEL_FLAG = '0'
+                                     AND pp.OPERATION != 'created'
+                             WHERE
+                                 ps.DEL_FLAG = '0'
+                               AND ps.IS_HANDLE = 'handle'
+                               AND ps.STAFF_ID = #{userId}
+                             GROUP BY ps.PROJECT_ID) psp ON p.ID = psp.PROJECT_ID
+        WHERE p.DEL_FLAG = '0'
+        ORDER BY psp.CREATED_TIME ASC
+     
+    
+        SELECT DISTINCT
+            DEPARTMENT_NAME
+        FROM
+            project p
+        INNER JOIN project_staff ps ON p.ID = ps.PROJECT_ID
+        WHERE p.DEL_FLAG = '0'
+            AND ps.DEL_FLAG = '0'
+            AND p.ID = #{id}
+            AND ps.IS_HANDLE = 'unhandled'
+     
+    
+        SELECT
+               p.ID AS "projectId",
+               p.TITLE AS "projectTitle",
+               p.ORIGIN AS "origin",
+               p.ORIGIN_ID AS "originId",
+               p.STATUS AS "projectStatus",
+               IFNULL(pp.PUBLIC_REPLY, '无') AS "publicReply",
+               IFNULL(pp.INTERNAL_REMARK, '无') AS "internalRemark"
+        FROM project p
+        INNER JOIN project_process pp ON p.ID = pp.PROJECT_ID AND pp.DEL_FLAG = '0' AND pp.OPERATION = 'created'
+        WHERE p.DEL_FLAG = '0'
+            AND p.ID = #{id}
+     
 
 
 
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml
index eb733d0eb7..736a87d3ae 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectStaffDao.xml
@@ -20,6 +20,18 @@
          
          
     
+    
+        SELECT
+            ID,
+            DEPARTMENT_NAME
+        FROM
+            project_staff
+        WHERE DEL_FLAG = '0'
+            AND PROJECT_ID = #{projectId}
+            AND STAFF_ID = #{staffId}
+            AND IS_HANDLE = 'unhandled'
+
+     
 
 
 
\ No newline at end of file
From 3b8663a7fc6bb46643cef5c1e451ebc029800596 Mon Sep 17 00:00:00 2001
From: zxc <954985706@qq.com>
Date: Tue, 12 May 2020 18:37:30 +0800
Subject: [PATCH 11/22] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E8=A1=A8=E5=86=B3?=
 =?UTF-8?q?=E6=8A=98=E7=BA=BF=E5=9B=BE=E3=80=81=E6=8F=90=E4=BA=A4=E6=BB=A1?=
 =?UTF-8?q?=E6=84=8F=E5=BA=A6=E8=AF=84=E4=BB=B7=E3=80=81=E6=94=AF=E6=8C=81?=
 =?UTF-8?q?=E3=80=81=E5=8F=8D=E5=AF=B9=E8=AE=AE=E9=A2=98=EF=BC=8C=E6=BB=A1?=
 =?UTF-8?q?=E6=84=8F=E5=BA=A6=E8=AF=84=E4=BB=B7=E5=88=9D=E5=A7=8B=E5=8C=96?=
 =?UTF-8?q?=EF=BC=8C=E8=A1=A8=E5=86=B3=E4=B8=AD=E8=AF=A6=E6=83=85=E2=80=94?=
 =?UTF-8?q?=E2=80=94=E6=94=AF=E6=8C=81=E5=8F=8D=E5=AF=B9=E6=95=B0=E9=87=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../java/com/epmet/dto/EvaluateInfoDTO.java   |  26 +++++
 .../main/java/com/epmet/dto/PolyLineDTO.java  |  32 ++++++
 .../com/epmet/dto/form/EvaluateFormDTO.java   |  37 ++++++
 .../epmet/dto/form/InitEvaluationFormDTO.java |  27 +++++
 .../com/epmet/dto/form/IssueIdFormDTO.java    |  21 ++++
 .../java/com/epmet/dto/form/VoteFormDTO.java  |  32 ++++++
 .../dto/result/InitEvaluationResultDTO.java   |  27 +++++
 .../com/epmet/dto/result/VoteResultDTO.java   |  32 ++++++
 .../dto/result/VotingTrendResultDTO.java      |  44 +++++++
 .../IssueSatisfactionDetailController.java    |  24 ++++
 .../controller/IssueVoteDetailController.java |  13 +++
 .../IssueVoteStatisticalController.java       |  27 +++++
 .../epmet/dao/IssueSatisfactionDetailDao.java |  11 +-
 .../com/epmet/dao/IssueVoteDetailDao.java     |  10 +-
 .../dao/IssueVoteStatisticalDailyDao.java     |   2 +-
 .../epmet/dao/IssueVoteStatisticalDao.java    |  38 ++++++-
 .../IssueSatisfactionDetailService.java       |  17 +++
 .../epmet/service/IssueVoteDetailService.java |   8 ++
 .../service/IssueVoteStatisticalService.java  |  19 ++++
 .../IssueSatisfactionDetailServiceImpl.java   |  47 ++++++++
 .../impl/IssueVoteDetailServiceImpl.java      |  22 ++++
 .../impl/IssueVoteStatisticalServiceImpl.java |  44 +++++++
 .../mapper/IssueSatisfactionDetailDao.xml     |  12 ++
 .../resources/mapper/IssueVoteDetailDao.xml   |  11 ++
 .../mapper/IssueVoteStatisticalDao.xml        |  51 +++++++++
 .../java/com/epmet/dto/EvaluateInfoDTO.java   |  26 +++++
 .../main/java/com/epmet/dto/PolyLineDTO.java  |  22 +---
 .../com/epmet/dto/form/EvaluateFormDTO.java   |  37 ++++++
 .../epmet/dto/form/InitEvaluationFormDTO.java |  27 +++++
 .../com/epmet/dto/form/IssueIdFormDTO.java    |   1 -
 .../java/com/epmet/dto/form/VoteFormDTO.java  |  32 ++++++
 .../dto/result/InitEvaluationResultDTO.java   |  28 +++++
 .../com/epmet/dto/result/VoteResultDTO.java   |  32 ++++++
 .../dto/result/VotingTrendResultDTO.java      |   6 +
 .../com/epmet/controller/IssueController.java |  74 +++++++++++-
 .../com/epmet/feign/GovIssueFeignClient.java  |  49 +++++++-
 .../fallback/GovIssueFeignClientFallBack.java |  31 ++++-
 .../java/com/epmet/service/IssueService.java  |  51 +++++++++
 .../epmet/service/impl/IssueServiceImpl.java  | 107 +++++++++++++++---
 39 files changed, 1115 insertions(+), 42 deletions(-)
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java
 create mode 100644 epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java
 create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java
 create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java
 create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java
 create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java
 create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java
 create mode 100644 epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java
new file mode 100644
index 0000000000..6dd8446aef
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 评价信息
+ */
+@Data
+public class EvaluateInfoDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 评价内容
+     */
+    private String evaluateContent;
+
+    /**
+     * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+     */
+    private String satisfaction;
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java
new file mode 100644
index 0000000000..975971e403
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/PolyLineDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 投票折线数据
+ * @CreateTime 2020/5/11 9:36
+ */
+@Data
+public class PolyLineDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 投票日期
+     */
+    private Long voteDtae;
+
+    /**
+     * 当日赞成票数量
+     */
+    private Integer supportIncrement;
+
+    /**
+     * 当日反对票数量
+     */
+    private Integer oppositionIncrement;
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java
new file mode 100644
index 0000000000..541b1c6f58
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 提交满意度评价
+ */
+@Data
+public class EvaluateFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 议题Id
+     */
+    private String IssueId;
+
+    /**
+     * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+     */
+    private String satisfaction;
+
+    /**
+     * 评价内容
+     */
+    private String comment;
+
+    /**
+     * 用户id
+     */
+    private String userId;
+
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java
new file mode 100644
index 0000000000..c61af4f268
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 满意度评价初始化
+ */
+@Data
+public class InitEvaluationFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 议题Id
+     */
+    private String IssueId;
+
+    /**
+     * 创建人
+     */
+    private String userId;
+
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java
new file mode 100644
index 0000000000..6b16e733ec
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java
@@ -0,0 +1,21 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 议题Id
+ * @Author zxc
+ * @Date 2020/5/11 9:30
+ */
+@Data
+public class IssueIdFormDTO implements Serializable {
+    private static final long serialVersionUID = 4859779755214503489L;
+
+    @NotBlank(message = "议题id不能为空")
+    private String issueId;
+
+}
+
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java
new file mode 100644
index 0000000000..126257e37d
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 表决中 支持、反对 投票
+ */
+@Data
+public class VoteFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 话题Id
+     */
+    private String IssueId;
+
+    /**
+     * 态度 - opposition(反对)support(赞成)
+     */
+    private String attitude;
+
+    /**
+     * 创建人
+     */
+    private String createdBy;
+
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java
new file mode 100644
index 0000000000..09d9f16635
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.result;
+
+import com.epmet.dto.EvaluateInfoDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 满意度评价初始化
+ */
+@Data
+public class InitEvaluationResultDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 评价状态:true已评价,false未评价
+     */
+    private Boolean status;
+
+    /**
+     * 评价信息
+     */
+    private EvaluateInfoDTO evaluateInfo;
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java
new file mode 100644
index 0000000000..3d4db2594e
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 表决中议题详情——支持、反对数
+ */
+@Data
+public class VoteResultDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 表决状态:true已表决    false未表决
+     */
+    private Boolean voteFlag;
+
+    /**
+     * 支持数量
+     */
+    private Integer supportCount;
+
+    /**
+     * 反对数量
+     */
+    private Integer oppositionCount;
+
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java
new file mode 100644
index 0000000000..4718a4f2f0
--- /dev/null
+++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.dto.result;
+
+import com.epmet.dto.PolyLineDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * 议题表决折线图
+ * @CreateTime 2020/5/11 9:36
+ */
+@Data
+public class VotingTrendResultDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 应表决数量
+     */
+    private Integer shouldVoteCount;
+
+    /**
+     * 实际表决数量
+     */
+    private Integer realityVoteCount;
+
+    /**
+     * 截至今日赞成票总数
+     */
+    private Integer supportAmount;
+
+    /**
+     * 截至今日反对票总数
+     */
+    private Integer oppositionAmount;
+
+    /**
+     * 投票折线数据
+     */
+    private List polyLine;
+
+}
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java
index 8772539ab3..b899a287ca 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueSatisfactionDetailController.java
@@ -26,6 +26,9 @@ import com.epmet.commons.tools.validator.group.AddGroup;
 import com.epmet.commons.tools.validator.group.UpdateGroup;
 import com.epmet.commons.tools.validator.group.DefaultGroup;
 import com.epmet.dto.IssueSatisfactionDetailDTO;
+import com.epmet.dto.form.EvaluateFormDTO;
+import com.epmet.dto.form.InitEvaluationFormDTO;
+import com.epmet.dto.result.InitEvaluationResultDTO;
 import com.epmet.excel.IssueSatisfactionDetailExcel;
 import com.epmet.service.IssueSatisfactionDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -91,4 +94,25 @@ public class IssueSatisfactionDetailController {
         ExcelUtils.exportExcelToTarget(response, null, list, IssueSatisfactionDetailExcel.class);
     }
 
+    /**
+     * @Description  满意度评价初始化
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("initevaluation")
+    public Result initEvaluation(@RequestBody InitEvaluationFormDTO formDTO){
+        return new Result().ok(issueSatisfactionDetailService.initEvaluation(formDTO));
+    }
+
+    /**
+     * @Description  提交满意度评价
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("evaluate")
+    public Result evaluate(@RequestBody EvaluateFormDTO formDTO){
+        issueSatisfactionDetailService.evaluate(formDTO);
+        return new Result();
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java
index 981aacf50e..d7a6153418 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteDetailController.java
@@ -17,6 +17,7 @@
 
 package com.epmet.controller;
 
+import com.epmet.commons.tools.annotation.LoginUser;
 import com.epmet.commons.tools.page.PageData;
 import com.epmet.commons.tools.utils.ExcelUtils;
 import com.epmet.commons.tools.utils.Result;
@@ -26,6 +27,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
 import com.epmet.commons.tools.validator.group.UpdateGroup;
 import com.epmet.commons.tools.validator.group.DefaultGroup;
 import com.epmet.dto.IssueVoteDetailDTO;
+import com.epmet.dto.form.VoteFormDTO;
 import com.epmet.excel.IssueVoteDetailExcel;
 import com.epmet.service.IssueVoteDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -91,4 +93,15 @@ public class IssueVoteDetailController {
         ExcelUtils.exportExcelToTarget(response, null, list, IssueVoteDetailExcel.class);
     }
 
+    /**
+     * @Description  表决中 反对、支持 投票
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("vote")
+    public Result vote(@RequestBody VoteFormDTO formDTO){
+        issueVoteDetailService.vote(formDTO);
+        return new Result();
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java
index ab98b72498..a1d69e59d9 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java
@@ -17,7 +17,9 @@
 
 package com.epmet.controller;
 
+import com.epmet.commons.tools.annotation.LoginUser;
 import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.ExcelUtils;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.commons.tools.validator.AssertUtils;
@@ -26,6 +28,9 @@ import com.epmet.commons.tools.validator.group.AddGroup;
 import com.epmet.commons.tools.validator.group.UpdateGroup;
 import com.epmet.commons.tools.validator.group.DefaultGroup;
 import com.epmet.dto.IssueVoteStatisticalDTO;
+import com.epmet.dto.form.IssueIdFormDTO;
+import com.epmet.dto.result.VoteResultDTO;
+import com.epmet.dto.result.VotingTrendResultDTO;
 import com.epmet.excel.IssueVoteStatisticalExcel;
 import com.epmet.service.IssueVoteStatisticalService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -91,4 +96,26 @@ public class IssueVoteStatisticalController {
         ExcelUtils.exportExcelToTarget(response, null, list, IssueVoteStatisticalExcel.class);
     }
 
+    /**
+     * @Description  表决中议题详情——支持、反对数
+     * @param tokenDto
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("votecount")
+    public Result voteCount(@LoginUser TokenDto tokenDto, @RequestBody IssueIdFormDTO formDTO){
+        return new Result().ok(issueVoteStatisticalService.voteCount(tokenDto,formDTO));
+    }
+
+
+    /**
+     * @Description  议题表决折线图
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("votingtrend")
+    public Result votingTrend(@RequestBody IssueIdFormDTO formDTO){
+        return new Result().ok(issueVoteStatisticalService.votingTrend(formDTO));
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java
index 01727f507a..0c29b55ace 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueSatisfactionDetailDao.java
@@ -18,6 +18,8 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.EvaluateInfoDTO;
+import com.epmet.dto.form.InitEvaluationFormDTO;
 import com.epmet.entity.IssueSatisfactionDetailEntity;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -29,5 +31,12 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface IssueSatisfactionDetailDao extends BaseDao {
-	
+
+    /**
+     * @Description  满意度评价初始化
+     * @param formDTO
+     * @author zxc
+     */
+    EvaluateInfoDTO checkSatisfaction(InitEvaluationFormDTO formDTO);
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java
index f8a41e3747..1b0b35cd83 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java
@@ -18,6 +18,7 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.form.VoteFormDTO;
 import com.epmet.entity.IssueVoteDetailEntity;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -29,5 +30,12 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface IssueVoteDetailDao extends BaseDao {
-	
+
+    /**
+     * @Description  支持、反对校验
+     * @param formDTO
+     * @author zxc
+     */
+    Integer checkoutVote(VoteFormDTO formDTO);
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java
index e09695b2b8..06cfea984f 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java
@@ -29,5 +29,5 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface IssueVoteStatisticalDailyDao extends BaseDao {
-	
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java
index 7f833487d8..f6aa7956ee 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java
@@ -18,8 +18,15 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.PolyLineDTO;
+import com.epmet.dto.form.IssueIdFormDTO;
+import com.epmet.dto.result.VoteResultDTO;
+import com.epmet.dto.result.VotingTrendResultDTO;
 import com.epmet.entity.IssueVoteStatisticalEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 议题表决统计表
@@ -29,5 +36,34 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface IssueVoteStatisticalDao extends BaseDao {
-	
+
+    /**
+     * @Description 表决中议题详情——支持、反对数
+     * @param issueId
+     * @author zxc
+     */
+    VoteResultDTO voteCount(IssueIdFormDTO issueId);
+
+    /**
+     * @Description  校验是否投票(表决中详情——支持、反对)
+     * @param issueId
+     * @param userId
+     * @author zxc
+     */
+    Integer checkVote(@Param("issueId")String issueId,@Param("userId")String userId);
+
+    /**
+     * @Description  议题表决折线图
+     * @param issueId
+     * @author zxc
+     */
+    VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId);
+
+    /**
+     * @Description  获取折线每天的支持、反对数量
+     * @param issueId
+     * @author zxc
+     */
+    List polyLineData(IssueIdFormDTO issueId);
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java
index ab47a3797a..1abbd939af 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueSatisfactionDetailService.java
@@ -20,6 +20,9 @@ package com.epmet.service;
 import com.epmet.commons.mybatis.service.BaseService;
 import com.epmet.commons.tools.page.PageData;
 import com.epmet.dto.IssueSatisfactionDetailDTO;
+import com.epmet.dto.form.EvaluateFormDTO;
+import com.epmet.dto.form.InitEvaluationFormDTO;
+import com.epmet.dto.result.InitEvaluationResultDTO;
 import com.epmet.entity.IssueSatisfactionDetailEntity;
 
 import java.util.List;
@@ -92,4 +95,18 @@ public interface IssueSatisfactionDetailService extends BaseService page(Map params) {
@@ -101,4 +108,41 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl polyLineDTOS = issueVoteStatisticalDao.polyLineData(issueId);
+            votingTrendResultDTO.setPolyLine(polyLineDTOS);
+        }
+        return votingTrendResultDTO;
+    }
+
 }
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml
index 86f0a14d13..576f6b859d 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueSatisfactionDetailDao.xml
@@ -16,5 +16,17 @@
          
     
 
+    
+    
+        SELECT
+            comment AS evaluateContent,
+            satisfaction AS satisfaction
+        FROM
+            issue_satisfaction_detail
+        WHERE
+            del_flag = 0
+            AND issue_id = #{issueId}
+            AND created_by = #{userId}
+     
 
 
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
index 93a382ef60..6e6166601b 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
@@ -15,5 +15,16 @@
          
     
 
+    
+    
+        SELECT
+            COUNT(*)
+        FROM
+            issue_vote_detail
+        WHERE
+            del_flag = 0
+            AND issue_id = #{issueId}
+            AND created_by = #{createdBy}
+     
 
 
\ No newline at end of file
diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml
index d34f9eb2ae..5fe5c88507 100644
--- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml
+++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml
@@ -17,5 +17,56 @@
          
     
 
+    
+    
+        SELECT
+            support_count AS supportCount,
+            opposition_count AS oppositionCount
+        FROM
+            issue_vote_statistical
+        WHERE
+            issue_id = #{issueId}
+            AND del_flag = 0
+     
+
+    
+    
+        SELECT
+            COUNT(*) AS voteStatus
+        FROM
+            issue_vote_detail
+        WHERE
+            del_flag = 0
+            AND issue_id = #{issueId}
+            AND created_by = #{userId}
+     
+
+    
+    
+        SELECT
+            votable_count AS shouldVoteCount,
+            ( support_count + opposition_count ) AS realityVoteCount,
+            support_count AS supportAmount,
+            opposition_count AS oppositionAmount
+        FROM
+            issue_vote_statistical
+        WHERE
+            del_flag = 0
+            AND issue_id = #{issueId}
+     
+
+    
+    
+        SELECT
+            UNIX_TIMESTAMP(statistical_date) AS voteDtae,
+            support_increment AS supportIncrement,
+            opposition_increment AS oppositionIncrement
+        FROM
+            issue_vote_statistical_daily
+        WHERE
+            issue_id = #{issueId}
+            AND del_flag = 0
+            ORDER BY statistical_date ASC
+     
 
 
\ No newline at end of file
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java
new file mode 100644
index 0000000000..6dd8446aef
--- /dev/null
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/EvaluateInfoDTO.java
@@ -0,0 +1,26 @@
+package com.epmet.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 评价信息
+ */
+@Data
+public class EvaluateInfoDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 评价内容
+     */
+    private String evaluateContent;
+
+    /**
+     * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+     */
+    private String satisfaction;
+
+}
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java
index b4fee06837..838dfbad15 100644
--- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/PolyLineDTO.java
@@ -16,28 +16,18 @@ public class PolyLineDTO implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 话题id
+     * 投票日期
      */
-    private String topicId;
+    private Long voteDtae;
 
     /**
-     * 话题内容
+     * 当日赞成票数量
      */
-    private String topicContent;
+    private Integer supportIncrement;
 
     /**
-     * 图片列表
+     * 当日反对票数量
      */
-    private List topicImgs;
-
-    /**
-     * 话题发表人(山东路168-尹女士)
-     */
-    private String publishedUser;
-
-    /**
-     * 话题发表时间 (时间戳 毫秒级)
-     */
-    private Long publishedTime;
+    private Integer oppositionIncrement;
 
 }
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java
new file mode 100644
index 0000000000..4f3b88f227
--- /dev/null
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/EvaluateFormDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 提交满意度评价
+ */
+@Data
+public class EvaluateFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 议题Id
+     */
+    private String IssueId;
+
+    /**
+     * 满意度 - 不满意:bad、基本满意:good、非常满意:perfect
+     */
+    private String satisfaction;
+
+    /**
+     * 评价内容
+     */
+    private String comment;
+
+    /**
+     * 用户ID
+     */
+    private String userId;
+
+
+}
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java
new file mode 100644
index 0000000000..c61af4f268
--- /dev/null
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/InitEvaluationFormDTO.java
@@ -0,0 +1,27 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 满意度评价初始化
+ */
+@Data
+public class InitEvaluationFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 议题Id
+     */
+    private String IssueId;
+
+    /**
+     * 创建人
+     */
+    private String userId;
+
+
+}
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java
index 6b16e733ec..9fe2c9f69c 100644
--- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/IssueIdFormDTO.java
@@ -8,7 +8,6 @@ import java.io.Serializable;
 /**
  * @Description 议题Id
  * @Author zxc
- * @Date 2020/5/11 9:30
  */
 @Data
 public class IssueIdFormDTO implements Serializable {
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java
new file mode 100644
index 0000000000..6bde30f08b
--- /dev/null
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/VoteFormDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 表决中 支持、反对 投票
+ */
+@Data
+public class VoteFormDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 议题Id
+     */
+    private String IssueId;
+
+    /**
+     * 态度 - opposition(反对)support(赞成)
+     */
+    private String attitude;
+
+    /**
+     * 创建人
+     */
+    private String createdBy;
+
+
+}
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java
new file mode 100644
index 0000000000..57fece2b4d
--- /dev/null
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/InitEvaluationResultDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.dto.result;
+
+import com.epmet.dto.EvaluateInfoDTO;
+import com.sun.org.apache.xpath.internal.operations.Bool;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 满意度评价初始化
+ */
+@Data
+public class InitEvaluationResultDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 评价状态:true已评价,false未评价
+     */
+    private Boolean status;
+
+    /**
+     * 评价信息
+     */
+    private EvaluateInfoDTO evaluateInfo;
+
+}
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java
new file mode 100644
index 0000000000..3d4db2594e
--- /dev/null
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VoteResultDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * 表决中议题详情——支持、反对数
+ */
+@Data
+public class VoteResultDTO implements Serializable {
+
+    private static final long serialVersionUID = -1L;
+
+    /**
+     * 表决状态:true已表决    false未表决
+     */
+    private Boolean voteFlag;
+
+    /**
+     * 支持数量
+     */
+    private Integer supportCount;
+
+    /**
+     * 反对数量
+     */
+    private Integer oppositionCount;
+
+
+}
diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java
index b92e466fce..4718a4f2f0 100644
--- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java
+++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingTrendResultDTO.java
@@ -1,8 +1,10 @@
 package com.epmet.dto.result;
 
+import com.epmet.dto.PolyLineDTO;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @Author zxc
@@ -34,5 +36,9 @@ public class VotingTrendResultDTO implements Serializable {
      */
     private Integer oppositionAmount;
 
+    /**
+     * 投票折线数据
+     */
+    private List polyLine;
 
 }
diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java
index 48d63f37c9..508694bfea 100644
--- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java
+++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java
@@ -1,10 +1,17 @@
 package com.epmet.controller;
 
+import com.epmet.commons.tools.annotation.LoginUser;
 import com.epmet.commons.tools.annotation.RequirePermission;
 import com.epmet.commons.tools.enums.RequirePermissionEnum;
+import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.EvaluateFormDTO;
 import com.epmet.dto.form.IssueDetailFormDTO;
+import com.epmet.dto.form.IssueIdFormDTO;
+import com.epmet.dto.result.InitEvaluationResultDTO;
 import com.epmet.dto.result.IssueDetailResultDTO;
+import com.epmet.dto.result.VoteResultDTO;
+import com.epmet.dto.result.VotingTrendResultDTO;
 import com.epmet.service.IssueService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -36,10 +43,69 @@ public class IssueController {
         return new Result().ok(issueService.detail(issueDetail));
     }
 
-    /*@PostMapping(value = "votingtrend")
-    public Result<> votingTrend(){
-        return
-    }*/
+    /**
+     * @Description  议题表决折线图
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping(value = "votingtrend")
+    public Result votingTrend(@RequestBody IssueIdFormDTO formDTO){
+        return new Result().ok(issueService.votingTrend(formDTO));
+    }
+
+    /**
+     * @Description  支持议题
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping(value = "support")
+    public Result support(@LoginUser TokenDto tokenDto, @RequestBody IssueIdFormDTO formDTO){
+        issueService.support(tokenDto,formDTO);
+        return new Result();
+    }
+
+    /**
+     * @Description  反对议题
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping(value = "oppose")
+    public Result oppose(@LoginUser TokenDto tokenDto,@RequestBody IssueIdFormDTO formDTO){
+        issueService.oppose(tokenDto,formDTO);
+        return new Result();
+    }
+
+    /**
+     * @Description  表决中议题详情——支持、反对数
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping(value = "vote")
+    public Result vote(@RequestBody IssueIdFormDTO formDTO){
+        return new Result().ok(issueService.vote(formDTO));
+    }
+
+    /**
+     * @Description  满意度评价初始化
+     * @param tokenDto
+     * @param issueId
+     * @author zxc
+     */
+    @PostMapping("initevaluation")
+    public Result initEvaluation(@LoginUser TokenDto tokenDto, @RequestBody IssueIdFormDTO issueId){
+        return new Result().ok(issueService.initEvaluation(tokenDto,issueId));
+    }
+
+    /**
+     * @Description  提交满意度评价
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("evaluate")
+    public Result evaluate(@LoginUser TokenDto tokenDto,@RequestBody EvaluateFormDTO formDTO){
+        issueService.evaluate(tokenDto,formDTO);
+        return new Result();
+    }
 
 }
 
diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java
index 972dad25ff..c4103e74dc 100644
--- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java
+++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java
@@ -1,9 +1,14 @@
 package com.epmet.feign;
 
+import com.epmet.commons.tools.annotation.LoginUser;
 import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.Result;
-import com.epmet.dto.form.IssueDetailFormDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.InitEvaluationResultDTO;
 import com.epmet.dto.result.IssueResultDTO;
+import com.epmet.dto.result.VoteResultDTO;
+import com.epmet.dto.result.VotingTrendResultDTO;
 import com.epmet.feign.fallback.GovIssueFeignClientFallBack;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -22,8 +27,48 @@ public interface GovIssueFeignClient {
      * @Description  议题详情
      * @param issueDetail
      * @author zxc
-     * @date 2020/5/11 16:50
      */
     @PostMapping("/gov/issue/issue/issuedetail")
     Result issueDetail(@RequestBody IssueDetailFormDTO issueDetail);
+
+    /**
+     * @Description  表决中议题详情——支持、反对数
+     * @param issueId
+     * @author zxc
+     */
+    @PostMapping("/gov/issue/issuevotestatistical/votecount")
+    Result voteCount(@RequestBody IssueIdFormDTO issueId);
+
+    /**
+     * @Description  议题表决折线图
+     * @param issueId
+     * @author zxc
+     */
+    @PostMapping("/gov/issue/issuevotestatistical/votingtrend")
+    Result votingTrend(@RequestBody IssueIdFormDTO issueId);
+
+    /**
+     * @Description  表决中的 支持、反对 投票
+     * @param issueId
+     * @author zxc
+     */
+    @PostMapping("/gov/issue/issuevotedetail/vote")
+    Result vote(@RequestBody VoteFormDTO issueId);
+
+    /**
+     * @Description  满意度评价初始化
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("/gov/issue/issuesatisfactiondetail/initevaluation")
+    Result initEvaluation(@RequestBody InitEvaluationFormDTO formDTO);
+
+    /**
+     * @Description  提交满意度评价
+     * @param formDTO
+     * @author zxc
+     */
+    @PostMapping("/gov/issue/issuesatisfactiondetail/evaluate")
+    Result evaluate(@RequestBody EvaluateFormDTO formDTO);
+
 }
diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java
index 62d2ceb77b..c464a6f5a3 100644
--- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java
+++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java
@@ -1,10 +1,14 @@
 package com.epmet.feign.fallback;
 
 import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.ModuleUtils;
 import com.epmet.commons.tools.utils.Result;
-import com.epmet.dto.form.IssueDetailFormDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.InitEvaluationResultDTO;
 import com.epmet.dto.result.IssueResultDTO;
+import com.epmet.dto.result.VoteResultDTO;
+import com.epmet.dto.result.VotingTrendResultDTO;
 import com.epmet.feign.GovIssueFeignClient;
 import org.springframework.stereotype.Component;
 
@@ -19,4 +23,29 @@ public class GovIssueFeignClientFallBack implements GovIssueFeignClient {
     public Result issueDetail(IssueDetailFormDTO issueDetail) {
         return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "issueDetail", issueDetail);
     }
+
+    @Override
+    public Result voteCount(IssueIdFormDTO issueId) {
+        return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "voteCount", issueId);
+    }
+
+    @Override
+    public Result votingTrend(IssueIdFormDTO issueId) {
+        return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "votingTrend", issueId);
+    }
+
+    @Override
+    public Result vote(VoteFormDTO voteFormDTO) {
+        return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "vote", voteFormDTO);
+    }
+
+    @Override
+    public Result initEvaluation(InitEvaluationFormDTO formDTO) {
+        return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "initEvaluation", formDTO);
+    }
+
+    @Override
+    public Result evaluate(EvaluateFormDTO formDTO) {
+        return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "evaluate", formDTO);
+    }
 }
diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java
index 999fb46355..20eace94e3 100644
--- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java
+++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java
@@ -1,7 +1,14 @@
 package com.epmet.service;
 
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.dto.form.EvaluateFormDTO;
 import com.epmet.dto.form.IssueDetailFormDTO;
+import com.epmet.dto.form.IssueIdFormDTO;
+import com.epmet.dto.result.InitEvaluationResultDTO;
 import com.epmet.dto.result.IssueDetailResultDTO;
+import com.epmet.dto.result.VoteResultDTO;
+import com.epmet.dto.result.VotingTrendResultDTO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @Author zxc
@@ -17,4 +24,48 @@ public interface IssueService {
      */
     IssueDetailResultDTO detail(IssueDetailFormDTO issueDetail);
 
+    /**
+     * @Description  议题表决折线图
+     * @param issueId
+     * @author zxc
+     * @date 2020/5/12 8:48
+     */
+    VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId);
+
+    /**
+     * @Description  支持议题
+     * @param issueId
+     * @author zxc
+     */
+    void support(TokenDto tokenDto,IssueIdFormDTO issueId);
+
+    /**
+     * @Description  反对议题
+     * @param issueId
+     * @author zxc
+     */
+    void oppose(TokenDto tokenDto,IssueIdFormDTO issueId);
+
+    /**
+     * @Description  表决中议题详情——支持、反对数
+     * @param issueId
+     * @author zxc
+     */
+    VoteResultDTO vote(IssueIdFormDTO issueId);
+
+    /**
+     * @Description  满意度评价初始化
+     * @param tokenDto
+     * @param issueId
+     * @author zxc
+     */
+    InitEvaluationResultDTO initEvaluation(TokenDto tokenDto, IssueIdFormDTO issueId);
+
+    /**
+     * @Description  提交满意度评价
+     * @param evaluateFormDTO
+     * @author zxc
+     */
+    void evaluate(TokenDto tokenDto,EvaluateFormDTO evaluateFormDTO);
+
 }
diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
index b27ed53daf..2f520351cf 100644
--- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
+++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
@@ -1,20 +1,16 @@
 package com.epmet.service.impl;
 
+import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.dto.TopicInfoDTO;
-import com.epmet.dto.form.BelongGridNameFormDTO;
-import com.epmet.dto.form.IssueDetailFormDTO;
-import com.epmet.dto.form.IssueInitiatorFormDTO;
-import com.epmet.dto.form.TopicInfoFormDTO;
-import com.epmet.dto.result.BelongGridNameResultDTO;
-import com.epmet.dto.result.IssueDetailResultDTO;
-import com.epmet.dto.result.IssueInitiatorResultDTO;
-import com.epmet.dto.result.IssueResultDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.*;
 import com.epmet.feign.EpmetUserFeignClient;
 import com.epmet.feign.GovIssueFeignClient;
 import com.epmet.feign.GovOrgFeignClient;
 import com.epmet.feign.ResiGroupFeignClient;
 import com.epmet.service.IssueService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -54,18 +50,101 @@ public class IssueServiceImpl implements IssueService {
         //话题发起人
         IssueInitiatorFormDTO initiatorFormDTO = new IssueInitiatorFormDTO();
         initiatorFormDTO.setUserId(issueResult.getUserId());
-        Result initiatorResult = userFeignClient.selectIssueInitiator(initiatorFormDTO);
-        issueDetailResult.setIssueInitiator(initiatorResult.getData().getIssueInitiator());
+        if (!StringUtils.isBlank(issueResult.getUserId())) {
+            Result initiatorResult = userFeignClient.selectIssueInitiator(initiatorFormDTO);
+            issueDetailResult.setIssueInitiator(initiatorResult.getData().getIssueInitiator());
+        }
         //网格名称
         BelongGridNameFormDTO belongGridName = new BelongGridNameFormDTO();
         belongGridName.setGridId(issueResult.getGridId());
-        Result belongGridNameResult = govOrgFeignClient.getGridNameByGridId(belongGridName);
-        issueDetailResult.setBelongsGridName(belongGridNameResult.getData().getBelongsGridName());
+        if (!StringUtils.isBlank(issueResult.getGridId())) {
+            Result belongGridNameResult = govOrgFeignClient.getGridNameByGridId(belongGridName);
+            issueDetailResult.setBelongsGridName(belongGridNameResult.getData().getBelongsGridName());
+        }
         //话题信息
         TopicInfoFormDTO topicInfoFormDTO = new TopicInfoFormDTO();
         topicInfoFormDTO.setTopicId(issueResult.getTopicId());
-        Result topicInfoDTOResult = resiGroupFeignClient.selectDetail(topicInfoFormDTO);
-        issueDetailResult.setTopicInfo(topicInfoDTOResult.getData());
+        if (!StringUtils.isBlank(issueResult.getTopicId())) {
+            Result topicInfoDTOResult = resiGroupFeignClient.selectDetail(topicInfoFormDTO);
+            issueDetailResult.setTopicInfo(topicInfoDTOResult.getData());
+        }
         return issueDetailResult;
     }
+
+    /**
+     * @Description  议题表决折线图
+     * @param issueId
+     * @author zxc
+     * @date 2020/5/12 8:49
+     */
+    @Override
+    public VotingTrendResultDTO votingTrend(IssueIdFormDTO issueId) {
+        Result votingTrendResultDTOResult = govIssueFeignClient.votingTrend(issueId);
+        return votingTrendResultDTOResult.getData();
+    }
+
+    /**
+     * @Description  支持议题
+     * @param issueId
+     * @author zxc
+     */
+    @Override
+    public void support(TokenDto tokenDto,IssueIdFormDTO issueId) {
+        VoteFormDTO voteFormDTO = new VoteFormDTO();
+        voteFormDTO.setAttitude("support");
+        voteFormDTO.setCreatedBy(tokenDto.getUserId());
+        voteFormDTO.setIssueId(issueId.getIssueId());
+        govIssueFeignClient.vote(voteFormDTO);
+    }
+
+    /**
+     * @Description  反对议题
+     * @param issueId
+     * @author zxc
+     */
+    @Override
+    public void oppose(TokenDto tokenDto,IssueIdFormDTO issueId) {
+        VoteFormDTO voteFormDTO = new VoteFormDTO();
+        voteFormDTO.setAttitude("opposition");
+        voteFormDTO.setCreatedBy(tokenDto.getUserId());
+        voteFormDTO.setIssueId(issueId.getIssueId());
+        govIssueFeignClient.vote(voteFormDTO);
+    }
+
+    /**
+     * @Description  表决中议题详情——支持、反对数
+     * @param issueId
+     * @author zxc
+     */
+    @Override
+    public VoteResultDTO vote(IssueIdFormDTO issueId) {
+        Result voteResultDTOResult = govIssueFeignClient.voteCount(issueId);
+        return voteResultDTOResult.getData();
+    }
+
+    /**
+     * @Description  满意度评价初始化
+     * @param tokenDto
+     * @param issueId
+     * @author zxc
+     */
+    @Override
+    public InitEvaluationResultDTO initEvaluation(TokenDto tokenDto, IssueIdFormDTO issueId) {
+        InitEvaluationFormDTO formDTO = new InitEvaluationFormDTO();
+        formDTO.setIssueId(issueId.getIssueId());
+        formDTO.setUserId(tokenDto.getUserId());
+        Result initEvaluationResult = govIssueFeignClient.initEvaluation(formDTO);
+        return initEvaluationResult.getData();
+    }
+
+    /**
+     * @Description  提交满意度评价
+     * @param evaluateFormDTO
+     * @author zxc
+     */
+    @Override
+    public void evaluate(TokenDto tokenDto,EvaluateFormDTO evaluateFormDTO) {
+        evaluateFormDTO.setUserId(tokenDto.getUserId());
+        govIssueFeignClient.evaluate(evaluateFormDTO);
+    }
 }
From e7ace76d26b5f64982d6450069794b05585c6584 Mon Sep 17 00:00:00 2001
From: sunyuchao 
Date: Wed, 13 May 2020 09:04:54 +0800
Subject: [PATCH 12/22] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B7=9F=E8=B8=AA-?=
 =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=BB=A1=E6=84=8F=E5=BA=A6=E8=AF=84=E4=BB=B7?=
 =?UTF-8?q?=E5=88=97=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../epmet/dto/form/EvaluationListFormDTO.java | 31 +++++++++
 .../dto/result/EvaluationListResultDTO.java   | 65 +++++++++++++++++++
 .../gov-project/gov-project-server/pom.xml    |  6 ++
 .../com/epmet/constant/ProjectConstant.java   |  5 ++
 .../controller/ProjectTraceController.java    | 18 ++++-
 .../dao/ProjectSatisfactionDetailDao.java     | 13 +++-
 .../com/epmet/feign/EpmetUserFeignClient.java | 17 ++++-
 .../EpmetUserFeignClientFallBack.java         | 11 ++++
 .../ProjectSatisfactionDetailService.java     | 10 +++
 .../ProjectSatisfactionDetailServiceImpl.java | 48 +++++++++++++-
 .../mapper/ProjectSatisfactionDetailDao.xml   | 14 ++++
 11 files changed, 233 insertions(+), 5 deletions(-)
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java
 create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java
new file mode 100644
index 0000000000..57f5fbb8ee
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 项目跟踪-项目满意度评价列表-接口入参
+ * @Author sun
+ */
+@Data
+public class EvaluationListFormDTO implements Serializable {
+    private static final long serialVersionUID = 4859779755214502427L;
+
+    @NotBlank(message = "项目Id不能为空")
+    private String projectId;
+
+    /**
+     * 请求页码
+     * */
+    @Min(1)
+    private int pageNo;
+
+    /**
+     * 每页多少条数据
+     * */
+    private int pageSize = 20;
+}
+
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java
new file mode 100644
index 0000000000..0a9dd49d82
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 项目跟踪-项目满意度评价列表-接口返参
+ *
+ * @author sun
+ */
+@Data
+public class EvaluationListResultDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 评价用户id
+     */
+    private String userId = "";
+
+    /**
+     * 评论人员全称(街道-姓氏先生/女士)
+     */
+    private String userNickName = "";
+
+    /**
+     * 满意程度(不满意:bad、基本满意:good、非常满意:perfect)
+     */
+    private String satisfaction = "";
+
+    /**
+     * 评价时间
+     */
+    private Long evaluateTime;
+
+    /**
+     * 评价内容
+     */
+    private String evaluateContent = "";
+
+    /**
+     * 头像
+     */
+    private String userHeadPhoto = "";
+
+}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml
index 7fa15bd39f..ef9a20e890 100644
--- a/epmet-module/gov-project/gov-project-server/pom.xml
+++ b/epmet-module/gov-project/gov-project-server/pom.xml
@@ -66,6 +66,12 @@
             2.0.0 
             compile 
         
+        
+            com.epmet 
+            epmet-user-client 
+            2.0.0 
+            compile 
+         
     
 
     
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
index e9b81ef0f9..1c2b314f41 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
@@ -68,4 +68,9 @@ public interface ProjectConstant {
 	 * 是否处理-已处理
 	 */
 	String HANDLE = "handle";
+
+	/**
+	 * 调用epmet-user服务查询数据失败
+	 */
+	String SELECT_USERINFO_EXCEPTION = "获取用户昵称、头像失败";
 }
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
index b862ba1085..9f2e75ed7f 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
@@ -9,6 +9,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils;
 import com.epmet.dto.form.*;
 import com.epmet.dto.result.*;
 import com.epmet.service.ProjectProcessService;
+import com.epmet.service.ProjectSatisfactionDetailService;
 import com.epmet.service.ProjectTraceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -33,6 +34,9 @@ public class ProjectTraceController {
 	@Autowired
 	private ProjectProcessService projectProcessService;
 
+	@Autowired
+	private ProjectSatisfactionDetailService projectSatisfactionDetailService;
+
 	/**
 	 * 待处理项目列表
 	 *
@@ -137,7 +141,6 @@ public class ProjectTraceController {
 		return new Result();
 	}
 
-
     /**
      * @param formDTO
      * @return
@@ -150,5 +153,18 @@ public class ProjectTraceController {
         ValidatorUtils.validateEntity(formDTO);
         return new Result>().ok(projectProcessService.progressList(formDTO));
     }
+
+	/**
+	 * @param formDTO
+	 * @return
+	 * @Author sun
+	 * @Description 项目跟踪-项目满意度评价列表
+	 **/
+	@PostMapping("evaluationlist")
+	@RequirePermission(requirePermission = RequirePermissionEnum.WORK_PROJECT_TRACE_DETAIL)
+	public Result> evaluationList(@LoginUser TokenDto tokenDTO, @RequestBody EvaluationListFormDTO formDTO) {
+		ValidatorUtils.validateEntity(formDTO);
+		return new Result