diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
index e11006dcaa..aa7bc28867 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
@@ -47,8 +47,8 @@ public enum EpmetErrorCode {
 	IDCARDNO_ALREADY_EXITS(8109,"系统已存在相同身份证号码,请重新输入"),
 	IDCARDNO_ERROR(8110,"身份证号格式错误,请重新输入"),
 	CANNOT_DELETE_PARTY_MEMBER(8111,"该用户已注册党员,不允许删除"),
-
-
+	GROUP_LEADER_CAN_EDIT_GROUP_INFO(8112,"只有组长才可以修改小组信息"),
+	INVITE_NEW_MEMBER(8113,"只有讨论中的小组才可以邀请新成员"),
     CANNOT_AUDIT_WARM(8201, "请完善居民信息"),
 	NOT_DEL_AGENCY(8202, "该机关存在下级机关,不允许删除"),
 	NOT_DEL_AGENCY_PER(8205, "该机关存在工作人员,不允许删除"),
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java
index 9ed1317906..86d279f3b6 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/IpUtils.java
@@ -34,6 +34,7 @@ public class IpUtils {
 		String ip = null;
 		try {
 			ip = request.getHeader("x-forwarded-for");
+			logger.debug("x-forwarded-for:"+ip);
 			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
 				ip = request.getHeader("Proxy-Client-IP");
 			}
@@ -46,9 +47,18 @@ public class IpUtils {
 			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
 				ip = request.getHeader("HTTP_X_FORWARDED_FOR");
 			}
+			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+				ip = request.getHeader("X-Real-IP");
+			}
 			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
 				ip = request.getRemoteAddr();
 			}
+			//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+			if (ip != null && ip.length() > 15) { //"***.***.***.***".length() = 15
+				if (ip.indexOf(",") > 0) {
+					ip = ip.substring(0, ip.indexOf(","));
+				}
+			}
 		} catch (Exception e) {
 			logger.error("IpUtils ERROR ", e);
 		}
@@ -58,6 +68,7 @@ public class IpUtils {
 
 	/**
 	 * desc:获取本地Ip
+	 *
 	 * @return
 	 */
 	public static String getServerIp() {
diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
index a65c03c0e5..0aadc7d5d7 100644
--- a/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   data-report-server:
     container_name: data-report-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.26
+    image: 192.168.1.130:10080/epmet-cloud-dev/data-report-server:0.3.27
     ports:
       - "8109:8109"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
index 1286ff191d..3dc6b38133 100644
--- a/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   data-report-server:
     container_name: data-report-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-report-server:0.3.26
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-report-server:0.3.27
     ports:
       - "8108:8108"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml b/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
index 21a12306c3..715150fa90 100644
--- a/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
+++ b/epmet-module/data-report/data-report-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   data-report-server:
     container_name: data-report-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-report-server:0.3.26
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/data-report-server:0.3.27
     ports:
       - "8108:8108"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml
index e621e928e6..7f96938c28 100644
--- a/epmet-module/data-report/data-report-server/pom.xml
+++ b/epmet-module/data-report/data-report-server/pom.xml
@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
-    0.3.26
+    0.3.27
     data-report-server
 
     
diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
index 01ed21f5e3..9ea5c548d6 100644
--- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
+++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/project/ProjectDao.xml
@@ -113,7 +113,7 @@
             )
         ) a
         ORDER BY
-            a.projectTotal DESC
+            a.projectTotal DESC, a.type ASC
     
 
     
 
@@ -98,6 +109,9 @@
         
             AND groupp.CUSTOMER_ID = #{customerId}
         
