Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ public static class WxCpApprovalDetail implements Serializable {
@SerializedName("comments")
private List<WxCpApprovalComment> comments;

/**
* 审批单据的总金额(单位:分),当审批单包含费用相关控件时返回
*/
@SerializedName("sum_money")
private Long sumMoney;

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,80 @@ public void testGetApprovalDetail() throws WxErrorException {
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.
*
Expand Down
Loading