This commit is contained in:
张光起 2025-06-03 11:07:03 +08:00
parent 83e3616272
commit c24f033b8e
6 changed files with 457 additions and 62 deletions

View File

@ -46,8 +46,8 @@ public class DeptController {
private RestTemplate restTemplate = new RestTemplate(); private RestTemplate restTemplate = new RestTemplate();
public static void main(String[] args) { public static void main(String[] args) {
new DeptController().syncDept(); // new DeptController().syncDept();
//new DeptController().syncDeptUp(); new DeptController().syncDeptUp();
} }
/** /**
@ -71,9 +71,9 @@ public class DeptController {
//开始查询部门(暂时使用固定值) //开始查询部门(暂时使用固定值)
Map data = new HashMap<>(); Map data = new HashMap<>();
data.put("createtime", "2020-01-01 00:00:00"); data.put("createtime", "2025-06-01 00:00:00");
data.put("enable", "1"); data.put("enable", "1");
data.put("number", Arrays.asList("ZHY002.005.003.004")); // data.put("number", Arrays.asList("ZHY002.005.003.004"));
// data.put("level", "3"); // data.put("level", "3");
Map deptReq = new HashMap<>(); Map deptReq = new HashMap<>();
@ -311,9 +311,9 @@ public class DeptController {
//开始查询部门(暂时使用固定值) //开始查询部门(暂时使用固定值)
Map data = new HashMap<>(); Map data = new HashMap<>();
data.put("modifytime", "2020-01-01 00:00:00"); data.put("modifytime", "2025-06-01 00:00:00");
data.put("enable", "1"); data.put("enable", "1");
data.put("number", Arrays.asList("ZHY002.005.001.006")); // data.put("number", Arrays.asList("ZHY002.005.001.006"));
// data.put("level", "3"); // data.put("level", "3");
Map deptReq = new HashMap<>(); Map deptReq = new HashMap<>();

View File

@ -56,7 +56,7 @@ public class UsceController {
JSONObject params = new JSONObject(); JSONObject params = new JSONObject();
JSONObject datajson = new JSONObject(); JSONObject datajson = new JSONObject();
datajson.put("createtime", "2012-02-26 11:04:43"); datajson.put("createtime", "2025-06-01 00:00:00");
JSONArray arr = new JSONArray(); JSONArray arr = new JSONArray();
String[] strings = { String[] strings = {
"苗依达" "苗依达"
@ -68,7 +68,7 @@ public class UsceController {
} }
datajson.put("name", arr); // datajson.put("name", arr);
params.put("data", datajson); params.put("data", datajson);

View File

@ -55,11 +55,20 @@ public class customerContactController {
JSONObject jsonject = fxapi.getSynNewDataObj(false, "联系人", apiName, paramList); JSONObject jsonject = fxapi.getSynNewDataObj(false, "联系人", apiName, paramList);
JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList"); JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList");
List<CrmFXApiParam> paramListB = Arrays.asList(
new CrmFXApiParam("EQ", "sync_status__c", "option_resync__c"),
new CrmFXApiParam("EQ", "life_status", "normal")
);
JSONObject jsonjectB = fxapi.getSynNewDataObj(false, "联系人重新同步", apiName, paramListB);
JSONArray arrayA = jsonjectB.getJSONObject("data").getJSONArray("dataList");
array.addAll(arrayA);
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
JSONObject str = array.getJSONObject(i); JSONObject str = array.getJSONObject(i);
String dataId = GcjJson.getNodeValue(str, "JSON._id") != null ? GcjJson.getNodeValue(str, "JSON._id").toString() : ""; String dataId = GcjJson.getNodeValue(str, "JSON._id") != null ? GcjJson.getNodeValue(str, "JSON._id").toString() : "";
String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : ""; String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : "";
String endtime = GcjJson.getNodeValue(str, "JSON.last_modified_time") != null ? GcjJson.getNodeValue(str, "JSON.last_modified_time").toString() : "";
String status = GcjJson.getNodeValue(str, "JSON.sync_status__c") != null ? GcjJson.getNodeValue(str, "JSON.sync_status__c").toString() : "";
String syn_type = "0";//同步类型 0新增 1修改 2删除 String syn_type = "0";//同步类型 0新增 1修改 2删除
log.info("-------------------开始执行联系人" + i + " -------------------" + nameData); log.info("-------------------开始执行联系人" + i + " -------------------" + nameData);
@ -77,6 +86,9 @@ public class customerContactController {
log.info("数据已存在-" + nameData); log.info("数据已存在-" + nameData);
XxlJobHelper.log("--数据已存在---" + nameData); XxlJobHelper.log("--数据已存在---" + nameData);
tbflag = true; tbflag = true;
if("option_resync__c".equals(status) && !endtime.equals(dataSyn.getString("mark"))){
tbflag = false;
}
} }
if (tbflag) { if (tbflag) {
continue; continue;
@ -89,7 +101,7 @@ public class customerContactController {
jsonObjectData.put("crmzhu_id", dataId);//数据id jsonObjectData.put("crmzhu_id", dataId);//数据id
jsonObjectData.put("send_status", 3);//同步状态 true同步成功 false同步失败 3待同步 jsonObjectData.put("send_status", 3);//同步状态 true同步成功 false同步失败 3待同步
jsonObjectData.put("crm_code", nameData);//数据名称 jsonObjectData.put("crm_code", nameData);//数据名称
jsonObjectData.put("mark", nameData);//标识 jsonObjectData.put("mark", endtime);//标识
jsonObjectData.put("crm_json", str.toJSONString());//标识 jsonObjectData.put("crm_json", str.toJSONString());//标识
MagicApi.saveSendSYNDatacustomer(jsonObjectData); MagicApi.saveSendSYNDatacustomer(jsonObjectData);
@ -121,6 +133,8 @@ public class customerContactController {
String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : ""; String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : "";
String account_id = GcjJson.getNodeValue(str, "JSON.account_id") != null ? GcjJson.getNodeValue(str, "JSON.account_id").toString() : ""; String account_id = GcjJson.getNodeValue(str, "JSON.account_id") != null ? GcjJson.getNodeValue(str, "JSON.account_id").toString() : "";
String customer_code__c = GcjJson.getNodeValue(str, "JSON.customer_code__c") != null ? GcjJson.getNodeValue(str, "JSON.customer_code__c").toString() : ""; String customer_code__c = GcjJson.getNodeValue(str, "JSON.customer_code__c") != null ? GcjJson.getNodeValue(str, "JSON.customer_code__c").toString() : "";
String endtime = GcjJson.getNodeValue(str, "JSON.last_modified_time") != null ? GcjJson.getNodeValue(str, "JSON.last_modified_time").toString() : "";
String status = GcjJson.getNodeValue(str, "JSON.sync_status__c") != null ? GcjJson.getNodeValue(str, "JSON.sync_status__c").toString() : "";
String strJson = ""; String strJson = "";
@ -130,6 +144,9 @@ public class customerContactController {
log.info("数据已存在-" + nameData); log.info("数据已存在-" + nameData);
XxlJobHelper.log("--数据已存在---" + nameData); XxlJobHelper.log("--数据已存在---" + nameData);
tbflag = true; tbflag = true;
if("option_resync__c".equals(status) && !endtime.equals(dataSyn.getString("mark"))){
tbflag = false;
}
} }
if (tbflag) { if (tbflag) {
continue; continue;
@ -159,13 +176,16 @@ public class customerContactController {
groupstandardjson.put("dept",GcjJson.getNodeValue(stra, "JSON.department")); groupstandardjson.put("dept",GcjJson.getNodeValue(stra, "JSON.department"));
groupstandardjson.put("email",GcjJson.getNodeValue(stra, "JSON.email")); groupstandardjson.put("email",GcjJson.getNodeValue(stra, "JSON.email"));
groupstandardjson.put("phone",GcjJson.getNodeValue(stra, "JSON.mobile1")); groupstandardjson.put("phone",GcjJson.getNodeValue(stra, "JSON.mobile1"));
groupstandardarr.add(groupstandardjson);
if(j==0){
groupstandardjson.put("isdefault_linkman",true);
}
groupstandardarr.add(groupstandardjson);
} }
datajson.put("entry_linkman",groupstandardarr);//联系人 datajson.put("entry_linkman",groupstandardarr);//联系人
//创建组织 //创建组织
datajson.put("createorg_number","zycxjtpoc.test"); datajson.put("createorg_number","zyierp");
dataarr.add(datajson); dataarr.add(datajson);
params.put("data",dataarr); params.put("data",dataarr);
log.info("--请求json---" + params.toJSONString()); log.info("--请求json---" + params.toJSONString());
@ -208,7 +228,7 @@ public class customerContactController {
Map<String, Object> paramMap = new HashMap<String, Object>(); Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_success__c"); paramMap.put("sync_status__c", "option_sync_success__c");
// paramMap.put("sync_info__c", resjs.getString("message")); paramMap.put("sync_info__c", resjs.getString("message"));
//回写json //回写json
fxapi.upSynFieldParam("", "ContactObj", dataId, paramMap); fxapi.upSynFieldParam("", "ContactObj", dataId, paramMap);
}else{ }else{
@ -216,7 +236,7 @@ public class customerContactController {
stringBuffer.append("联系人创建接口调用失败:"+resjs.getString("message")); stringBuffer.append("联系人创建接口调用失败:"+resjs.getString("message"));
Map<String, Object> paramMap = new HashMap<String, Object>(); Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_failure__c"); paramMap.put("sync_status__c", "option_sync_failure__c");
// paramMap.put("sync_info__c", stringBuffer); paramMap.put("sync_info__c", stringBuffer);
//回写json //回写json
fxapi.upSynFieldParam("", "ContactObj", dataId, paramMap); fxapi.upSynFieldParam("", "ContactObj", dataId, paramMap);
} }
@ -225,7 +245,7 @@ public class customerContactController {
stringBuffer.append("联系人创建接口调用失败,请检查网络配置"); stringBuffer.append("联系人创建接口调用失败,请检查网络配置");
Map<String, Object> paramMap = new HashMap<String, Object>(); Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_failure__c"); paramMap.put("sync_status__c", "option_sync_failure__c");
// paramMap.put("sync_info__c", stringBuffer); paramMap.put("sync_info__c", stringBuffer);
//回写json //回写json
fxapi.upSynFieldParam("", "ContactObj", dataId, paramMap); fxapi.upSynFieldParam("", "ContactObj", dataId, paramMap);
} }

View File

@ -44,24 +44,37 @@ public class customerController {
String apiName = "AccountObj"; String apiName = "AccountObj";
/* List<CrmFXApiParam> paramList = Arrays.asList( List<CrmFXApiParam> paramList = Arrays.asList(
new CrmFXApiParam("GT", "last_modified_time", System.currentTimeMillis() - (1000 * 60 * 60 * 24)), new CrmFXApiParam("GT", "last_modified_time", System.currentTimeMillis() - (1000 * 60 * 60 * 24)),
new CrmFXApiParam("IS", "erp_id__c", ""), new CrmFXApiParam("IS", "erp_id__c", ""),
new CrmFXApiParam("ISN", "erp_category__c", ""), new CrmFXApiParam("ISN", "erp_category__c", ""),
new CrmFXApiParam("EQ", "sync_status__c", "option_test__c"),
new CrmFXApiParam("EQ", "life_status", "normal") new CrmFXApiParam("EQ", "life_status", "normal")
);*/ );
List<CrmFXApiParam> paramList = Arrays.asList(new CrmFXApiParam("EQ", "name", "灵宝市窄口水务管理局")); // List<CrmFXApiParam> paramList = Arrays.asList(new CrmFXApiParam("EQ", "name", "灵宝市窄口水务管理局"));
JSONObject jsonject = fxapi.getSynNewDataObj(false, "客户", apiName, paramList); JSONObject jsonject = fxapi.getSynNewDataObj(false, "客户", apiName, paramList);
JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList"); JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList");
List<CrmFXApiParam> paramListB = Arrays.asList(
new CrmFXApiParam("EQ", "sync_status__c", "option_resync__c"),
new CrmFXApiParam("EQ", "life_status", "normal")
);
JSONObject jsonjectB = fxapi.getSynNewDataObj(false, "客户重新同步", apiName, paramListB);
JSONArray arrayA = jsonjectB.getJSONObject("data").getJSONArray("dataList");
array.addAll(arrayA);
for (int i = 0; i < array.size(); i++) { for (int i = 0; i < array.size(); i++) {
JSONObject str = array.getJSONObject(i); JSONObject str = array.getJSONObject(i);
String dataId = GcjJson.getNodeValue(str, "JSON._id") != null ? GcjJson.getNodeValue(str, "JSON._id").toString() : ""; String dataId = GcjJson.getNodeValue(str, "JSON._id") != null ? GcjJson.getNodeValue(str, "JSON._id").toString() : "";
String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : ""; String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : "";
String status = GcjJson.getNodeValue(str, "JSON.sync_status__c") != null ? GcjJson.getNodeValue(str, "JSON.sync_status__c").toString() : "";
String endtime = GcjJson.getNodeValue(str, "JSON.last_modified_time") != null ? GcjJson.getNodeValue(str, "JSON.last_modified_time").toString() : "";
String syn_type = "0";//同步类型 0新增 1修改 2删除 String syn_type = "0";//同步类型 0新增 1修改 2删除
log.info("-------------------开始执行客户" + i + " -------------------" + nameData); log.info("-------------------开始执行客户" + i + " -------------------" + nameData);
@ -79,6 +92,9 @@ public class customerController {
log.info("数据已存在-" + nameData); log.info("数据已存在-" + nameData);
XxlJobHelper.log("--数据已存在---" + nameData); XxlJobHelper.log("--数据已存在---" + nameData);
tbflag = true; tbflag = true;
if("option_resync__c".equals(status) && !endtime.equals(dataSyn.getString("mark"))){
tbflag = false;
}
} }
if (tbflag) { if (tbflag) {
continue; continue;
@ -91,7 +107,7 @@ public class customerController {
jsonObjectData.put("crmzhu_id", dataId);//数据id jsonObjectData.put("crmzhu_id", dataId);//数据id
jsonObjectData.put("send_status", 3);//同步状态 true同步成功 false同步失败 3待同步 jsonObjectData.put("send_status", 3);//同步状态 true同步成功 false同步失败 3待同步
jsonObjectData.put("crm_code", nameData);//数据名称 jsonObjectData.put("crm_code", nameData);//数据名称
jsonObjectData.put("mark", nameData);//标识 jsonObjectData.put("mark", endtime);//标识
jsonObjectData.put("crm_json", str.toJSONString());//标识 jsonObjectData.put("crm_json", str.toJSONString());//标识
MagicApi.saveSendSYNDatacustomer(jsonObjectData); MagicApi.saveSendSYNDatacustomer(jsonObjectData);
@ -127,6 +143,8 @@ public class customerController {
String account_no = GcjJson.getNodeValue(str, "JSON.account_no") != null ? GcjJson.getNodeValue(str, "JSON.account_no").toString() : ""; String account_no = GcjJson.getNodeValue(str, "JSON.account_no") != null ? GcjJson.getNodeValue(str, "JSON.account_no").toString() : "";
String erp_category__c = GcjJson.getNodeValue(str, "JSON.erp_category__c") != null ? GcjJson.getNodeValue(str, "JSON.erp_category__c").toString() : ""; String erp_category__c = GcjJson.getNodeValue(str, "JSON.erp_category__c") != null ? GcjJson.getNodeValue(str, "JSON.erp_category__c").toString() : "";
String endtime = GcjJson.getNodeValue(str, "JSON.last_modified_time") != null ? GcjJson.getNodeValue(str, "JSON.last_modified_time").toString() : "";
String status = GcjJson.getNodeValue(str, "JSON.sync_status__c") != null ? GcjJson.getNodeValue(str, "JSON.sync_status__c").toString() : "";
String strJson = ""; String strJson = "";
try{ try{
@ -135,6 +153,9 @@ public class customerController {
log.info("数据已存在-" + nameData); log.info("数据已存在-" + nameData);
XxlJobHelper.log("--数据已存在---" + nameData); XxlJobHelper.log("--数据已存在---" + nameData);
tbflag = true; tbflag = true;
if("option_resync__c".equals(status) && !endtime.equals(dataSyn.getString("mark"))){
tbflag = false;
}
} }
if (tbflag) { if (tbflag) {
continue; continue;
@ -173,7 +194,6 @@ public class customerController {
JSONArray arrayZ = jsonjectZ.getJSONObject("data").getJSONArray("dataList"); JSONArray arrayZ = jsonjectZ.getJSONObject("data").getJSONArray("dataList");
if (!arrayZ.isEmpty()){ if (!arrayZ.isEmpty()){
for (int j = 0; j < arrayZ.size(); j++) { for (int j = 0; j < arrayZ.size(); j++) {
JSONObject stra = arrayZ.getJSONObject(j); JSONObject stra = arrayZ.getJSONObject(j);
JSONObject lxrjson = new JSONObject(); JSONObject lxrjson = new JSONObject();
lxrjson.put("contactperson",GcjJson.getNodeValue(stra, "JSON.name")); lxrjson.put("contactperson",GcjJson.getNodeValue(stra, "JSON.name"));
@ -184,32 +204,33 @@ public class customerController {
if(j==0){ if(j==0){
lxrjson.put("isdefault_linkman",true); lxrjson.put("isdefault_linkman",true);
} }
lxrarr.add(lxrjson); lxrarr.add(lxrjson);
} }
datajson.put("entry_linkman",lxrarr);//联系人 datajson.put("entry_linkman",lxrarr);//联系人
} }
JSONArray groupstandardarr2 = new JSONArray(); JSONArray groupstandardarr2 = new JSONArray();
JSONObject groupstandardjson2 = new JSONObject(); JSONObject jsonjectC = fxapi.getSynDataObj("客户下财务信息", "AccountFinInfoObj", "account_id", dataId);
groupstandardjson2.put("bank_number","001100001509"); JSONArray arrayC = jsonjectC.getJSONObject("data").getJSONArray("dataList");
groupstandardjson2.put("accountname","1"); if (!arrayC.isEmpty()){
groupstandardjson2.put("currency_number","CNY"); for (int j = 0; j < arrayC.size(); j++) {
groupstandardjson2.put("bankaccount","1"); JSONObject stra = arrayC.getJSONObject(j);
groupstandardjson2.put("isdefault_bank",true); JSONObject groupstandardjson2 = new JSONObject();
groupstandardarr2.add(groupstandardjson2); groupstandardjson2.put("bank_number",GcjJson.getNodeValue(stra, "JSON.bank_name_branch_number__c"));
groupstandardjson2.put("accountname",GcjJson.getNodeValue(stra, "JSON.account_name__c"));
groupstandardjson2.put("currency_number","CNY");
groupstandardjson2.put("bankaccount",GcjJson.getNodeValue(stra, "JSON.account_bank_no"));
groupstandardjson2.put("isdefault_bank",false);
if(j==0){
groupstandardjson2.put("isdefault_bank",true);
}
groupstandardarr2.add(groupstandardjson2);
}
datajson.put("entry_bank",groupstandardarr2);//银行信息
}
JSONObject groupstandardjson3 = new JSONObject();
groupstandardjson3.put("bank_number","001110012009");
groupstandardjson3.put("accountname","2");
groupstandardjson3.put("currency_number","CNY");
groupstandardjson3.put("bankaccount","2");
groupstandardjson3.put("isdefault_bank",false);
groupstandardarr2.add(groupstandardjson3);
datajson.put("entry_bank",groupstandardarr2);//银行信息
//创建组织 //创建组织
datajson.put("createorg_number","zyierp"); datajson.put("createorg_number","zyierp");
@ -258,6 +279,7 @@ public class customerController {
paramMap.put("erp_id__c", erpid);//数据ID paramMap.put("erp_id__c", erpid);//数据ID
paramMap.put("sync_status__c", "option_sync_success__c"); paramMap.put("sync_status__c", "option_sync_success__c");
paramMap.put("sync_info__c", resjs.getString("message")); paramMap.put("sync_info__c", resjs.getString("message"));
//fxapi.lock(false, dataId, "AccountObj");
//回写json //回写json
fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap); fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap);
}else{ }else{
@ -314,16 +336,16 @@ public class customerController {
String apiName = "AccountObj"; String apiName = "AccountObj";
/* List<CrmFXApiParam> paramList = Arrays.asList( List<CrmFXApiParam> paramList = Arrays.asList(
new CrmFXApiParam("GT", "last_modified_time", System.currentTimeMillis() - (1000 * 60 * 60 * 24)), new CrmFXApiParam("GT", "last_modified_time", System.currentTimeMillis() - (1000 * 60 * 60 * 24)),
new CrmFXApiParam("ISN", "erp_id__c", ""), new CrmFXApiParam("ISN", "erp_id__c", ""),
new CrmFXApiParam("ISN", "erp_category__c", ""), new CrmFXApiParam("ISN", "erp_category__c", ""),
new CrmFXApiParam("EQ", "sync_status__c", "option_sync_success__c"), new CrmFXApiParam("EQ", "sync_status__c", "option_sync_success__c"),
new CrmFXApiParam("EQ", "life_status", "normal") new CrmFXApiParam("EQ", "life_status", "normal")
);*/ );
List<CrmFXApiParam> paramList = Arrays.asList(new CrmFXApiParam("EQ", "name", "国网湖北省电力有限公司武汉供电公司")); // List<CrmFXApiParam> paramList = Arrays.asList(new CrmFXApiParam("EQ", "name", "国网湖北省电力有限公司武汉供电公司"));
JSONObject jsonject = fxapi.getSynNewDataObj(false, "客户", apiName, paramList); JSONObject jsonject = fxapi.getSynNewDataObj(false, "客户", apiName, paramList);
JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList"); JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList");
@ -439,26 +461,46 @@ public class customerController {
datajson.put("entry_groupstandard",groupstandardarr);//分类标准 datajson.put("entry_groupstandard",groupstandardarr);//分类标准
JSONArray lxrarr = new JSONArray();
JSONObject jsonjectZ = fxapi.getSynDataObj("客户下联系人", "ContactObj", "account_id", dataId);
JSONArray arrayZ = jsonjectZ.getJSONObject("data").getJSONArray("dataList");
if (!arrayZ.isEmpty()){
for (int j = 0; j < arrayZ.size(); j++) {
JSONObject stra = arrayZ.getJSONObject(j);
JSONObject lxrjson = new JSONObject();
lxrjson.put("contactperson",GcjJson.getNodeValue(stra, "JSON.name"));
lxrjson.put("contactpersonpost",GcjJson.getNodeValue(stra, "JSON.job_title"));
lxrjson.put("dept",GcjJson.getNodeValue(stra, "JSON.department"));
lxrjson.put("email",GcjJson.getNodeValue(stra, "JSON.email"));
lxrjson.put("phone",GcjJson.getNodeValue(stra, "JSON.mobile1"));
if(j==0){
lxrjson.put("isdefault_linkman",true);
}
lxrarr.add(lxrjson);
}
datajson.put("entry_linkman",lxrarr);//联系人
}
JSONArray groupstandardarr2 = new JSONArray(); JSONArray groupstandardarr2 = new JSONArray();
JSONObject groupstandardjson2 = new JSONObject(); JSONObject jsonjectC = fxapi.getSynDataObj("客户下财务信息", "AccountFinInfoObj", "account_id", dataId);
groupstandardjson2.put("bank_number","001100001509"); JSONArray arrayC = jsonjectC.getJSONObject("data").getJSONArray("dataList");
groupstandardjson2.put("accountname","1"); if (!arrayC.isEmpty()){
groupstandardjson2.put("currency_number","CNY"); for (int j = 0; j < arrayC.size(); j++) {
groupstandardjson2.put("bankaccount","1"); JSONObject stra = arrayC.getJSONObject(j);
groupstandardjson2.put("isdefault_bank",true); JSONObject groupstandardjson2 = new JSONObject();
groupstandardarr2.add(groupstandardjson2); groupstandardjson2.put("bank_number",GcjJson.getNodeValue(stra, "JSON.bank_name_branch_number__c"));
groupstandardjson2.put("accountname",GcjJson.getNodeValue(stra, "JSON.account_name__c"));
groupstandardjson2.put("currency_number","CNY");
groupstandardjson2.put("bankaccount",GcjJson.getNodeValue(stra, "JSON.account_bank_no"));
groupstandardjson2.put("isdefault_bank",false);
JSONObject groupstandardjson3 = new JSONObject(); if(j==0){
groupstandardjson3.put("bank_number","001110012009"); groupstandardjson2.put("isdefault_bank",true);
groupstandardjson3.put("accountname","2"); }
groupstandardjson3.put("currency_number","CNY"); groupstandardarr2.add(groupstandardjson2);
groupstandardjson3.put("bankaccount","2"); }
groupstandardjson3.put("isdefault_bank",false); datajson.put("entry_bank",groupstandardarr2);//银行信息
groupstandardarr2.add(groupstandardjson3); }
datajson.put("entry_bank",groupstandardarr2);//银行信息
@ -503,13 +545,17 @@ public class customerController {
JSONArray result = successdata.getJSONArray("result"); JSONArray result = successdata.getJSONArray("result");
JSONObject erpdata = (JSONObject) result.get(0); JSONObject erpdata = (JSONObject) result.get(0);
String erpid = erpdata.getString("id"); String erpid = erpdata.getString("id");
Map<String, Object> paramMap = new HashMap<String, Object>();
// paramMap.put("sync_status__c", "option_sync_failure__c");
paramMap.put("sync_info__c", "修改成功");
//回写json
fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap);
}else{ }else{
sendFlag=true; sendFlag=true;
stringBuffer.append("客户修改接口调用失败:"+resjs.getString("message")); stringBuffer.append("客户修改失败:"+resjs.getString("message"));
Map<String, Object> paramMap = new HashMap<String, Object>(); Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_failure__c"); // paramMap.put("sync_status__c", "option_sync_failure__c");
paramMap.put("sync_info__c", stringBuffer); paramMap.put("sync_info__c", stringBuffer);
//回写json //回写json
fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap); fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap);
@ -518,7 +564,7 @@ public class customerController {
sendFlag = true; sendFlag = true;
stringBuffer.append("客户修改接口调用失败,请检查网络配置"); stringBuffer.append("客户修改接口调用失败,请检查网络配置");
Map<String, Object> paramMap = new HashMap<String, Object>(); Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_failure__c"); //paramMap.put("sync_status__c", "option_sync_failure__c");
paramMap.put("sync_info__c", stringBuffer); paramMap.put("sync_info__c", stringBuffer);
//回写json //回写json
fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap); fxapi.upSynFieldParam("", "AccountObj", dataId, paramMap);

View File

@ -0,0 +1,273 @@
package org.ssssssss.magicboot.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xxl.job.core.context.XxlJobHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.ssssssss.magicboot.fxapi.HttpClientResult;
import org.ssssssss.magicboot.fxapi.HttpClientUtils;
import org.ssssssss.magicboot.fxapi.XKTokenAccess;
import org.ssssssss.magicboot.fxapi.model.CrmFXApiParam;
import org.ssssssss.magicboot.zdyutils.FXHTTP;
import org.ssssssss.magicboot.zdyutils.GcjJson;
import org.ssssssss.magicboot.zdyutils.MagicApi;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/FinInfo")
public class customerFinInfoController {
static Logger log = LoggerFactory.getLogger("FinInfo");
public static void main(String[] args) throws Exception {
new customerFinInfoController().getSynDataAdd();
new customerFinInfoController().SaveSyn();
}
public void getSynDataAdd() throws Exception {
FXHTTP fxapi = new FXHTTP();
XKTokenAccess xktonken = new XKTokenAccess();
// 查询magic接口
//获取时间戳
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = sdf.format(System.currentTimeMillis() - (1000 * 60 * 60));
String apiName = "AccountFinInfoObj";
List<CrmFXApiParam> paramList = Arrays.asList(
new CrmFXApiParam("GT", "last_modified_time", System.currentTimeMillis() - (1000 * 60 * 60 * 24)),
new CrmFXApiParam("EQ", "sync_status__c", "option_pending_sync__c"),
new CrmFXApiParam("ISN", "field_7qGnx__c", ""),
new CrmFXApiParam("EQ", "life_status", "normal")
);
/* List<CrmFXApiParam> paramList = Arrays.asList(new CrmFXApiParam("EQ", "name", "河北省水利行业协会"));*/
JSONObject jsonject = fxapi.getSynNewDataObj(false, "财务信息", apiName, paramList);
JSONArray array = jsonject.getJSONObject("data").getJSONArray("dataList");
List<CrmFXApiParam> paramListB = Arrays.asList(
new CrmFXApiParam("EQ", "sync_status__c", "option_resync__c"),
new CrmFXApiParam("EQ", "life_status", "normal")
);
JSONObject jsonjectB = fxapi.getSynNewDataObj(false, "财务信息重新同步", apiName, paramListB);
JSONArray arrayA = jsonjectB.getJSONObject("data").getJSONArray("dataList");
array.addAll(arrayA);
for (int i = 0; i < array.size(); i++) {
JSONObject str = array.getJSONObject(i);
String dataId = GcjJson.getNodeValue(str, "JSON._id") != null ? GcjJson.getNodeValue(str, "JSON._id").toString() : "";
String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : "";
String endtime = GcjJson.getNodeValue(str, "JSON.last_modified_time") != null ? GcjJson.getNodeValue(str, "JSON.last_modified_time").toString() : "";
String status = GcjJson.getNodeValue(str, "JSON.sync_status__c") != null ? GcjJson.getNodeValue(str, "JSON.sync_status__c").toString() : "";
String syn_type = "0";//同步类型 0新增 1修改 2删除
log.info("-------------------开始执行财务信息" + i + " -------------------" + nameData);
XxlJobHelper.log("-------------------开始执行财务信息" + i + " -------------------" + nameData);
Boolean sendFlag = false;
StringBuffer stringBuffer = new StringBuffer();
try {
boolean tbflag = false;
//验证数据是否已存在
JSONObject dataSyn = MagicApi.getSendSYNDataCustomer("CW", syn_type, dataId);
if (dataSyn != null && dataId.equals(dataSyn.getString("crmId"))) {
log.info("数据已存在-" + nameData);
XxlJobHelper.log("--数据已存在---" + nameData);
tbflag = true;
if("option_resync__c".equals(status) && !endtime.equals(dataSyn.getString("mark"))){
tbflag = false;
}
}
if (tbflag) {
continue;
}
log.info("财务信息待同步数据-" + i + " ------" + nameData);
JSONObject jsonObjectData = new JSONObject();
jsonObjectData.put("send_type", "CW"); //业务类型
jsonObjectData.put("send_syn", "0"); //同步类型 0新增 1修改 2删除
jsonObjectData.put("crm_id", dataId);//数据id
jsonObjectData.put("crmzhu_id", dataId);//数据id
jsonObjectData.put("send_status", 3);//同步状态 true同步成功 false同步失败 3待同步
jsonObjectData.put("crm_code", nameData);//数据名称
jsonObjectData.put("mark", endtime);//标识
jsonObjectData.put("crm_json", str.toJSONString());//标识
MagicApi.saveSendSYNDatacustomer(jsonObjectData);
} catch (Exception e) {
continue;
}
}
}
public void SaveSyn() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
FXHTTP fxapi = new FXHTTP();
String resJsonStr = MagicApi.getWNRES("http://localhost:18088/syn/queryCustomer?sendType=CW&sendStatus=3&sendSyn=0", "");
JSONObject resJson = JSON.parseObject(resJsonStr);
if (resJson != null) {
log.info("待同步财务信息数" + resJson.getJSONArray("data").size());
for (int i = 0; i < resJson.getJSONArray("data").size(); i++) {
JSONObject getData = resJson.getJSONArray("data").getJSONObject(i);
JSONObject str = getData.getJSONObject("crmJson");
String syn_type = "0";//同步类型 0新增 1修改 2删除
Boolean sendFlag = false;
StringBuffer stringBuffer = new StringBuffer();
boolean tbflag = false;
// 构建json
String dataId = GcjJson.getNodeValue(str, "JSON._id") != null ? GcjJson.getNodeValue(str, "JSON._id").toString() : "";
String nameData = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : "";
String account_id = GcjJson.getNodeValue(str, "JSON.account_id") != null ? GcjJson.getNodeValue(str, "JSON.account_id").toString() : "";
String customer_code__c = GcjJson.getNodeValue(str, "JSON.customer_code__c") != null ? GcjJson.getNodeValue(str, "JSON.customer_code__c").toString() : "";
String endtime = GcjJson.getNodeValue(str, "JSON.last_modified_time") != null ? GcjJson.getNodeValue(str, "JSON.last_modified_time").toString() : "";
String status = GcjJson.getNodeValue(str, "JSON.sync_status__c") != null ? GcjJson.getNodeValue(str, "JSON.sync_status__c").toString() : "";
String strJson = "";
try{
JSONObject dataSyn = MagicApi.getSendSYNDataCustomer("CW", syn_type, dataId,"3");
if (dataSyn != null && dataId.equals(dataSyn.getString("crmId"))) {
log.info("数据已存在-" + nameData);
XxlJobHelper.log("--数据已存在---" + nameData);
tbflag = true;
if("option_resync__c".equals(status) && !endtime.equals(dataSyn.getString("mark"))){
tbflag = false;
}
}
if (tbflag) {
continue;
}
JSONObject params = new JSONObject();
JSONArray dataarr = new JSONArray();
JSONObject datajson = new JSONObject();
//编码
datajson.put("number",customer_code__c);
JSONArray groupstandardarr2 = new JSONArray();
JSONObject jsonjectC = fxapi.getSynDataObj("客户下财务信息", "AccountFinInfoObj", "account_id", dataId);
JSONArray arrayC = jsonjectC.getJSONObject("data").getJSONArray("dataList");
if (!arrayC.isEmpty()){
for (int j = 0; j < arrayC.size(); j++) {
JSONObject stra = arrayC.getJSONObject(j);
JSONObject groupstandardjson2 = new JSONObject();
groupstandardjson2.put("bank_number",GcjJson.getNodeValue(stra, "JSON.bank_name_branch_number__c"));
groupstandardjson2.put("accountname",GcjJson.getNodeValue(stra, "JSON.account_name__c"));
groupstandardjson2.put("currency_number","CNY");
groupstandardjson2.put("bankaccount",GcjJson.getNodeValue(stra, "JSON.account_bank_no"));
groupstandardjson2.put("isdefault_bank",false);
if(j==0){
groupstandardjson2.put("isdefault_bank",true);
}
groupstandardarr2.add(groupstandardjson2);
}
datajson.put("entry_bank",groupstandardarr2);//银行信息
}
//创建组织
datajson.put("createorg_number","zyierp");
dataarr.add(datajson);
params.put("data",dataarr);
log.info("--请求json---" + params.toJSONString());
System.out.println("--请求json:---" +params.toJSONString());
strJson = params.toJSONString();
}catch (Exception e) {
sendFlag = true;
stringBuffer.append("参数解析错误,请联系开发人员");
e.printStackTrace();
}
getSynDataSave(stringBuffer,sendFlag,fxapi,dataId,nameData,strJson,getData);
}
}
}
/**
* 写数据
*/
public void getSynDataSave(StringBuffer stringBuffer,Boolean sendFlag,FXHTTP fxapi,String dataId,String nameData,String obj,JSONObject str) {
String syn_type = "0";//同步类型 0新增 1修改 2删除
String res_url = "http://192.168.31.158:8022/ierp/kapi/v2/f9w5/basedata/bd_customer/customerSave";
String res_param = obj;
String res = "";
try {
// String token = "2096108315279888384_HJyMZK1Lco9gSZUKU1ipq85P5J32eQDdaz8WgChd1DvHrPZylIodiBmBYa8U2smKVC8MKAspXtjNQ2Fjw5MlWXDnkn5nPFPQWzSB03";
String accessToken = new KDTokenController().getKDAccessToken();
Map<String, String> headers = new HashMap<String, String>();
headers.put("accessToken", accessToken);//放token
HttpClientResult rtn = HttpClientUtils.doPostJson(res_url, headers, obj);
String resStr = rtn.getContent();
JSONObject resjs = JSONObject.parseObject(resStr);
res = resStr;
if (resjs != null && resjs.getBoolean("status")) {
JSONObject successdata = resjs.getJSONObject("data");
JSONArray result = successdata.getJSONArray("result");
JSONObject erpdata = (JSONObject) result.get(0);
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_success__c");
paramMap.put("sync_info__c", resjs.getString("message"));
//回写json
fxapi.upSynFieldParam("", "AccountFinInfoObj", dataId, paramMap);
}else{
sendFlag=true;
stringBuffer.append("财务信息创建接口调用失败:"+resjs.getString("message"));
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_failure__c");
paramMap.put("sync_info__c", stringBuffer);
//回写json
fxapi.upSynFieldParam("", "AccountFinInfoObj", dataId, paramMap);
}
} catch (Exception e) {
sendFlag = true;
stringBuffer.append("财务信息创建接口调用失败,请检查网络配置");
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("sync_status__c", "option_sync_failure__c");
paramMap.put("sync_info__c", stringBuffer);
//回写json
fxapi.upSynFieldParam("", "AccountFinInfoObj", dataId, paramMap);
}
JSONObject sendData = new JSONObject();
sendData.put("send_status", !sendFlag);//同步状态 true同步成功 false同步失败 3待同步
sendData.put("send_id", str.getString("sendId")); //send_id
MagicApi.updateSendSYUPDATEcustomer(sendData);
JSONObject logData = new JSONObject();
logData.put("log_type", "CW"); //业务类型
logData.put("log_status", !sendFlag);//同步状态 true同步成功 false同步失败 3待同步
logData.put("syn_type", syn_type);//同步类型 0新增 1修改 2删除
logData.put("data_id", dataId);//数据id
logData.put("data_name", nameData);//数据名称
logData.put("res_body", "同步成功");//返回值
logData.put("res_url", res_url);//
logData.put("res_param", res_param);//
logData.put("res_res", res);//
if (sendFlag) {
logData.put("res_body", stringBuffer.toString());//返回值
}
//写入传输日志
MagicApi.saveCustomerLog(logData);
}
}

View File

@ -0,0 +1,56 @@
package org.ssssssss.magicboot.task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.ssssssss.magicboot.controller.UsceController;
import org.ssssssss.magicboot.controller.customerContactController;
import org.ssssssss.magicboot.controller.customerController;
import org.ssssssss.magicboot.controller.customerFinInfoController;
import java.time.LocalDateTime;
@Configuration //1.主要用于标记配置类兼备Component的效果
@EnableScheduling // 2.开启定时任务
public class testTask {
@Autowired
UsceController user;
@Autowired
customerController customer;
@Autowired
customerContactController contact;
@Autowired
customerFinInfoController finInfo;
@Scheduled(cron = "0 */1 * * * ?")
//或直接指定时间间隔例如5秒
private void configureTasks() throws Exception {
customer.getSynDataAdd();
customer.getSynKH();
customer.getSynDataUpdate();
customer.getSynKHUPdate();
System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
}
@Scheduled(cron = "0 */2 * * * ?")
//或直接指定时间间隔例如5秒
private void configureTasks2() throws Exception {
contact.getSynDataAdd();
contact.SaveSyn();
finInfo.getSynDataAdd();
finInfo.SaveSyn();
System.err.println("执行2静态定时任务时间: " + LocalDateTime.now());
}
@Scheduled(cron = "0 */30 * * * ?")
//或直接指定时间间隔例如5秒
private void configureTasks30() throws Exception {
user.getUserData();
user.saveSynUser();
System.err.println("执行30静态定时任务时间: " + LocalDateTime.now());
}
}