Commit 3232c2c6 authored by 赵啸非's avatar 赵啸非

优化站点同步事项

parent 7b3c26cb
......@@ -99,7 +99,7 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
subList = subList.parallelStream().distinct().collect(Collectors.toList());
log.info("抓取事项总数:{} 需要添加事项数量:{}", govMatterList.size(), subList.size());
//差集进行插入并更新详细数据
//差集进行插入
if (!ObjectUtils.isEmpty(subList)) {
for (MatterEntity matterEntity : subList) {
DeptEntity deptCache = deptService.getExtCache(matterEntity.getDeptCode());
......@@ -108,6 +108,7 @@ public class MatterExtServiceImpl extends AbstractCRUDServiceImpl<MatterExtDao,
matterEntity.setMatterEdition("0");
}
matterService.save(subList, context);
matterList = matterService.getDao().getMatterListByAreaCode(new MatterQuery().areaCode(siteEntity.getAreaCode()));
}
for (MatterEntity matterEntity : matterList) {
......
......@@ -1022,6 +1022,10 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
//根据事项url 获取事项详细信息,构建相关详细信息
String html = null;
try {
if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
return Rest.fail("事项url不能为空!");
}
Document dom = Jsoup.connect(matterEntity.getUrl()).timeout(30 * 1000).get();
// html = Jsoup.connect(matterEntity.getUrl()).get().body().html();
// html = HttpUtil.get(matterEntity.getUrl());
......@@ -1031,19 +1035,17 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
Setting baseInfoSetting = interceptorConfig.getBaseInfoSetting();
Setting sqclInfoSetting = interceptorConfig.getSqclInfoSetting();
/* if(!ObjectUtils.isEmpty(matterEntity.getDeptCode())&&ObjectUtils.isEmpty(matterEntity.getDeptName())){
DeptEntity extCache = deptService.getExtCache(matterEntity.getDeptCode());
matterEntity.setDeptName(extCache==null?"":extCache.getName());
}*/
//根据本地与远端事项版本觉得是否更新或者新增
Integer matterEditionLocal = DataUtil.converStr2Int(matterEntity.getMatterEdition(),0);
Integer matterEditionLocal = DataUtil.converStr2Int(matterEntity.getMatterEdition(), 0);
Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
Integer matterEditionRemote = DataUtil.converStr2Int(baseInfoMap.getOrDefault("事项版本","0"),0);
Integer matterEditionRemote = DataUtil.converStr2Int(baseInfoMap.getOrDefault("事项版本", "0"), 0);
if(matterEditionLocal>=matterEditionRemote){
if (matterEditionLocal >= matterEditionRemote) {
return Rest.fail("本地事项版本大于等于远端,不需要更新!");
}
//更新部门信息
......
package com.mortals.xhx.module.site.service;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.site.dao.SiteMatterDao;
import com.mortals.xhx.module.site.model.SiteEntity;
import com.mortals.xhx.module.site.model.SiteMatterEntity;
/**
......@@ -17,5 +19,8 @@ public interface SiteMatterService extends ICRUDService<SiteMatterEntity, Long>
SiteMatterDao getDao();
Rest<String> doSyncSiteMatter(SiteEntity siteEntity,Context context);
void deleteBysiteIdAndSource(Long siteId, Integer source, Context context);
}
\ No newline at end of file
package com.mortals.xhx.module.site.service.impl;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.common.code.SourceEnum;
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.SiteThemeMatterEntity;
import com.mortals.xhx.module.site.model.SiteThemeMatterQuery;
import com.mortals.xhx.module.site.model.*;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.site.dao.SiteMatterDao;
import com.mortals.xhx.module.site.model.SiteMatterEntity;
import com.mortals.xhx.module.site.service.SiteMatterService;
import org.springframework.util.ObjectUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
......@@ -37,6 +39,8 @@ public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao
private MatterService matterService;
@Autowired
private SiteThemeMatterService siteThemeMatterService;
@Autowired
private SiteService siteService;
@Override
protected void findAfter(SiteMatterEntity params, PageInfo pageInfo, Context context, List<SiteMatterEntity> list) throws AppException {
......@@ -109,4 +113,58 @@ public class SiteMatterServiceImpl extends AbstractCRUDServiceImpl<SiteMatterDao
condition.put("source", source);
this.dao.delete(condition);
}
/**
* @param siteEntity
* @param context
* @return
*/
@Override
public Rest<String> doSyncSiteMatter(SiteEntity siteEntity, Context context) {
List<MatterEntity> matterList = matterService.getDao().getMatterListByAreaCode(new MatterQuery().areaCode(siteEntity.getAreaCode()));
//查询站点事项相关
SiteEntity site = siteService.selectOne(new SiteQuery().areaCode(siteEntity.getAreaCode()));
if (!ObjectUtils.isEmpty(site)) {
log.info("同步站点事项到站点.....");
SiteMatterQuery siteMatterQuery = new SiteMatterQuery();
siteMatterQuery.setSiteId(site.getId());
List<SiteMatterEntity> localList = this.getDao().getList(siteMatterQuery);
//找到差集 然后添加
Set<Long> existMatterIdSet = localList.parallelStream().map(i -> i.getMatterId()).collect(Collectors.toSet());
// matterList.parallelStream().
//判断是否已经有站点事项,如果有则不添加
Boolean bool = checkSiteMatter(site);
if (!bool) {
//添加站点事项 批量添加
List<SiteMatterEntity> siteMatterList = matterList.stream().map(item -> {
return matterService.switchMatterToSiteMatter(item, site, null).getData();
}).filter(f -> f != null).collect(Collectors.toList());
this.save(siteMatterList);
}
log.info("同步站点事项到站点完成.....");
}
return Rest.ok();
}
private Boolean checkSiteMatter(SiteEntity site) {
SiteMatterQuery siteMatterQuery = new SiteMatterQuery();
siteMatterQuery.setSiteId(site.getId());
siteMatterQuery.setSource(SourceEnum.政务网.getValue());
int count = this.count(siteMatterQuery, null);
if (count > 0) {
return true;
}
return false;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment