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; } }