Commit f6267971 authored by 廖旭伟's avatar 廖旭伟

单事项,辅助接件事项材料列表查询方法subList优化;材料附件下载到本地以及转换预览图片方法修改

parent ef8951de
package com.mortals.xhx.module.matter.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import java.util.List;
/**
* 事项申请材料Dao
......@@ -17,4 +21,5 @@ public interface MatterDatumDao extends ICRUDDao<MatterDatumEntity,Long>{
*/
List<MatterDatumEntity> getMatterDatumCount();
Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo);
}
package com.mortals.xhx.module.matter.dao.ibatis;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.matter.dao.MatterDatumDao;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
......@@ -21,4 +24,9 @@ public class MatterDatumDaoImpl extends BaseCRUDDaoMybatis<MatterDatumEntity,Lon
public List<MatterDatumEntity> getMatterDatumCount() {
return this.getSqlSession().selectList(this.getSqlId("getMatterDatumCount"));
}
@Override
public Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo) {
return getList(getQueryParam(params),pageInfo,"getSubList");
}
}
package com.mortals.xhx.module.matter.service;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import java.util.List;
......@@ -30,4 +33,6 @@ public interface MatterDatumService extends ICRUDService<MatterDatumEntity,Long>
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo);
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ package com.mortals.xhx.module.matter.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.framework.model.Result;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.utils.BeanUtil;
......@@ -145,6 +147,11 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD
return dao.getMatterDatumCount();
}
@Override
public Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo) {
return dao.getSubList(params,pageInfo);
}
private SiteDatumLibraryEntity updateOrSave(MatterDatumEntity item, Long siteId, Context context) {
SiteDatumLibraryEntity siteDatumLibraryEntity = siteDatumLibraryService.selectOne(new SiteDatumLibraryQuery().siteId(siteId).datumId(item.getId()));
if (ObjectUtils.isEmpty(siteDatumLibraryEntity)) {
......
......@@ -112,8 +112,8 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
int code;
try {
PageInfo pageInfo = this.buildPageInfo(query);
subListBefore(query, model, context);
Result<MatterDatumEntity> result = this.getService().find(query, pageInfo, context);
//subListBefore(query, model, context);
Result<MatterDatumEntity> result = this.getService().getSubList(query, pageInfo);
model.put("data", result.getList());
model.put("pageInfo", result.getPageInfo());
this.parsePageInfo(model, result.getPageInfo());
......
......@@ -5,4 +5,29 @@
<select id="getMatterDatumCount" resultType="com.mortals.xhx.module.matter.model.MatterDatumEntity">
SELECT matterId,count(1) as count FROM mortals_sys_matter_datum GROUP BY matterId
</select>
<!-- 获取列表 -->
<select id="getSubList" parameterType="paramDto" resultMap="MatterDatumEntity-Map">
select <include refid="_columns"/>
from mortals_sys_matter_datum as a
<trim suffixOverrides="where" suffix="">
where
matterId in (
SELECT matterId FROM mortals_sys_site_matter_assist)
<include refid="_condition_"/>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getSubListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_sys_matter_datum as a
<trim suffixOverrides="where" suffix="">
where
matterId in (
SELECT matterId FROM mortals_sys_site_matter_assist)
<include refid="_condition_"/>
</trim>
</select>
</mapper>
\ No newline at end of file
......@@ -145,7 +145,7 @@ public class MatterDetailHtmlParseUtil {
fileEntity.setSource(SourceEnum.政务网.getValue());
fileEntity.setFiletype(FiletypeEnum.空白表格.getValue());
fileEntity.setFileName(prenode.text().trim());
fileEntity.setFileUrl(node.firstChild().attr("href").trim());
fileEntity.setFileUrl(node.firstChild().attr("onclick").trim());
datumFileEntities.add(fileEntity);
}
}
......@@ -167,7 +167,7 @@ public class MatterDetailHtmlParseUtil {
fileEntity.setSource(SourceEnum.政务网.getValue());
fileEntity.setFiletype(FiletypeEnum.示例样表.getValue());
fileEntity.setFileName(prenode.text().trim());
fileEntity.setFileUrl(node.firstChild().attr("href").trim());
fileEntity.setFileUrl(node.firstChild().attr("onclick").trim());
datumSampleFileEntities.add(fileEntity);
}
map.put("sampleList", datumSampleFileEntities);
......@@ -440,40 +440,120 @@ public class MatterDetailHtmlParseUtil {
//String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=511102000000&itemCode=511A0099100005-511102000000-000-11511002735871990X-1-00&taskType=1&deptCode=11511002735871990X";
//String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=513426000000&itemCode=511F3000300009-513426000000-000-11513426MB1541028A-1-00&taskType=7&deptCode=009075316";
String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=511500000000&itemCode=511A0152600000-511500000000-000-511501-7-1-00&taskType=1&deptCode=511501-7";
String url = "http://www.sczwfw.gov.cn/jiq/front/transition/ywTransToDetail?areaCode=510903000000&itemCode=511A16007006-510903000000-000-11510802MB1550311U-2-00&taskType=1&deptCode=11510802008496178A";
Document dom = MatterDetailHtmlParseUtil.getDomByHtml(url);
Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
System.out.println(JSON.toJSONString(baseInfoMap));
baseInfoMap.entrySet().stream().forEach(item -> {
System.out.println(item.getKey() + "=" + item.getValue());
});
List<Map<String, Object>> mapList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
System.out.println(JSON.toJSONString(mapList));
Map<String, String> sltjMapByHtml = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
System.out.println("==============受理条件==============");
System.out.println(JSON.toJSONString(sltjMapByHtml));
System.out.println("==============办理流程==============");
List<Map<String, Object>> bllcListMap = MatterDetailHtmlParseUtil.getbllcMapByHtml(dom);
System.out.println(JSON.toJSONString(bllcListMap));
System.out.println("==============收费标准==============");
Map<String, String> sfbzMapByHtml = MatterDetailHtmlParseUtil.getSfbzMapByHtml(dom);
System.out.println(JSON.toJSONString(sfbzMapByHtml));
System.out.println("==============设定依据==============");
List<Map<String, Object>> sdyjMapByHtml = MatterDetailHtmlParseUtil.getSdyjMapByHtml(dom);
System.out.println(JSON.toJSONString(sdyjMapByHtml));
System.out.println("==============中介服务==============");
Map<String, String> zjfwMapByHtml = MatterDetailHtmlParseUtil.getZjfwMapByHtml(dom);
System.out.println(JSON.toJSONString(zjfwMapByHtml));
System.out.println("==============常见问题==============");
List<Map<String, Object>> cjwtMapByHtml = MatterDetailHtmlParseUtil.getCjwtMapByHtml(dom);
System.out.println(JSON.toJSONString(cjwtMapByHtml));
// Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
// System.out.println(JSON.toJSONString(baseInfoMap));
// baseInfoMap.entrySet().stream().forEach(item -> {
// System.out.println(item.getKey() + "=" + item.getValue());
// });
// List<Map<String, Object>> mapList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
// System.out.println(JSON.toJSONString(mapList));
String blankSampleExp = "//div[@id=\"zhezhao\"]//div[@class='zhezhao4']";
String sampleExp = "//div[@id=\"zhezhao\"]//div[@class='zhezhao2']";
String baseInfoExp = "//div[@id=\"zhezhao\"]//div[@class='zhezhao3']";
try {
Elements elements = dom.selectXpath(blankSampleExp);
int rowNum = elements.size();
for (int i = 1; i <= rowNum; i++) {
HashMap<String, Object> map = new HashMap<>();
List<MatterDatumFileEntity> datumFileEntities = new ArrayList<>();
List<MatterDatumFileEntity> datumSampleFileEntities = new ArrayList<>();
//查询空白样表数量
String tempxPath = blankSampleExp + String.format("[%d]//table//tr[position()>1]//td", i);
Elements evaluateList = dom.selectXpath(tempxPath);
for (int j = 0; j < evaluateList.size(); j++) {
if (j % 2 == 0) {
continue;
}
Element node = evaluateList.get(j);
System.out.println(j);
System.out.println(JSON.toJSONString(node));
if (j > 0) {
Element prenode = evaluateList.get(j - 1);
MatterDatumFileEntity fileEntity = new MatterDatumFileEntity();
fileEntity.setCreateTime(new Date());
fileEntity.setCreateUser("system");
fileEntity.setSource(SourceEnum.政务网.getValue());
fileEntity.setFiletype(FiletypeEnum.空白表格.getValue());
fileEntity.setFileName(prenode.text().trim());
fileEntity.setFileUrl(node.firstChild().attr("onclick").trim());
datumFileEntities.add(fileEntity);
}
}
map.put("blankList", datumFileEntities);
//查询样表
String tempxPath1 = sampleExp + String.format("[%d]//table//tr[position()>1]//td", i);
Elements sampleList = dom.selectXpath(tempxPath1);
for (int j = 0; j < sampleList.size(); j++) {
if (j % 2 == 0) {
continue;
}
Element node = sampleList.get(j);
if (j > 0) {
Element prenode = sampleList.get(j - 1);
MatterDatumFileEntity fileEntity = new MatterDatumFileEntity();
fileEntity.setCreateTime(new Date());
fileEntity.setCreateUser("system");
fileEntity.setSource(SourceEnum.政务网.getValue());
fileEntity.setFiletype(FiletypeEnum.示例样表.getValue());
fileEntity.setFileName(prenode.text().trim());
fileEntity.setFileUrl(node.firstChild().attr("onclick").trim());
System.out.println(JSON.toJSONString(fileEntity));
datumSampleFileEntities.add(fileEntity);
}
map.put("sampleList", datumSampleFileEntities);
}
//查询基本信息
String tempxPath2 = baseInfoExp + String.format("[%d]//table//tr//td", i);
Elements baseinfoList = dom.selectXpath(tempxPath2);
HashMap<String, String> baseInfoMap = new HashMap<>();
for (int j = 0; j < baseinfoList.size(); j++) {
if (j % 2 == 0) {
continue;
}
Element node = baseinfoList.get(j);
if (j > 0) {
Element prenode = baseinfoList.get(j - 1);
baseInfoMap.put(prenode.text().trim(), node.text().trim());
}
}
map.put("baseinfo", baseInfoMap);
}
} catch (Exception e) {
log.error("申请材料表格解析xpath解析异常:", e);
}
// Map<String, String> sltjMapByHtml = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
// System.out.println("==============受理条件==============");
// System.out.println(JSON.toJSONString(sltjMapByHtml));
//
// System.out.println("==============办理流程==============");
// List<Map<String, Object>> bllcListMap = MatterDetailHtmlParseUtil.getbllcMapByHtml(dom);
// System.out.println(JSON.toJSONString(bllcListMap));
//
// System.out.println("==============收费标准==============");
// Map<String, String> sfbzMapByHtml = MatterDetailHtmlParseUtil.getSfbzMapByHtml(dom);
// System.out.println(JSON.toJSONString(sfbzMapByHtml));
//
// System.out.println("==============设定依据==============");
// List<Map<String, Object>> sdyjMapByHtml = MatterDetailHtmlParseUtil.getSdyjMapByHtml(dom);
// System.out.println(JSON.toJSONString(sdyjMapByHtml));
// System.out.println("==============中介服务==============");
// Map<String, String> zjfwMapByHtml = MatterDetailHtmlParseUtil.getZjfwMapByHtml(dom);
// System.out.println(JSON.toJSONString(zjfwMapByHtml));
//
// System.out.println("==============常见问题==============");
// List<Map<String, Object>> cjwtMapByHtml = MatterDetailHtmlParseUtil.getCjwtMapByHtml(dom);
// System.out.println(JSON.toJSONString(cjwtMapByHtml));
}
......
......@@ -2,9 +2,11 @@ package com.mortals.xhx.daemon.task;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ITask;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.framework.util.HttpUtil;
import com.mortals.xhx.common.utils.HttpDownloadUtil;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.common.utils.WordUtil;
......@@ -49,6 +51,8 @@ public class MatterDatumConvertTaskImpl implements ITaskExcuteService {
public static String imgs[] = {"jpg", "png", "jpeg", "gif"};
public static String pdf[] = {"pdf"};
public static String downLoadUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=";
@Override
public void excuteTask(ITask task) throws AppException {
log.info("事项材料处理...");
......@@ -80,7 +84,16 @@ public class MatterDatumConvertTaskImpl implements ITaskExcuteService {
String fileName = datumFileEntity.getFileName();
String fileUrl = datumFileEntity.getFileUrl();
try {
HttpDownloadUtil.downLoadFromUrl(fileUrl,fileName,rootPath + savePath);
String[] urlList = fileUrl.split("'");
String requestUrl = downLoadUrl + urlList[1];
String result = HttpUtil.doGet(requestUrl,null);
JSONObject jsonObject = JSONObject.parseObject(result);
if(jsonObject.getString("code").equals("0")) {
String downLoadFromUrl = jsonObject.getString("data");
HttpDownloadUtil.downLoadFromUrl(downLoadFromUrl, fileName, rootPath + savePath);
}else {
continue;
}
}catch (Exception e){
log.error("DatumId:"+datumFileEntity.getDatumId()+",文件下载失败...",e);
continue;
......@@ -149,4 +162,16 @@ public class MatterDatumConvertTaskImpl implements ITaskExcuteService {
}
return false;
}
public static void main(String[] args){
try {
String s = HttpUtil.doGet("http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=5c05a70bb7fe494d8ca6e6a382470e34",null);
JSONObject jsonObject = JSONObject.parseObject(s);
String fileUrl = jsonObject.getString("data");
HttpDownloadUtil.downLoadFromUrl(fileUrl,"bbb.pdf","D:\\Download");
}catch (Exception e){
}
}
}
package com.mortals.xhx.module.matter.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import java.util.List;
/**
* 事项申请材料Dao
......@@ -17,4 +21,6 @@ public interface MatterDatumDao extends ICRUDDao<MatterDatumEntity,Long>{
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo);
}
package com.mortals.xhx.module.matter.dao.ibatis;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.matter.dao.MatterDatumDao;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
......@@ -21,4 +24,9 @@ public class MatterDatumDaoImpl extends BaseCRUDDaoMybatis<MatterDatumEntity,Lon
public List<MatterDatumEntity> getMatterDatumCount() {
return this.getSqlSession().selectList(this.getSqlId("getMatterDatumCount"));
}
@Override
public Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo) {
return getList(getQueryParam(params),pageInfo,"getSubList");
}
}
package com.mortals.xhx.module.matter.service;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.matter.model.MatterDatumEntity;
import com.mortals.xhx.module.matter.model.MatterDatumQuery;
import java.util.List;
......@@ -30,4 +33,6 @@ public interface MatterDatumService extends ICRUDService<MatterDatumEntity,Long>
* @return
*/
List<MatterDatumEntity> getMatterDatumCount();
Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo);
}
\ No newline at end of file
......@@ -3,6 +3,8 @@ package com.mortals.xhx.module.matter.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.framework.model.Result;
import com.mortals.xhx.base.system.upload.service.UploadService;
import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.common.utils.BeanUtil;
......@@ -145,6 +147,11 @@ public class MatterDatumServiceImpl extends AbstractCRUDServiceImpl<MatterDatumD
return dao.getMatterDatumCount();
}
@Override
public Result<MatterDatumEntity> getSubList(MatterDatumQuery params, PageInfo pageInfo) {
return dao.getSubList(params,pageInfo);
}
private SiteDatumLibraryEntity updateOrSave(MatterDatumEntity item, Long siteId, Context context) {
SiteDatumLibraryEntity siteDatumLibraryEntity = siteDatumLibraryService.selectOne(new SiteDatumLibraryQuery().siteId(siteId).datumId(item.getId()));
if (ObjectUtils.isEmpty(siteDatumLibraryEntity)) {
......
......@@ -112,8 +112,8 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
int code;
try {
PageInfo pageInfo = this.buildPageInfo(query);
subListBefore(query, model, context);
Result<MatterDatumEntity> result = this.getService().find(query, pageInfo, context);
//subListBefore(query, model, context);
Result<MatterDatumEntity> result = this.getService().getSubList(query, pageInfo);
model.put("data", result.getList());
model.put("pageInfo", result.getPageInfo());
this.parsePageInfo(model, result.getPageInfo());
......
......@@ -5,4 +5,29 @@
<select id="getMatterDatumCount" resultType="com.mortals.xhx.module.matter.model.MatterDatumEntity">
SELECT matterId,count(1) as count FROM mortals_sys_matter_datum GROUP BY matterId
</select>
<!-- 获取列表 -->
<select id="getSubList" parameterType="paramDto" resultMap="MatterDatumEntity-Map">
select <include refid="_columns"/>
from mortals_sys_matter_datum as a
<trim suffixOverrides="where" suffix="">
where
matterId in (
SELECT matterId FROM mortals_sys_single_matter)
<include refid="_condition_"/>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getSubListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_sys_matter_datum as a
<trim suffixOverrides="where" suffix="">
where
matterId in (
SELECT matterId FROM mortals_sys_single_matter)
<include refid="_condition_"/>
</trim>
</select>
</mapper>
\ 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