费用报销优化
This commit is contained in:
parent
2e7d7c76aa
commit
5129217e29
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user