From d953af760404b9953094abe84d0b66280b69eb55 Mon Sep 17 00:00:00 2001 From: howec <> Date: Thu, 22 Feb 2024 17:58:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E6=B0=B4=E9=A1=B9=E7=9B=AE=E5=A4=87?= =?UTF-8?q?=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 中水北方/annexSync/CompanyAnnexSyncJob.java | 14 +- .../baseDataSync/SyncBaseInfoCityJob.java | 244 ++++++++++++++++++ .../baseDataSync/SyncBaseInfoCountryJob.java | 176 +++++++++++++ .../workflowaction/ReleaseNoticeTransPdf.java | 102 ++++++++ 4 files changed, 529 insertions(+), 7 deletions(-) create mode 100644 中水北方/baseDataSync/SyncBaseInfoCityJob.java create mode 100644 中水北方/baseDataSync/SyncBaseInfoCountryJob.java create mode 100644 中水北方/workflowaction/ReleaseNoticeTransPdf.java diff --git a/中水北方/annexSync/CompanyAnnexSyncJob.java b/中水北方/annexSync/CompanyAnnexSyncJob.java index 61f9528..d48d3a1 100644 --- a/中水北方/annexSync/CompanyAnnexSyncJob.java +++ b/中水北方/annexSync/CompanyAnnexSyncJob.java @@ -58,7 +58,7 @@ public class CompanyAnnexSyncJob { public void syncCompanyAnnexJob() { log.error("附件同步开始howec......"); //获取未同步附件id的所有数据 - String sql = "select id,oldoaid,filename,ossid,filesize from uf_oldoafile where fjsfytb <> '1' or fjsfytb is NULL"; + String sql = "select id,oldoaid,filename,ossid,filesize from uf_oldoafile where IS_DELETE = '0' and (fjsfytb <> '1' or fjsfytb is NULL) "; List> historylist = jdbcTemplate.queryForList(sql); if(CollectionUtil.isNotEmpty(historylist)) { log.error("未同步的uf_oldoafile数据size:"+historylist.size()); @@ -80,13 +80,13 @@ public class CompanyAnnexSyncJob { long sums = (long)dataExistmap.get("nums"); if(sums == 1l) { //获取行信息id进行关联 - sql = "select id,file_name2 from uf_hornor where IS_DELETE = '0' and oldoa_id = "+oldoaid; + sql = "select id,file_name from uf_hornor where IS_DELETE = '0' and oldoa_id = "+oldoaid; log.error("sql2:::::"+sql); Map idmap = jdbcTemplate.queryForMap(sql); //业务id。用于关联某个业务。如:在邮件A上上传几个附件,refId 可以传邮件A的id, String refId1 = String.valueOf(idmap.get("id")); Long refId = Long.parseLong(refId1); - String file_name2 = idmap.get("file_name2") == null ? "" : String.valueOf(idmap.get("file_name2")); + String file_name = idmap.get("file_name") == null ? "" : String.valueOf(idmap.get("file_name")); //上传附件 SimpleEmployee simpleEmployee = hrmCommonUtil.getSimpleEmployee(employeeId); //获取文件类型 @@ -140,13 +140,13 @@ public class CompanyAnnexSyncJob { remoteUploadParam.setStoreResults(storeResults); FileObj fileObj = uploadClientService.remoteUploadSaveData(simpleEmployee,contentType,remoteUploadParam); Long fjid = fileObj.getId(); - if(file_name2.length()>0) { - file_name2 = file_name2+","+fjid; + if(file_name.length()>0) { + file_name = file_name+","+fjid; }else { - file_name2 = fjid.toString(); + file_name = fjid.toString(); } //上传成功,更新同步状态,更新附件 - sql = "update uf_hornor set file_name2 = '"+file_name2+"' where id = "+refId; + sql = "update uf_hornor set file_name = '"+file_name+"' where id = "+refId; log.error("sql3:::::"+sql); jdbcTemplate.execute(sql); //将历史数据表中的是否已同步更新 diff --git a/中水北方/baseDataSync/SyncBaseInfoCityJob.java b/中水北方/baseDataSync/SyncBaseInfoCityJob.java new file mode 100644 index 0000000..effbd47 --- /dev/null +++ b/中水北方/baseDataSync/SyncBaseInfoCityJob.java @@ -0,0 +1,244 @@ +package com.weaver.seconddev.tjzs.cronjob.job.baseDataSync; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; +import com.weaver.common.escheduler.handler.annotation.ESchedulerHandler; +import com.weaver.ebuilder.common.exception.BusinessException; +import com.weaver.ebuilder.form.client.entity.data.*; +import com.weaver.ebuilder.form.client.service.data.RemoteSimpleDataService; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.framework.rpc.context.impl.TenantRpcContext; +import com.weaver.mc.util.StringUtils; +import com.weaver.seconddev.tjzs.cronjob.job.util.DataUtil; +import com.weaver.seconddev.tjzs.tb.config.EbDbDataSourceConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * use:同步省级,市级 + * author:liuhao + */ +@Slf4j +@Service +@Component +public class SyncBaseInfoCityJob { + @Autowired + private static JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + + private static String transactionId = "D3640368-7615-426B-91DE-DF6367683DDD"; + + //测试 + static { + //根据表单配置获取同步方式。全量,天,月,年 + String sql = "select timeperiodname as name,timeperiod as num from ec_base.uf_setdaymaindata"; + Map map = jdbcTemplate.queryForMap(sql); + String count = String.valueOf(map.get("num")); + code = Integer.parseInt(count); + } + private String provinceformid; + private String cityformid; + private String sysadminid; + private String tenantkey; + private String prov_name; + private String prov_code; + private String city_mc; + private String city_sss; + private String city_bm; + public SyncBaseInfoCityJob() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("tjzssecond.properties"); + p.load(); + this.tenantkey = p.getString("tenantkey"); + this.provinceformid = p.getString("province.formid"); + this.cityformid = p.getString("city.formid"); + this.prov_name = p.getString("province.prov_name"); + this.prov_code = p.getString("province.prov_code"); + this.city_mc = p.getString("city.mc"); + this.city_sss = p.getString("city.sss"); + this.city_bm = p.getString("city.bm"); + this.sysadminid=p.getString("sysadminid"); + }catch (ConfigurationException e) { + throw new BusinessException("获取tjzssecond.properties配置文件失败,", e); + } + } + + private static int code; + + @RpcReference(group = "ebuilderform") + private RemoteSimpleDataService remoteSimpleDataService; + + @ESchedulerHandler(value = "syncBaseInfoCityProvinceJob",cron = "0 0 0/4 * * ?") + public void syncCountryInfoJob() { + log.error("更新省份,城市信息启动..."); + Map datajson = new HashMap<>(); + //通过接口获取区域信息,全量获取,动态分页 + DataUtil dataUtil = new DataUtil(); + //获取总页数,总条数 + String tmpData = dataUtil.syncDataPro(1, code, "县级以上行政区划","参考数据",transactionId); + + log.error("获取省份,城市信息返回报文:{}",tmpData); + if (!StringUtils.isBlank(tmpData)) { + JSONObject obj = JSONObject.parseObject(tmpData); + boolean suc = (boolean) obj.get("Success"); + if (suc) { + int pageNum; + JSONObject pageObj = obj.getJSONObject("Page"); + int totalNumber = pageObj.getIntValue("TotalNumber"); + int pageSize = pageObj.getIntValue("PageSize"); + if (totalNumber % pageSize == 0) { + pageNum = totalNumber / pageSize; + } else { + pageNum = totalNumber / pageSize + 1; + } + //开始分页 + for (int i = 1; i <= pageNum; i++) { + tmpData = dataUtil.syncDataPro(i, code, "县级以上行政区划","参考数据",transactionId); + JSONObject resdata = JSONObject.parseObject(tmpData); + JSONArray data = resdata.getJSONArray("Data"); + if (data != null && data.size() > 0) { + List mainDatasProvince = new ArrayList<>();//省级集合 + List mainDatasCity = new ArrayList<>();//市级集合 + for (int a = 0; a < data.size(); a++) { + JSONObject dataobj = data.getJSONObject(a); + String MemberCode = dataobj.getString("MemberCode"); + String MemberName = dataobj.getString("MemberName"); + JSONArray attributeArray = dataobj.getJSONArray("MemberAttributes"); + if(getParentName(attributeArray,"省级")!=null) { + //根据MemberCode判断是否更新 + String id = "yongyuanbucunzaiid";//如果是新增,则传一个数据库永远不存在的id + String sql = "select count(id) as nums from uf_province where prov_code = '" + MemberCode + "'"; + Map rs = jdbcTemplate.queryForMap(sql); + long nums = (long) rs.get("nums"); + if (nums > 0l) { + sql = "select id from uf_province where prov_code = '" + MemberCode + "'"; + log.error("howec333:{}",sql); + rs = jdbcTemplate.queryForMap(sql); + id = String.valueOf(rs.get("id")); + } + //数据拼接 + EBDataReqDto ebDataReqDto = new EBDataReqDto(); + List singledata = Lists.newArrayList(); + singledata.add(new EBDataReqDetailDto("id", id)); + singledata.add(new EBDataReqDetailDto(prov_code, MemberCode)); + singledata.add(new EBDataReqDetailDto(prov_name, MemberName)); + ebDataReqDto.setMainDatas(singledata); + mainDatasProvince.add(ebDataReqDto); + log.error("howec1:::::::::id:{},cntyname:{},cntycode:{}",id,MemberCode,MemberName); + } + Map rsmap = getParentName(attributeArray,"地级"); + if(rsmap!=null) { + String parentName = rsmap.get("parent"); + //根据MemberCode判断是否更新 + String id = "yongyuanbucunzaiid";//如果是新增,则传一个数据库永远不存在的id + String sql = "select count(id) as nums from uf_city where bm = '" + MemberCode + "'"; + Map rs = jdbcTemplate.queryForMap(sql); + long nums = (long) rs.get("nums"); + if (nums > 0l) { + sql = "select id from uf_city where bm = '" + MemberCode + "'"; + log.error("howec333:{}",sql); + rs = jdbcTemplate.queryForMap(sql); + id = String.valueOf(rs.get("id")); + } + //数据拼接 + EBDataReqDto ebDataReqDto = new EBDataReqDto(); + List singledata = Lists.newArrayList(); + singledata.add(new EBDataReqDetailDto("id", id)); + singledata.add(new EBDataReqDetailDto(city_mc, MemberName)); + singledata.add(new EBDataReqDetailDto(city_sss, parentName)); + singledata.add(new EBDataReqDetailDto(city_bm, MemberCode)); + ebDataReqDto.setMainDatas(singledata); + mainDatasCity.add(ebDataReqDto); + log.error("howec1:::::::::id:{},cntyname:{},cntycode:{}",id,MemberCode,MemberName); + } + } + //省级保存 + if(CollectionUtil.isNotEmpty(mainDatasProvince)) { + saveEb(mainDatasProvince,provinceformid); + }else { + log.error("howec省级无符合数据"); + } + //市级保存 + if(CollectionUtil.isNotEmpty(mainDatasCity)) { + saveEb(mainDatasCity,cityformid); + }else { + log.error("howec市级无符合数据"); + } + } + } + } + } + } + + /** + * eb表单保存 + * 括号内由EB组装转换生成, 括号外更新由表单引擎执行 + */ + private void saveEb(List datas,String formid) { + Gson gson = new Gson(); + String jsonString = gson.toJson(datas); + log.error("howec:::tenantkey:{}",tenantkey); + log.error("howec:::sysadminid:{}",sysadminid); + log.error("howec:::jsons:{}",jsonString); + //二开免登陆的方式,设置租户 + TenantRpcContext.setTargetTenantKey(tenantkey); + + EBDataChangeReqDto ebDataChangeReqDto = new EBDataChangeReqDto(); + // 构建基础参数; objId 表单id, operator 操作人, tenantKey 租户 + ebDataChangeReqDto.setHeader(new EBDataReqHeader(formid, sysadminid, tenantkey)); + EBDataReqOperation ebDataReqOperation = new EBDataReqOperation(); + ebDataReqOperation.setUpdateType(EBDataUpdateType.ids); + EBDataReqOperationInfo ebDataReqOperationInfo = new EBDataReqOperationInfo(); + ebDataReqOperationInfo.setNeedAdd(true); + ebDataReqOperation.setMainData(ebDataReqOperationInfo); + ebDataChangeReqDto.setOperation(ebDataReqOperation); + ebDataChangeReqDto.setDatas(datas); + EBDataChangeResult ebDataChangeResult = remoteSimpleDataService.updateFormData(ebDataChangeReqDto); + log.error("批量更新/新增省、市返回值:"+ebDataChangeResult.getMessage()); + log.error("批量更新/新增省、市返回值:"+ebDataChangeResult.getStatus()); + log.error("批量更新/新增省、市返回值:"+ebDataChangeResult.getDataIds().toString()); + } + + private Map getParentName(JSONArray jsonArray,String level) { + if(jsonArray == null || jsonArray.size() == 0) { + return null; + } + Boolean flag = false; + Map map = new HashMap<>(); + for(int i = 0 ;i < jsonArray.size(); i++) { + JSONObject obj1 = jsonArray.getJSONObject(i); + String name1 = obj1.getString("Name"); + if("Level".equals(name1)) { + JSONObject levelObjvalue = obj1.getJSONObject("Value"); + String namej = levelObjvalue.getString("Name"); + if(level.equals(namej)) { + flag = true; + } + } + if("Parent".equals(name1)) { + map.put("parent",obj1.getString("Value")); + } + } + if(flag) { + return map; + }else { + return null; + } + } + +} diff --git a/中水北方/baseDataSync/SyncBaseInfoCountryJob.java b/中水北方/baseDataSync/SyncBaseInfoCountryJob.java new file mode 100644 index 0000000..b07ee18 --- /dev/null +++ b/中水北方/baseDataSync/SyncBaseInfoCountryJob.java @@ -0,0 +1,176 @@ +package com.weaver.seconddev.tjzs.cronjob.job.baseDataSync; + +import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.Gson; +import com.weaver.common.escheduler.handler.annotation.ESchedulerHandler; +import com.weaver.ebuilder.common.exception.BusinessException; +import com.weaver.ebuilder.form.client.entity.data.*; +import com.weaver.ebuilder.form.client.service.data.RemoteSimpleDataService; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.framework.rpc.context.impl.TenantRpcContext; +import com.weaver.mc.util.StringUtils; +import com.weaver.seconddev.tjzs.cronjob.job.util.DataUtil; +import com.weaver.seconddev.tjzs.tb.config.EbDbDataSourceConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * use:同步国家 + * author:liuhao + */ +@Slf4j +@Service +@Component +public class SyncBaseInfoCountryJob { + @Autowired + private static JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + + private static String transactionId = "D3640368-7615-426B-91DE-DF6367683DDD"; + + //测试 + static { + //根据表单配置获取同步方式。全量,天,月,年 + String sql = "select timeperiodname as name,timeperiod as num from ec_base.uf_setdaymaindata"; + Map map = jdbcTemplate.queryForMap(sql); + String count = String.valueOf(map.get("num")); + code = Integer.parseInt(count); + } + private String countryformid; + private String sysadminid; + private String tenantkey; + private String cntyname; + private String cntycode; + + public SyncBaseInfoCountryJob() { + PropertiesConfiguration p = null; + try { + p = new PropertiesConfiguration(); + p.setEncoding("utf-8"); + p.setFileName("tjzssecond.properties"); + p.load(); + this.tenantkey = p.getString("tenantkey"); + this.countryformid = p.getString("country.formid"); + this.cntyname = p.getString("country.cnty_name"); + this.cntycode = p.getString("country.cnty_code"); + this.sysadminid=p.getString("sysadminid"); + }catch (ConfigurationException e) { + throw new BusinessException("获取tjzssecond.properties配置文件失败,", e); + } + } + + private static int code; + + @RpcReference(group = "ebuilderform") + private RemoteSimpleDataService remoteSimpleDataService; + + @ESchedulerHandler(value = "syncBaseInfoCountryJob",cron = "0 0 0/4 * * ?") + public void syncCountryInfoJob() { + log.error("更新国家信息启动..."); + Map datajson = new HashMap<>(); + //通过接口获取区域信息,全量获取,动态分页 + DataUtil dataUtil = new DataUtil(); + //获取总页数,总条数 + String tmpData = dataUtil.syncDataPro(1, code, "国别","参考数据",transactionId); + + log.error("获取国家信息返回报文:{}",tmpData); + if (!StringUtils.isBlank(tmpData)) { + JSONObject obj = JSONObject.parseObject(tmpData); + boolean suc = (boolean) obj.get("Success"); + if (suc) { + int pageNum; + JSONObject pageObj = obj.getJSONObject("Page"); + int totalNumber = pageObj.getIntValue("TotalNumber"); + int pageSize = pageObj.getIntValue("PageSize"); + if (totalNumber % pageSize == 0) { + pageNum = totalNumber / pageSize; + } else { + pageNum = totalNumber / pageSize + 1; + } + //开始分页 + for (int i = 1; i <= pageNum; i++) { + tmpData = dataUtil.syncDataPro(i, code, "国别","参考数据",transactionId); + JSONObject resdata = JSONObject.parseObject(tmpData); + JSONArray data = resdata.getJSONArray("Data"); + if (data != null && data.size() > 0) { + List mainDatas = new ArrayList<>(); + for (int a = 0; a < data.size(); a++) { + JSONObject dataobj = data.getJSONObject(a); + String MemberCode = dataobj.getString("MemberCode"); + String MemberName = dataobj.getString("MemberName"); + //根据MemberCode判断是否更新 + String id = "yongyuanbucunzaiid";//如果是新增,则传一个数据库永远不存在的id + String sql = "select count(id) as nums from uf_country where cnty_code = '" + MemberCode + "'"; + Map rs = jdbcTemplate.queryForMap(sql); + long nums = (long) rs.get("nums"); + if (nums > 0l) { + sql = "select id from uf_country where cnty_code = '" + MemberCode + "'"; + log.error("howec333:{}",sql); + rs = jdbcTemplate.queryForMap(sql); + id = String.valueOf(rs.get("id")); + } + //数据拼接 + EBDataReqDto ebDataReqDto = new EBDataReqDto(); + List singledata = Lists.newArrayList(); + singledata.add(new EBDataReqDetailDto("id", id)); + singledata.add(new EBDataReqDetailDto(cntyname, MemberName)); + singledata.add(new EBDataReqDetailDto(cntycode, MemberCode)); + ebDataReqDto.setMainDatas(singledata); + mainDatas.add(ebDataReqDto); + log.error("howec:::::::::id:{},cntyname:{},cntycode:{}",id,MemberCode,MemberName); + } + //保存 + if(CollectionUtil.isNotEmpty(mainDatas)) { + saveEb(mainDatas,countryformid); + }else { + log.error("howec无符合数据"); + } + } + } + } + } + } + + /** + * eb表单保存 + * 括号内由EB组装转换生成, 括号外更新由表单引擎执行 + */ + private void saveEb(List datas,String formid) { + Gson gson = new Gson(); + String jsonString = gson.toJson(datas); + log.error("howec:::tenantkey:{}",tenantkey); + log.error("howec:::sysadminid:{}",sysadminid); + log.error("howec:::jsons:{}",jsonString); + //二开免登陆的方式,设置租户 + TenantRpcContext.setTargetTenantKey(tenantkey); + + + EBDataChangeReqDto ebDataChangeReqDto = new EBDataChangeReqDto(); + // 构建基础参数; objId 表单id, operator 操作人, tenantKey 租户 + ebDataChangeReqDto.setHeader(new EBDataReqHeader(formid, sysadminid, tenantkey)); + EBDataReqOperation ebDataReqOperation = new EBDataReqOperation(); + ebDataReqOperation.setUpdateType(EBDataUpdateType.ids); + EBDataReqOperationInfo ebDataReqOperationInfo = new EBDataReqOperationInfo(); + ebDataReqOperationInfo.setNeedAdd(true); + ebDataReqOperation.setMainData(ebDataReqOperationInfo); + ebDataChangeReqDto.setOperation(ebDataReqOperation); + ebDataChangeReqDto.setDatas(datas); + EBDataChangeResult ebDataChangeResult = remoteSimpleDataService.updateFormData(ebDataChangeReqDto); + log.error("批量更新/新增uf_country返回值:"+ebDataChangeResult.getMessage()); + log.error("批量更新/新增uf_country返回值:"+ebDataChangeResult.getStatus()); + log.error("批量更新/新增uf_country返回值:"+ebDataChangeResult.getDataIds().toString()); + } + +} diff --git a/中水北方/workflowaction/ReleaseNoticeTransPdf.java b/中水北方/workflowaction/ReleaseNoticeTransPdf.java new file mode 100644 index 0000000..965e9d0 --- /dev/null +++ b/中水北方/workflowaction/ReleaseNoticeTransPdf.java @@ -0,0 +1,102 @@ +package com.weaver.seconddev.workflow.action; +/** + * author:liuhao + * use:发布通知流程归档正文转换为PDF https://www.kdocs.cn/l/ciMvDAGQsXaH + */ +import com.alibaba.fastjson.JSONObject; +import com.weaver.common.base.entity.result.WeaResult; +import com.weaver.esb.api.rpc.EsbServerlessRpcRemoteInterface; +import com.weaver.eteams.file.client.file.FileCapabilityParam; +import com.weaver.eteams.file.client.file.FileCapabilityResult; +import com.weaver.eteams.file.client.param.FileCovertParam; +import com.weaver.eteams.file.client.remote.OfficialFileConvertService; +import com.weaver.framework.rpc.annotation.RpcReference; +import com.weaver.seconddev.tjzs.cronjob.job.util.ETUtil; +import com.weaver.seconddev.tjzs.cronjob.job.util.ZsConfig; +import com.weaver.seconddev.tjzs.tb.config.EbDbDataSourceConfig; +import lombok.extern.slf4j.Slf4j; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +@Slf4j +@Service("esb_releaseNoticeTransPdf") +public class ReleaseNoticeTransPdf implements EsbServerlessRpcRemoteInterface { + + @RpcReference + private OfficialFileConvertService officialFileConvertService; + @Autowired + private JdbcTemplate jdbcTemplate = new JdbcTemplate(EbDbDataSourceConfig.dbDataSource()); + @Override + public WeaResult> execute(Map params) { + Map rs = new HashMap<>(); + String zhengwendocid = (String)params.get("docid");//这里,正文拿到的是docid + String id = (String)params.get("id");//表单数据id + String userId = (String)params.get("userId");//当前登录用户id + String resultdetails = getWdContent(userId,zhengwendocid); + if(resultdetails.length()>0) { + JSONObject jsonObject = JSONObject.parseObject(resultdetails); + JSONObject data = jsonObject.getJSONObject("data"); + if(data.containsKey("content")&&data.getString("content").length()>0) { + String zwfieldid = data.getString("content"); + Long feild = Long.parseLong(zwfieldid); + FileCapabilityParam fileCapabilityParam = new FileCapabilityParam(); + fileCapabilityParam.setOption("CONVERT"); + fileCapabilityParam.setFileId(feild); + fileCapabilityParam.setUserId(userId); + fileCapabilityParam.setModule("workflow"); + FileCovertParam fileCovertParam = new FileCovertParam(); + fileCovertParam.setTargetType("pdf"); + fileCapabilityParam.setFileCovertParam(fileCovertParam); + WeaResult result = officialFileConvertService.capabilityFile(fileCapabilityParam); + log.error("格式转换:msg:{},code:{}",result.getMsg(),result.getCode()); + if(result.getCode() == 200) { + FileCapabilityResult fileCapabilityResult = result.getData(); + String targetFileId = fileCapabilityResult.getTargetFileId(); + //更新附件PDF字段 + String sql = "update ft_942048192473825282 set zwpdf = '"+targetFileId+"' where id = "+id; + log.error("howecsql:"+sql); + jdbcTemplate.update(sql); + } + rs.put("msg",result.getMsg()); + rs.put("code",result.getCode()); + return WeaResult.success(rs); + }else { + rs.put("msg","该正文没有文件生成,无需转换pdf!"); + rs.put("code",500); + } + }else { + rs.put("msg","调用根据docid获取文件内容接口失败,联系管理员!"); + rs.put("code",500); + } + return WeaResult.success(rs); + } + + /** + * use:获取文档内容 + */ + public static String getWdContent(String userid,String docid) { + String token = ETUtil.getToken(); + String url = ZsConfig.zshost; + String rs = ""; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder() + .url(url+"/api/doc/document/v2/info?access_token="+token+"&userid="+userid+"&id="+docid) + .get() + .addHeader("cache-control", "no-cache") + .build(); + try { + Response response = client.newCall(request).execute(); + rs = response.body().string(); + }catch (Exception e){ + + } + return rs; + } +}