diff --git a/src/main/java/com/management/controller/DesignController.java b/src/main/java/com/management/controller/DesignController.java index 7e65e07..1d5d918 100644 --- a/src/main/java/com/management/controller/DesignController.java +++ b/src/main/java/com/management/controller/DesignController.java @@ -662,6 +662,21 @@ public class DesignController { //开始封装明细 designBGDocMap.put("entryList", designDocDetailList); +// +// //开始反关闭 +// String erpId = designBGDocData.getString("change_erp_id__c") != null ? designBGDocData.getString("change_erp_id__c") : ""; +// +// if (erpId.equals("")) { +// log.info("erpId为空"); +// continue; +// } +// +// String unclose = designUnclose(originalId, erpId, originalName); +// +// if (!unclose.equals("0")) { +// log.info("未成功关闭,不再继续向下执行"); +// continue; +// } //开始获取ERPToken String accessToken = new KDTokenController().getKDAccessTokenTest(); @@ -727,7 +742,7 @@ public class DesignController { logMap.put("log_status", "1"); logMap.put("res_body", "同步失败:" + designDocRes.getString("message")); backReqMap.put("sync_status__c", "option_sync_failure__c"); - backReqMap.put("response_info__c", designBGDocName+"变更失败:" + designDocRes.getString("message")); + backReqMap.put("response_info__c", designBGDocName + "变更失败:" + designDocRes.getString("message")); } //开始回写 @@ -785,4 +800,115 @@ public class DesignController { } } } +// +// /** +// * 反关闭方法 +// * +// * @return java.lang.String +// * @Author weiloong_zhang +// */ +// public String designUnclose(String crmId, String erpId, String designName) { +// CrmRequestUtil crmRequestUtil = new CrmRequestUtil(); +// +// //开始封装数据 +// Map uncloseMap = new HashMap<>(); +// uncloseMap.put("id", erpId); +// +// Map uncloseReqMap = new HashMap<>(); +// uncloseReqMap.put("data", uncloseMap); +// +// //开始封装请求 +// //开始获取token +// String accessToken = new KDTokenController().getKDAccessTokenTest(); +// +// if (accessToken == null || accessToken.equals("")) { +// log.info("金蝶token为空或不存在"); +// return "金蝶token为空或不存在"; +// } +// +// 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 designReqEntity = new HttpEntity(uncloseReqMap, headers); +// +// System.out.println(JSON.parseObject(JSON.toJSONString(designReqEntity))); +// +// String uncloseUrl = ERPURLConstant.ERP_URL + "/ierp/kapi/v2/f9w5/pssc/pm_requirapplybill/unclose"; +// +// JSONObject erpUncloseRes = new JSONObject(); +// +// try { +// erpUncloseRes = restTemplate.postForObject(uncloseUrl, designReqEntity, JSONObject.class); +// } catch (RestClientException e) { +// e.printStackTrace(); +// } +// +// System.out.println("金蝶关闭合同结果为:" + erpUncloseRes); +// +// //开始封装回写程序 +// Map backReqMap = new HashMap(); +// backReqMap.put("_id", crmId); +// backReqMap.put("dataObjectApiName", "design_file__c"); +// +// //开始封装日志 +// Map logMap = new HashMap<>(); +// logMap.put("log_id", UUID.randomUUID().toString().replace("-", "")); +// logMap.put("log_type", "SJWJGB"); +// logMap.put("syn_type", "0"); +// logMap.put("data_id", crmId); +// logMap.put("data_name", designName); +// logMap.put("send_body", JSON.toJSONString(designReqEntity)); +// logMap.put("send_res", JSON.toJSONString(erpUncloseRes)); +// logMap.put("tableName", "send_log_sjwj"); +// +// String result = ""; +// +// if ("0".equals(erpUncloseRes.getString("errorCode"))) { +// //同步成功 +// result = "0"; +// logMap.put("log_status", "0"); +// logMap.put("res_body", "同步成功"); +// backReqMap.put("sync_status__c", "option_sync_success__c"); +// backReqMap.put("response_info__c", "该合同已在erp中反关闭,并且反关闭成功"); +// } else { +// //同步成功 +// result = "1"; +// logMap.put("log_status", "1"); +// logMap.put("res_body", "同步失败:" + erpUncloseRes.getString("message")); +// backReqMap.put("sync_status__c", "option_sync_failure__c"); +// backReqMap.put("response_info__c", "该合同在erp中反关闭失败,反关闭失败原因:" + erpUncloseRes.getString("message")); +// } +// +// JSONObject backReq = crmRequestUtil.updateCRM(backReqMap); +// +// System.out.println("回写请求为:" + JSON.parseObject(JSON.toJSONString(backReq))); +// +// JSONObject backRes = new JSONObject(); +// +// try { +// backRes = restTemplate.postForObject(URLConstant.UPDATE_CRM_CUSTOMIZE, backReq, JSONObject.class); +// } catch (RestClientException e) { +// e.printStackTrace(); +// } +// +// System.out.println("回写结果为:" + backRes); +// +// logMap.put("send_memo", JSON.toJSONString(backRes)); +// +// //开始记录日志 +// JSONObject logRes = new JSONObject(); +// try { +// logRes = restTemplate.postForObject("http://localhost:18085/Log/insert/log_data", logMap, JSONObject.class); +// } catch (RestClientException e) { +// e.printStackTrace(); +// } +// +// System.out.println("日志插入结果为:" + logRes); +// +// return result; +// } } diff --git a/src/main/java/com/management/controller/InvoiceController.java b/src/main/java/com/management/controller/InvoiceController.java index aff116f..d473a29 100644 --- a/src/main/java/com/management/controller/InvoiceController.java +++ b/src/main/java/com/management/controller/InvoiceController.java @@ -391,6 +391,8 @@ public class InvoiceController { System.out.println("回写结果为:" + backRes); + logMap.put("send_memo", JSON.toJSONString(backRes)); + log.info("上锁"); JSONObject lockRes = new JSONObject(); @@ -739,6 +741,8 @@ public class InvoiceController { System.out.println("回写结果为:" + backRes); + logMap.put("send_memo", JSON.toJSONString(backRes)); + log.info("上锁"); JSONObject lockRes = new JSONObject(); diff --git a/src/main/java/com/management/controller/XSHTController.java b/src/main/java/com/management/controller/XSHTController.java index c4fc1c5..08a07e9 100644 --- a/src/main/java/com/management/controller/XSHTController.java +++ b/src/main/java/com/management/controller/XSHTController.java @@ -638,6 +638,27 @@ public class XSHTController { //原单单据 String originalContractName = contractBGData.getString("name"); + BigDecimal contractAmount = contractBGData.getBigDecimal("change_contract_amount__c") != null ? contractBGData.getBigDecimal("change_contract_amount__c") : BigDecimal.ZERO; + + if (contractAmount.compareTo(BigDecimal.ZERO) == 0) { + log.info("合同金额等于0,将不再进行变更,将进行合同关闭"); + + //crm源单唯一性id + String crmId = contractBGData.getString("original_data"); + String crmName = contractBGData.getString("original_data__r"); + //erpId + String erpId = contractBGData.getString("change_erp_id__c") != null ? contractBGData.getString("change_erp_id__c") : ""; + + if (erpId.equals("")) { + log.info("erpId为空"); + continue; + } + + ContractClose(crmId, erpId, crmName); + + continue; + } + //开始查看是否已经同步 JSONObject isLogRes = new JSONObject(); @@ -1158,4 +1179,109 @@ public class XSHTController { } } + + /** + * 销售合同关闭方法 + * + * @return void + * @Author weiloong_zhang + */ + public void ContractClose(String crmId, String erpId, String contractName) { + CrmRequestUtil crmRequestUtil = new CrmRequestUtil(); + + //开始封装数据 + Map closeMap = new HashMap<>(); + closeMap.put("id", erpId); + + Map closeReqMap = new HashMap<>(); + closeReqMap.put("data", closeMap); + + //开始封装请求 + //开始获取token + String accessToken = new KDTokenController().getKDAccessTokenTest(); + + if (accessToken == null || accessToken.equals("")) { + log.info("金蝶token为空或不存在"); + return; + } + + 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(closeReqMap, headers); + + + String closeUrl = ERPURLConstant.ERP_URL + "/ierp/kapi/v2/f9w5/conm/conm_salcontract/close"; + + JSONObject closeRes = new JSONObject(); + + try { + closeRes = restTemplate.postForObject(closeUrl, contractReqEntity, JSONObject.class); + } catch (RestClientException e) { + e.printStackTrace(); + } + + System.out.println("金蝶关闭合同结果为:" + closeRes); + + //开始封装回写程序 + Map backReqMap = new HashMap(); + backReqMap.put("_id", crmId); + backReqMap.put("dataObjectApiName", "SaleContractObj"); + + //开始封装日志 + Map logMap = new HashMap<>(); + logMap.put("log_id", UUID.randomUUID().toString().replace("-", "")); + logMap.put("log_type", "XSHTGB"); + logMap.put("syn_type", "0"); + logMap.put("data_id", crmId); + logMap.put("data_name", contractName); + logMap.put("send_body", JSON.toJSONString(contractReqEntity)); + logMap.put("send_res", JSON.toJSONString(closeRes)); + logMap.put("tableName", "send_log_htxx"); + + if ("0".equals(closeRes.getString("errorCode"))) { + //同步成功 + logMap.put("log_status", "0"); + logMap.put("res_body", "同步成功"); + backReqMap.put("sync_status__c", "option_sync_success__c"); + backReqMap.put("response_info__c", "该合同已在erp中关闭,并且关闭成功"); + } else { + //同步成功 + logMap.put("log_status", "1"); + logMap.put("res_body", "同步失败:" + closeRes.getString("message")); + backReqMap.put("sync_status__c", "option_sync_failure__c"); + backReqMap.put("response_info__c", "该合同在erp中关闭失败,关闭失败原因:" + closeRes.getString("message")); + } + + JSONObject backReq = crmRequestUtil.updateCRM(backReqMap); + + System.out.println("回写请求为:" + JSON.parseObject(JSON.toJSONString(backReq))); + + JSONObject backRes = new JSONObject(); + + try { + backRes = restTemplate.postForObject(URLConstant.UPDATE_CRM_MAIN, backReq, JSONObject.class); + } catch (RestClientException e) { + e.printStackTrace(); + } + + System.out.println("回写结果为:" + backRes); + + logMap.put("send_memo", JSON.toJSONString(backRes)); + + //开始记录日志 + JSONObject logRes = new JSONObject(); + try { + logRes = restTemplate.postForObject("http://localhost:18085/Log/insert/log_data", logMap, JSONObject.class); + } catch (RestClientException e) { + e.printStackTrace(); + } + + System.out.println("日志插入结果为:" + logRes); + + } }