中水项目备份

main
howec 1 year ago
parent eaa2437c00
commit d953af7604

@ -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<Map<String, Object>> 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<String, Object> 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);
//将历史数据表中的是否已同步更新

@ -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
* authorliuhao
*/
@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<String, Object> 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<String, Object> 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<EBDataReqDto> mainDatasProvince = new ArrayList<>();//省级集合
List<EBDataReqDto> 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<String, Object> 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<EBDataReqDetailDto> 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<String ,String> 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<String, Object> 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<EBDataReqDetailDto> 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<EBDataReqDto> 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<String,String> getParentName(JSONArray jsonArray,String level) {
if(jsonArray == null || jsonArray.size() == 0) {
return null;
}
Boolean flag = false;
Map<String,String> 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;
}
}
}

@ -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
* authorliuhao
*/
@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<String, Object> 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<String, Object> 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<EBDataReqDto> 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<String, Object> 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<EBDataReqDetailDto> 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<EBDataReqDto> 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());
}
}

@ -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<Map<String, Object>> execute(Map<String, Object> params) {
Map<String, Object> 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<FileCapabilityResult> 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;
}
}
Loading…
Cancel
Save