1
0
mirror of synced 2026-02-04 16:40:54 +08:00

🎨 #3859 【企业微信】审批详情接口增加总费用金额字段

This commit is contained in:
Copilot
2026-01-20 13:39:41 +08:00
committed by GitHub
parent 28a0d6e8ee
commit a23429c144
2 changed files with 80 additions and 0 deletions

View File

@@ -91,6 +91,12 @@ public class WxCpApprovalDetailResult implements Serializable {
@SerializedName("comments")
private List<WxCpApprovalComment> comments;
/**
* 审批单据的总金额(单位:分),当审批单包含费用相关控件时返回
*/
@SerializedName("sum_money")
private Long sumMoney;
}
}

View File

@@ -443,6 +443,80 @@ public class WxCpOaServiceImplTest {
System.out.println(gson.toJson(result));
}
/**
* Test sum_money field deserialization in approval detail.
* 测试审批详情中总费用金额字段的反序列化
*/
@Test
public void testApprovalDetailSumMoney() {
// 测试包含总费用金额的审批详情JSON
String jsonWithSumMoney = "{\n" +
" \"errcode\": 0,\n" +
" \"errmsg\": \"ok\",\n" +
" \"info\": {\n" +
" \"sp_no\": \"202601140001\",\n" +
" \"sp_name\": \"报销申请\",\n" +
" \"sp_status\": 2,\n" +
" \"template_id\": \"test_template_id\",\n" +
" \"apply_time\": 1610000000,\n" +
" \"applyer\": {\n" +
" \"userid\": \"test_user\",\n" +
" \"partyid\": \"1\"\n" +
" },\n" +
" \"sp_record\": [],\n" +
" \"notifyer\": [],\n" +
" \"apply_data\": {\n" +
" \"contents\": []\n" +
" },\n" +
" \"comments\": [],\n" +
" \"sum_money\": 100000\n" +
" }\n" +
"}";
WxCpApprovalDetailResult result = WxCpGsonBuilder.create().fromJson(jsonWithSumMoney, WxCpApprovalDetailResult.class);
assertThat(result).isNotNull();
assertThat(result.getErrCode()).isEqualTo(0);
assertThat(result.getInfo()).isNotNull();
assertThat(result.getInfo().getSpNo()).isEqualTo("202601140001");
assertThat(result.getInfo().getSpName()).isEqualTo("报销申请");
assertThat(result.getInfo().getSumMoney()).isNotNull();
assertThat(result.getInfo().getSumMoney()).isEqualTo(100000L);
System.out.println("成功解析总费用金额字段 sum_money: " + result.getInfo().getSumMoney());
// 测试不包含 sum_money 字段的情况(向后兼容)
String jsonWithoutSumMoney = "{\n" +
" \"errcode\": 0,\n" +
" \"errmsg\": \"ok\",\n" +
" \"info\": {\n" +
" \"sp_no\": \"202601140002\",\n" +
" \"sp_name\": \"请假申请\",\n" +
" \"sp_status\": 1,\n" +
" \"template_id\": \"test_template_id\",\n" +
" \"apply_time\": 1610000000,\n" +
" \"applyer\": {\n" +
" \"userid\": \"test_user\",\n" +
" \"partyid\": \"1\"\n" +
" },\n" +
" \"sp_record\": [],\n" +
" \"notifyer\": [],\n" +
" \"apply_data\": {\n" +
" \"contents\": []\n" +
" },\n" +
" \"comments\": []\n" +
" }\n" +
"}";
WxCpApprovalDetailResult resultWithoutMoney = WxCpGsonBuilder.create().fromJson(jsonWithoutSumMoney, WxCpApprovalDetailResult.class);
assertThat(resultWithoutMoney).isNotNull();
assertThat(resultWithoutMoney.getInfo()).isNotNull();
assertThat(resultWithoutMoney.getInfo().getSpNo()).isEqualTo("202601140002");
assertThat(resultWithoutMoney.getInfo().getSumMoney()).isNull();
System.out.println("成功处理不包含 sum_money 字段的情况(向后兼容)");
System.out.println("完整测试通过!");
}
/**
* Test get template detail.
*