diff --git a/src/main/java/com/management/controller/ReimbursementController.java b/src/main/java/com/management/controller/ReimbursementController.java index 5c479d9..366a30a 100644 --- a/src/main/java/com/management/controller/ReimbursementController.java +++ b/src/main/java/com/management/controller/ReimbursementController.java @@ -1,6 +1,7 @@ package com.management.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.management.constant.ERPURLConstant; import com.management.constant.URLConstant; @@ -50,7 +51,7 @@ public class ReimbursementController { LocalDateTime now = LocalDateTime.now(); log.info("当前时间:{}", now); //获取两天前的时间 - LocalDateTime twoDaysAgo = now.minusDays(1); + LocalDateTime twoDaysAgo = now.minusDays(2); //将时间转换样式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -65,7 +66,7 @@ public class ReimbursementController { Map expensesMap = new HashMap<>(); expensesMap.put("data", data); expensesMap.put("pageNo", 1); - expensesMap.put("pageSize", 1999); + expensesMap.put("pageSize", 2000); //开始获取金蝶token String accessToken = new KDTokenController().getKDAccessTokenTest(); @@ -256,6 +257,8 @@ public class ReimbursementController { if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) { JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0); expensesDetailMap.put("project_id", projectData.getString("_id")); + + expensesDetailMap.put("current_project_status__c", projectData.getString("project_status__c") != null ? projectData.getString("project_status__c") : ""); } } @@ -265,9 +268,31 @@ public class ReimbursementController { expensesDetailMap.put("amount", expensesDetailData.getBigDecimal("expenseamount"));//金额(价税合计) expensesDetailMap.put("erp_row_id__c", expensesDetailData.getString("entryId"));//ERP行ID + //费用项目 + String costItemStr = expensesDetailData.getString("expenseitem_number") != null ? expensesDetailData.getString("expenseitem_number") : ""; + + JSONObject getCostItem = crmRequestUtil.getCRMList(Arrays.asList( + new Filter("EQ", "field_2wvmq__c", Arrays.asList(costItemStr)), + new Filter("EQ", "life_status", Arrays.asList("normal")) + ), "object_o8291__c"); + + JSONObject costItemRes = new JSONObject(); + + try { + costItemRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, getCostItem, JSONObject.class); + } catch (RestClientException e) { + e.printStackTrace(); + } + + if ("success".equals(costItemRes.getString("errorDescription")) && !costItemRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) { + JSONObject costItemData = costItemRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0); + + expensesDetailMap.put("field_3xCHY__c", costItemData.getString("_id")); + } + //开始根据ERP行ID判断是否已经集成过该单据 JSONObject getExpensesDetail = crmRequestUtil.getCRMList(Arrays.asList( - new Filter("EQ", "_id", Arrays.asList(expensesDetailData.getString("entryId"))) + new Filter("EQ", "erp_row_id__c", Arrays.asList(expensesDetailData.getString("entryId"))) ), "ExpenseClaimFormDetailObj"); JSONObject expensesDetailCRMRes = new JSONObject(); @@ -356,7 +381,7 @@ public class ReimbursementController { * @return void * @Author weiloong_zhang */ - @PostMapping + @PostMapping("/sync/public") public void syncPublicExpenses() { CrmRequestUtil crmRequestUtil = new CrmRequestUtil(); @@ -366,7 +391,7 @@ public class ReimbursementController { LocalDateTime now = LocalDateTime.now(); log.info("当前时间:{}", now); //获取两天前的时间 - LocalDateTime twoDaysAgo = now.minusDays(3); + LocalDateTime twoDaysAgo = now.minusDays(2); //将时间转换样式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -381,7 +406,7 @@ public class ReimbursementController { Map expensesMap = new HashMap<>(); expensesMap.put("data", data); expensesMap.put("pageNo", 1); - expensesMap.put("pageSize", 1999); + expensesMap.put("pageSize", 2000); //开始获取金蝶token String accessToken = new KDTokenController().getKDAccessTokenTest(); @@ -488,8 +513,6 @@ public class ReimbursementController { continue; } - System.out.println("负责人数据为:" + ownerRes); - //开始截取负责人user_id String ownerUserId = ownerRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0).getString("user_id"); expensesMainReq.put("owner", Arrays.asList(ownerUserId)); @@ -506,7 +529,7 @@ public class ReimbursementController { JSONObject expensesCRMRes = new JSONObject(); try { - expensesCRMRes = restTemplate.postForObject(URLConstant.GET_CRM_LIST_URL, getExpenses, JSONObject.class); + expensesCRMRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, getExpenses, JSONObject.class); } catch (RestClientException e) { e.printStackTrace(); } @@ -567,15 +590,38 @@ public class ReimbursementController { if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) { JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0); expensesDetail.put("project_id", projectData.getString("_id")); + expensesDetail.put("current_project_status__c", projectData.getString("project_status__c") != null ? projectData.getString("project_status__c") : ""); } } expensesDetail.put("amount", expenseDetailData.getBigDecimal("expenseamount"));//金额(价税合计) expensesDetail.put("erp_row_id__c", expenseDetailData.getString("entryId"));//ERP行ID + //费用项目 + String costItemStr = expenseDetailData.getString("expenseitem_number") != null ? expenseDetailData.getString("expenseitem_number") : ""; + + JSONObject getCostItem = crmRequestUtil.getCRMList(Arrays.asList( + new Filter("EQ", "field_2wvmq__c", Arrays.asList(costItemStr)), + new Filter("EQ", "life_status", Arrays.asList("normal")) + ), "object_o8291__c"); + + JSONObject costItemRes = new JSONObject(); + + try { + costItemRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, getCostItem, JSONObject.class); + } catch (RestClientException e) { + e.printStackTrace(); + } + + if ("success".equals(costItemRes.getString("errorDescription")) && !costItemRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) { + JSONObject costItemData = costItemRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0); + + expensesDetail.put("field_3xCHY__c", costItemData.getString("_id")); + } + //开始根据ERP行ID判断是否已经集成过该单据 JSONObject getExpensesDetail = crmRequestUtil.getCRMList(Arrays.asList( - new Filter("EQ", "_id", Arrays.asList(expenseDetailData.getString("entryId"))) + new Filter("EQ", "erp_row_id__c", Arrays.asList(expenseDetailData.getString("entryId"))) ), "ExpenseClaimFormDetailObj"); JSONObject expensesDetailCRMRes = new JSONObject(); @@ -672,7 +718,7 @@ public class ReimbursementController { LocalDateTime now = LocalDateTime.now(); log.info("当前时间:{}", now); //获取两天前的时间 - LocalDateTime twoDaysAgo = now.minusDays(5); + LocalDateTime twoDaysAgo = now.minusDays(2); //将时间转换样式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -687,7 +733,7 @@ public class ReimbursementController { Map expensesMap = new HashMap<>(); expensesMap.put("data", data); expensesMap.put("pageNo", 1); - expensesMap.put("pageSize", 1999); + expensesMap.put("pageSize", 2000); //开始获取金蝶token String accessToken = new KDTokenController().getKDAccessTokenTest(); @@ -716,8 +762,6 @@ public class ReimbursementController { JSONObject expensesRes = JSON.parseObject(expensesResStr); - System.out.println(expensesRes); - if (!"0".equals(expensesRes.getString("errorCode")) || expensesRes.getJSONObject("data").getJSONArray("rows").isEmpty()) { log.info("金蝶查询差旅报销单失败或者没有符合条件数据"); return; @@ -872,6 +916,7 @@ public class ReimbursementController { if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) { JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0); expensesDetailMap.put("project_id", projectData.getString("_id")); + expensesDetailMap.put("current_project_status__c", projectData.getString("project_status__c") != null ? projectData.getString("project_status__c") : ""); } } @@ -881,9 +926,31 @@ public class ReimbursementController { expensesDetailMap.put("amount", expensesDetailData.getBigDecimal("triporiamount"));//金额(价税合计) expensesDetailMap.put("erp_row_id__c", expensesDetailData.getString("id"));//ERP行ID + //费用项目 + String costItemStr = expensesDetailData.getString("tripexpenseitem_number") != null ? expensesDetailData.getString("tripexpenseitem_number") : ""; + + JSONObject getCostItem = crmRequestUtil.getCRMList(Arrays.asList( + new Filter("EQ", "field_2wvmq__c", Arrays.asList(costItemStr)), + new Filter("EQ", "life_status", Arrays.asList("normal")) + ), "object_o8291__c"); + + JSONObject costItemRes = new JSONObject(); + + try { + costItemRes = restTemplate.postForObject(URLConstant.GET_CUSTOMIZE_LIST_URL, getCostItem, JSONObject.class); + } catch (RestClientException e) { + e.printStackTrace(); + } + + if ("success".equals(costItemRes.getString("errorDescription")) && !costItemRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) { + JSONObject costItemData = costItemRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0); + + expensesDetailMap.put("field_3xCHY__c", costItemData.getString("_id")); + } + //开始根据ERP行ID判断是否已经集成过该单据 JSONObject getExpensesDetail = crmRequestUtil.getCRMList(Arrays.asList( - new Filter("EQ", "_id", Arrays.asList(expensesDetailData.getString("id"))) + new Filter("EQ", "erp_row_id__c", Arrays.asList(expensesDetailData.getString("id"))) ), "ExpenseClaimFormDetailObj"); JSONObject expensesDetailCRMRes = new JSONObject();