diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
index 38a70d6582..1a26a3318f 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/aspect/BaseRequestLogAspect.java
@@ -67,7 +67,15 @@ public abstract class BaseRequestLogAspect {
             log.info(">>>>>>>>请求信息>>>>>>>>:事务流水号:{},url:{} ,method:{},请求参数:{}", transactionSerial, requestURI, method, objectsToString(args));
             result = point.proceed();
             resultInfoLog(transactionSerial, getExecPeriod(startTime), result);
-        } catch (RenException e) {
+        } catch (EpmetException e) {
+            result = handleRenException(e);
+            if (e.getCode() > 8000) {
+                resultWarnLog(transactionSerial, getExecPeriod(startTime), result, e.getInternalMsg(), ExceptionUtils.getErrorStackTrace(e));
+            } else {
+                resultErrorLog(transactionSerial, getExecPeriod(startTime), result, e.getInternalMsg(), ExceptionUtils.getErrorStackTrace(e));
+            }
+            return result;
+        }  catch (RenException e) {
             result = handleRenException(e);
             if (e.getCode() > 8000) {
                 resultWarnLog(transactionSerial, getExecPeriod(startTime), result, e.getInternalMsg(), ExceptionUtils.getErrorStackTrace(e));
@@ -213,6 +221,31 @@ public abstract class BaseRequestLogAspect {
         return result;
     }
 
+    /**
+     * 处理EpmetException
+     * @param e
+     * @return
+     */
+    private Result handleRenException(EpmetException e) {
+        if (e.getCode() > 8000) {
+            Result result;
+            if (StringUtils.isNotBlank(e.getMsg())) {
+                // 抛出异常的时候填写了自定义显示信息,把显示信息返回
+                result = new Result().error(e.getCode(), e.getMsg());
+            } else {
+                // 没有填写显示信息,则根据code找固定的显示信息
+                result = new Result().error(e.getCode());
+            }
+            result.setInternalMsg(e.getInternalMsg());
+            return result;
+        }
+        // 转化成服务器开小差...
+        Result result=new Result().error();
+        result.setInternalMsg(e.getInternalMsg());
+        //result.setMsg(e.getMsg());
+        return result;
+    }
+
     /**
      * 将请求对象转换为String
      * @param args
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 f078bd4bb6..ff06b69642 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
@@ -7,6 +7,9 @@ package com.epmet.commons.tools.exception;
  */
 public enum EpmetErrorCode {
 
+	/**
+	 * 错误code及消息
+	 */
 	ERR10002( 10002,"数据库中已存在该记录"),
 	/**
 	 * 账号或密码错误ACCOUNT_NOT_EXIST
@@ -212,8 +215,14 @@ public enum EpmetErrorCode {
 
 	SAME_RULE_NAME(8916,"该积分事件已存在,请重新调整保存"),
 	UP_LIMIT_POINT(8917,"积分上限需为单位积分倍数,请重新调整保存"),
-	BADGE_CHECK(8918,"");
+	BADGE_CHECK(8918,""),
+
 
+	//通用错误码 start
+	//通用的 错误消息自己定义返回
+	EPMET_COMMON_OPERATION_FAIL(9999,"网络开小差..."),
+	//通用错误码 end
+	;
 
 	private int code;
 	private String msg;
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetException.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetException.java
new file mode 100644
index 0000000000..6ce29315ba
--- /dev/null
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetException.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) 2018 人人开源 All rights reserved.
+ * 
+ * https://www.renren.io
+ * 
+ * 版权所有,侵权必究!
+ */
+
+package com.epmet.commons.tools.exception;
+
+
+import com.epmet.commons.tools.constant.StrConstant;
+import com.epmet.commons.tools.utils.MessageUtils;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * Epmet产品 自定义异常
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+public class EpmetException extends RuntimeException {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * desc:错误码
+     */
+    protected int code;
+    /**
+     * 显示给客户的消息
+     */
+    protected String msg;
+    /**
+     * 内部消息,用于服务之间传递错误信息,排错用
+     */
+    protected String internalMsg;
+
+    /**
+     * desc:指定错误码异常 外部异常内容为错误码对应的异常
+     * @param code
+     */
+    public EpmetException(int code) {
+        this(code, StrConstant.EPMETY_STR);
+    }
+
+    /**
+     * desc:指定内部错误消息的异常 外部异常内容为错误码对应的异常
+     * @param code
+     * @param internalMsg
+     */
+    public EpmetException(int code, String internalMsg) {
+        super(internalMsg);
+        this.code = code;
+        if (StringUtils.isBlank(internalMsg)) {
+            this.internalMsg = EpmetErrorCode.getMsg(code);
+            if (StringUtils.isBlank(this.internalMsg)) {
+                this.internalMsg = MessageUtils.getMessage(code, internalMsg);
+            }
+        } else {
+            this.internalMsg = internalMsg;
+        }
+    }
+
+    /**
+     * desc:指定错误码 内外部错误消息异常
+     * @param code
+     * @param internalMsg
+     * @param externalMsg
+     */
+    public EpmetException(int code, String internalMsg, String externalMsg) {
+        this(code, internalMsg);
+        this.msg = externalMsg;
+    }
+
+    /**
+     * desc:指定内部消息异常 外部错误码及消息为8000,服务器开小差
+     * @param internalMsg
+     */
+    public EpmetException(String internalMsg) {
+        super(internalMsg);
+        this.code = EpmetErrorCode.SERVER_ERROR.getCode();
+        this.internalMsg = internalMsg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public String getInternalMsg() {
+        return internalMsg;
+    }
+}
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java
index 73ae4bf6b5..ee1d4da142 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java
@@ -35,11 +35,12 @@ public class RenException extends RuntimeException {
      * 内部消息,用于服务之间传递错误信息,排错用
      */
     private String internalMsg;
-
+    @Deprecated  //已废弃 被EpmetException替代
     public RenException(int code) {
         this(code, "");
     }
 
+    @Deprecated  //已废弃 被EpmetException替代
     public RenException(int code, String internalMsg) {
         super(internalMsg);
         this.code = code;
@@ -53,11 +54,13 @@ public class RenException extends RuntimeException {
         }
     }
 
+    @Deprecated  //已废弃 被EpmetException替代
     public RenException(int code, String internalMsg, String msg, MessageMode mode) {
         this(code, internalMsg);
         this.msg = msg;
     }
 
+    @Deprecated  //已废弃 被EpmetException替代
     public RenException(String internalMsg) {
         super(internalMsg);
 //		this.code = ErrorCode.INTERNAL_SERVER_ERROR;
@@ -65,15 +68,12 @@ public class RenException extends RuntimeException {
         this.internalMsg = internalMsg;
     }
 
+    @Deprecated  //已废弃 被EpmetException替代
     public RenException(String internalMsg, String msg) {
         this(internalMsg);
         this.msg = msg;
     }
 
-
-
-
-
     public RenException(int code, String... params) {
         this.code = code;
         this.internalMsg = EpmetErrorCode.getMsg(code);
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
index 66313a3cb6..cfca4dec6f 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
@@ -743,44 +743,6 @@ public class DateUtils {
         return minusMonthId;
     }
 
-    /**
-     * @Description 根据传入的时间维度判断格式,日、周、月、季、年
-     * @param dimension
-     * @return
-     * @author wangc
-     * @date 2020.09.24 10:11
-    **/
-    public static String identifyTimeDimension(String dimension){
-        //yyyyMMdd    DATE_PATTERN_YYYYMMDD
-        //yyyyMM      DATE_PATTERN_YYYYMM
-        //yyyy        DATE_PATTERN_YYYY
-        //yyyyWcc
-        //yyyyQc
-        if(dimension.length() == NumConstant.EIGHT){
-
-           SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_YYYYMMDD);
-           try{ df.parse(dimension); }catch (ParseException e){ return null; }
-           return "date";
-
-        }else if(dimension.length() == NumConstant.FOUR){
-            SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_YYYY);
-            try{df.parse(dimension);}catch (ParseException e){return null;}
-            return "year";
-        }else if(dimension.length() == NumConstant.SEVEN){
-            if(dimension.contains("W")){
-                return "week";
-            }else return null;
-        }else if(dimension.length() == NumConstant.SIX){
-            if(dimension.contains("Q")){
-                return "quarter";
-            }else{
-                SimpleDateFormat df = new SimpleDateFormat(DATE_PATTERN_YYYYMM);
-                try{df.parse(dimension);}catch (ParseException e){return null;}
-                return "month";
-            }
-        }else return null;
-    }
-
     /**
      * 指定月份的开始时间
      * @param date
diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/AssertUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/AssertUtils.java
index 2f5dcd311a..d060fc5e6a 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/AssertUtils.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/AssertUtils.java
@@ -11,6 +11,7 @@ package com.epmet.commons.tools.validator;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ArrayUtil;
+import com.epmet.commons.tools.exception.EpmetException;
 import com.epmet.commons.tools.exception.ErrorCode;
 import com.epmet.commons.tools.exception.RenException;
 import org.apache.commons.lang3.StringUtils;
@@ -32,7 +33,7 @@ public class AssertUtils {
 
     public static void isBlank(String str, Integer code, String... params) {
         if(code == null){
-            throw new RenException(ErrorCode.NOT_NULL, "code");
+            throw new EpmetException(ErrorCode.NOT_NULL, "code");
         }
 
         if (StringUtils.isBlank(str)) {
@@ -46,7 +47,7 @@ public class AssertUtils {
 
     public static void isNull(Object object, Integer code, String... params) {
         if(code == null){
-            throw new RenException(ErrorCode.NOT_NULL, "code");
+            throw new EpmetException(ErrorCode.NOT_NULL, "code");
         }
 
         if (object == null) {
@@ -60,7 +61,7 @@ public class AssertUtils {
 
     public static void isArrayEmpty(Object[] array, Integer code, String... params) {
         if(code == null){
-            throw new RenException(ErrorCode.NOT_NULL, "code");
+            throw new EpmetException(ErrorCode.NOT_NULL, "code");
         }
 
         if(ArrayUtil.isEmpty(array)){
@@ -74,7 +75,7 @@ public class AssertUtils {
 
     public static void isListEmpty(List> list, Integer code, String... params) {
         if(code == null){
-            throw new RenException(ErrorCode.NOT_NULL, "code");
+            throw new EpmetException(ErrorCode.NOT_NULL, "code");
         }
 
         if(CollUtil.isEmpty(list)){
@@ -88,7 +89,7 @@ public class AssertUtils {
 
     public static void isMapEmpty(Map map, Integer code, String... params) {
         if(code == null){
-            throw new RenException(ErrorCode.NOT_NULL, "code");
+            throw new EpmetException(ErrorCode.NOT_NULL, "code");
         }
 
         if(MapUtil.isEmpty(map)){
diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java
index cce7f1bb65..4b7aeea782 100644
--- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java
+++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java
@@ -24,7 +24,7 @@ public class EventInfoResultDTO implements Serializable {
      */
     private String customerId;
 
-    private Integer detpId;
+    private String orgId;
 
     private String reporterId;
 
@@ -47,7 +47,7 @@ public class EventInfoResultDTO implements Serializable {
      * 事件类别
      */
     private String eventCategory;
-
+    private String parentEventCategory;
     /**
      * 上报时间 YYYY-MM-DD HH:MM:SS
      */
@@ -78,6 +78,8 @@ public class EventInfoResultDTO implements Serializable {
      */
     private String successfulOrNo;
 
+    private String status;
+
     /**
      * 办结层级
      01省、自治区、直辖市
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
index 74af482075..1ec4738376 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java
@@ -2,6 +2,7 @@ package com.epmet.service.evaluationindex.extract.toscreen.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.constant.StrConstant;
 import com.epmet.commons.tools.distributedlock.DistributedLock;
 import com.epmet.commons.tools.distributedlock.LockConstants;
 import com.epmet.commons.tools.enums.EnvEnum;
@@ -229,6 +230,15 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
                             log.error("基层治理-难点赌点抽取到大屏失败,customerId为:" + customerId + "dateId为:" + dateId, e);
                         }
                     }
+                    try {
+                        //基层治理 - 热心市民 screen_party_user_rank_data
+                        ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO();
+                        param.setCustomerId(customerId);
+                        param.setDateId(dateId);
+                        screenGrassrootsGovernDataAbsorptionService.userScoreDataHub(param);
+                    } catch (Exception e) {
+                        log.error("大屏热心市民/党员得分数据写入失败,参数为:{}" + customerId+ StrConstant.HYPHEN +dateId, e);
+                    }
                 } finally {
                     latch.countDown();
                     log.info("extractDaily 2 thread run end ========= dateId:{},customerId:{}", dateId, customerId);
@@ -426,7 +436,8 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
         } catch (Exception e) {
             log.error("党建引领抽取到大屏失败,参数为:" + JSON.toJSONString(formDTO), e);
         }
-        try {
+        //已经挪到天抽取的抽取里了
+       /* try {
             //基层治理 - 热心市民 screen_party_user_rank_data
             ScreenCentralZoneDataFormDTO param = new ScreenCentralZoneDataFormDTO();
             param.setCustomerId(customerId);
@@ -434,7 +445,7 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
             screenGrassrootsGovernDataAbsorptionService.userScoreDataHub(param);
         } catch (Exception e) {
             log.error("大屏热心市民/党员得分数据写入失败,参数为:{}" + JSON.toJSONString(formDTO), e);
-        }
+        }*/
         try {
             // 项目(事件)数量分析按网格_按月统计
             screenProjectQuantityGridMonthlyService.extractionProjectGridMonthly(customerId, monthId);
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java
index fd6801d1a5..f9999263ef 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenGrassrootsGovernDataAbsorptionServiceImpl.java
@@ -88,6 +88,10 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
      **/
     @Override
     public void userScoreDataHub(ScreenCentralZoneDataFormDTO param) {
+        if (StringUtils.isNotBlank(param.getDateId()) && param.getDateId().length()!= NumConstant.EIGHT){
+            log.error("userScoreDataHub param dateId must be dateId(eg:20211212)");
+            return;
+        }
         //1.查询出客户下的网格注册用户
         List registeredUsers = userService.getRegisteredUserList(param.getCustomerId());
 
@@ -100,19 +104,15 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr
         Map pointMap = userPointService.getUserPointMap(param.getCustomerId());
         //4.查询出客户下党员的分值
         String dateId = param.getDateId();
-        if (StringUtils.isEmpty(dateId)) {
-            //如果没有传月份,则使用当前时间的上一个月
+        final String finalDateId = dateId;
+        String currentMonthId = DateUtils.getBeforeNMonth(0);
+        if (StringUtils.isEmpty(dateId) || dateId.contains(currentMonthId)) {
+            //如果没有传月份 或者传的为日期为当前月则,则使用当前时间的上一个月
             dateId = DateUtils.getBeforeNMonth(NumConstant.ONE);
         } else {
-            String dateType = DateUtils.identifyTimeDimension(dateId);
-            if (StringUtils.isEmpty(dateType) || !StringUtils.equalsAny(dateType, "date", "month")) {
-                dateId = DateUtils.getBeforeNMonth(NumConstant.ONE);
-            } else if (StringUtils.equals(dateType, "date")) {
-                dateId = dateId.substring(NumConstant.ZERO, dateId.length() - NumConstant.TWO);
-            }
+            dateId = dateId.substring(NumConstant.ZERO, dateId.length() - NumConstant.TWO);
         }
-        final String finalDateId = dateId;
-        // 查询党员积分
+        // 查询党员指标得分 按月查
         Map scoreMap = cpcIndexCalculateService.getCpcScore(param.getCustomerId(), dateId);
 
         //剔除垃圾数据
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java
index 5c386342e9..2fbd1d0037 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java
@@ -2,6 +2,7 @@ package com.epmet.service.impl;
 
 import com.epmet.commons.tools.constant.StrConstant;
 import com.epmet.commons.tools.utils.DateUtils;
+import com.epmet.commons.tools.utils.Result;
 import com.epmet.constant.OrgTypeConstant;
 import com.epmet.constant.ProjectConstant;
 import com.epmet.dto.basereport.form.EventInfoFormDTO;
@@ -19,6 +20,7 @@ import com.epmet.dto.user.result.MidPatrolDetailResult;
 import com.epmet.dto.user.result.MidPatrolRecordResult;
 import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity;
 import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
+import com.epmet.feign.OperCrmOpenFeignClient;
 import com.epmet.service.DataReportingService;
 import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService;
 import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService;
@@ -61,6 +63,8 @@ public class DataReportingServiceImpl implements DataReportingService {
 	private StatsStaffPatrolService statsStaffPatrolService;
 	@Resource
 	private CustomerProjectCategoryDictService customerProjectCategoryDictService;
+	@Resource
+	private OperCrmOpenFeignClient operCrmOpenFeignClient;
 
 	/**
 	 * @Author sun
@@ -153,16 +157,24 @@ public class DataReportingServiceImpl implements DataReportingService {
 		if(CollectionUtils.isEmpty(projectList)) {
 			return Collections.emptyList();
 		}
+		Map epmetCodeMap = new HashMap<>();
+		Result parentCustomer =  operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId());
+		if (StringUtils.isNotBlank(parentCustomer.getData())) {
+			customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData());
+		}
+		Map codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());;
 		//项目ID不为空时,因为只有一条,可以直接处理
 		if (StringUtils.isNotEmpty(formDTO.getProjectId())) {
 			list = projectList.stream().map(project -> {
-				EventInfoResultDTO dto = getEventInfoResultDTO(project);
+				EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap);
 				if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) {
 					ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId());
+					dto.setOrgId(project.getOrgId());
 					dto.setOrgCode(agency.getCode());
 					dto.setOrgName(agency.getAgencyName());
 				} else {
 					ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId());
+					dto.setOrgId(project.getOrgId());
 					dto.setOrgCode(grid.getCode());
 					dto.setOrgName(grid.getGridName());
 				}
@@ -173,7 +185,7 @@ public class DataReportingServiceImpl implements DataReportingService {
 			Map agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId());
 			Map gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId());
 			list = projectList.stream().map(project -> {
-				EventInfoResultDTO dto = getEventInfoResultDTO(project);
+				EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap);
 				if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) {
 					ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId());
 					dto.setOrgCode(agency.getCode());
@@ -189,25 +201,29 @@ public class DataReportingServiceImpl implements DataReportingService {
 		return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList());
 	}
 
-	private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project) {
+	private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map epmetCodeMap, Map codeMap) {
 		EventInfoResultDTO dto = new EventInfoResultDTO();
 		dto.setId(project.getProjectId());
 		dto.setCustomerId(project.getCustomerId());
 		dto.setEventName(project.getProjectTitle());
 		dto.setReporterId(project.getProjectCreator());
 		String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0];
+		String parentCode = null == codeMap.get(categoryCode)?null:codeMap.get(categoryCode).getParentCategoryCode();
 		//如果是孔村、榆山、锦水的项目需要关联分类字典表
 		if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId()) ||
 				"44876154d10d7cb7affd92000f84f833".equals(project.getCustomerId()) ||
 					"46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) {
-			CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(project.getCustomerId(), categoryCode);
+			CustomerProjectCategoryDictEntity categoryEntity = codeMap.get(categoryCode);
 			if (null != categoryEntity) {
 				categoryCode = categoryEntity.getEpmetCategoryCode();
+				parentCode = epmetCodeMap.get(categoryEntity.getEpmetCategoryCode()).getParentCategoryCode();
 			} else {
 				categoryCode = null;
+				parentCode = null;
 			}
 		}
 		dto.setEventCategory(categoryCode);
+		dto.setParentEventCategory(parentCode);
 		dto.setReportTime(project.getProjectCreateTime());
 		dto.setHappenDate(DateUtils.parseDate(DateUtils.format(project.getProjectCreateTime()), DateUtils.DATE_PATTERN));
 		dto.setHappenPlace(project.getProjectAddress());
@@ -244,7 +260,7 @@ public class DataReportingServiceImpl implements DataReportingService {
 				dto.setCompleteLevel("07");
 			}
 		}
-
+		dto.setStatus(getProjectStatus(project.getProjectStatusCode()));
 		dto.setCompleteTime(project.getCloseCaseTime());
 		dto.setLat(project.getLatitude());
 		dto.setLng(project.getLongitude());
@@ -268,6 +284,19 @@ public class DataReportingServiceImpl implements DataReportingService {
 		}
 	}
 
+	private String getProjectStatus(String status) {
+		switch (status) {
+			case ProjectConstant.PENDING:
+				return "01";
+			case ProjectConstant.CLOSED:
+				return "02";
+			case ProjectConstant.CLOSED_CASE:
+				return "03";
+			default:
+				return null;
+		}
+	}
+
     @Override
     public List getPatrolRecordList(MidPatrolFormDTO formDTO) {
         return userService.getPatrolRecordList(formDTO);
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
index cc8633b08f..02a859423a 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
@@ -24,6 +24,7 @@ import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
 import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 客户项目分类字典表
@@ -65,4 +66,6 @@ public interface CustomerProjectCategoryDictService extends BaseService getByCategoryCodeMap(String customerId);
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
index d7c81c93ad..592e2a33b6 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
@@ -34,7 +34,11 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 客户项目分类字典表
@@ -135,4 +139,15 @@ public class CustomerProjectCategoryDictServiceImpl extends BaseServiceImpl getByCategoryCodeMap(String customerId) {
+        LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CustomerProjectCategoryDictEntity::getCustomerId, customerId);
+        List list = baseDao.selectList(wrapper);
+        if (CollectionUtils.isEmpty(list)) {
+            return Collections.emptyMap();
+        }
+        return list.stream().collect(Collectors.toMap(CustomerProjectCategoryDictEntity::getCategoryCode, Function.identity()));
+    }
 }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
index 07407d5032..08ca203821 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/ScoreCalculator.java
@@ -76,16 +76,14 @@ public abstract class ScoreCalculator {
             throw new RuntimeException("入参数组错误:请设置sourceValue");
         }
 
+        BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
         if (correlation == Correlation.POSITIVE) {
             // 正相关
-            BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
             BigDecimal score = minScore.add(x);
             return score;
         } else if (correlation == Correlation.NEGATIVE) {
             // 负相关
-            BigDecimal x = coefficient.multiply(convertValue2BigDecimal(sourceValue).subtract(minValue));
-            BigDecimal score = minScore.add(x);
-            return maxScore.subtract(score, MathContext.DECIMAL32);
+            return maxScore.subtract(x, MathContext.DECIMAL32);
         } else {
             throw new RuntimeException("错误的相关性");
         }
diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
index 754e2cf7bc..988d83aab4 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java
@@ -76,19 +76,24 @@ public class BatchScoreCalculator {
                     if (idx.getScoreCalculator().getMaxValue().compareTo(idx.getScoreCalculator().getMinValue()) == 0) {
                         //*((max-min)/ (Math.PI/2))+min
                         //Math.atan(new Double(vo.getSampleValue().toString()))*
-                        normalizeValue = new BigDecimal(Math.atan(new Double(getFinalSampleValue(vo.getSampleValue(), threshold).toString())))
-                                .multiply(
-                                        (maxScoreValue.subtract(minScoreValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP)))
-                                .add(minScoreValue).setScale(6, RoundingMode.HALF_UP);
-
-
+                        if (Correlation.POSITIVE.getCode().equals(scoreCalculator.getCorrelation().getCode())) {
+                            normalizeValue = new BigDecimal(Math.atan(new Double(getFinalSampleValue(vo.getSampleValue(), threshold).toString())))
+                                    .multiply(
+                                            (maxScoreValue.subtract(minScoreValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP)))
+                                    .add(minScoreValue).setScale(6, RoundingMode.HALF_UP);
+                        }else{
+                            normalizeValue = new BigDecimal(Math.atan(new Double(getFinalSampleValue(vo.getSampleValue(), threshold).toString())))
+                                    .multiply(
+                                            (maxScoreValue.subtract(minScoreValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP)).multiply(new BigDecimal(-1)))
+                                    .add(maxScoreValue).setScale(6, RoundingMode.HALF_UP);
+                        }
                     } else {
                         normalizeValue = scoreCalculator.normalize(getFinalSampleValue(vo.getSampleValue(), threshold));
                     }
-                    //如果是负相关 则用100-归一后的值为最大值减
+                   /* //如果是负相关 则用100-归一后的值为最大值减
                     if (Correlation.NEGATIVE.getCode().equals(scoreCalculator.getCorrelation().getCode())) {
                         normalizeValue = maxScoreValue.subtract(normalizeValue);
-                    }
+                    }*/
                 }
                 //如果归一后的值小于0 则置为0
                 if (normalizeValue.compareTo(NumConstant.ZERO_DECIMAL)<=-1){
diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java
index 9d0178385a..06e77f88ef 100644
--- a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java
+++ b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java
@@ -20,10 +20,20 @@ public class MathUtilTest {
 
         BigDecimal maxValue = new BigDecimal(100);
         BigDecimal minValue = new BigDecimal(60);
-        BigDecimal normalizeValue = new BigDecimal(Math.atan(new Double("0")))
-                .multiply(
-                        (maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))).add(minValue).setScale(6, RoundingMode.HALF_UP);
+
+        //((max-min)/ (Math.PI/2))+min
+        BigDecimal sampleValue = new BigDecimal(Math.atan(new Double("0")));
+        BigDecimal normalizeValue = sampleValue
+                .multiply(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP))
+                .add(minValue).setScale(6, RoundingMode.HALF_UP);
+        BigDecimal normalizeValue2 = sampleValue
+                .multiply(maxValue.subtract(minValue).divide(new BigDecimal(Math.PI / 2), 10, RoundingMode.HALF_UP).multiply(new BigDecimal(-1)))
+                .add(maxValue).setScale(6, RoundingMode.HALF_UP);
+
+
+
         System.out.println(normalizeValue);
+        System.out.println(normalizeValue2);
         //new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP);
     }
 
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
index 2ac3e225b2..cf8bd2ffc6 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
@@ -623,7 +623,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
         String bindResult = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_OPEN_GET + authorizerAccessToken, JSON.toJSONString(bindInfoForm)).getData();
         Map bindInfo = JSON.parseObject(bindResult, Map.class);
         boolean bindStatus = bindInfo.containsKey(ModuleConstant.OPEN_APP_ID);
-        if (bindStatus != true) {
+        if (!bindStatus) {
             Integer authCount = customerMpDao.selectAuthCount(customerId);
             String openPlatformId = null;
             if (authCount > 0) {
@@ -658,6 +658,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
                         throw new RenException(INVALID_APP_ID);
                     case ModuleConstant.EIGHTY_NINE_THOUSAND:
                         throw new RenException(ACCOUNT_HAS_BOUND_OPEN);
+                    default:
+
                 }
             } else if (authCount > NumConstant.ZERO) {
                 log.info("该客户已创建过开放平台账号,直接绑定");
@@ -685,6 +687,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
                         throw new RenException(NOT_ALLOWED_OPERATE);
                     case ModuleConstant.EIGHTY_NINE_THOUSAND_AND_FOUR:
                         throw new RenException(TO_LIMIT);
+                    default:
                 }
             }
             //插入 binding_account
@@ -706,7 +709,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
     public Date countExpirationTime(String expiresIn) {
         expiresIn = expiresIn + "000";
         Date date = new Date();
-        long l = date.getTime() + Long.valueOf(expiresIn);
+        long l = date.getTime() + Long.parseLong(expiresIn);
         date.setTime(l);
         return date;
     }
@@ -727,7 +730,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
      * @author zxc
      */
     public Date sToDate(String t) {
-        Long aLong = Long.valueOf(t + "000");
+        long aLong = Long.parseLong(t + "000");
         Date date = new Date();
         date.setTime(aLong);
         return date;
diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseConflictsResolveDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseConflictsResolveDTO.java
index 00c96a08f6..3787374f7f 100644
--- a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseConflictsResolveDTO.java
+++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseConflictsResolveDTO.java
@@ -27,7 +27,7 @@ import java.util.Date;
  * 事件中间表
  *
  * @author generator generator@elink-cn.com
- * @since v1.0.0 2021-10-22
+ * @since v1.0.0 2021-11-25
  */
 @Data
 public class BaseConflictsResolveDTO implements Serializable {
@@ -40,38 +40,173 @@ public class BaseConflictsResolveDTO implements Serializable {
 	private String id;
 
     /**
-     * 事件信息
+     * 事件所属网格ID
      */
-	private String eventInfo;
+	private Integer gridId;
 
     /**
-     * 事件所属网格ID
+     * 网格名称
+     */
+	private String gridName;
+
+    /**
+     * 事件名称
+     */
+	private String eventName;
+
+    /**
+     * 发生日期
+     */
+	private Date happenDate;
+
+    /**
+     * 发生地点
+     */
+	private String happenPlace;
+
+    /**
+     * 事件规模
+     */
+	private String eventScale;
+
+    /**
+     * 涉及人数
+     */
+	private Integer numberInvolved;
+
+    /**
+     * 事件简述
+     */
+	private String eventDescription;
+
+    /**
+     * 涉及单位
+     */
+	private String relatedUnits;
+
+    /**
+     * 主要当事人证件代码
+     */
+	private String identificationCode;
+
+    /**
+     * 主要当事人证件号码
+     */
+	private String idCard;
+
+    /**
+     * 主要当事人姓名
      */
-	private String gridId;
+	private String name;
 
     /**
-     * 
+     * 主要当事人性别
      */
-	private String delFlag;
+	private String sex;
+
+    /**
+     * 主要当事人民族
+     */
+	private String nation;
+
+    /**
+     * 主要当事人学历
+     */
+	private String education;
+
+    /**
+     * 主要当事人人员类别(二级)
+     */
+	private String personnelCategory;
+
+    /**
+     * 主要当事人居住详址
+     */
+	private String detailAddress;
+
+    /**
+     * 是否解决或化解(Y已解决N未解决)
+     */
+	private String successfulOrNot;
+
+    /**
+     * 经度
+     */
+	private String lng;
+
+    /**
+     * 纬度
+     */
+	private String lat;
 
     /**
      * 创建人
      */
-	private String createdBy;
+	private String createBy;
 
     /**
      * 创建时间
      */
-	private Date createdTime;
+	private Date createDate;
+
+    /**
+     * 修改人
+     */
+	private String updateBy;
+
+    /**
+     * 修改时间
+     */
+	private Date updateDate;
+
+    /**
+     * 事件所属网格ID状态(01:待办理,02:待核实,03:办结)
+     */
+	private String status;
+
+    /**
+     * 事件编号(自定义编号,可以加前缀如:py)
+     */
+	private String eventNo;
+
+    /**
+     * 采集来源(01:App,02:Web)
+     */
+	private String source;
+
+    /**
+     * 事件类别(一级)
+     */
+	private String firstEventCategory;
+
+    /**
+     * 事件类别(二级)
+     */
+	private String secondEventCategory;
+
+    /**
+     * 主要当事人人员类别(一级)
+     */
+	private String firstPersonnelCategory;
+
+    /**
+     * 办结方式(状态是办结的时候,才填)
+     */
+	private String resolveWay;
+
+    /**
+     * 办结层级(状态是办结的时候,才填)
+     */
+	private String resolveGridLevel;
 
     /**
-     * 
+     * 办结时间(状态是办结的时候,才填)
      */
-	private String updatedBy;
+	private Date resolveTime;
 
     /**
-     * 更新时间
+     * 同步状态 0 未同步, 1 已同步
      */
-	private Date updatedTime;
+    private String flag;
 
 }
\ No newline at end of file
diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/ExDeptDTO.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/ExDeptDTO.java
index cd092d52ba..fee4ca7ad1 100644
--- a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/ExDeptDTO.java
+++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/ExDeptDTO.java
@@ -68,14 +68,24 @@ public class ExDeptDTO implements Serializable {
      */
 	private String gridCode;
 
+    /**
+     * 组织类型
+     */
+    private String isCgorg;
+
     /**
      * (区县平台)部门id
      */
-	private String deptIdQx;
+    private String qxDeptId;
+
+    /**
+     * (区县平台)部门/网格名称
+     */
+    private String qxDeptCode;
 
     /**
      * (区县平台)部门/网格名称
      */
-	private String deptNameQx;
+    private String qxDeptName;
 
 }
\ No newline at end of file
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseConflictsResolveEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseConflictsResolveEntity.java
index fe9a50a92a..c2f1907a07 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseConflictsResolveEntity.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseConflictsResolveEntity.java
@@ -18,31 +18,196 @@
 package com.epmet.opendata.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 2021-10-22
+ * @since v1.0.0 2021-11-25
  */
 @Data
 @EqualsAndHashCode(callSuper=false)
 @TableName("base_conflicts_resolve")
-public class BaseConflictsResolveEntity {
+public class BaseConflictsResolveEntity{
 
 	private static final long serialVersionUID = 1L;
 
-    /**
-     * 事件信息
-     */
-	private String eventInfo;
+	/**
+	 * 事件ID
+	 */
+	private String id;
+
+	/**
+	 * 事件所属网格ID
+	 */
+	private Integer gridId;
+
+	/**
+	 * 网格名称
+	 */
+	private String gridName;
+
+	/**
+	 * 事件名称
+	 */
+	private String eventName;
+
+	/**
+	 * 发生日期
+	 */
+	private Date happenDate;
+
+	/**
+	 * 发生地点
+	 */
+	private String happenPlace;
+
+	/**
+	 * 事件规模
+	 */
+	private String eventScale;
+
+	/**
+	 * 涉及人数
+	 */
+	private Integer numberInvolved;
+
+	/**
+	 * 事件简述
+	 */
+	private String eventDescription;
+
+	/**
+	 * 涉及单位
+	 */
+	private String relatedUnits;
+
+	/**
+	 * 主要当事人证件代码
+	 */
+	private String identificationCode;
+
+	/**
+	 * 主要当事人证件号码
+	 */
+	private String idCard;
+
+	/**
+	 * 主要当事人姓名
+	 */
+	private String name;
+
+	/**
+	 * 主要当事人性别
+	 */
+	private String sex;
+
+	/**
+	 * 主要当事人民族
+	 */
+	private String nation;
+
+	/**
+	 * 主要当事人学历
+	 */
+	private String education;
+
+	/**
+	 * 主要当事人人员类别(二级)
+	 */
+	private String personnelCategory;
+
+	/**
+	 * 主要当事人居住详址
+	 */
+	private String detailAddress;
+
+	/**
+	 * 是否解决或化解(Y已解决N未解决)
+	 */
+	private String successfulOrNot;
+
+	/**
+	 * 经度
+	 */
+	private String lng;
+
+	/**
+	 * 纬度
+	 */
+	private String lat;
+
+	/**
+	 * 创建人
+	 */
+	private String createBy;
+
+	/**
+	 * 创建时间
+	 */
+	private Date createDate;
+
+	/**
+	 * 修改人
+	 */
+	private String updateBy;
+
+	/**
+	 * 修改时间
+	 */
+	private Date updateDate;
+
+	/**
+	 * 事件所属网格ID状态(01:待办理,02:待核实,03:办结)
+	 */
+	private String status;
+
+	/**
+	 * 事件编号(自定义编号,可以加前缀如:py)
+	 */
+	private String eventNo;
+
+	/**
+	 * 采集来源(01:App,02:Web)
+	 */
+	private String source;
+
+	/**
+	 * 事件类别(一级)
+	 */
+	private String firstEventCategory;
+
+	/**
+	 * 事件类别(二级)
+	 */
+	private String secondEventCategory;
+
+	/**
+	 * 主要当事人人员类别(一级)
+	 */
+	private String firstPersonnelCategory;
+
+	/**
+	 * 办结方式(状态是办结的时候,才填)
+	 */
+	private String resolveWay;
+
+	/**
+	 * 办结层级(状态是办结的时候,才填)
+	 */
+	private String resolveGridLevel;
 
-    /**
-     * 事件所属网格ID
-     */
-	private String gridId;
+	/**
+	 * 办结时间(状态是办结的时候,才填)
+	 */
+	private Date resolveTime;
 
+	/**
+	 * 同步状态 0 未同步, 1 已同步
+	 */
+	private String flag;
 }
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java
index 3f458a026a..979919af85 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java
@@ -97,7 +97,6 @@ public class BaseDisputeProcessEntity extends BaseEpmetEntity {
      * 是否办结 Y:是、N:否
      */
 	private String successfulOrNo;
-
     /**
      * 办结层级
 01省、自治区、直辖市
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExDeptEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExDeptEntity.java
index 7a2d2e3ff8..950b8d3e5e 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExDeptEntity.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExDeptEntity.java
@@ -65,18 +65,28 @@ public class ExDeptEntity {
 	private String deptCode;
 
     /**
-     *
+     * (省标准)区划编码/网格编码
      */
 	private String gridCode;
 
+	/**
+	 * 组织类型
+	 */
+	private String isCgorg;
+
     /**
      * (区县平台)部门id
      */
-	private String deptIdQx;
+	private String qxDeptId;
+
+	/**
+	 * (区县平台)部门/网格名称
+	 */
+	private String qxDeptCode;
 
     /**
      * (区县平台)部门/网格名称
      */
-	private String deptNameQx;
+	private String qxDeptName;
 
 }
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExUserEntity.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExUserEntity.java
index f178336ab1..1f114a9cc7 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExUserEntity.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/ExUserEntity.java
@@ -37,7 +37,7 @@ public class ExUserEntity {
     /**
      * 市平台 用户ID
      */
-	private String userId;
+	private Integer userId;
 
     /**
      * 市平台 用户名
@@ -45,28 +45,32 @@ public class ExUserEntity {
 	private String userName;
 
     /**
-     * 市平台 用户身份证号
+     * 市平台 登录账号
      */
-	private String idCard;
+	private String loginName;
 
     /**
-     * 市平台 用户手机号
+     * (市平台)所属区县、街道、村居或网格id
      */
-	private String mobile;
+	private String gridId;
 
     /**
-     * 区县平台 用户ID
+     * (市平台)所属部门id
      */
-	private String userIdQx;
+	private String deptId;
 
     /**
-     * 区县平台 用户名
+     * (区县平台)用户id
      */
-	private String userNameQx;
+	private String qxUserId;
 
     /**
-     * 区县平台 用户账号
+     * (区县平台)姓名/用户名称
      */
-	private String userAccount;
+	private String qxUserName;
 
+	/**
+	 * (区县平台)手机号码
+	 */
+	private String qxMobile;
 }
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java
index 9c76d86500..3268c27fc6 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java
@@ -20,6 +20,8 @@ package com.epmet.opendata.service;
 import com.epmet.commons.mybatis.service.BaseService;
 import com.epmet.opendata.entity.ExUserEntity;
 
+import java.util.Map;
+
 /**
  * 系统用户中间表
  *
@@ -27,5 +29,6 @@ import com.epmet.opendata.entity.ExUserEntity;
  * @since v1.0.0 2021-10-22
  */
 public interface ExUserService extends BaseService {
+    Map getUserMap();
 
 }
\ No newline at end of file
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java
index 2a9e99acbf..7c9a1aeabf 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java
@@ -20,22 +20,26 @@ package com.epmet.opendata.service.impl;
 import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
 import com.epmet.commons.tools.constant.NumConstant;
 import com.epmet.commons.tools.exception.RenException;
-import com.epmet.commons.tools.utils.ConvertUtils;
 import com.epmet.commons.tools.utils.Result;
 import com.epmet.constant.SystemMessageType;
 import com.epmet.dto.basereport.form.EventInfoFormDTO;
 import com.epmet.dto.basereport.result.EventInfoResultDTO;
 import com.epmet.feign.DataStatisticalOpenFeignClient;
 import com.epmet.opendata.dao.BaseDisputeProcessDao;
+import com.epmet.opendata.entity.BaseConflictsResolveEntity;
 import com.epmet.opendata.entity.BaseDisputeProcessEntity;
+import com.epmet.opendata.service.BaseConflictsResolveService;
 import com.epmet.opendata.service.BaseDisputeProcessService;
 import com.epmet.opendata.service.ExDeptService;
+import com.epmet.opendata.service.ExUserService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 事件信息表
@@ -49,6 +53,10 @@ public class BaseDisputeProcessServiceImpl extends BaseServiceImpl deptMap = exDeptService.getDeptMap();
+        Map userMap = exUserService.getUserMap();
         List list = result.getData();
-        if (CollectionUtils.isNotEmpty(list)) {
-            List entityList = ConvertUtils.sourceToTarget(list, BaseDisputeProcessEntity.class);
-            entityList.forEach(item -> {
-                item.setDetpId(deptMap.get(item.getOrgCode()));
-            });
-            if(SystemMessageType.PROJECT_ADD.equals(formDTO.getType())){
-                insertBatch(entityList);
-            }else {
-                updateBatchById(entityList);
-            }
-        }
+        saveEvent(formDTO, deptMap, userMap, list);
         //分批次循环
         while (CollectionUtils.isNotEmpty(list)) {
             formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE);
             result = dataStatisticalOpenFeignClient.getEventInfo(formDTO);
             list = result.getData();
-            if (CollectionUtils.isNotEmpty(list)) {
-                List entityList = ConvertUtils.sourceToTarget(list, BaseDisputeProcessEntity.class);
-                entityList.forEach(item -> {
-                    item.setDetpId(deptMap.get(item.getOrgCode()));
-                });
-                if("add".equals(formDTO.getType())){
-                    insertBatch(entityList);
-                }else {
-                    updateBatchById(entityList);
-                }
-            }
+            saveEvent(formDTO, deptMap, userMap, list);
         }
 
 
     }
 
+    private void saveEvent(EventInfoFormDTO formDTO, Map deptMap, Map userMap, List list) {
+        if (CollectionUtils.isNotEmpty(list)) {
+
+            List resolveList = list.stream().map(item -> {
+                BaseConflictsResolveEntity entity = new BaseConflictsResolveEntity();
+                entity.setId(item.getId());
+                entity.setGridId(deptMap.get(item.getOrgId()));
+                entity.setGridName(item.getOrgName());
+                entity.setEventName(item.getEventName());
+                entity.setHappenDate(item.getHappenDate());
+                entity.setHappenPlace(item.getHappenPlace());
+                entity.setEventDescription(item.getEventDescription());
+                entity.setLng(item.getLng().toPlainString());
+                entity.setLat(item.getLat().toPlainString());
+                entity.setCreateBy(null == userMap.get(item.getReporterId())?null:String.valueOf(userMap.get(item.getReporterId())));
+                entity.setCreateDate(item.getReportTime());
+                entity.setUpdateDate(new Date());
+                entity.setStatus(item.getStatus());
+                entity.setFirstEventCategory(item.getParentEventCategory());
+                entity.setSource("01");
+                entity.setSecondEventCategory(item.getEventCategory());
+                entity.setResolveWay(item.getWaysOfResolving());
+                entity.setResolveGridLevel(item.getCompleteLevel());
+                entity.setResolveTime(item.getCompleteTime());
+                if(SystemMessageType.PROJECT_ADD.equals(formDTO.getType())) {
+                    entity.setFlag(NumConstant.ZERO_STR);
+                }
+                return entity;
+            }).collect(Collectors.toList());
+
+            if(SystemMessageType.PROJECT_ADD.equals(formDTO.getType())){
+                baseConflictsResolveService.insertBatch(resolveList);
+            }else {
+                baseConflictsResolveService.updateBatchById(resolveList);
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridInfoServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridInfoServiceImpl.java
index e50d9404e4..ea56575936 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridInfoServiceImpl.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridInfoServiceImpl.java
@@ -90,8 +90,8 @@ public class BaseGridInfoServiceImpl extends BaseServiceImpl ExList = new ArrayList<>();
         result.getData().forEach(ag->{
             ExDeptEntity entity = new ExDeptEntity();
-            entity.setDeptIdQx(ag.getId());
-            entity.setDeptNameQx(ag.getOrganizationName());
+            entity.setQxDeptId(ag.getId());
+            entity.setQxDeptName(ag.getOrganizationName());
             entity.setGridCode(ag.getCode());
             ExList.add(entity);
         });
@@ -138,8 +138,8 @@ public class BaseGridInfoServiceImpl extends BaseServiceImpl ExList = new ArrayList<>();
         result.getData().forEach(ag -> {
             ExDeptEntity entity = new ExDeptEntity();
-            entity.setDeptIdQx(ag.getId());
-            entity.setDeptNameQx(ag.getGridName());
+            entity.setQxDeptId(ag.getId());
+            entity.setQxDeptName(ag.getGridName());
             entity.setGridCode(ag.getCode());
             ExList.add(entity);
         });
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java
index 44b519e95b..cbbb536124 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java
@@ -104,12 +104,12 @@ public class ExDeptServiceImpl extends BaseServiceImpl
     @Override
     public Map getDeptMap() {
         LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
-        wrapper.ne(ExDeptEntity::getGridCode, null);
+        wrapper.isNotNull(ExDeptEntity::getGridCode);
         List entityList = baseDao.selectList(wrapper);
         if (CollectionUtils.isEmpty(entityList)) {
             return Collections.emptyMap();
         }
-        return entityList.stream().collect(Collectors.toMap(ExDeptEntity::getGridCode, ExDeptEntity::getDeptId, (key1, key2) -> key2));
+        return entityList.stream().collect(Collectors.toMap(ExDeptEntity::getQxDeptId, ExDeptEntity::getDeptId, (key1, key2) -> key2));
     }
 
 }
\ No newline at end of file
diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java
index 4badca6794..d692687303 100644
--- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java
+++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java
@@ -17,23 +17,18 @@
 
 package com.epmet.opendata.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.opendata.dao.ExUserDao;
-import com.epmet.opendata.dto.ExUserDTO;
 import com.epmet.opendata.entity.ExUserEntity;
 import com.epmet.opendata.service.ExUserService;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 系统用户中间表
@@ -45,4 +40,13 @@ import java.util.Map;
 public class ExUserServiceImpl extends BaseServiceImpl implements ExUserService {
 
 
+    @Override
+    public Map getUserMap() {
+        LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+        List list = baseDao.selectList(wrapper);
+        if (CollectionUtils.isEmpty(list)) {
+            return Collections.emptyMap();
+        }
+        return list.stream().collect(Collectors.toMap(ExUserEntity::getQxUserId, ExUserEntity::getUserId, (key1, key2) -> key2));
+    }
 }
\ No newline at end of file