diff --git a/base-manager/src/main/java/com/mortals/xhx/base/system/param/web/ParamController.java b/base-manager/src/main/java/com/mortals/xhx/base/system/param/web/ParamController.java
index f45764b27ce135453e992d70e90da36957f92545..a35f6a419049b41cf82117f39dda4f5ab3fd9ea3 100644
--- a/base-manager/src/main/java/com/mortals/xhx/base/system/param/web/ParamController.java
+++ b/base-manager/src/main/java/com/mortals/xhx/base/system/param/web/ParamController.java
@@ -49,8 +49,7 @@ public class ParamController extends BaseCRUDJsonBodyMappingController<ParamServ
     }
 
 
-
-    @RequestMapping(method = {RequestMethod.GET,RequestMethod.POST},value = "key")
+    @RequestMapping(method = {RequestMethod.GET, RequestMethod.POST}, value = "key")
     @UnAuth
     public String getValueByKey(@RequestParam(name = "key") String key) {
         JSONObject jsonObject = new JSONObject();
@@ -70,6 +69,27 @@ public class ParamController extends BaseCRUDJsonBodyMappingController<ParamServ
     }
 
 
+    @RequestMapping(method = {RequestMethod.GET, RequestMethod.POST}, value = "dict")
+    @UnAuth
+    public String getDict(@RequestParam(name = "first") String first, @RequestParam(name = "second") String second) {
+        JSONObject jsonObject = new JSONObject();
+        String busiDesc = "閫氳繃key鏌ヨ瀛楀吀鍙傛暟鍊�" + this.getModuleDesc();
+        try {
+            Map<String, String> dict = this.service.getParamBySecondOrganize(first, second);
+            // String value = this.service.getValueByKey(key);
+            jsonObject.put(KEY_RESULT_DATA, dict);
+            recordSysLog(request, busiDesc + " 銆愭垚鍔熴€�");
+            jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
+            jsonObject.put(KEY_RESULT_MSG, busiDesc + "鎴愬姛锛�");
+        } catch (Exception e) {
+            log.error("鑾峰彇寮傚父", e);
+            jsonObject.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
+            jsonObject.put(KEY_RESULT_MSG, super.convertException(e));
+        }
+        return jsonObject.toJSONString();
+    }
+
+
     private Map<String, Object> getPageDisplayType() {
         PageDisplayType[] pageDisplayTypes = PageDisplayType.values();
         Map<String, Object> result = new HashMap<>(pageDisplayTypes.length);
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/AreaMatchCodeUtil.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/AreaMatchCodeUtil.java
index 34fc60d0a69a6bd7109253c9336202d43e92de66..0205a3ffc54090a12f490cc4c93dc33e790c101b 100644
--- a/base-manager/src/main/java/com/mortals/xhx/common/utils/AreaMatchCodeUtil.java
+++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/AreaMatchCodeUtil.java
@@ -2,17 +2,35 @@ package com.mortals.xhx.common.utils;
 
 import cn.hutool.core.util.StrUtil;
 import com.mortals.xhx.common.code.AreaLevelEnum;
+import com.mortals.xhx.common.code.SourceType;
 
 public class AreaMatchCodeUtil {
 
+
+    /**
+     * 閬傚畞甯�  510900000000
+     * 钃邯鍘�  510921000000
+     * 鏅畨琛�  510921174000
+     *
+     * @param matchCode
+     * @param areaLevel
+     * @return
+     */
     public static String getMatchCode(String matchCode, Integer areaLevel) {
 
         if (AreaLevelEnum.鍦板競宸�.getValue() == areaLevel) {
-            return StrUtil.padAfter(matchCode, 4, "0");
+
+            matchCode=StrUtil.sub(matchCode, 0, 3);
+            return StrUtil.padAfter(matchCode, 3, "0");
         } else if (AreaLevelEnum.鍖哄幙.getValue() == areaLevel) {
-            return StrUtil.padAfter(matchCode, 7, "0");
+            //510921174000
+            matchCode=StrUtil.sub(matchCode, 0, 6);
+            return StrUtil.padAfter(matchCode, 6, "0");
         } else if (AreaLevelEnum.琛楅亾.getValue() == areaLevel) {
-            return StrUtil.padAfter(matchCode, 10, "0");
+            //510921174000
+            //510921100249
+            matchCode=StrUtil.sub(matchCode, 0, 9);
+            return StrUtil.padAfter(matchCode, 9, "0");
         } else if (AreaLevelEnum.绀惧尯.getValue() == areaLevel) {
             return StrUtil.padAfter(matchCode, 12, "0");
         } else {
@@ -20,4 +38,10 @@ public class AreaMatchCodeUtil {
         }
     }
 
+    public static void main(String[] args) {
+        System.out.println(getMatchCode("510921000000", 3));
+        System.out.println(getMatchCode("510921174000", 4));
+       // System.out.println(getMatchCode("510921100249", 5));
+    }
+
 }
diff --git a/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java b/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java
index 71c29fbdd359d6977f2518f78939faf15d8023ad..32ca49995b8203567619488d1ed507a20f0fbba1 100644
--- a/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java
+++ b/base-manager/src/main/java/com/mortals/xhx/common/utils/MatterDetailHtmlParseUtil.java
@@ -505,7 +505,7 @@ public class MatterDetailHtmlParseUtil {
 
         // String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=511500000000&itemCode=511A0151400000-511500000000-000-511501-7-1-00&taskType=1&deptCode=511501-7";
        // String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=511500000000&itemCode=511A0000400004-511500000000-000-1151120000870212XU-1-00&taskType=1&deptCode=3922757070285361152";
-        String url = "https://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=511500000000&itemCode=512036008003-511500000000-000-11511200MB1503849K-1-00&taskType=20&deptCode=3907787168696946688";
+        String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=511500000000&itemCode=512036008003-511500000000-000-11511200MB1503849K-1-00&taskType=20&deptCode=3907787168696946688";
 
         Document dom = MatterDetailHtmlParseUtil.getDomByHtml(url);
         Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
diff --git a/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java b/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..4d173e1ef48826e9b50e57c60633fc3afc3e4fae
--- /dev/null
+++ b/base-manager/src/main/java/com/mortals/xhx/daemon/task/SyncMatterTaskImpl.java
@@ -0,0 +1,179 @@
+package com.mortals.xhx.daemon.task;
+
+import cn.hutool.core.collection.ListUtil;
+import com.alibaba.fastjson.JSON;
+import com.mortals.framework.common.Rest;
+import com.mortals.framework.exception.AppException;
+import com.mortals.framework.model.Context;
+import com.mortals.framework.service.ICacheService;
+import com.mortals.framework.service.ITask;
+import com.mortals.framework.service.ITaskExcuteService;
+import com.mortals.xhx.common.code.DxTypeEnum;
+import com.mortals.xhx.common.code.SourceEnum;
+import com.mortals.xhx.common.code.YesNoEnum;
+import com.mortals.xhx.common.keys.RedisCacheKeys;
+import com.mortals.xhx.module.area.model.AreaEntity;
+import com.mortals.xhx.module.area.service.AreaService;
+import com.mortals.xhx.module.dept.service.DeptService;
+import com.mortals.xhx.module.matter.model.MatterEntity;
+import com.mortals.xhx.module.matter.model.MatterQuery;
+import com.mortals.xhx.module.matter.service.MatterService;
+import com.mortals.xhx.module.site.model.SiteEntity;
+import com.mortals.xhx.module.site.model.SiteMatterEntity;
+import com.mortals.xhx.module.site.model.SiteMatterQuery;
+import com.mortals.xhx.module.site.model.SiteQuery;
+import com.mortals.xhx.module.site.service.SiteMatterService;
+import com.mortals.xhx.module.site.service.SiteService;
+import com.mortals.xhx.module.site.service.SiteThemeMatterService;
+import com.mortals.xhx.module.site.service.SiteThemeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 鍚屾鍏ㄩ儴绔欑偣浜嬮」
+ *
+ * @author: zxfei
+ * @date: 2024/2/27 15:34
+ */
+@Slf4j
+@Service("SyncMatterTask")
+public class SyncMatterTaskImpl implements ITaskExcuteService {
+
+    @Autowired
+    private SiteService siteService;
+
+
+    private MatterService matterService;
+
+
+    private AreaService areaService;
+
+    private DeptService deptService;
+
+    private SiteMatterService siteMatterService;
+
+    private SiteThemeService siteThemeService;
+
+    private SiteThemeMatterService siteThemeMatterService;
+
+    private SiteEntity siteEntity;
+
+    private Context context;
+
+    private ICacheService cacheService;
+
+
+    @Override
+    public void excuteTask(ITask task) throws AppException {
+        log.info("寮€濮嬪悓姝ヤ簨椤癸紒");
+        List<SiteEntity> siteEntities = siteService.find(new SiteEntity());
+        for (SiteEntity siteEntity : siteEntities) {
+            syncMatter(siteEntity);
+        }
+        // syncDevice();
+        log.info("缁撴潫鍚屾浜嬮」锛�");
+    }
+
+    private void syncMatter(SiteEntity siteEntity) throws AppException {
+        AreaEntity areaEntity = areaService.getCache(siteEntity.getAreaCode());
+        log.info("鍚屾绔欑偣浜嬮」寮€濮�.....");
+        Rest<String> deptRest = deptService.syncDeptBySiteId(siteEntity, context);
+        log.info("鍚屾绔欑偣閮ㄩ棬缁撴灉:" + JSON.toJSONString(deptRest));
+        Rest<String> rest = siteService.syncMatterBySiteId(siteEntity, context);
+        log.info("鍚屾浜嬮」鍒楄〃:" + JSON.toJSONString(rest));
+        if (rest.getCode() == YesNoEnum.YES.getValue()) {
+            List<MatterEntity> matterEntityList = matterService.find(new MatterQuery().areaCode(siteEntity.getAreaCode()).source(SourceEnum.鏀垮姟缃�.getValue()));
+            log.info("鏌ヨ鏈湴浜嬮」鍒楄〃锛宻ize:{}",matterEntityList.size());
+            List<MatterEntity> unSyncDetailMatterList = matterEntityList.stream()
+                    //   .filter(f -> f.getHaveGetMatterInfo().equalsIgnoreCase("false"))
+                    .collect(Collectors.toList());
+            //鏌ヨ绔欑偣浜嬮」鐩稿叧
+            List<SiteEntity> siteEntities = siteService.find(new SiteQuery().areaCode(siteEntity.getAreaCode()));
+            //鍒犻櫎绔欑偣涓庢斂鍔′簨椤圭浉鍏抽」
+/*            for (SiteEntity site : siteEntities) {
+                siteMatterService.deleteBysiteIdAndSource(site.getId(), SourceEnum.鏀垮姟缃�.getValue(), context);
+            }*/
+            //閲嶆柊娣诲姞
+            if (!ObjectUtils.isEmpty(siteEntities)) {
+                log.info("鍚屾绔欑偣浜嬮」鍒扮珯鐐�.....");
+                for (SiteEntity site : siteEntities) {
+                    //鍒ゆ柇鏄惁宸茬粡鏈夌珯鐐逛簨椤癸紝濡傛灉鏈夊垯涓嶆坊鍔�
+                    SiteMatterQuery siteMatterQuery = new SiteMatterQuery();
+                    siteMatterQuery.setSiteId(site.getId());
+                    siteMatterQuery.setSource(SourceEnum.鏀垮姟缃�.getValue());
+                    int count = siteMatterService.count(siteMatterQuery, null);
+                    if (count > 0) {
+                        continue;
+                    }
+                    List<SiteMatterEntity> siteMatterList = matterEntityList.stream().map(item -> {
+                        return matterService.switchMatterToSiteMatter(item, site, context).getData();
+                    }).filter(f -> f != null).collect(Collectors.toList());
+
+                    List<List<SiteMatterEntity>> partition = ListUtil.partition(siteMatterList, 100);
+                    for (List<SiteMatterEntity> rests : partition) {
+                        siteMatterService.save(rests);
+                    }
+                }
+                log.info("鍚屾绔欑偣浜嬮」鍒扮珯鐐瑰畬鎴�.....");
+            }
+            log.info("鍚屾绔欑偣浜嬮」璇︾粏鏉℃暟....." + unSyncDetailMatterList.size());
+            unSyncDetailMatterList.parallelStream().forEach(matterEntity -> {
+                matterService.buildMatterDetail(matterEntity, context);
+                matterEntity.setUpdateTime(new Date());
+                matterService.update(matterEntity, context);
+            });
+        }
+        log.info("鍚屾绔欑偣涓婚浜嬮」寮€濮�.....");
+
+        //鍒ゆ柇绔欑偣鍖哄煙涔¢晣鎯呭喌
+        if (areaEntity.getAreaLevel() <= 3) {
+            //鐪侊紝甯傦紝鍖�
+            Rest<String> themeRest = siteThemeService.syncThemeBySiteId(siteEntity, context);
+            log.info("鍚屾绔欑偣涓婚:" + JSON.toJSONString(themeRest));
+            log.info("鍚屾绔欑偣涓汉涓婚浜嬮」寮€濮�.....");
+            siteThemeMatterService.deleteGovBySiteId(siteEntity.getId(), context);
+            Rest<String> grRest = siteThemeMatterService.syncThemeMatterBySiteId(siteEntity.getId(), "2", context);
+            log.info("鍚屾绔欑偣涓婚涓汉浜嬮」:" + JSON.toJSONString(grRest));
+            log.info("鍚屾绔欑偣娉曚汉涓婚浜嬮」寮€濮�.....");
+            Rest<String> frRest = siteThemeMatterService.syncThemeMatterBySiteId(siteEntity.getId(), "3", context);
+            log.info("鍚屾绔欑偣涓婚娉曚汉浜嬮」:" + JSON.toJSONString(frRest));
+        } else if (areaEntity.getAreaLevel() > 3) {
+            //琛楅亾锛岄晣锛屼埂
+            Rest<String> themeTownRest = siteThemeService.syncTownThemeBySiteId(siteEntity, context);
+            log.info("鍚屾涔¢晣绔欑偣涓婚:" + JSON.toJSONString(themeTownRest));
+            if (themeTownRest.getCode() == YesNoEnum.YES.getValue()) {
+                siteThemeMatterService.deleteGovBySiteId(siteEntity.getId(), context);
+                String dxType = DxTypeEnum.琛楅亾闀囨湇鍔�.getValue();
+                if (areaEntity.getAreaLevel() == 5) {
+                    dxType = DxTypeEnum.涔℃潙鏈嶅姟.getValue();
+                }
+                Rest<String> townThemeRest = siteThemeMatterService.syncTownThemeMatterBySiteId(siteEntity, dxType, context);
+                log.info("鍚屾绔欑偣涔¢晣涓婚浜嬮」:" + JSON.toJSONString(townThemeRest));
+            } else {
+                try {
+                    cacheService.del(RedisCacheKeys.getSyncMatterLockKey() + siteEntity.getAreaCode(), siteEntity.getAreaCode());
+                    log.info("鍚屾绔欑偣涔¢晣涓婚浜嬮」澶辫触:" + themeTownRest.getData());
+                }catch (Exception e){
+                    log.error("鍚屾绔欑偣涔¢晣涓婚浜嬮」澶辫触",e);
+                }
+
+            }
+        }
+        log.info("鍚屾绔欑偣浜嬮」缁撴潫.....");
+
+
+
+    }
+
+
+    @Override
+    public void stopTask(ITask task) throws AppException {
+
+    }
+}
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
index 2a74de4080b15facdda4a35410fe87b64991d1ea..fc9db1a0c2e6e1528a7c6975b3a006443cb9cc11 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/dept/service/impl/DeptServiceImpl.java
@@ -136,7 +136,6 @@ public class DeptServiceImpl extends AbstractCRUDCacheServiceImpl<DeptDao, DeptE
                 String deptCode = item.getKey();
                 String deptName = item.getValue();
                 DeptEntity deptEntity = deptService.getExtCache(deptCode);
-                // DeptEntity deptEntity = deptService.selectOne(new DeptQuery().siteId(siteId).deptNumber(deptCode), context);
                 if (ObjectUtils.isEmpty(deptEntity)) {
                     deptEntity = new DeptEntity();
                     deptEntity.initAttrValue();
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
index 3bd72aab0536b41b913422b020cc3f11b0b44274..3da620e63657d721f1d888285d08fc2e72906bc5 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/matter/service/impl/MatterServiceImpl.java
@@ -1202,8 +1202,6 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
 
         if (!ObjectUtils.isEmpty(matterExtEntities)) {
             //鍏堝垹闄ゅ悗娣诲姞
-
-
             matterExtService.save(matterExtEntities, null);
         }
 
diff --git a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
index 74d8ed8c95dfc894f32b3bd6a7706bafb6f8265d..98c668652d40d9887aa367041a21d79ce6b97002 100644
--- a/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
+++ b/base-manager/src/main/java/com/mortals/xhx/module/site/service/impl/SiteServiceImpl.java
@@ -22,6 +22,7 @@ import com.mortals.xhx.base.system.user.model.UserEntity;
 import com.mortals.xhx.base.system.user.service.UserService;
 import com.mortals.xhx.common.code.AreaLevelDxTypeEnum;
 import com.mortals.xhx.common.code.AreaLevelEnum;
+import com.mortals.xhx.common.code.SourceEnum;
 import com.mortals.xhx.common.code.YesNoEnum;
 import com.mortals.xhx.common.key.Constant;
 import com.mortals.xhx.common.pdu.RespData;
@@ -702,7 +703,7 @@ public class SiteServiceImpl extends AbstractCRUDCacheServiceImpl<SiteDao, SiteE
         //String dxType = "3";
         log.info("鎶撳彇浜嬮」寮€濮�");
         List<MatterEntity> govMatterList = new ArrayList<>();
-        List<DeptEntity> deptEntities = deptService.find(new DeptQuery().siteId(siteEntity.getId()).source(0));
+        List<DeptEntity> deptEntities = deptService.find(new DeptQuery().siteId(siteEntity.getId()).source(SourceEnum.鏀垮姟缃�.getValue()));
         for (DeptEntity deptEntity : deptEntities) {
             HashMap<String, String> params = new HashMap<>();
             params.put("areaCode", areaEntity.getAreaCode());
diff --git a/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http b/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http
index f55db00e25cedbaa69b06a7df71ae14628977d37..61e83dc0e4e74da4db5ec776b0c42a373851d840 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/base/BaseAreaController.http
@@ -54,7 +54,7 @@ POST {{baseUrl}}/base/area/genSubAreaByAreaName
 Content-Type: application/json
 
 {
-  "areaCode": "513232000000"
+  "areaCode": "510921000000"
 }
 
 
diff --git a/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http b/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http
index 8aacf5b49fb383d85cb370ce49de127f45308c7b..4d7e5294e33c8d081e582d5d739e648bc95b018e 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/matter/MatterController.http
@@ -20,12 +20,8 @@ POST {{baseUrl}}/matter/list
 Content-Type: application/json
 
 {
-  "siteId": 1,
-  "matterName": "%%",
-  "page": 1,
-  "size": 10,
-  "deptCode":"zyl",
-  "source": ""
+  "siteId": 1
+
 }
 
 ###鍩虹浜嬮」鍒楄〃
diff --git a/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http b/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http
index 8b75fca1e24e2b24d87e45a3fc6cc9576bc4dc40..6c8a5d5697a440c553856768b2208fdcc4e028f1 100644
--- a/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http
+++ b/base-manager/src/test/java/com/mortals/httpclient/site/SiteController.http
@@ -115,7 +115,7 @@ POST {{baseUrl}}/site/syncGovMatterBySiteId
 Content-Type: application/json
 
 {
-  "id":24
+  "id":22
 }
 
 
@@ -124,7 +124,7 @@ POST {{baseUrl}}/site/getFlatSitesBySiteId
 Content-Type: application/json
 
 {
-  "id":1
+  "id":22
 }