智洋最新程序
This commit is contained in:
parent
0e8f11fb38
commit
d8d1973a6f
@ -2,4 +2,5 @@ package org.ssssssss.magicboot.constant;
|
|||||||
|
|
||||||
public class ERPURLConstant {
|
public class ERPURLConstant {
|
||||||
public static final String ERP_URL = "http://192.168.31.233:8022";//erp地址
|
public static final String ERP_URL = "http://192.168.31.233:8022";//erp地址
|
||||||
|
public static final String ACCOUNT_ID = "2095345516136108032";//erp地址
|
||||||
}
|
}
|
||||||
|
@ -55,10 +55,12 @@ public class BankInfoController {
|
|||||||
//将时间转换样式
|
//将时间转换样式
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
String twoDaysAgoStr = twoDaysAgo.format(formatter);
|
String twoDaysAgoStr = twoDaysAgo.format(formatter);
|
||||||
|
String nowStr = now.format(formatter);
|
||||||
|
|
||||||
//开始查询部门(暂时使用固定值)
|
//开始查询部门(暂时使用固定值)
|
||||||
Map data = new HashMap<>();
|
Map data = new HashMap<>();
|
||||||
data.put("createtime", twoDaysAgoStr);
|
data.put("startTime", twoDaysAgoStr);
|
||||||
|
data.put("endTime", nowStr);
|
||||||
//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");
|
||||||
|
|
||||||
@ -277,10 +279,12 @@ public class BankInfoController {
|
|||||||
//将时间转换样式
|
//将时间转换样式
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
String twoDaysAgoStr = twoDaysAgo.format(formatter);
|
String twoDaysAgoStr = twoDaysAgo.format(formatter);
|
||||||
|
String nowStr = now.format(formatter);
|
||||||
|
|
||||||
//开始查询部门(暂时使用固定值)
|
//开始查询部门(暂时使用固定值)
|
||||||
Map data = new HashMap<>();
|
Map data = new HashMap<>();
|
||||||
data.put("modifytime", twoDaysAgoStr);
|
data.put("startTime", twoDaysAgoStr);
|
||||||
|
data.put("endTime", nowStr);
|
||||||
//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");
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ public class DesignController {
|
|||||||
designDocDetailMap.put("materialtype", designDocDetailData.getString("customer_material_type__c"));//客指供应类型
|
designDocDetailMap.put("materialtype", designDocDetailData.getString("customer_material_type__c"));//客指供应类型
|
||||||
designDocDetailMap.put("crmentryid", designDocDetailData.getString("_id"));//crm明细行id
|
designDocDetailMap.put("crmentryid", designDocDetailData.getString("_id"));//crm明细行id
|
||||||
designDocDetailMap.put("entrycomment", designDocDetailData.getString("remark__c") != null ? designDocDetailData.getString("remark__c") : "");//备注
|
designDocDetailMap.put("entrycomment", designDocDetailData.getString("remark__c") != null ? designDocDetailData.getString("remark__c") : "");//备注
|
||||||
designDocDetailMap.put("supplier_number", "G08000001");//todo 建议供应商
|
designDocDetailMap.put("supplier_number", "G03990003");//todo 建议供应商
|
||||||
|
|
||||||
designDocList.add(designDocDetailMap);
|
designDocList.add(designDocDetailMap);
|
||||||
|
|
||||||
@ -489,7 +489,7 @@ public class DesignController {
|
|||||||
List ownerIdList = designDocData.getJSONArray("owner");
|
List ownerIdList = designDocData.getJSONArray("owner");
|
||||||
|
|
||||||
JSONObject ownerReq = crmRequestUtil.getCRMList(Arrays.asList(
|
JSONObject ownerReq = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
new Filter("EQ", "_id", ownerIdList)
|
new Filter("EQ", "user_id", ownerIdList)
|
||||||
), "PersonnelObj");
|
), "PersonnelObj");
|
||||||
|
|
||||||
JSONObject ownerRes = new JSONObject();
|
JSONObject ownerRes = new JSONObject();
|
||||||
|
@ -15,6 +15,7 @@ import org.ssssssss.magicboot.constant.ERPURLConstant;
|
|||||||
import org.ssssssss.magicboot.constant.URLConstant;
|
import org.ssssssss.magicboot.constant.URLConstant;
|
||||||
import org.ssssssss.magicboot.entity.Filter;
|
import org.ssssssss.magicboot.entity.Filter;
|
||||||
import org.ssssssss.magicboot.utils.CrmRequestUtil;
|
import org.ssssssss.magicboot.utils.CrmRequestUtil;
|
||||||
|
import org.ssssssss.magicboot.utils.KingDeeUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@ -294,6 +295,10 @@ public class FrameContractController {
|
|||||||
backReqMap.put("erp_id__c", contractRes.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("id"));
|
backReqMap.put("erp_id__c", contractRes.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("id"));
|
||||||
backReqMap.put("sync_status__c", "option_sync_success__c");
|
backReqMap.put("sync_status__c", "option_sync_success__c");
|
||||||
backReqMap.put("response_info__c", "同步成功");
|
backReqMap.put("response_info__c", "同步成功");
|
||||||
|
|
||||||
|
//审核
|
||||||
|
KingDeeUtils kingDeeUtils = new KingDeeUtils();
|
||||||
|
kingDeeUtils.audit(contractRes.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("id"), "conm_salcontract");
|
||||||
} else {
|
} else {
|
||||||
//同步失败
|
//同步失败
|
||||||
logMap.put("log_status", "1");
|
logMap.put("log_status", "1");
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package org.ssssssss.magicboot.controller;
|
package org.ssssssss.magicboot.controller;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
|
||||||
|
import java.util.concurrent.*;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.HttpEntity;
|
import org.springframework.http.HttpEntity;
|
||||||
@ -34,8 +37,9 @@ public class GoodsPlanController {
|
|||||||
private RestTemplate restTemplate = new RestTemplate();
|
private RestTemplate restTemplate = new RestTemplate();
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
//new GoodsPlanController().syncGoodsPlan();
|
new GoodsPlanController().syncGoodsPlan();
|
||||||
new GoodsPlanController().updateGoodsPlan();
|
//new GoodsPlanController().updateGoodsPlan();
|
||||||
|
//new GoodsPlanController().syncTrackingNum();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,6 +58,7 @@ public class GoodsPlanController {
|
|||||||
//要货计划请求
|
//要货计划请求
|
||||||
JSONObject getGoodsPlan = crmRequestUtil.getCRMList(Arrays.asList(
|
JSONObject getGoodsPlan = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
//new Filter("IS", "erp_id__c", Arrays.asList("")),
|
//new Filter("IS", "erp_id__c", Arrays.asList("")),
|
||||||
|
new Filter("EQ", "business_status__c", Arrays.asList("option_normal__c")),
|
||||||
new Filter("IN", "sync_status__c", Arrays.asList(syncStatus)),
|
new Filter("IN", "sync_status__c", Arrays.asList(syncStatus)),
|
||||||
new Filter("GT", "create_time", Arrays.asList("1748923200000")),
|
new Filter("GT", "create_time", Arrays.asList("1748923200000")),
|
||||||
//new Filter("EQ", "name", Arrays.asList("YHJH20250508-0002")),
|
//new Filter("EQ", "name", Arrays.asList("YHJH20250508-0002")),
|
||||||
@ -115,7 +120,24 @@ public class GoodsPlanController {
|
|||||||
erpGoodsPlanReq.put("f9w5_crmid", goodsPlanId);
|
erpGoodsPlanReq.put("f9w5_crmid", goodsPlanId);
|
||||||
erpGoodsPlanReq.put("billno", goodsPlanName);//单据编号
|
erpGoodsPlanReq.put("billno", goodsPlanName);//单据编号
|
||||||
erpGoodsPlanReq.put("billtype_number", "f9w5_sm_purchaseplan_BT");//单据类型
|
erpGoodsPlanReq.put("billtype_number", "f9w5_sm_purchaseplan_BT");//单据类型
|
||||||
erpGoodsPlanReq.put("org_number", "zyierp");//组织编码
|
|
||||||
|
String orgNum = goodsPlanData.getString("erp_organization__c") != null ? goodsPlanData.getString("erp_organization__c") : "";
|
||||||
|
|
||||||
|
erpGoodsPlanReq.put("org_number", orgNum);//组织编码
|
||||||
|
|
||||||
|
String businessType = goodsPlanData.getString("business_status__c") != null ? goodsPlanData.getString("business_status__c") : "";
|
||||||
|
|
||||||
|
switch (businessType) {
|
||||||
|
case "option_normal__c":
|
||||||
|
erpGoodsPlanReq.put("f9w5_busstatus", "A");//业务状态
|
||||||
|
break;
|
||||||
|
case "option_close__c":
|
||||||
|
erpGoodsPlanReq.put("f9w5_busstatus", "B");//业务状态
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
erpGoodsPlanReq.put("f9w5_busstatus", "A");//业务状态
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//开始获取需求日期
|
//开始获取需求日期
|
||||||
long biztime = goodsPlanData.getLong("requirement_date__c");
|
long biztime = goodsPlanData.getLong("requirement_date__c");
|
||||||
@ -155,13 +177,13 @@ public class GoodsPlanController {
|
|||||||
List ownerIdList = goodsPlanData.getJSONArray("owner");
|
List ownerIdList = goodsPlanData.getJSONArray("owner");
|
||||||
|
|
||||||
JSONObject ownerReq = crmRequestUtil.getCRMList(Arrays.asList(
|
JSONObject ownerReq = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
new Filter("EQ", "_id", ownerIdList)
|
new Filter("EQ", "user_id", ownerIdList)
|
||||||
), "PersonnelObj");
|
), "PersonnelObj");
|
||||||
|
|
||||||
JSONObject ownerRes = new JSONObject();
|
JSONObject ownerRes = new JSONObject();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ownerRes = restTemplate.postForObject(URLConstant.GET_CRM_LIST_URL, ownerReq, JSONObject.class);
|
ownerRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, ownerReq, JSONObject.class);
|
||||||
} catch (RestClientException e) {
|
} catch (RestClientException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -196,23 +218,60 @@ public class GoodsPlanController {
|
|||||||
|
|
||||||
log.info("要货计划明细存在,继续向下执行");
|
log.info("要货计划明细存在,继续向下执行");
|
||||||
|
|
||||||
|
//延时执行(非阻塞)
|
||||||
|
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
|
||||||
|
executor.schedule(() -> {
|
||||||
|
System.out.println("延时任务执行");
|
||||||
|
}, 5, TimeUnit.SECONDS); // 5秒后执行
|
||||||
|
executor.shutdown(); // 关闭线程池
|
||||||
|
|
||||||
//明细列表
|
//明细列表
|
||||||
List goodsPlanDetailList = new ArrayList<>();
|
List goodsPlanDetailList = new ArrayList<>();
|
||||||
|
|
||||||
|
//用来判断跟踪号是否传输成功
|
||||||
|
JSONObject trackingNumReason = new JSONObject();
|
||||||
|
|
||||||
for (Object goodsPlanDetailObj : goodsPlanDetailRes.getJSONObject("data").getJSONArray("dataList")) {
|
for (Object goodsPlanDetailObj : goodsPlanDetailRes.getJSONObject("data").getJSONArray("dataList")) {
|
||||||
|
|
||||||
|
if (!trackingNumReason.isEmpty()) {
|
||||||
|
log.info("已经存在执行错误的明细,将不再执行本条数据");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
JSONObject goodsPlanDetailData = JSON.parseObject(JSON.toJSONString(goodsPlanDetailObj));
|
JSONObject goodsPlanDetailData = JSON.parseObject(JSON.toJSONString(goodsPlanDetailObj));
|
||||||
|
|
||||||
System.out.println("当前正在处理的要货计划明细数据为:" + goodsPlanDetailData);
|
System.out.println("当前正在处理的要货计划明细数据为:" + goodsPlanDetailData);
|
||||||
|
|
||||||
|
String trackingNum = goodsPlanDetailData.getString("batch_number__c") != null ? goodsPlanDetailData.getString("batch_number__c") : "";
|
||||||
|
|
||||||
|
if (trackingNum.equals("")) {
|
||||||
|
log.info("跟踪号不存在,将不再向下执行");
|
||||||
|
trackingNumReason.put("status", "false");
|
||||||
|
trackingNumReason.put("reason", "跟踪号不存在,将不再向下执行");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//跟踪号存在,开始执行
|
||||||
|
JSONObject syncTrackingNum = syncTrackingNum(trackingNum);
|
||||||
|
|
||||||
|
//判断是否执行成功
|
||||||
|
if (!"success".equals(syncTrackingNum.getString("errorCode"))) {
|
||||||
|
trackingNumReason.put("status", "false");
|
||||||
|
trackingNumReason.put("reason", syncTrackingNum.getString("message"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//开始封装要货计划明细数据
|
//开始封装要货计划明细数据
|
||||||
Map erpGoodsPlanDetailReq = new HashMap<>();
|
Map erpGoodsPlanDetailReq = new HashMap<>();
|
||||||
erpGoodsPlanDetailReq.put("f9w5_crmentryid", goodsPlanDetailData.getString("_id"));//crm明细id
|
erpGoodsPlanDetailReq.put("f9w5_crmentryid", goodsPlanDetailData.getString("_id"));//crm明细id
|
||||||
erpGoodsPlanDetailReq.put("material_number", goodsPlanDetailData.getString("material_id__c__r"));//物料编号
|
erpGoodsPlanDetailReq.put("material_number", goodsPlanDetailData.getString("material_id__c__r"));//物料编号
|
||||||
erpGoodsPlanDetailReq.put("entryorg_number", "zyierp");//todo 组织编码
|
erpGoodsPlanDetailReq.put("entryorg_number", orgNum);//组织编码
|
||||||
erpGoodsPlanDetailReq.put("qty", goodsPlanDetailData.getBigDecimal("quantity__c") != null ? goodsPlanDetailData.getBigDecimal("quantity__c") : 0);//数量
|
erpGoodsPlanDetailReq.put("qty", goodsPlanDetailData.getBigDecimal("quantity__c") != null ? goodsPlanDetailData.getBigDecimal("quantity__c") : 0);//数量
|
||||||
//erpGoodsPlanDetailReq.put("lot_number", goodsPlanDetailData.getString("batch_number__c") != null ? goodsPlanDetailData.getString("batch_number__c") : "");//批号
|
//erpGoodsPlanDetailReq.put("lot_number", goodsPlanDetailData.getString("batch_number__c") != null ? goodsPlanDetailData.getString("batch_number__c") : "");//批号
|
||||||
erpGoodsPlanDetailReq.put("entrycomment", goodsPlanDetailData.getString("remark__c") != null ? goodsPlanDetailData.getString("remark__c") : "");//备注
|
erpGoodsPlanDetailReq.put("entrycomment", goodsPlanDetailData.getString("remark__c") != null ? goodsPlanDetailData.getString("remark__c") : "");//备注
|
||||||
erpGoodsPlanDetailReq.put("f9w5_contractno", goodsPlanDetailData.getString("sales_contract_number__c__r") != null ? goodsPlanDetailData.getString("sales_contract_number__c__r") : "");//销售合同编号
|
erpGoodsPlanDetailReq.put("f9w5_contractno", goodsPlanDetailData.getString("sales_contract_number__c__r") != null ? goodsPlanDetailData.getString("sales_contract_number__c__r") : "");//销售合同编号
|
||||||
|
erpGoodsPlanDetailReq.put("f9w5_tracknumber_number", trackingNum);//跟踪号
|
||||||
|
erpGoodsPlanDetailReq.put("f9w5_programversion_number", goodsPlanDetailData.getString("program_version_number__c"));//程序版本
|
||||||
|
|
||||||
//开始查询项目号
|
//开始查询项目号
|
||||||
String projectId = goodsPlanDetailData.getString("project_name__c") != null ? goodsPlanDetailData.getString("project_name__c") : "";
|
String projectId = goodsPlanDetailData.getString("project_name__c") != null ? goodsPlanDetailData.getString("project_name__c") : "";
|
||||||
@ -243,6 +302,33 @@ public class GoodsPlanController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//开始封装回写程序
|
||||||
|
Map backReqMap = new HashMap();
|
||||||
|
backReqMap.put("_id", goodsPlanId);
|
||||||
|
backReqMap.put("dataObjectApiName", "purchase_plan__c");
|
||||||
|
|
||||||
|
//开始判断
|
||||||
|
if (!trackingNumReason.isEmpty()) {
|
||||||
|
log.info("明细封装错误,将不再向下执行");
|
||||||
|
backReqMap.put("sync_status__c", "option_sync_failure__c");
|
||||||
|
backReqMap.put("response_info__c", trackingNumReason.getString("reason"));
|
||||||
|
|
||||||
|
//开始回写
|
||||||
|
JSONObject backReq = crmRequestUtil.updateCRM(backReqMap);
|
||||||
|
|
||||||
|
JSONObject backRes = new JSONObject();
|
||||||
|
|
||||||
|
try {
|
||||||
|
backRes = restTemplate.postForObject(URLConstant.UPDATE_CRM_CUSTOMIZE, backReq, JSONObject.class);
|
||||||
|
} catch (RestClientException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("回写结果为:" + backRes);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
erpGoodsPlanReq.put("billentry", goodsPlanDetailList);
|
erpGoodsPlanReq.put("billentry", goodsPlanDetailList);
|
||||||
|
|
||||||
//开始封装要货计划请求
|
//开始封装要货计划请求
|
||||||
@ -281,11 +367,6 @@ public class GoodsPlanController {
|
|||||||
|
|
||||||
System.out.println("要货计划结果为:" + JSON.parseObject(JSON.toJSONString(erpGoodsPlanRes)));
|
System.out.println("要货计划结果为:" + JSON.parseObject(JSON.toJSONString(erpGoodsPlanRes)));
|
||||||
|
|
||||||
//开始封装回写程序
|
|
||||||
Map backReqMap = new HashMap();
|
|
||||||
backReqMap.put("_id", goodsPlanId);
|
|
||||||
backReqMap.put("dataObjectApiName", "purchase_plan__c");
|
|
||||||
|
|
||||||
//开始封装日志
|
//开始封装日志
|
||||||
Map logMap = new HashMap<>();
|
Map logMap = new HashMap<>();
|
||||||
logMap.put("log_id", UUID.randomUUID().toString().replace("-", ""));
|
logMap.put("log_id", UUID.randomUUID().toString().replace("-", ""));
|
||||||
@ -361,7 +442,11 @@ public class GoodsPlanController {
|
|||||||
|
|
||||||
//要货计划请求
|
//要货计划请求
|
||||||
JSONObject getGoodsPlan = crmRequestUtil.getCRMList(Arrays.asList(
|
JSONObject getGoodsPlan = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
new Filter("EQ", "name", Arrays.asList("YHJH20250508-0002")),
|
//new Filter("IS", "erp_id__c", Arrays.asList("")),
|
||||||
|
new Filter("EQ", "business_status__c", Arrays.asList("option_close__c")),
|
||||||
|
//new Filter("IN", "sync_status__c", Arrays.asList(syncStatus)),
|
||||||
|
new Filter("GT", "create_time", Arrays.asList("1748923200000")),
|
||||||
|
//new Filter("EQ", "name", Arrays.asList("YHJH20250508-0002")),
|
||||||
new Filter("EQ", "life_status", Arrays.asList("normal"))
|
new Filter("EQ", "life_status", Arrays.asList("normal"))
|
||||||
), "purchase_plan__c");
|
), "purchase_plan__c");
|
||||||
|
|
||||||
@ -430,7 +515,25 @@ public class GoodsPlanController {
|
|||||||
erpGoodsPlanReq.put("f9w5_crmid", goodsPlanId);
|
erpGoodsPlanReq.put("f9w5_crmid", goodsPlanId);
|
||||||
erpGoodsPlanReq.put("billno", goodsPlanName);//单据编号
|
erpGoodsPlanReq.put("billno", goodsPlanName);//单据编号
|
||||||
erpGoodsPlanReq.put("billtype_number", "f9w5_sm_purchaseplan_BT");//单据类型
|
erpGoodsPlanReq.put("billtype_number", "f9w5_sm_purchaseplan_BT");//单据类型
|
||||||
erpGoodsPlanReq.put("org_number", "zyierp");//组织编码
|
|
||||||
|
//组织编码
|
||||||
|
String orgNum = goodsPlanData.getString("erp_organization__c") != null ? goodsPlanData.getString("erp_organization__c") : "";
|
||||||
|
|
||||||
|
erpGoodsPlanReq.put("org_number", orgNum);//组织编码
|
||||||
|
|
||||||
|
String businessType = goodsPlanData.getString("business_status__c") != null ? goodsPlanData.getString("business_status__c") : "";
|
||||||
|
|
||||||
|
switch (businessType) {
|
||||||
|
case "option_normal__c":
|
||||||
|
erpGoodsPlanReq.put("f9w5_busstatus", "A");//业务状态
|
||||||
|
break;
|
||||||
|
case "option_close__c":
|
||||||
|
erpGoodsPlanReq.put("f9w5_busstatus", "B");//业务状态
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
erpGoodsPlanReq.put("f9w5_busstatus", "A");//业务状态
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//开始获取需求日期
|
//开始获取需求日期
|
||||||
long biztime = goodsPlanData.getLong("requirement_date__c");
|
long biztime = goodsPlanData.getLong("requirement_date__c");
|
||||||
@ -461,7 +564,7 @@ public class GoodsPlanController {
|
|||||||
deptCode = deptData.getString("field_Vj6sf__c") != null ? deptData.getString("field_Vj6sf__c") : "";
|
deptCode = deptData.getString("field_Vj6sf__c") != null ? deptData.getString("field_Vj6sf__c") : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
erpGoodsPlanReq.put("dept", "zyierp");//todo 归属部门
|
erpGoodsPlanReq.put("dept", deptCode);//todo 归属部门
|
||||||
|
|
||||||
//获取负责人编码
|
//获取负责人编码
|
||||||
String ownerCode = "";
|
String ownerCode = "";
|
||||||
@ -512,20 +615,43 @@ public class GoodsPlanController {
|
|||||||
//明细列表
|
//明细列表
|
||||||
List goodsPlanDetailList = new ArrayList<>();
|
List goodsPlanDetailList = new ArrayList<>();
|
||||||
|
|
||||||
|
//用来判断跟踪号是否传输成功
|
||||||
|
JSONObject trackingNumReason = new JSONObject();
|
||||||
|
|
||||||
for (Object goodsPlanDetailObj : goodsPlanDetailRes.getJSONObject("data").getJSONArray("dataList")) {
|
for (Object goodsPlanDetailObj : goodsPlanDetailRes.getJSONObject("data").getJSONArray("dataList")) {
|
||||||
JSONObject goodsPlanDetailData = JSON.parseObject(JSON.toJSONString(goodsPlanDetailObj));
|
JSONObject goodsPlanDetailData = JSON.parseObject(JSON.toJSONString(goodsPlanDetailObj));
|
||||||
|
|
||||||
System.out.println("当前正在处理的要货计划明细数据为:" + goodsPlanDetailData);
|
System.out.println("当前正在处理的要货计划明细数据为:" + goodsPlanDetailData);
|
||||||
|
|
||||||
|
String trackingNum = goodsPlanDetailData.getString("batch_number__c") != null ? goodsPlanDetailData.getString("batch_number__c") : "";
|
||||||
|
|
||||||
|
if (trackingNum.equals("")) {
|
||||||
|
log.info("跟踪号不存在,将不再向下执行");
|
||||||
|
trackingNumReason.put("status", "false");
|
||||||
|
trackingNumReason.put("reason", "跟踪号不存在,将不再向下执行");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//跟踪号存在,开始执行
|
||||||
|
JSONObject syncTrackingNum = syncTrackingNum(trackingNum);
|
||||||
|
|
||||||
|
//判断是否执行成功
|
||||||
|
if (!"success".equals(syncTrackingNum.getString("errorCode"))) {
|
||||||
|
trackingNumReason.put("status", "false");
|
||||||
|
trackingNumReason.put("reason", syncTrackingNum.getString("message"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//开始封装要货计划明细数据
|
//开始封装要货计划明细数据
|
||||||
Map erpGoodsPlanDetailReq = new HashMap<>();
|
Map erpGoodsPlanDetailReq = new HashMap<>();
|
||||||
erpGoodsPlanDetailReq.put("f9w5_crmentryid", goodsPlanDetailData.getString("_id"));//crm明细id
|
erpGoodsPlanDetailReq.put("f9w5_crmentryid", goodsPlanDetailData.getString("_id"));//crm明细id
|
||||||
erpGoodsPlanDetailReq.put("material_number", goodsPlanDetailData.getString("material_id__c__r"));//物料编号
|
erpGoodsPlanDetailReq.put("material_number", goodsPlanDetailData.getString("material_id__c__r"));//物料编号
|
||||||
erpGoodsPlanDetailReq.put("entryorg_number", "zyierp");//组织编码
|
erpGoodsPlanDetailReq.put("entryorg_number", orgNum);//组织编码
|
||||||
erpGoodsPlanDetailReq.put("qty", goodsPlanDetailData.getBigDecimal("quantity__c") != null ? goodsPlanDetailData.getBigDecimal("quantity__c") : 0);//数量
|
erpGoodsPlanDetailReq.put("qty", goodsPlanDetailData.getBigDecimal("quantity__c") != null ? goodsPlanDetailData.getBigDecimal("quantity__c") : 0);//数量
|
||||||
//erpGoodsPlanDetailReq.put("lot_number", goodsPlanDetailData.getString("batch_number__c") != null ? goodsPlanDetailData.getString("batch_number__c") : "");//批号
|
//erpGoodsPlanDetailReq.put("lot_number", goodsPlanDetailData.getString("batch_number__c") != null ? goodsPlanDetailData.getString("batch_number__c") : "");//批号
|
||||||
erpGoodsPlanDetailReq.put("entrycomment", goodsPlanDetailData.getString("remark__c") != null ? goodsPlanDetailData.getString("remark__c") : "");//备注
|
erpGoodsPlanDetailReq.put("entrycomment", goodsPlanDetailData.getString("remark__c") != null ? goodsPlanDetailData.getString("remark__c") : "");//备注
|
||||||
erpGoodsPlanDetailReq.put("f9w5_contractno", goodsPlanDetailData.getString("sales_contract_number__c__r") != null ? goodsPlanDetailData.getString("sales_contract_number__c__r") : "");//销售合同编号
|
erpGoodsPlanDetailReq.put("f9w5_contractno", goodsPlanDetailData.getString("sales_contract_number__c__r") != null ? goodsPlanDetailData.getString("sales_contract_number__c__r") : "");//销售合同编号
|
||||||
|
erpGoodsPlanDetailReq.put("f9w5_tracknumber_number", trackingNum);//跟踪号
|
||||||
|
|
||||||
//开始查询项目号
|
//开始查询项目号
|
||||||
String projectId = goodsPlanDetailData.getString("project_name__c") != null ? goodsPlanDetailData.getString("project_name__c") : "";
|
String projectId = goodsPlanDetailData.getString("project_name__c") != null ? goodsPlanDetailData.getString("project_name__c") : "";
|
||||||
@ -556,6 +682,32 @@ public class GoodsPlanController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//开始封装回写程序
|
||||||
|
Map backReqMap = new HashMap();
|
||||||
|
backReqMap.put("_id", goodsPlanId);
|
||||||
|
backReqMap.put("dataObjectApiName", "purchase_plan__c");
|
||||||
|
|
||||||
|
//开始判断
|
||||||
|
if (!trackingNumReason.isEmpty()) {
|
||||||
|
log.info("明细封装错误,将不再向下执行");
|
||||||
|
backReqMap.put("sync_status__c", "option_sync_failure__c");
|
||||||
|
backReqMap.put("response_info__c", trackingNumReason.getString("reason"));
|
||||||
|
|
||||||
|
//开始回写
|
||||||
|
JSONObject backReq = crmRequestUtil.updateCRM(backReqMap);
|
||||||
|
|
||||||
|
JSONObject backRes = new JSONObject();
|
||||||
|
|
||||||
|
try {
|
||||||
|
backRes = restTemplate.postForObject(URLConstant.UPDATE_CRM_CUSTOMIZE, backReq, JSONObject.class);
|
||||||
|
} catch (RestClientException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("回写结果为:" + backRes);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
erpGoodsPlanReq.put("billentry", goodsPlanDetailList);
|
erpGoodsPlanReq.put("billentry", goodsPlanDetailList);
|
||||||
|
|
||||||
//开始封装要货计划请求
|
//开始封装要货计划请求
|
||||||
@ -594,11 +746,6 @@ public class GoodsPlanController {
|
|||||||
|
|
||||||
System.out.println("要货计划结果为:" + JSON.parseObject(JSON.toJSONString(erpGoodsPlanRes)));
|
System.out.println("要货计划结果为:" + JSON.parseObject(JSON.toJSONString(erpGoodsPlanRes)));
|
||||||
|
|
||||||
//开始封装回写程序
|
|
||||||
Map backReqMap = new HashMap();
|
|
||||||
backReqMap.put("_id", goodsPlanId);
|
|
||||||
backReqMap.put("dataObjectApiName", "purchase_plan__c");
|
|
||||||
|
|
||||||
//开始封装日志
|
//开始封装日志
|
||||||
Map logMap = new HashMap<>();
|
Map logMap = new HashMap<>();
|
||||||
logMap.put("log_id", UUID.randomUUID().toString().replace("-", ""));
|
logMap.put("log_id", UUID.randomUUID().toString().replace("-", ""));
|
||||||
@ -653,4 +800,238 @@ public class GoodsPlanController {
|
|||||||
System.out.println("日志插入结果为:" + logResMap);
|
System.out.println("日志插入结果为:" + logResMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 跟踪号同步方法
|
||||||
|
*
|
||||||
|
* @return java.lang.String
|
||||||
|
* @Author weiloong_zhang
|
||||||
|
*/
|
||||||
|
public JSONObject syncTrackingNum(String trackingNum) {
|
||||||
|
CrmRequestUtil crmRequestUtil = new CrmRequestUtil();
|
||||||
|
|
||||||
|
//String trackingNum = "YHJH2505290005-1";
|
||||||
|
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
|
||||||
|
JSONObject getTrackNum = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
|
new Filter("EQ", "name", Arrays.asList(trackingNum))
|
||||||
|
), "tracking_number__c");
|
||||||
|
|
||||||
|
JSONObject trackingNumRes = new JSONObject();
|
||||||
|
|
||||||
|
try {
|
||||||
|
trackingNumRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, getTrackNum, JSONObject.class);
|
||||||
|
} catch (RestClientException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("跟踪号查询结果为:" + trackingNumRes);
|
||||||
|
|
||||||
|
if (!"success".equals(trackingNumRes.getString("errorDescription")) || trackingNumRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
|
log.info("查询失败或者不存在符合条件数据");
|
||||||
|
res.put("errorCode", "error");
|
||||||
|
res.put("message", "跟踪号查询失败或者不存在符合条件数据");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("跟踪号查询成功,继续向下执行");
|
||||||
|
|
||||||
|
JSONObject trackingNumData = trackingNumRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
||||||
|
|
||||||
|
System.out.println("当前正在处理的跟踪号为:" + trackingNumData);
|
||||||
|
|
||||||
|
String trackingNumStr = trackingNumData.getString("name");
|
||||||
|
//开始封装跟踪号数据
|
||||||
|
Map trackingNumMap = new HashMap();
|
||||||
|
trackingNumMap.put("number", trackingNumStr);//跟踪号
|
||||||
|
trackingNumMap.put("status", "C");//数据状态
|
||||||
|
trackingNumMap.put("sourcebillno", trackingNumData.getString("purchase_plan__c__r") != null ? trackingNumData.getString("purchase_plan__c__r") : "");//todo 来源单据编号
|
||||||
|
trackingNumMap.put("description", "C");//todo 描述
|
||||||
|
|
||||||
|
String lineStr = trackingNumStr.split("-")[1];
|
||||||
|
|
||||||
|
trackingNumMap.put("sourcebillentryseq", lineStr);//来源单据分录行号
|
||||||
|
trackingNumMap.put("f9w5_materialname", trackingNumData.getString("material_name__c") != null ? trackingNumData.getString("material_name__c") : "");//物料名称
|
||||||
|
|
||||||
|
String isNeedForProduction = trackingNumData.getString("is_need_for_production__c") != null ? trackingNumData.getString("is_need_for_production__c") : "";
|
||||||
|
|
||||||
|
switch (isNeedForProduction) {
|
||||||
|
case "yes":
|
||||||
|
trackingNumMap.put("f9w5_isuse", true);//是否需要生产使用该参数
|
||||||
|
break;
|
||||||
|
case "no":
|
||||||
|
trackingNumMap.put("f9w5_isuse", false);//是否需要生产使用该参数
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
trackingNumMap.put("f9w5_isuse", null);//是否需要生产使用该参数
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
trackingNumMap.put("f9w5_deviceid", trackingNumData.getString("device_id_third__c") != null ? trackingNumData.getString("device_id_third__c") : "");//设备ID(第三方编号)
|
||||||
|
trackingNumMap.put("f9w5_apn", trackingNumData.getString("apn_parameters__c") != null ? trackingNumData.getString("apn_parameters__c") : "");//APN参数
|
||||||
|
trackingNumMap.put("f9w5_ip", trackingNumData.getString("ip_address__c") != null ? trackingNumData.getString("ip_address__c") : "");//ip
|
||||||
|
trackingNumMap.put("f9w5_port", trackingNumData.getString("port__c") != null ? trackingNumData.getString("port__c") : "");//端口
|
||||||
|
|
||||||
|
//是否插卡
|
||||||
|
String isCard = trackingNumData.getString("is_card_inserted__c") != null ? trackingNumData.getString("is_card_inserted__c") : "";
|
||||||
|
|
||||||
|
switch (isCard) {
|
||||||
|
case "yes":
|
||||||
|
trackingNumMap.put("f9w5_bindingcard", true);//是否插卡
|
||||||
|
break;
|
||||||
|
case "no":
|
||||||
|
trackingNumMap.put("f9w5_bindingcard", false);//是否插卡
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
trackingNumMap.put("f9w5_bindingcard", null);//是否插卡
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//快快拍模式
|
||||||
|
String snapShot = trackingNumData.getString("snap_mode__c") != null ? trackingNumData.getString("snap_mode__c") : "";
|
||||||
|
|
||||||
|
switch (snapShot) {
|
||||||
|
case "yes":
|
||||||
|
trackingNumMap.put("f9w5_snapshot", true);//是否插卡
|
||||||
|
break;
|
||||||
|
case "no":
|
||||||
|
trackingNumMap.put("f9w5_snapshot", false);//是否插卡
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
trackingNumMap.put("f9w5_snapshot", null);//是否插卡
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//前端智能识别
|
||||||
|
String isFront = trackingNumData.getString("front_end_intelligent_reco__c") != null ? trackingNumData.getString("front_end_intelligent_reco__c") : "";
|
||||||
|
|
||||||
|
switch (isFront) {
|
||||||
|
case "yes":
|
||||||
|
trackingNumMap.put("f9w5_frontir", true);//前端智能识别
|
||||||
|
break;
|
||||||
|
case "no":
|
||||||
|
trackingNumMap.put("f9w5_frontir", false);//前端智能识别
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
trackingNumMap.put("f9w5_frontir", null);//前端智能识别
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//运行模式修改
|
||||||
|
String runMode = trackingNumData.getString("operation_mode_update__c") != null ? trackingNumData.getString("operation_mode_update__c") : "";
|
||||||
|
|
||||||
|
trackingNumMap.put("f9w5_runmodification", runMode);
|
||||||
|
//通道拍照时间间隔
|
||||||
|
trackingNumMap.put("f9w5_channelinterval", trackingNumData.getString("channel_photo_interval__c__r") != null ? trackingNumData.getString("channel_photo_interval__c__r") : "");
|
||||||
|
//通道图片分辨率/像素
|
||||||
|
trackingNumMap.put("f9w5_channelpixel", trackingNumData.getString("channel_image_resolution__c__r") != null ? trackingNumData.getString("channel_image_resolution__c__r") : "");
|
||||||
|
//机芯图片分辨率/像素
|
||||||
|
trackingNumMap.put("f9w5_movementpixel", trackingNumData.getString("core_image_resolution__c__r") != null ? trackingNumData.getString("core_image_resolution__c__r") : "");
|
||||||
|
//副机通道号
|
||||||
|
String auxiliarychannel = trackingNumData.getString("secondary_channel_number__c") != null ? trackingNumData.getString("secondary_channel_number__c") : "";
|
||||||
|
if (auxiliarychannel.equals("") || auxiliarychannel.equals("option_none__c")) {
|
||||||
|
auxiliarychannel = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
trackingNumMap.put("f9w5_auxiliarychannel", auxiliarychannel);
|
||||||
|
//机芯拍照时间间隔
|
||||||
|
trackingNumMap.put("f9w5_movementinterval", trackingNumData.getString("core_photo_interval__c__r") != null ? trackingNumData.getString("core_photo_interval__c__r") : "");
|
||||||
|
//副机绑定地址
|
||||||
|
trackingNumMap.put("f9w5_auxiliaryip", trackingNumData.getString("secondary_device_bound_add__c__r") != null ? trackingNumData.getString("secondary_device_bound_add__c__r") : "");
|
||||||
|
//副机通道类型
|
||||||
|
String auxiliarychanneltype = trackingNumData.getString("secondary_channel_type__c__r") != null ? trackingNumData.getString("secondary_channel_type__c__r") : "";
|
||||||
|
|
||||||
|
if (auxiliarychanneltype.equals("") || auxiliarychanneltype.equals("option_none__c")) {
|
||||||
|
auxiliarychanneltype = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
trackingNumMap.put("f9w5_auxiliarytype", auxiliarychanneltype);
|
||||||
|
//维护时间段
|
||||||
|
trackingNumMap.put("f9w5_maintenancetime", trackingNumData.getString("maintenance_time_period__c") != null ? trackingNumData.getString("maintenance_time_period__c") : "");
|
||||||
|
//出厂内外卡选择
|
||||||
|
trackingNumMap.put("f9w5_inoutcard", trackingNumData.getString("factory_external_card_choi__c__r") != null ? trackingNumData.getString("factory_external_card_choi__c__r") : "");
|
||||||
|
//出厂平台选择
|
||||||
|
trackingNumMap.put("f9w5_outplatform", trackingNumData.getString("factory_platform_choice__c__r") != null ? trackingNumData.getString("factory_platform_choice__c__r") : "");
|
||||||
|
//铭牌
|
||||||
|
trackingNumMap.put("f9w5_nameplate", trackingNumData.getString("tag_name__c__r") != null ? trackingNumData.getString("tag_name__c__r") : "");
|
||||||
|
//流量卡
|
||||||
|
trackingNumMap.put("f9w5_flowcard", trackingNumData.getString("traffic_card__c__r") != null ? trackingNumData.getString("traffic_card__c__r") : "");
|
||||||
|
//联网模式配置
|
||||||
|
trackingNumMap.put("f9w5_confignetset", trackingNumData.getString("network_mode_config__c__r") != null ? trackingNumData.getString("network_mode_config__c__r") : "");
|
||||||
|
//是否开启维护模式
|
||||||
|
String isMaintenance = trackingNumData.getString("is_maintenance_mode_enable__c") != null ? trackingNumData.getString("is_maintenance_mode_enable__c") : "";
|
||||||
|
|
||||||
|
switch (isMaintenance) {
|
||||||
|
case "yes":
|
||||||
|
trackingNumMap.put("f9w5_ismaintenance", true);//前端智能识别
|
||||||
|
break;
|
||||||
|
case "no":
|
||||||
|
trackingNumMap.put("f9w5_ismaintenance", false);//前端智能识别
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
trackingNumMap.put("f9w5_ismaintenance", null);//前端智能识别
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//物料编码
|
||||||
|
trackingNumMap.put("f9w5_material_number", trackingNumData.getString("material_code__c__r") != null ? trackingNumData.getString("material_code__c__r") : "");
|
||||||
|
//平台
|
||||||
|
trackingNumMap.put("f9w5_smplatform_number", trackingNumData.getString("platform_name_code__c") != null ? trackingNumData.getString("platform_name_code__c") : "");
|
||||||
|
//todo 来源单据类型.编码
|
||||||
|
trackingNumMap.put("sourcebilltype_number", "f9w5_sm_purchaseplan_BT");
|
||||||
|
|
||||||
|
Map erpTrackReq = new HashMap<>();
|
||||||
|
erpTrackReq.put("data", Arrays.asList(trackingNumMap));
|
||||||
|
|
||||||
|
//开始获取token
|
||||||
|
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
||||||
|
|
||||||
|
if (accessToken == null || accessToken.equals("")) {
|
||||||
|
log.info("金蝶token为空或不存在");
|
||||||
|
res.put("errorCode", "error");
|
||||||
|
res.put("message", "跟踪号金蝶token为空或不存在");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
String uuid = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
//开始封装请求头
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
headers.set("accessToken", accessToken);
|
||||||
|
headers.set("Idempotency-Key", uuid);
|
||||||
|
|
||||||
|
HttpEntity contractReqEntity = new HttpEntity(erpTrackReq, headers);
|
||||||
|
|
||||||
|
System.out.println(JSON.parseObject(JSON.toJSONString(contractReqEntity)));
|
||||||
|
|
||||||
|
String trackingNumUrl = ERPURLConstant.ERP_URL + "/ierp/kapi/v2/f9w5/sbd/bd_tracknumber/bdTracknumberSave";
|
||||||
|
|
||||||
|
//开始调用金蝶接口
|
||||||
|
JSONObject trackingNumERPRes = new JSONObject();
|
||||||
|
|
||||||
|
try {
|
||||||
|
trackingNumERPRes = restTemplate.postForObject(trackingNumUrl, contractReqEntity, JSONObject.class);
|
||||||
|
} catch (RestClientException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
res.put("errorCode", "error");
|
||||||
|
res.put("message", "跟踪号新增或更新请求失败");
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(JSON.parseObject(JSON.toJSONString(trackingNumERPRes)));
|
||||||
|
|
||||||
|
if ("0".equals(trackingNumERPRes.getString("errorCode"))) {
|
||||||
|
log.info("金蝶接口返回成功");
|
||||||
|
String trackingNumId = trackingNumERPRes.getJSONObject("data").getJSONArray("result").getJSONObject(0).getString("id");
|
||||||
|
res.put("errorCode", "success");
|
||||||
|
res.put("message", "请求成功");
|
||||||
|
} else {
|
||||||
|
log.info("金蝶接口返回失败");
|
||||||
|
res.put("errorCode", "error");
|
||||||
|
res.put("message", "跟踪号新增或更新请求失败" + trackingNumERPRes.getString("message"));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -505,6 +505,60 @@ public class InvoiceController {
|
|||||||
}
|
}
|
||||||
invoiceMap.put("issoftworks", isSoftWorksFlag);//是否含软
|
invoiceMap.put("issoftworks", isSoftWorksFlag);//是否含软
|
||||||
|
|
||||||
|
//是否国网
|
||||||
|
String isGWStr = redInvoiceData.getString("is_state_grid__c") != null ? redInvoiceData.getString("is_state_grid__c") : "";
|
||||||
|
Boolean isGW = null;
|
||||||
|
switch (isGWStr) {
|
||||||
|
case "ubaL12a0M":
|
||||||
|
isGW = true;
|
||||||
|
break;
|
||||||
|
case "tiVjNIMLU":
|
||||||
|
isGW = false;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
isGW = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
invoiceMap.put("isgw", isGW);//是否国网
|
||||||
|
|
||||||
|
//是否设计建筑服务
|
||||||
|
String isJZStr = redInvoiceData.getString("is_involved_construction__c") != null ? redInvoiceData.getString("is_involved_construction__c") : "";
|
||||||
|
Boolean isJZ = null;
|
||||||
|
switch (isJZStr) {
|
||||||
|
case "option_is_yes__c":
|
||||||
|
isJZ = true;
|
||||||
|
break;
|
||||||
|
case "option_is_no__c":
|
||||||
|
isJZ = false;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
isJZ = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
invoiceMap.put("isjzfw", isJZ);//是否设计建筑服务
|
||||||
|
|
||||||
|
//是否跨地市
|
||||||
|
String isCityStr = redInvoiceData.getString("is_cross_city__c") != null ? redInvoiceData.getString("is_cross_city__c") : "";
|
||||||
|
Boolean isCity = null;
|
||||||
|
switch (isCityStr) {
|
||||||
|
case "option_is_yes__c":
|
||||||
|
isCity = true;
|
||||||
|
break;
|
||||||
|
case "option_is_no__c":
|
||||||
|
isCity = false;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
isCity = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
invoiceMap.put("iskds", isCity);//是否跨地市
|
||||||
|
|
||||||
|
invoiceMap.put("jzaddr", redInvoiceData.getString("service_occurrence_locatio__c") != null ? redInvoiceData.getString("service_occurrence_locatio__c") : "");//建筑服务发生地
|
||||||
|
invoiceMap.put("jzpjname", redInvoiceData.getString("project_name__c") != null ? redInvoiceData.getString("project_name__c") : "");//建筑服务项目名称
|
||||||
|
|
||||||
invoiceMap.put("softworks_number", redInvoiceData.getString("registration_number__c") != null ? redInvoiceData.getString("registration_number__c") : "");//软著版本编码
|
invoiceMap.put("softworks_number", redInvoiceData.getString("registration_number__c") != null ? redInvoiceData.getString("registration_number__c") : "");//软著版本编码
|
||||||
invoiceMap.put("blueinvoiceno", redInvoiceData.getString("original_invoice_number__c") != null ? redInvoiceData.getString("original_invoice_number__c") : "");//待冲蓝字发票号码
|
invoiceMap.put("blueinvoiceno", redInvoiceData.getString("original_invoice_number__c") != null ? redInvoiceData.getString("original_invoice_number__c") : "");//待冲蓝字发票号码
|
||||||
invoiceMap.put("redreason", redInvoiceData.getString("redemption_reason__c") != null ? redInvoiceData.getString("redemption_reason__c") : "");//冲红原因
|
invoiceMap.put("redreason", redInvoiceData.getString("redemption_reason__c") != null ? redInvoiceData.getString("redemption_reason__c") : "");//冲红原因
|
||||||
|
@ -157,7 +157,7 @@ public class KDTokenController {
|
|||||||
appTokenParams.put("appId", "FXXKCRM");
|
appTokenParams.put("appId", "FXXKCRM");
|
||||||
appTokenParams.put("appSecret", "FXXKCRM20251234a!");
|
appTokenParams.put("appSecret", "FXXKCRM20251234a!");
|
||||||
appTokenParams.put("tenantid", "zyierp");
|
appTokenParams.put("tenantid", "zyierp");
|
||||||
appTokenParams.put("accountId", "2095345516136108032");
|
appTokenParams.put("accountId", "2226057923279195136");
|
||||||
|
|
||||||
//开始发起请求
|
//开始发起请求
|
||||||
String appTokenRes = "";
|
String appTokenRes = "";
|
||||||
@ -214,7 +214,7 @@ public class KDTokenController {
|
|||||||
accessTokenParams.put("usertype", "Mobile");
|
accessTokenParams.put("usertype", "Mobile");
|
||||||
accessTokenParams.put("apptoken", getKDAppTokenTest());
|
accessTokenParams.put("apptoken", getKDAppTokenTest());
|
||||||
accessTokenParams.put("tenantid", "zyierp");
|
accessTokenParams.put("tenantid", "zyierp");
|
||||||
accessTokenParams.put("accountId", "2095345516136108032");
|
accessTokenParams.put("accountId", "2226057923279195136");
|
||||||
accessTokenParams.put("language", "zh_CN");
|
accessTokenParams.put("language", "zh_CN");
|
||||||
|
|
||||||
//开始向金蝶发起请求
|
//开始向金蝶发起请求
|
||||||
|
@ -67,8 +67,10 @@ public class PreContractController {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
System.out.println("查询结果为:" + preContractRes);
|
||||||
|
|
||||||
//判断查询是否成功
|
//判断查询是否成功
|
||||||
if (!"success".equals(preContractRes.getString("errorDescription")) && preContractRes.getJSONObject("data").getJSONArray("records").isEmpty()) {
|
if (!"success".equals(preContractRes.getString("errorDescription")) || preContractRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
log.info("查询失败或者没有符合条件的单据");
|
log.info("查询失败或者没有符合条件的单据");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -125,6 +127,7 @@ public class PreContractController {
|
|||||||
erpContractReq.put("party1st", preContractData.getString("contract_unit_name__c__r"));//甲方
|
erpContractReq.put("party1st", preContractData.getString("contract_unit_name__c__r"));//甲方
|
||||||
erpContractReq.put("party2nd", preContractData.getString("our_company_name__c"));//乙方
|
erpContractReq.put("party2nd", preContractData.getString("our_company_name__c"));//乙方
|
||||||
erpContractReq.put("bizmode", "C");//业务模式 A:统谈统签, B:统谈分签,C:分谈分签
|
erpContractReq.put("bizmode", "C");//业务模式 A:统谈统签, B:统谈分签,C:分谈分签
|
||||||
|
erpContractReq.put("isentrysumamt", false);//isentrysumamt
|
||||||
|
|
||||||
//部门编码
|
//部门编码
|
||||||
String deptCode = "";
|
String deptCode = "";
|
||||||
@ -463,7 +466,7 @@ public class PreContractController {
|
|||||||
List ownerIdList = preContractBGData.getJSONArray("owner");
|
List ownerIdList = preContractBGData.getJSONArray("owner");
|
||||||
|
|
||||||
JSONObject ownerReq = crmRequestUtil.getCRMList(Arrays.asList(
|
JSONObject ownerReq = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
new Filter("EQ", "_id", ownerIdList)
|
new Filter("EQ", "user_id", ownerIdList)
|
||||||
), "PersonnelObj");
|
), "PersonnelObj");
|
||||||
|
|
||||||
JSONObject ownerRes = new JSONObject();
|
JSONObject ownerRes = new JSONObject();
|
||||||
|
@ -377,7 +377,7 @@ public class ReimbursementController {
|
|||||||
Map expensesMap = new HashMap<>();
|
Map expensesMap = new HashMap<>();
|
||||||
expensesMap.put("data", data);
|
expensesMap.put("data", data);
|
||||||
expensesMap.put("pageNo", 1);
|
expensesMap.put("pageNo", 1);
|
||||||
expensesMap.put("pageSize", 1);
|
expensesMap.put("pageSize", 1999);
|
||||||
|
|
||||||
//开始获取金蝶token
|
//开始获取金蝶token
|
||||||
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
||||||
|
@ -62,7 +62,7 @@ public class TenderingController {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"success".equals(tenderingRes.getString("errorDescription")) && tenderingRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
if (!"success".equals(tenderingRes.getString("errorDescription")) || tenderingRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
log.info("投标费用请求失败或者没有符合条件的数据");
|
log.info("投标费用请求失败或者没有符合条件的数据");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ public class XSHTController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//判断查询是否成功
|
//判断查询是否成功
|
||||||
if (!"success".equals(ContractRes.getString("errorDescription")) && ContractRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
if (!"success".equals(ContractRes.getString("errorDescription")) || ContractRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
log.info("查询失败或者没有符合条件的单据");
|
log.info("查询失败或者没有符合条件的单据");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -129,6 +129,25 @@ public class XSHTController {
|
|||||||
|
|
||||||
String projectCode = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0).getString("opportunity_id__c");
|
String projectCode = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0).getString("opportunity_id__c");
|
||||||
|
|
||||||
|
//合同种类
|
||||||
|
String contractType = contractData.getString("contract_zl__c") != null ? contractData.getString("contract_zl__c") : "";
|
||||||
|
|
||||||
|
if (contractType.equals("")) {
|
||||||
|
log.info("合同种类不存在,将不再向下执行");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
String contractMainType = "";
|
||||||
|
String contractTypeStr = "";
|
||||||
|
|
||||||
|
if (contractType.equals("option_sales_contract_details__c")) {
|
||||||
|
contractMainType = "XSHT-QD01";
|
||||||
|
contractTypeStr = "020";
|
||||||
|
} else if (contractType.equals("option_sales_contract_total_amoun__c")) {
|
||||||
|
contractMainType = "XSHT-QD02";
|
||||||
|
contractTypeStr = "020-1";
|
||||||
|
}
|
||||||
|
|
||||||
//开始封装传输至ERP的请求
|
//开始封装传输至ERP的请求
|
||||||
Map erpContractReq = new HashMap<>();
|
Map erpContractReq = new HashMap<>();
|
||||||
erpContractReq.put("billno", contractData.getString("name"));//合同编号
|
erpContractReq.put("billno", contractData.getString("name"));//合同编号
|
||||||
@ -138,7 +157,7 @@ public class XSHTController {
|
|||||||
//erpContractReq.put("project_number", "SJ20250424-0033");//项目号
|
//erpContractReq.put("project_number", "SJ20250424-0033");//项目号
|
||||||
erpContractReq.put("billtype_number", "conm_salcontract_BT_QD");//单据类型
|
erpContractReq.put("billtype_number", "conm_salcontract_BT_QD");//单据类型
|
||||||
erpContractReq.put("billname", contractData.getString("project_name__c") != null ? contractData.getString("project_name__c") : "销售合同");//合同名称
|
erpContractReq.put("billname", contractData.getString("project_name__c") != null ? contractData.getString("project_name__c") : "销售合同");//合同名称
|
||||||
erpContractReq.put("type_number", "XSHT-QD01");//合同类型
|
erpContractReq.put("type_number", contractMainType);//合同类型
|
||||||
erpContractReq.put("contparties_number", contractData.getString("our_company_name__c") != null ? contractData.getString("our_company_name__c") : "");//合同主体
|
erpContractReq.put("contparties_number", contractData.getString("our_company_name__c") != null ? contractData.getString("our_company_name__c") : "");//合同主体
|
||||||
erpContractReq.put("createorg_number", contractData.getString("our_company_name__c") != null ? contractData.getString("our_company_name__c") : "");//销售组织编码
|
erpContractReq.put("createorg_number", contractData.getString("our_company_name__c") != null ? contractData.getString("our_company_name__c") : "");//销售组织编码
|
||||||
erpContractReq.put("org_number", contractData.getString("our_company_name__c") != null ? contractData.getString("our_company_name__c") : "");//销售组织编码
|
erpContractReq.put("org_number", contractData.getString("our_company_name__c") != null ? contractData.getString("our_company_name__c") : "");//销售组织编码
|
||||||
@ -228,7 +247,7 @@ public class XSHTController {
|
|||||||
JSONObject customerData = customerRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
JSONObject customerData = customerRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
||||||
|
|
||||||
erpContractReq.put("customer_number", customerData.getString("account_no"));//合同单位名称
|
erpContractReq.put("customer_number", customerData.getString("account_no"));//合同单位名称
|
||||||
erpContractReq.put("reccustomer_number", customerData.getString("account_no"));//收获客户单位名称
|
erpContractReq.put("reccustomer_number", contractData.getString("receiver_customer__c"));//收获客户单位名称
|
||||||
//erpContractReq.put("customer_number", "Cus-000001");//合同单位名称
|
//erpContractReq.put("customer_number", "Cus-000001");//合同单位名称
|
||||||
erpContractReq.put("settlecustomer_number", contractData.getString("billing_customer_code__c") != null ? contractData.getString("billing_customer_code__c") : "");//结算客户
|
erpContractReq.put("settlecustomer_number", contractData.getString("billing_customer_code__c") != null ? contractData.getString("billing_customer_code__c") : "");//结算客户
|
||||||
erpContractReq.put("payingcustomer_number", contractData.getString("payment_customer_code__c") != null ? contractData.getString("payment_customer_code__c") : "");//付款客户
|
erpContractReq.put("payingcustomer_number", contractData.getString("payment_customer_code__c") != null ? contractData.getString("payment_customer_code__c") : "");//付款客户
|
||||||
@ -287,22 +306,6 @@ public class XSHTController {
|
|||||||
//销售方式
|
//销售方式
|
||||||
erpContractReq.put("salesmethod", contractData.getString("sales_method__c"));
|
erpContractReq.put("salesmethod", contractData.getString("sales_method__c"));
|
||||||
|
|
||||||
//合同种类
|
|
||||||
String contractType = contractData.getString("contract_zl__c") != null ? contractData.getString("contract_zl__c") : "";
|
|
||||||
|
|
||||||
if (contractType.equals("")) {
|
|
||||||
log.info("合同种类不存在,将不再向下执行");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
String contractTypeStr = "";
|
|
||||||
|
|
||||||
if (contractType.equals("option_sales_contract_details__c")) {
|
|
||||||
contractTypeStr = "020";
|
|
||||||
} else if (contractType.equals("option_sales_contract_total_amoun__c")) {
|
|
||||||
contractTypeStr = "020-1";
|
|
||||||
}
|
|
||||||
|
|
||||||
//根据合同号查询合同明细
|
//根据合同号查询合同明细
|
||||||
JSONObject contractDetailReq = crmRequestUtil.getCRMList(Arrays.asList(
|
JSONObject contractDetailReq = crmRequestUtil.getCRMList(Arrays.asList(
|
||||||
new Filter("EQ", "sale_contract_id", Arrays.asList(contractId))
|
new Filter("EQ", "sale_contract_id", Arrays.asList(contractId))
|
||||||
|
@ -28,7 +28,7 @@ public class ZHYTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
BankInfoController bankInfoController;
|
BankInfoController bankInfoController;
|
||||||
|
|
||||||
@Scheduled(cron = "0 0/1 * * * ?")
|
@Scheduled(cron = "*/45 * * * * ?")
|
||||||
private void configureTasks() throws Exception {
|
private void configureTasks() throws Exception {
|
||||||
System.out.println("开始同步数据");
|
System.out.println("开始同步数据");
|
||||||
preContractController.syncContract();
|
preContractController.syncContract();
|
||||||
|
@ -114,6 +114,8 @@ public class CrmRequestUtil {
|
|||||||
request.put("corpAccessToken", corpAccessToken);
|
request.put("corpAccessToken", corpAccessToken);
|
||||||
request.put("currentOpenUserId", CertificateConstant.CURRENT_OPEN_USERID);
|
request.put("currentOpenUserId", CertificateConstant.CURRENT_OPEN_USERID);
|
||||||
request.put("corpId", CertificateConstant.CORP_ID);
|
request.put("corpId", CertificateConstant.CORP_ID);
|
||||||
|
request.put("triggerWorkFlow", "false");
|
||||||
|
request.put("triggerApprovalFlow", "false");
|
||||||
request.put("data", objectData);
|
request.put("data", objectData);
|
||||||
|
|
||||||
JSONObject requestJSON = new JSONObject(request);
|
JSONObject requestJSON = new JSONObject(request);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user