费用报销优化
This commit is contained in:
parent
2e7d7c76aa
commit
5129217e29
@ -1,6 +1,7 @@
|
|||||||
package com.management.controller;
|
package com.management.controller;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.management.constant.ERPURLConstant;
|
import com.management.constant.ERPURLConstant;
|
||||||
import com.management.constant.URLConstant;
|
import com.management.constant.URLConstant;
|
||||||
@ -50,7 +51,7 @@ public class ReimbursementController {
|
|||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
log.info("当前时间:{}", now);
|
log.info("当前时间:{}", now);
|
||||||
//获取两天前的时间
|
//获取两天前的时间
|
||||||
LocalDateTime twoDaysAgo = now.minusDays(1);
|
LocalDateTime twoDaysAgo = now.minusDays(2);
|
||||||
|
|
||||||
//将时间转换样式
|
//将时间转换样式
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
@ -65,7 +66,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", 1999);
|
expensesMap.put("pageSize", 2000);
|
||||||
|
|
||||||
//开始获取金蝶token
|
//开始获取金蝶token
|
||||||
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
||||||
@ -256,6 +257,8 @@ public class ReimbursementController {
|
|||||||
if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
||||||
expensesDetailMap.put("project_id", projectData.getString("_id"));
|
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("amount", expensesDetailData.getBigDecimal("expenseamount"));//金额(价税合计)
|
||||||
expensesDetailMap.put("erp_row_id__c", expensesDetailData.getString("entryId"));//ERP行ID
|
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判断是否已经集成过该单据
|
//开始根据ERP行ID判断是否已经集成过该单据
|
||||||
JSONObject getExpensesDetail = crmRequestUtil.getCRMList(Arrays.asList(
|
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");
|
), "ExpenseClaimFormDetailObj");
|
||||||
|
|
||||||
JSONObject expensesDetailCRMRes = new JSONObject();
|
JSONObject expensesDetailCRMRes = new JSONObject();
|
||||||
@ -356,7 +381,7 @@ public class ReimbursementController {
|
|||||||
* @return void
|
* @return void
|
||||||
* @Author weiloong_zhang
|
* @Author weiloong_zhang
|
||||||
*/
|
*/
|
||||||
@PostMapping
|
@PostMapping("/sync/public")
|
||||||
public void syncPublicExpenses() {
|
public void syncPublicExpenses() {
|
||||||
CrmRequestUtil crmRequestUtil = new CrmRequestUtil();
|
CrmRequestUtil crmRequestUtil = new CrmRequestUtil();
|
||||||
|
|
||||||
@ -366,7 +391,7 @@ public class ReimbursementController {
|
|||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
log.info("当前时间:{}", now);
|
log.info("当前时间:{}", now);
|
||||||
//获取两天前的时间
|
//获取两天前的时间
|
||||||
LocalDateTime twoDaysAgo = now.minusDays(3);
|
LocalDateTime twoDaysAgo = now.minusDays(2);
|
||||||
|
|
||||||
//将时间转换样式
|
//将时间转换样式
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
@ -381,7 +406,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", 1999);
|
expensesMap.put("pageSize", 2000);
|
||||||
|
|
||||||
//开始获取金蝶token
|
//开始获取金蝶token
|
||||||
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
||||||
@ -488,8 +513,6 @@ public class ReimbursementController {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("负责人数据为:" + ownerRes);
|
|
||||||
|
|
||||||
//开始截取负责人user_id
|
//开始截取负责人user_id
|
||||||
String ownerUserId = ownerRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0).getString("user_id");
|
String ownerUserId = ownerRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0).getString("user_id");
|
||||||
expensesMainReq.put("owner", Arrays.asList(ownerUserId));
|
expensesMainReq.put("owner", Arrays.asList(ownerUserId));
|
||||||
@ -506,7 +529,7 @@ public class ReimbursementController {
|
|||||||
JSONObject expensesCRMRes = new JSONObject();
|
JSONObject expensesCRMRes = new JSONObject();
|
||||||
|
|
||||||
try {
|
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) {
|
} catch (RestClientException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -567,15 +590,38 @@ public class ReimbursementController {
|
|||||||
if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
||||||
expensesDetail.put("project_id", projectData.getString("_id"));
|
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("amount", expenseDetailData.getBigDecimal("expenseamount"));//金额(价税合计)
|
||||||
expensesDetail.put("erp_row_id__c", expenseDetailData.getString("entryId"));//ERP行ID
|
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判断是否已经集成过该单据
|
//开始根据ERP行ID判断是否已经集成过该单据
|
||||||
JSONObject getExpensesDetail = crmRequestUtil.getCRMList(Arrays.asList(
|
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");
|
), "ExpenseClaimFormDetailObj");
|
||||||
|
|
||||||
JSONObject expensesDetailCRMRes = new JSONObject();
|
JSONObject expensesDetailCRMRes = new JSONObject();
|
||||||
@ -672,7 +718,7 @@ public class ReimbursementController {
|
|||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
log.info("当前时间:{}", now);
|
log.info("当前时间:{}", now);
|
||||||
//获取两天前的时间
|
//获取两天前的时间
|
||||||
LocalDateTime twoDaysAgo = now.minusDays(5);
|
LocalDateTime twoDaysAgo = now.minusDays(2);
|
||||||
|
|
||||||
//将时间转换样式
|
//将时间转换样式
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
@ -687,7 +733,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", 1999);
|
expensesMap.put("pageSize", 2000);
|
||||||
|
|
||||||
//开始获取金蝶token
|
//开始获取金蝶token
|
||||||
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
String accessToken = new KDTokenController().getKDAccessTokenTest();
|
||||||
@ -716,8 +762,6 @@ public class ReimbursementController {
|
|||||||
|
|
||||||
JSONObject expensesRes = JSON.parseObject(expensesResStr);
|
JSONObject expensesRes = JSON.parseObject(expensesResStr);
|
||||||
|
|
||||||
System.out.println(expensesRes);
|
|
||||||
|
|
||||||
if (!"0".equals(expensesRes.getString("errorCode")) || expensesRes.getJSONObject("data").getJSONArray("rows").isEmpty()) {
|
if (!"0".equals(expensesRes.getString("errorCode")) || expensesRes.getJSONObject("data").getJSONArray("rows").isEmpty()) {
|
||||||
log.info("金蝶查询差旅报销单失败或者没有符合条件数据");
|
log.info("金蝶查询差旅报销单失败或者没有符合条件数据");
|
||||||
return;
|
return;
|
||||||
@ -872,6 +916,7 @@ public class ReimbursementController {
|
|||||||
if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
if ("success".equals(projectRes.getString("errorDescription")) && !projectRes.getJSONObject("data").getJSONArray("dataList").isEmpty()) {
|
||||||
JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
JSONObject projectData = projectRes.getJSONObject("data").getJSONArray("dataList").getJSONObject(0);
|
||||||
expensesDetailMap.put("project_id", projectData.getString("_id"));
|
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("amount", expensesDetailData.getBigDecimal("triporiamount"));//金额(价税合计)
|
||||||
expensesDetailMap.put("erp_row_id__c", expensesDetailData.getString("id"));//ERP行ID
|
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判断是否已经集成过该单据
|
//开始根据ERP行ID判断是否已经集成过该单据
|
||||||
JSONObject getExpensesDetail = crmRequestUtil.getCRMList(Arrays.asList(
|
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");
|
), "ExpenseClaimFormDetailObj");
|
||||||
|
|
||||||
JSONObject expensesDetailCRMRes = new JSONObject();
|
JSONObject expensesDetailCRMRes = new JSONObject();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user