🎨 #3859 【企业微信】审批详情接口增加总费用金额字段
This commit is contained in:
@@ -91,6 +91,12 @@ public class WxCpApprovalDetailResult implements Serializable {
|
|||||||
@SerializedName("comments")
|
@SerializedName("comments")
|
||||||
private List<WxCpApprovalComment> comments;
|
private List<WxCpApprovalComment> comments;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批单据的总金额(单位:分),当审批单包含费用相关控件时返回
|
||||||
|
*/
|
||||||
|
@SerializedName("sum_money")
|
||||||
|
private Long sumMoney;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -443,6 +443,80 @@ public class WxCpOaServiceImplTest {
|
|||||||
System.out.println(gson.toJson(result));
|
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.
|
* Test get template detail.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user