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 }