+        AND  topic.CREATED_TIME   DATE_SUB( #{endDate}, INTERVAL - 1 DAY)
+        AND  groupp.CREATED_TIME   DATE_SUB( #{endDate}, INTERVAL - 1 DAY)
+
         ORDER BY groupp.GRID_ID
     
 
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsPublicityTaskService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsPublicityTaskService.java
index 2b1c2df325..40107e4f80 100644
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsPublicityTaskService.java
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsPublicityTaskService.java
@@ -22,7 +22,7 @@ public interface StatsPublicityTaskService {
     Result articleSummaryDailyStatsjob(StatsFormDTO formDTO);
 
     /**
-     * desc:  定时任务 【日】统计文章总数及在线文章总数 包含 机关 部门 网格
+     * desc:  定时任务 【日】统计标签被使用次数 包含 机关 部门 网格
      *
      * @return:
      * @date: 2020/6/22 9:09
@@ -31,7 +31,7 @@ public interface StatsPublicityTaskService {
     Result tagUsedDailyStatsjob(StatsFormDTO formDTO);
 
     /**
-     * desc:  【月】 统计发表文章最多的分类 包含 机关 部门 网格
+     * desc:  【月】 统计标签被使用次数包含 机关 部门 网格
      *
      * @date: 2020/6/22 9:09
      * @author: jianjun liu
@@ -39,7 +39,7 @@ public interface StatsPublicityTaskService {
     Result tagUsedMonthlyStatsjob(StatsFormDTO formDTO);
 
     /**
-     * desc:  【季,年】 统计发表文章最多的分类 包含 机关 部门 网格
+     * desc:  【季,年】 统计标签被使用次数 包含 机关 部门 网格
      *
      * @date: 2020/6/22 9:09
      * @author: jianjun liu
@@ -55,7 +55,7 @@ public interface StatsPublicityTaskService {
     Result tagViewedDailyStatsjob(StatsFormDTO formDTO);
 
     /**
-     * desc: 【月,季,年】 统计阅读最多的标签 包含 机关 网格
+     * desc: 【月】 统计阅读最多的标签 包含 机关 网格
      *
      * @date: 2020/6/22 9:09
      * @author: jianjun liu
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedMonthlyStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedMonthlyStatsTask.java
index a09f97c854..e21f058b4a 100644
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedMonthlyStatsTask.java
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedMonthlyStatsTask.java
@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * desc:标签被使用次数 【月、季、年】统计定时任务
+ * desc:标签被使用次数 【月】统计定时任务
  */
 @Component("publicityTagUsedMonthlyStatsTask")
 public class PublicityTagUsedMonthlyStatsTask implements ITask {
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedQuarterlyAndYearlyStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedQuarterlyAndYearlyStatsTask.java
index e6ce88d6a5..af82f6038a 100644
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedQuarterlyAndYearlyStatsTask.java
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagUsedQuarterlyAndYearlyStatsTask.java
@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * desc:标签被使用次数 【月、季、年】统计定时任务
+ * desc:标签被使用次数 【季、年】统计定时任务
  */
 @Component("publicityTagUsedQuarterlyAndYearlyStatsTask")
 public class PublicityTagUsedQuarterlyAndYearlyStatsTask implements ITask {
diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedMonthlyStatsTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedMonthlyStatsTask.java
index ed3badd326..7b61aa5c7f 100644
--- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedMonthlyStatsTask.java
+++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/PublicityTagViewedMonthlyStatsTask.java
@@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * desc:标签被阅读次数 【月、季、年】统计定时任务
+ * desc:标签被阅读次数 【月】统计定时任务
  */
 @Component("publicityTagViewedMonthlyStatsTask")
 public class PublicityTagViewedMonthlyStatsTask implements ITask {
diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml
index 4b6d9423cc..8d318e5d3f 100644
--- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-message-server:
     container_name: epmet-message-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/epmet-message-server:0.3.24
+    image: 192.168.1.130:10080/epmet-cloud-dev/epmet-message-server:0.3.25
     ports:
       - "8085:8085"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml
index fe6a7d5541..94e253c048 100644
--- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-message-server:
     container_name: epmet-message-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-message-server:0.3.24
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-message-server:0.3.25
     ports:
       - "8085:8085"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml
index 198236f1c6..739e063a0a 100644
--- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml
+++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-message-server:
     container_name: epmet-message-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-message-server:0.3.24
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-message-server:0.3.25
     ports:
       - "8085:8085"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml
index d1a59df41f..e48a0d177e 100644
--- a/epmet-module/epmet-message/epmet-message-server/pom.xml
+++ b/epmet-module/epmet-message/epmet-message-server/pom.xml
@@ -2,7 +2,7 @@
 
     4.0.0
-    0.3.24
+    0.3.25
     
         com.epmet
         epmet-message
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java
index 7f6d02fa40..2c254701d2 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java
@@ -70,16 +70,19 @@ public class SysSmsServiceImpl extends BaseServiceImpl
 
     @Override
     public void send(SysSmsDTO sysSmsDTO) {
+        logger.info(String.format("发送短信接口(/message/sms/send)入参:%s", JSON.toJSONString(sysSmsDTO)));
         LinkedHashMap map;
         try {
             map = JSON.parseObject(sysSmsDTO.getParams(), LinkedHashMap.class);
         }catch (Exception e){
+            logger.error(String.format("发送短信异常,ErrorCode:%s,异常%s",ErrorCode.JSON_FORMAT_ERROR,e.getMessage()));
             throw new RenException(ErrorCode.JSON_FORMAT_ERROR);
         }
 
         //短信服务
         AbstractSmsService service = SmsFactory.build();
         if(service == null){
+            logger.error("发送短信异常,ErrorCode:%s,异常AbstractSmsService is null",ModuleErrorCode.SMS_CONFIG);
             throw new RenException(ModuleErrorCode.SMS_CONFIG);
         }
         //发送短信
@@ -162,13 +165,15 @@ public class SysSmsServiceImpl extends BaseServiceImpl
             sysSmsDTO.setMobile(formDTO.getMobile());
             sysSmsDTO.setParams(paramJson);
             sysSmsDTO.setAliyunTemplateCode(formDTO.getAliyunTemplateCode());
-            Result result = epmetMessageOpenFeignClient.send(sysSmsDTO);
+            this.send(sysSmsDTO);
+            data.setCode(codeStr);
+            /*Result result = epmetMessageOpenFeignClient.send(sysSmsDTO);
             if (result != null && result.success()) {
                 data.setCode(codeStr);
             } else {
                 logger.error(String.format("短信验证码发送失败,手机号:%s。code:%d,msg:%s", formDTO.getMobile(), result.getCode(), result.getMsg()));
                 throw new RenException(EpmetErrorCode.MESSAGE_SMS_SEND_ERROR.getCode());
-            }
+            }*/
         } catch (Exception e) {
             e.printStackTrace();
             logger.error(String.format("短信验证码发送失败,手机号:%s。errorMessage:%s", formDTO.getMobile(), e.getMessage()));
diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml
index d4627e55db..4b27e8212c 100644
--- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-issue-server:
     container_name: gov-issue-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.50
+    image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.51
     ports:
       - "8101:8101"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml
index 4ead2072a6..ccc53b97d9 100644
--- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-issue-server:
     container_name: gov-issue-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-issue-server:0.3.50
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-issue-server:0.3.51
     ports:
       - "8101:8101"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml
index a18c32a917..6d12039b0a 100644
--- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml
+++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-issue-server:
     container_name: gov-issue-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-issue-server:0.3.50
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-issue-server:0.3.51
     ports:
       - "8101:8101"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml
index c62f715bb6..6eeb2a35c3 100644
--- a/epmet-module/gov-issue/gov-issue-server/pom.xml
+++ b/epmet-module/gov-issue/gov-issue-server/pom.xml
@@ -2,7 +2,7 @@
 
-    0.3.50
+    0.3.51
     
         gov-issue
         com.epmet
@@ -147,7 +147,7 @@
                 
 
                 false
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
 
                 
                 https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
@@ -184,7 +184,7 @@
                 
 
                 true
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
 
                 
                 https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c
@@ -218,7 +218,7 @@
                 
 
                 true
-                https://epmet-open.elinkservice.cn:7040/epmetscan/api
+                https://epmet-open.elinkservice.cn/api/epmetscan/api
             
         
     
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencydetailFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencydetailFormDTO.java
index 0f3b999026..9383b68e93 100644
--- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencydetailFormDTO.java
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/AgencydetailFormDTO.java
@@ -33,10 +33,15 @@ public class AgencydetailFormDTO implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 内部错误分组
+     * */
+    public interface AddUserInternalGroup{}
+
     /**
      * 机关组织Id
      */
-    @NotBlank(message = "机关组织ID不能为空")
+    @NotBlank(message = "机关组织ID不能为空" , groups = {AgencydetailFormDTO.AddUserInternalGroup.class})
     private String agencyId;
 
 
diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
index 95c9b2f039..67596a1095 100644
--- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-org-server:
     container_name: gov-org-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.72
+    image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.74
     ports:
       - "8092:8092"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml
index 216d8f48d0..c8557a89c9 100644
--- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-org-server:
     container_name: gov-org-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-org-server:0.3.72
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-org-server:0.3.74
     ports:
       - "8092:8092"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
index 98f688cd9f..a6e6dd4760 100644
--- a/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
+++ b/epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-org-server:
     container_name: gov-org-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.72
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.74
     ports:
       - "8092:8092"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml
index d9aab5efc5..730bdf8aa4 100644
--- a/epmet-module/gov-org/gov-org-server/pom.xml
+++ b/epmet-module/gov-org/gov-org-server/pom.xml
@@ -2,7 +2,7 @@
 
     4.0.0
-    0.3.72
+    0.3.74
     
         com.epmet
         gov-org
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
index a72f359ee2..af64c49645 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java
@@ -132,7 +132,7 @@ public class AgencyController {
     @PostMapping("agencydetail")
     @RequirePermission(requirePermission = RequirePermissionEnum.ORG_AGENCY_TRACE)
     public Result agencyDetail(@LoginUser TokenDto tokenDTO, @RequestBody AgencydetailFormDTO formDTO) {
-        ValidatorUtils.validateEntity(formDTO);
+        ValidatorUtils.validateEntity(formDTO, AgencydetailFormDTO.AddUserInternalGroup.class);
         return agencyService.agencyDetail(formDTO);
     }
 
diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java
index 26273ddd6c..b4d02c5533 100644
--- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java
+++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/DepartmentController.java
@@ -88,7 +88,7 @@ public class DepartmentController {
      * @Description 获取部门详情
      */
     @PostMapping("departmentdetail")
-    @RequirePermission(requirePermission = RequirePermissionEnum.ORG_DEPARTMENT_STAFF_LIST)
+    @RequirePermission(requirePermission = RequirePermissionEnum.ORG_DEPARTMENT_LIST)
     public Result departmentDetail(@LoginUser TokenDto tokenDTO, @RequestBody DepartmentdetailFormDTO formDTO) {
         ValidatorUtils.validateEntity(formDTO);
         return departmentService.departmentDetail(formDTO);
diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
index 102eb5fccc..f5f033e08c 100644
--- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-project-server:
     container_name: gov-project-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.36
+    image: 192.168.1.130:10080/epmet-cloud-dev/gov-project-server:0.3.38
     ports:
       - "8102:8102"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml
index dea3399282..f3f7157861 100644
--- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-project-server:
     container_name: gov-project-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-project-server:0.3.36
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/gov-project-server:0.3.38
     ports:
       - "8102:8102"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
index da9e6907c3..be230acf39 100644
--- a/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
+++ b/epmet-module/gov-project/gov-project-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-project-server:
     container_name: gov-project-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.36
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-project-server:0.3.38
     ports:
       - "8102:8102"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml
index d4ea02c9c2..ab5057b85d 100644
--- a/epmet-module/gov-project/gov-project-server/pom.xml
+++ b/epmet-module/gov-project/gov-project-server/pom.xml
@@ -2,7 +2,7 @@
 
-    0.3.36
+    0.3.38
     
         gov-project
         com.epmet
@@ -147,7 +147,7 @@
                 
 
                 false
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
             
         
         
@@ -180,7 +180,7 @@
                 
 
                 true
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
             
         
         
@@ -210,7 +210,7 @@
                 
 
                 true
-                https://epmet-open.elinkservice.cn:7040/epmetscan/api
+                https://epmet-open.elinkservice.cn/api/epmetscan/api
             
         
     
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 548eb53128..db34280061 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
@@ -88,7 +88,8 @@
                  FROM
                      project_staff ps
                          INNER JOIN  project_process pp ON ps.PROCESS_ID = pp.ID AND pp.DEL_FLAG = '0'
-                         AND pp.OPERATION != 'created'
+                         AND (pp.OPERATION != 'created'
+                         OR (pp.OPERATION = 'created' AND pp.STAFF_ID != #{userId}))
                  WHERE
                      ps.DEL_FLAG = '0'
                    AND ps.STAFF_ID = #{userId}
diff --git a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml
index 1791e400f3..315b948a99 100644
--- a/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   gov-voice-server:
     container_name: gov-voice-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/gov-voice-server:0.3.58
+    image: 192.168.1.130:10080/epmet-cloud-dev/gov-voice-server:0.3.60
     ports:
       - "8105:8105"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/gov-voice/gov-voice-server/pom.xml b/epmet-module/gov-voice/gov-voice-server/pom.xml
index 41174b5606..8076291c2a 100644
--- a/epmet-module/gov-voice/gov-voice-server/pom.xml
+++ b/epmet-module/gov-voice/gov-voice-server/pom.xml
@@ -3,7 +3,7 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     4.0.0
-    0.3.58
+    0.3.60
     
         gov-voice
         com.epmet
@@ -134,7 +134,7 @@
                 
 
                 false
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
             
         
         
@@ -167,7 +167,7 @@
                 
 
                 true
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
             
         
         
@@ -197,7 +197,7 @@
                 
 
                 true
-                https://epmet-open.elinkservice.cn:7040/epmetscan/api
+                https://epmet-open.elinkservice.cn/api/epmetscan/api
             
         
     
diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java
index 319a1e4506..59e311c943 100644
--- a/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java
+++ b/epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/DraftServiceImpl.java
@@ -150,7 +150,7 @@ public class DraftServiceImpl extends BaseServiceImpl imp
                 draftAttrResultDTO.setTagNameList(new String[0]);
             }
         } else {
-            logger.error(String.format("查询草稿属性失败,草稿id=%s", formDTO.getDraftId()));
+            logger.warn(String.format("查询草稿属性为空,草稿id=%s", formDTO.getDraftId()));
         }
         return draftAttrResultDTO;
     }
diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml
index 8996330fef..6e0130dee1 100644
--- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   oper-crm-server:
     container_name: oper-crm-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/oper-crm-server:0.3.24
+    image: 192.168.1.130:10080/epmet-cloud-dev/oper-crm-server:0.3.25
     ports:
       - "8090:8090"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml
index 0092abe02e..f2e667a0b5 100644
--- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   oper-crm-server:
     container_name: oper-crm-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/oper-crm-server:0.3.24
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/oper-crm-server:0.3.25
     ports:
       - "8090:8090"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml
index 3d3ff6c52a..ddaa785107 100644
--- a/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml
+++ b/epmet-module/oper-crm/oper-crm-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   oper-crm-server:
     container_name: oper-crm-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-crm-server:0.3.24
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-crm-server:0.3.25
     ports:
       - "8090:8090"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/oper-crm/oper-crm-server/pom.xml b/epmet-module/oper-crm/oper-crm-server/pom.xml
index 9e0323aec1..e2b5bca7e2 100644
--- a/epmet-module/oper-crm/oper-crm-server/pom.xml
+++ b/epmet-module/oper-crm/oper-crm-server/pom.xml
@@ -2,7 +2,7 @@
 
     4.0.0
-    0.3.24
+    0.3.25
     
         com.epmet
         oper-crm
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
index 4331a01de9..dbd6c2a666 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
@@ -17,6 +17,7 @@
 
 package com.epmet.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@@ -42,7 +43,6 @@ import com.epmet.feign.OperCustomizeFeignClient;
 import com.epmet.redis.CustomerRedis;
 import com.epmet.service.CustomerService;
 import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -257,20 +257,24 @@ public class CustomerServiceImpl extends BaseServiceImpl getRoleResult = epmetUserFeignClient.getRoleOfCustomer(customerRoleForm);
         if (!getRoleResult.success()) {
+            log.error("查询客户具有指定RoleKey的角色信息失败:".concat(getRoleResult.toString()));
             throw new RenException("查询客户具有指定RoleKey的角色信息失败:".concat(getRoleResult.toString()));
         }
 
         if (getRoleResult.getData() == null) {
+            log.error("未查询到客户具有指定RoleKey的角色信息:".concat(getRoleResult.toString()));
             throw new RenException("未查询到客户具有指定RoleKey的角色信息:".concat(getRoleResult.toString()));
         }
 
         // 查询客户根级组织
         Result customerRootAgencyResult = govOrgFeignClient.getCustomerRootAgency(form.getCustomerId());
         if (!customerRootAgencyResult.success()) {
+            log.error("查询客户根级组织失败:".concat(getRoleResult.toString()));
             throw new RenException("查询客户根级组织失败:".concat(getRoleResult.toString()));
         }
 
         if (customerRootAgencyResult.getData() == null) {
+            log.error("新增客户管理员失败,没有查询到客户根级组织,无法设置管理员:".concat(getRoleResult.toString()));
             throw new RenException("没有查询到客户根级组织,无法设置管理员:".concat(getRoleResult.toString()));
         }
 
@@ -284,7 +288,8 @@ public class CustomerServiceImpl extends BaseServiceImpl
     4.0.0
-    0.3.58
+    0.3.61
     
         com.epmet
         resi-group
@@ -150,7 +150,7 @@
                 
 
                 false
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
             
         
         
@@ -182,7 +182,7 @@
                 false
                 
                 true
-                https://epmet-dev.elinkservice.cn/epmetscan/api
+                https://epmet-dev.elinkservice.cn/api/epmetscan/api
             
         
         
@@ -211,7 +211,7 @@
                 false
                 
                 true
-                https://epmet-open.elinkservice.cn:7040/epmetscan/api
+                https://epmet-open.elinkservice.cn/api/epmetscan/api
             
         
     
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
index dd386b6ebb..881374f12c 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
@@ -185,6 +185,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl myGroupList = baseDao.selectListMyGroup(myGroupFormDTO);
+		if (null == myGroupList || myGroupList.size() < 1) {
+			logger.info(String.format("我的小组查询为空,selectListMyGroup入参%s", JSON.toJSONString(myGroupFormDTO)));
+			return new ArrayList<>();
+		}
 		return myGroupList;
 	}
 
@@ -201,6 +205,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl recommendGroupList = baseDao.selectListRecommendGroup(recommendGroupFormDTO);
+		if (null == recommendGroupList || recommendGroupList.size() == 0) {
+			logger.info(String.format("推荐小组查询为空,selectListRecommendGroup入参%s", JSON.toJSONString(recommendGroupFormDTO)));
+			return new ArrayList<>();
+		}
 		for (RecommendGroupResultDTO recommendGroupResultDTO : recommendGroupList) {
 			GroupMemeberOperationDTO groupMemeberOperationDTO = groupMemeberOperationService.selectLatestRecord(recommendGroupResultDTO.getGroupId(),
 					recommendGroupFormDTO.getUserId());
@@ -223,6 +231,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl createdResultDTOList = baseDao.selectListMyCreated(createdFormDTO);
+		if (null == createdResultDTOList || createdResultDTOList.size() == 0) {
+			logger.info(String.format("我创建的小组查询为空,selectListMyCreated入参%s", JSON.toJSONString(createdFormDTO)));
+			return new ArrayList<>();
+		}
 		return createdResultDTOList;
 	}
 
@@ -239,8 +251,8 @@ public class ResiGroupServiceImpl extends BaseServiceImpl resiGroupEntityList = this.getResiGroupEntityList(applyCreateGroupFormDTO);
 		if (null != resiGroupEntityList && resiGroupEntityList.size() > 0) {
-			logger.error(String.format("创建小组异常:%s",EpmetErrorCode.GROUP_ALREADY_EXISTED.getMsg()));
+			logger.info(String.format("创建小组异常:%s",EpmetErrorCode.GROUP_ALREADY_EXISTED.getMsg()));
 			throw new RenException(EpmetErrorCode.GROUP_ALREADY_EXISTED.getCode());
 		}
-		//2、插入一条待审核的组信息
-		ResiGroupEntity resiGroupEntity = this.structureResiGroupEntity(applyCreateGroupFormDTO);
-		insert(resiGroupEntity);
-		//3.1、查询当前申请人的身份,生成对应格式的消息内容
+		//2.1、查询当前申请人的身份,生成对应格式的消息内容
         UserRoleDTO userRoleDTO = this.checkPartyMemberOrWarmHeated(applyCreateGroupFormDTO.getApp(),
                 applyCreateGroupFormDTO.getUserId(),
                 applyCreateGroupFormDTO.getCustomerId(),
                 applyCreateGroupFormDTO.getGridId());
         if (!NumConstant.ONE_STR.equals(userRoleDTO.getPartymemberFlag()) && !NumConstant.ONE_STR.equals(userRoleDTO.getWarmHeartedFlag())) {
-			logger.error(String.format("创建小组异常:%s",EpmetErrorCode.CANNOT_CREATE_GROUP.getMsg()));
+			logger.info(String.format("创建小组异常:%s",EpmetErrorCode.CANNOT_CREATE_GROUP.getMsg()));
 			throw new RenException(EpmetErrorCode.CANNOT_CREATE_GROUP.getCode());
         }
         String roleName = "";
@@ -336,6 +347,10 @@ public class ResiGroupServiceImpl extends BaseServiceImpl result = epmetUserFeignClient.getUserResiInfoDTO(resiUserInfoFormDTO);
 		if (!result.success() || null == result.getData() || StringUtils.isBlank(result.getData().getRegMobile())) {
-			logger.error("加入小组界面初始化,居民注册信息查询失败");
+			logger.info(String.format("加入小组界面初始化查询成功,当前用户非注册居民,epmet-user-server接口入参%s,返回%s",JSON.toJSONString(resiUserInfoFormDTO),JSON.toJSONString(result)));
 			throw new RenException(EpmetErrorCode.CANNOT_JOIN_GROUP.getCode());
 		}
 	}
@@ -466,7 +481,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId());
-		if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
-			groupInfo.setLeaderName(groupLeaderUserInfo.getData().getShowName());
-		} else {
-			logger.error(String.format("居民端用户【%s】根据链接【%s】查看群邀请信息调用%s服务,获取组长信息异常,错误码:%s,错误提示:%s",formDTO.getUserId(),formDTO.getInvitationId(), ServiceConstant.EPMET_USER_SERVER,groupLeaderUserInfo.getCode(), groupLeaderUserInfo.getMsg()));
+		if(null!=groupInfo){
+			linkGroupInfoResultDTO.setGroupInfo(groupInfo);
+			//3、获取组长信息
+			Result groupLeaderUserInfo = this.getGroupLeaderUserInfo(groupInfo.getGroupId());
+			if (groupLeaderUserInfo.success() && null != groupLeaderUserInfo.getData()) {
+				groupInfo.setLeaderName(groupLeaderUserInfo.getData().getShowName());
+			} else {
+				logger.error(String.format("居民端用户【%s】根据链接【%s】查看群邀请信息调用epmet-user-server服务,获取组长信息异常,返参%s",
+						formDTO.getUserId(),
+						formDTO.getInvitationId(),
+						JSON.toJSONString(groupLeaderUserInfo)));
+				groupInfo.setLeaderName("");
+			}
+		}else{
+			logger.error(String.format("根据群邀请连接查询群基本信息异常,groupInfo is null,selectLinkGroupInfo入参groupId=%s",groupInvitationDTO.getResiGroupId()));
+			linkGroupInfoResultDTO.setGroupInfo(new LinkGroupInfoDTO());
 		}
-		linkGroupInfoResultDTO.setGroupInfo(groupInfo);
 		//4、记录用户邀请关系
 		this.saveUserInvitation(groupInvitationDTO,formDTO);
 		return linkGroupInfoResultDTO;
@@ -244,7 +254,7 @@ public class GroupInvitationServiceImpl extends BaseServiceImpl();
 		}
 		ResiGroupMemberDTO groupMemberDTO = resiGroupDao.selectGroupLeader(groupId);
 		if (null == groupMemberDTO) {
+			logger.error("查询小组组长信息为空,selectGroupLeader入参groupId=%s",groupId);
 			return new Result<>();
 		}
 		UserResiInfoFormDTO resiUserInfoFormDTO = new UserResiInfoFormDTO();
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
index fa9b5034c0..803ea51d94 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
@@ -218,11 +218,11 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl list = baseDao.selectListGroupMember(groupMemberListFormDTO);
-		if (null != list && list.size() > 0) {
-			List userIdList=new ArrayList<>();
-			for (GroupMemberListResultDTO groupMemberListResultDTO : list) {
-				userIdList.add(groupMemberListResultDTO.getUserId());
-			}
-			UserResiInfoListFormDTO formDTO=new UserResiInfoListFormDTO();
-			formDTO.setUserIdList(userIdList);
-			Result> userResiInfoDTOListResult=epmetUserFeignClient.getUserResiInfoList(formDTO);
-			if(userResiInfoDTOListResult.success()){
-				for(UserResiInfoResultDTO userResiInfo:userResiInfoDTOListResult.getData()){
-					for (GroupMemberListResultDTO groupMember : list) {
-						if(groupMember.getUserId().equals(userResiInfo.getUserId())){
-							groupMember.setUserShowName(userResiInfo.getShowName());
-							groupMember.setHeadPhoto(userResiInfo.getHeadPhoto());
-							break;
-						}
+		if (null == list || list.size() == 0) {
+			logger.error(String.format("群成员列表查询列表为空,selectListGroupMember入参%s",JSON.toJSONString(groupMemberListFormDTO)));
+			return new ArrayList<>();
+		}
+		List userIdList=new ArrayList<>();
+		for (GroupMemberListResultDTO groupMemberListResultDTO : list) {
+			userIdList.add(groupMemberListResultDTO.getUserId());
+		}
+		UserResiInfoListFormDTO formDTO=new UserResiInfoListFormDTO();
+		formDTO.setUserIdList(userIdList);
+		Result> userResiInfoDTOListResult=epmetUserFeignClient.getUserResiInfoList(formDTO);
+		if(userResiInfoDTOListResult.success()){
+			for(UserResiInfoResultDTO userResiInfo:userResiInfoDTOListResult.getData()){
+				for (GroupMemberListResultDTO groupMember : list) {
+					if(groupMember.getUserId().equals(userResiInfo.getUserId())){
+						groupMember.setUserShowName(userResiInfo.getShowName());
+						groupMember.setHeadPhoto(userResiInfo.getHeadPhoto());
+						break;
 					}
 				}
-			}else{
-				logger.error(String.format("居民端用户【%s】查看群成员列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s", groupMemberListFormDTO.getUserId(), ServiceConstant.EPMET_USER_SERVER, userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getMsg()));
 			}
+		}else{
+			logger.warn(String.format("居民端用户【%s】查看群成员列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s",
+					groupMemberListFormDTO.getUserId(),
+					ServiceConstant.EPMET_USER_SERVER,
+					userResiInfoDTOListResult.getCode(),
+					userResiInfoDTOListResult.getMsg()));
 		}
 		return list;
 	}
@@ -324,28 +330,29 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl list = baseDao.selectListApplyingMember(applyingMemberFormDTO);
-		if (null != list && list.size() > 0) {
-			List userIdList=new ArrayList<>();
-			for (ApplyingMemberResultDTO applyingMemberResultDTO : list) {
-				userIdList.add(applyingMemberResultDTO.getApplyUserId());
-			}
-			UserResiInfoListFormDTO formDTO=new UserResiInfoListFormDTO();
-			formDTO.setUserIdList(userIdList);
-			Result> userResiInfoDTOListResult=epmetUserFeignClient.getUserResiInfoList(formDTO);
-			if(userResiInfoDTOListResult.success()){
-				for (ApplyingMemberResultDTO memberInfo : list) {
-					for(UserResiInfoResultDTO userResiInfo:userResiInfoDTOListResult.getData()){
-						if(memberInfo.getApplyUserId().equals(userResiInfo.getUserId())){
-							memberInfo.setApplyUserName(userResiInfo.getShowName());
-							memberInfo.setApplyUserHeadPhoto(userResiInfo.getHeadPhoto());
-							break;
-						}
+		if (null == list || list.size() == 0) {
+			logger.info(String.format("查看入群待审核列表返回为空,selectListApplyingMember入参%s",JSON.toJSONString(applyingMemberFormDTO)));
+			return new ArrayList<>();
+		}
+		List userIdList=new ArrayList<>();
+		for (ApplyingMemberResultDTO applyingMemberResultDTO : list) {
+			userIdList.add(applyingMemberResultDTO.getApplyUserId());
+		}
+		UserResiInfoListFormDTO formDTO=new UserResiInfoListFormDTO();
+		formDTO.setUserIdList(userIdList);
+		Result> userResiInfoDTOListResult=epmetUserFeignClient.getUserResiInfoList(formDTO);
+		if(userResiInfoDTOListResult.success()){
+			for (ApplyingMemberResultDTO memberInfo : list) {
+				for(UserResiInfoResultDTO userResiInfo:userResiInfoDTOListResult.getData()){
+					if(memberInfo.getApplyUserId().equals(userResiInfo.getUserId())){
+						memberInfo.setApplyUserName(userResiInfo.getShowName());
+						memberInfo.setApplyUserHeadPhoto(userResiInfo.getHeadPhoto());
+						break;
 					}
 				}
-			}else{
-				logger.error(String.format("居民端组长【%s】查看入群待审核列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s",applyingMemberFormDTO.getUserId(), ServiceConstant.EPMET_USER_SERVER, userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getMsg()));
 			}
-
+		}else{
+			logger.warn(String.format("居民端组长【%s】查看入群待审核列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s",applyingMemberFormDTO.getUserId(), ServiceConstant.EPMET_USER_SERVER, userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getMsg()));
 		}
 		return list;
 	}
@@ -363,13 +370,13 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl
     4.0.0
-    0.3.16
+    0.3.17
     
         com.epmet
         resi-guide
diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java
index 875d4badd0..57ad839d42 100644
--- a/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java
+++ b/epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/controller/StrangerResiGuideController.java
@@ -25,6 +25,7 @@ import com.epmet.dto.form.CustomerGridListFormDTO;
 import com.epmet.dto.form.StrangerFormDTO;
 import com.epmet.dto.result.CustomerGridForStrangerResultDTO;
 import com.epmet.dto.result.HomeDesignByCustomerResultDTO;
+import com.epmet.dto.result.MarketContactInfoResultDTO;
 import com.epmet.service.StrangerAccessRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -91,4 +92,20 @@ public class StrangerResiGuideController {
 		return strangerAccessRecordService.listCustomerGrid(customerGridListFormDTO);
 	}
 
+	/**
+	 * 获取市场联系方式
+	 *
+	 * @param
+	 * @return com.epmet.commons.tools.utils.Result
+	 * @author zhaoqifeng
+	 * @date 2020/7/6 14:11
+	 */
+	@PostMapping("marketcontactinfo")
+	public Result marketContactInfo() {
+		MarketContactInfoResultDTO dto = new MarketContactInfoResultDTO();
+		dto.setPhone("13853211795");
+		dto.setQrUrl("");
+		return new Result().ok(dto);
+	}
+
 }
diff --git a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml
index 453da73a4a..8e4d0f9d56 100644
--- a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml
+++ b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   resi-mine-server:
     container_name: resi-mine-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/resi-mine-server:0.3.26
+    image: 192.168.1.130:10080/epmet-cloud-dev/resi-mine-server:0.3.29
     ports:
       - "8094:8094"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml
index a1a438c493..ed98c25963 100644
--- a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml
+++ b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   resi-mine-server:
     container_name: resi-mine-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/resi-mine-server:0.3.26
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/resi-mine-server:0.3.28
     ports:
       - "8094:8094"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml
index c2d556c05d..7c0df9fcde 100644
--- a/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml
+++ b/epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   resi-mine-server:
     container_name: resi-mine-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-mine-server:0.3.26
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-mine-server:0.3.28
     ports:
       - "8094:8094"
     network_mode: host # 使用现有网络
diff --git a/epmet-module/resi-mine/resi-mine-server/pom.xml b/epmet-module/resi-mine/resi-mine-server/pom.xml
index 15a03f0980..37e10716a0 100644
--- a/epmet-module/resi-mine/resi-mine-server/pom.xml
+++ b/epmet-module/resi-mine/resi-mine-server/pom.xml
@@ -2,7 +2,7 @@
 
     4.0.0
-    0.3.26
+    0.3.29
     
         com.epmet
         resi-mine
diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java
index 61f9e675b3..279b7eae9e 100644
--- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java
+++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java
@@ -1,8 +1,8 @@
 package com.epmet.modules.grid.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.epmet.commons.tools.constant.AppClientConstant;
 import com.epmet.commons.tools.constant.NumConstant;
-import com.epmet.commons.tools.constant.ServiceConstant;
 import com.epmet.commons.tools.exception.RenException;
 import com.epmet.commons.tools.security.dto.TokenDto;
 import com.epmet.commons.tools.utils.Result;
@@ -44,19 +44,20 @@ public class ResiMineGridServiceImpl implements ResiMineGridService {
 	@Override
 	public LatestGridInfoResultDTO getLatestGridInfo(TokenDto tokenDto) {
 		if (null == tokenDto || StringUtils.isBlank(tokenDto.getUserId())) {
-			logger.error(String.format("居民端【%s】获取用户最近访问的网格失败:错误提示:%s",tokenDto.getUserId(),ModuleConstant.USER_NOT_NULL));
+			logger.error(String.format("居民端获取用户最近访问的网格失败:tokenDto is null or userId is null"));
 			throw new RenException(ModuleConstant.USER_NOT_NULL);
 		}
 		if(!AppClientConstant.APP_RESI.equals(tokenDto.getApp())){
-			logger.error(String.format("居民端【%s】获取用户最近访问的网格失败,错误提示:%s",tokenDto.getUserId(),ModuleConstant.FOR_RESI_CALL));
+			logger.error(String.format("居民端获取用户最近访问的网格失败,userId:%s,错误提示:%s",tokenDto.getUserId(),ModuleConstant.FOR_RESI_CALL));
 			throw new RenException(ModuleConstant.FOR_RESI_CALL);
 		}
+		logger.info(String.format("居民端获取用户最近访问网格入参%s", JSON.toJSONString(tokenDto)));
 		Result userResult=epmetUserFeignClient.getLatestGridInfoByUserId(tokenDto.getUserId());
 		if(userResult.success()&&null!=userResult.getData()){
 			return userResult.getData();
 		}
-		logger.error(String.format("居民端用户【%s】获取用户最近访问网格失败,调用%s服务入参userId:%s,错误码:%s,错误提示:%s", tokenDto.getUserId(),ServiceConstant.EPMET_USER_SERVER,tokenDto.getUserId(),userResult.getCode(),userResult.getMsg()));
-		return null;
+		logger.warn(String.format("居民端获取用户最近访问网格失败,调用epmet-user-server服务返回%s",JSON.toJSONString(userResult)));
+		return null ;
 	}
 
 	/**
diff --git a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml
index a61c5f93a7..4c00e37218 100644
--- a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml
+++ b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-openapi-scan:
     container_name: epmet-openapi-scan-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/epmet-openapi-scan:0.3.14
+    image: 192.168.1.130:10080/epmet-cloud-dev/epmet-openapi-scan:0.3.16
     ports:
       - "8107:8107"
     network_mode: host # 不会创建新的网络
diff --git a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml
index 93286925a6..2ad59ed51e 100644
--- a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml
+++ b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-openapi-scan:
     container_name: epmet-openapi-scan-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-openapi-scan:0.3.14
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-openapi-scan:0.3.16
     ports:
       - "8107:8107"
     network_mode: host # 不会创建新的网络
diff --git a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml
index a969f89828..4e531e43a8 100644
--- a/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml
+++ b/epmet-openapi/epmet-openapi-scan/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-openapi-scan:
     container_name: epmet-openapi-scan-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-openapi-scan:0.3.14
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-openapi-scan:0.3.16
     ports:
       - "8107:8107"
     network_mode: host # 不会创建新的网络
diff --git a/epmet-openapi/epmet-openapi-scan/pom.xml b/epmet-openapi/epmet-openapi-scan/pom.xml
index d5768cbe79..41f7844d34 100644
--- a/epmet-openapi/epmet-openapi-scan/pom.xml
+++ b/epmet-openapi/epmet-openapi-scan/pom.xml
@@ -4,7 +4,7 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     4.0.0
-    0.3.14
+    0.3.16
     epmet-openapi-scan
     jar
 
diff --git a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SuggestionEnum.java b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SuggestionEnum.java
index 455b2975f4..3881508341 100644
--- a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SuggestionEnum.java
+++ b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SuggestionEnum.java
@@ -4,14 +4,14 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * desc:文本检测建议
+ * desc:检测建议
  * @author jianjun liu
  * @date 2020-06-04 21:39
  **/
 public enum SuggestionEnum {
 	PASS("pass", "正常"),
 	REVIEW("review", "需要人工审核"),
-	BLOCK("block", "文本违规");
+	BLOCK("block", "内容违规");
 
 	private String code;
 	private String desc;
diff --git a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SysResponseEnum.java b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SysResponseEnum.java
index 330cdb87e8..67ee3cc9d2 100644
--- a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SysResponseEnum.java
+++ b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/common/enu/SysResponseEnum.java
@@ -2,7 +2,6 @@ package com.epmet.openapi.scan.common.enu;
 
 /**
  * @author jianjun liu
- * @email liujianjun@yunzongnet.com
  * @date 2020-06-04 21:39
  **/
 public enum SysResponseEnum {
diff --git a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/service/impl/ScanServiceImpl.java b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/service/impl/ScanServiceImpl.java
index 709fc7aef4..58fd107bc0 100644
--- a/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/service/impl/ScanServiceImpl.java
+++ b/epmet-openapi/epmet-openapi-scan/src/main/java/com/epmet/openapi/scan/service/impl/ScanServiceImpl.java
@@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.AcsRequest;
-import com.aliyuncs.exceptions.ClientException;
-import com.aliyuncs.exceptions.ServerException;
 import com.aliyuncs.green.model.v20180509.ImageAsyncScanRequest;
 import com.aliyuncs.green.model.v20180509.ImageSyncScanRequest;
 import com.aliyuncs.green.model.v20180509.TextScanRequest;
@@ -162,7 +160,7 @@ public class ScanServiceImpl implements ScanService {
 		imageAsyncScanRequest.setReadTimeout(6000);
 
 		try {
-			ImgAsyncScanResult scanResult = executeAsyncImg(imageAsyncScanRequest);
+			ImgAsyncScanResult scanResult = null;//executeAsyncImg(imageAsyncScanRequest);
 			return new Result().ok(scanResult);
 		} catch (Exception e) {
 			log.error("sendImgScan execute Exception", e);
@@ -177,98 +175,52 @@ public class ScanServiceImpl implements ScanService {
 
 			if (httpResponse.isSuccess()) {
 				JSONObject scrResponse = JSON.parseObject(new String(httpResponse.getHttpContent(), SysConstant.UTF8));
-				//System.out.println(JSON.toJSONString(scrResponse, true));
 				if (HttpStatus.SC_OK == scrResponse.getInteger(SysConstant.CODE)) {
 					//任务 列表
 					List scanTaskResults = scrResponse.getJSONArray(SysConstant.DATA).toJavaList(ScanTaskResult.class);
 					for (ScanTaskResult taskResult : scanTaskResults) {
 						result.getDetails().add(taskResult);
 						//又根据场景不同
-						if (HttpStatus.SC_OK == taskResult.getCode()) {
-							//如果是多个场景 则为对个 BaseScanResult
-							List sceneResults = taskResult.getResults();
-							//是文本检测 目前就一种场景
-							boolean isSuccess = true;
-							for (SceneDetailResult sceneResult : sceneResults) {
-								String suggestion = sceneResult.getSuggestion();
-								if (SuggestionEnum.PASS.getCode().equals(suggestion)) {
-									isSuccess = false;
-									break;
-								}
-							}
-							if (isSuccess){
+						if (HttpStatus.SC_OK != taskResult.getCode()) {
+							if (!result.getFailDataIds().contains(taskResult.getDataId())) {
 								result.getFailDataIds().add(taskResult.getDataId());
-							} else {
-								result.getSuccessDataIds().add(taskResult.getDataId());
+								log.warn("executeSyncText task process fail:code:{},result:{}", taskResult.getCode(), JSON.toJSONString(taskResult));
 							}
+							continue;
+						}
+						//如果是多个场景 则为对个 BaseScanResult
+						List sceneResults = taskResult.getResults();
+						//是文本检测 目前就一种场景
+						boolean isSuccess = true;
+						for (SceneDetailResult sceneResult : sceneResults) {
+							String suggestion = sceneResult.getSuggestion();
+							if (SuggestionEnum.BLOCK.getCode().equals(suggestion)) {
+								isSuccess = false;
+								break;
+							}
+						}
+						if (isSuccess) {
+							result.getSuccessDataIds().add(taskResult.getDataId());
 						} else {
+							log.warn("executeSyncText dataId:{} block:{}", taskResult.getDataId(), JSON.toJSONString(taskResult.getResults()));
 							result.getFailDataIds().add(taskResult.getDataId());
-							log.warn("executeSyncText task process fail:code:{},msg:{}", taskResult.getCode(), taskResult.getMsg());
-							throw new ExeCuteHttpException(" executeSyncTexttask process fail:code:" + taskResult.getCode() + ",msg:" + taskResult.getMsg());
 						}
 					}
 					return result;
 				} else {
+					log.warn("executeSyncText response not success. code:{}", scrResponse.getInteger(SysConstant.CODE));
 					throw new ExeCuteHttpException("executeSyncText detect not success. code:" + scrResponse.getInteger(SysConstant.CODE));
 				}
 			} else {
-				log.warn("executeSyncText response not success. status:" + httpResponse.getStatus());
+				log.warn("executeSyncText response not success. status:{}", httpResponse.getStatus());
 				throw new ExeCuteHttpException("response not success. status:" + httpResponse.getStatus());
 			}
-
 		} catch (Exception e) {
-			log.warn("executeSyncImg exception", e);
+			log.warn("executeSyncText exception", e);
 			throw new ExeCuteHttpException(SysResponseEnum.EXCEPTION.getCode(), SysResponseEnum.EXCEPTION.getMsg());
 		}
 	}
 
-
-	/**
-	 * desc:异步 检查图片 TODO 结果处理
-	 *
-	 * @param request
-	 * @return
-	 */
-	private ImgAsyncScanResult executeAsyncImg(AcsRequest> request) {
-		ImgAsyncScanResult result = new ImgAsyncScanResult();
-		try {
-			HttpResponse httpResponse = IAcsClientUtil.getIAcsClient().doAction(request);
-			if (httpResponse.isSuccess()) {
-				JSONObject scrResponse = JSON.parseObject(new String(httpResponse.getHttpContent(), SysConstant.UTF8));
-				//System.out.println(JSON.toJSONString(scrResponse, true));
-				if (HttpStatus.SC_OK == scrResponse.getInteger(SysConstant.CODE)) {
-					JSONArray taskResults = scrResponse.getJSONArray(SysConstant.DATA);
-					for (Object taskResult : taskResults) {
-						if (HttpStatus.SC_OK == ((JSONObject) taskResult).getInteger(SysConstant.CODE)) {
-							String taskId = ((JSONObject) taskResult).getString("taskId");
-							// 将taskId 保存下来,间隔一段时间来轮询结果, 参照ImageAsyncScanResultsRequest
-							result.getSuccessTaskIds().add(taskId);
-						} else {
-							String taskId = ((JSONObject) taskResult).getString("taskId");
-							result.getFailTaskIds().add(taskId);
-							log.warn("task process fail:{}", ((JSONObject) taskResult).getInteger(SysConstant.CODE));
-							continue;
-						}
-					}
-					return result;
-				} else {
-					System.out.println("detect not success. code:" + scrResponse.getInteger(SysConstant.CODE));
-					throw new ExeCuteHttpException("detect not success. code:" + scrResponse.getInteger(SysConstant.CODE));
-				}
-			} else {
-				System.out.println("response not success. status:" + httpResponse.getStatus());
-				throw new ExeCuteHttpException("response not success. status:" + httpResponse.getStatus());
-			}
-		} catch (ServerException e) {
-			e.printStackTrace();
-		} catch (ClientException e) {
-			e.printStackTrace();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
-
 	private SyncScanResult executeSyncImg(AcsRequest> request) {
 		SyncScanResult result = new SyncScanResult();
 		try {
@@ -283,6 +235,7 @@ public class ScanServiceImpl implements ScanService {
 						if (HttpStatus.SC_OK != taskResult.getCode()) {
 							if (!result.getFailDataIds().contains(taskResult.getDataId())) {
 								result.getFailDataIds().add(taskResult.getDataId());
+								log.warn("executeSyncImg detect not success. code:{},result:{}", taskResult.getCode(), JSON.toJSONString(taskResult));
 							}
 							continue;
 						}
@@ -297,19 +250,20 @@ public class ScanServiceImpl implements ScanService {
 								break;
 							}
 						}
-						if (isSuccess){
+						if (isSuccess) {
 							result.getSuccessDataIds().add(taskResult.getDataId());
-						}else{
+						} else {
+							log.warn("executeSyncImg dataId:{} block:{}", taskResult.getDataId(), JSON.toJSONString(taskResult.getResults()));
 							result.getFailDataIds().add(taskResult.getDataId());
 						}
 					}
 					return result;
 				} else {
-					log.warn("executeSyncImg detect not success. code:", scrResponse.getInteger(SysConstant.CODE));
+					log.warn("executeSyncImg detect not success. code:{}", scrResponse.getInteger(SysConstant.CODE));
 					throw new ExeCuteHttpException("detect not success. code:" + scrResponse.getInteger(SysConstant.CODE));
 				}
 			} else {
-				log.warn("executeSyncImg response not success. status:" + httpResponse.getStatus());
+				log.warn("executeSyncImg response not success. status:{}", httpResponse.getStatus());
 				throw new ExeCuteHttpException("response not success. status:" + httpResponse.getStatus());
 			}
 		} catch (Exception e) {
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java
index 829a1cd2d5..ddf04a0fe7 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/LatestGridInfoResultDTO.java
@@ -22,4 +22,5 @@ public class LatestGridInfoResultDTO implements Serializable {
 	 * 用户最后一次访问的网格
 	 */
 	private String gridId;
+
 }
diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
index 697c8484ae..171760d417 100644
--- a/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
+++ b/epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-user-server:
     container_name: epmet-user-server-dev
-    image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.73
+    image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.75
     ports:
       - "8087:8087"
     network_mode: host # 不会创建新的网络
diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml b/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml
index b06b4bb473..9aaabd5324 100644
--- a/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml
+++ b/epmet-user/epmet-user-server/deploy/docker-compose-prod.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-user-server:
     container_name: epmet-user-server-prod
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-user-server:0.3.73
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/epmet-user-server:0.3.75
     ports:
       - "8087:8087"
     network_mode: host # 不会创建新的网络
diff --git a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml
index 9bb9ca0576..0cc2683457 100644
--- a/epmet-user/epmet-user-server/deploy/docker-compose-test.yml
+++ b/epmet-user/epmet-user-server/deploy/docker-compose-test.yml
@@ -2,7 +2,7 @@ version: "3.7"
 services:
   epmet-user-server:
     container_name: epmet-user-server-test
-    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-user-server:0.3.73
+    image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-user-server:0.3.75
     ports:
       - "8087:8087"
     network_mode: host # 不会创建新的网络
diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml
index 7a5fa0c7cf..0a4438531d 100644
--- a/epmet-user/epmet-user-server/pom.xml
+++ b/epmet-user/epmet-user-server/pom.xml
@@ -2,7 +2,7 @@
 
     4.0.0
-    0.3.73
+    0.3.75
     
         com.epmet
         epmet-user
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java
index a14a1b002c..8f24ebf889 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java
@@ -22,11 +22,9 @@ 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.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.GridVisitedConstant;
 import com.epmet.dao.GridLatestDao;
 import com.epmet.dto.CustomerGridDTO;
 import com.epmet.dto.GridLatestDTO;
@@ -149,14 +147,10 @@ public class GridLatestServiceImpl extends BaseServiceImpl getLatestGridInfoByUserId(String userId) {
-        if(StringUtils.isBlank(userId)){
-            logger.error(GridVisitedConstant.USER_ID_NOTNULL);
-            throw new RenException(GridVisitedConstant.USER_ID_NOTNULL);
-        }
-        LatestGridInfoResultDTO latestGridInfoResultDTO = baseDao.selectLatestGridInfoByUserId(userId);
-        if (null == latestGridInfoResultDTO) {
-            return new Result<>();
-        }
+        LatestGridInfoResultDTO latestGridInfoResultDTO= baseDao.selectLatestGridInfoByUserId(userId);
+        /*if (null == latestGridInfoResultDTO) {
+            return new Result().ok(new LatestGridInfoResultDTO());
+        }*/
         return new Result().ok(latestGridInfoResultDTO);
     }