| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- package com.malk.model;
- import com.alibaba.fastjson.annotation.JSONField;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import java.util.List;
- /**
- * 金蝶单据保存响应
- */
- public class KingdeeSaveResponse {
- /** 结果状态:1或100表示成功 */
- private Integer ResultStatus;
- /** 错误代码,0表示成功 */
- private String ErrorCode;
- /** 错误消息 */
- private String Message;
- /** 保存成功的单据编号 */
- private String BillNo;
- /** 需要重新提交的ID列表 */
- private List<String> NeedReturnData;
- /** 金蝶返回的ID(如物料ID、单据ID) */
- private String Id;
- /** 状态(用于某些接口的status字段判断) */
- private Boolean Status;
- /** data节点完整数据 */
- private JSONObject Data;
- @JSONField(name = "ResultStatus")
- public Integer getResultStatus() {
- return ResultStatus;
- }
- public void setResultStatus(Integer resultStatus) {
- ResultStatus = resultStatus;
- }
- @JSONField(name = "ErrorCode")
- public String getErrorCode() {
- return ErrorCode;
- }
- public void setErrorCode(String errorCode) {
- ErrorCode = errorCode;
- }
- @JSONField(name = "Message")
- public String getMessage() {
- return Message;
- }
- public void setMessage(String message) {
- Message = message;
- }
- @JSONField(name = "BillNo")
- public String getBillNo() {
- return BillNo;
- }
- public void setBillNo(String billNo) {
- BillNo = billNo;
- }
- @JSONField(name = "NeedReturnData")
- public List<String> getNeedReturnData() {
- return NeedReturnData;
- }
- public void setNeedReturnData(List<String> needReturnData) {
- NeedReturnData = needReturnData;
- }
- @JSONField(name = "Id")
- public String getId() {
- return Id;
- }
- public void setId(String id) {
- Id = id;
- }
- @JSONField(name = "Status")
- public Boolean getStatus() {
- return Status;
- }
- public void setStatus(Boolean status) {
- Status = status;
- }
- @JSONField(name = "Data")
- public JSONObject getData() {
- return Data;
- }
- public void setData(JSONObject data) {
- Data = data;
- }
- /**
- * 判断是否成功(兼容多种响应格式)
- * 1. errorCode 为 "0"
- * 2. status 为 true
- * 3. ResultStatus 为 1 或 100
- */
- public boolean isSuccess() {
- // 判断 errorCode 为 "0"
- if ("0".equals(ErrorCode)) {
- return true;
- }
- // 判断 status 为 true
- if (Status != null && Status) {
- return true;
- }
- // 兼容旧逻辑
- return ResultStatus != null && (ResultStatus == 1 || ResultStatus == 100);
- }
- /**
- * 获取错误信息
- * 优先从 errors 数组中获取
- */
- public String getErrorInfo() {
- // 如果有 Message,优先使用
- if (Message != null && !Message.isEmpty()) {
- return Message;
- }
- // 从 data.result[].errors 中获取
- if (Data != null) {
- Object resultObj = Data.get("result");
- if (resultObj instanceof JSONArray) {
- JSONArray resultArray = (JSONArray) resultObj;
- if (resultArray != null && !resultArray.isEmpty()) {
- for (int i = 0; i < resultArray.size(); i++) {
- Object item = resultArray.get(i);
- if (item instanceof JSONObject) {
- JSONObject resultItem = (JSONObject) item;
- JSONArray errors = resultItem.getJSONArray("errors");
- if (errors != null && !errors.isEmpty()) {
- return errors.getString(0);
- }
- }
- }
- }
- } else if (resultObj instanceof JSONObject) {
- JSONObject dataObj = (JSONObject) resultObj;
- JSONArray errors = dataObj.getJSONArray("errors");
- if (errors != null && !errors.isEmpty()) {
- return errors.getString(0);
- }
- }
- // 获取 failCount
- String failCount = Data.getString("failCount");
- if (failCount != null && !"0".equals(failCount)) {
- return "处理失败,failCount: " + failCount;
- }
- }
- return "同步失败";
- }
- /**
- * 获取第一个成功记录的ID
- */
- public String getFirstSuccessId() {
- if (Data != null) {
- Object resultObj = Data.get("result");
- if (resultObj instanceof JSONArray) {
- JSONArray resultArray = (JSONArray) resultObj;
- if (resultArray != null && !resultArray.isEmpty()) {
- for (int i = 0; i < resultArray.size(); i++) {
- Object item = resultArray.get(i);
- if (item instanceof JSONObject) {
- JSONObject resultItem = (JSONObject) item;
- Boolean billStatus = resultItem.getBoolean("billStatus");
- if (billStatus != null && billStatus) {
- return resultItem.getString("id");
- }
- }
- }
- // 如果没有 billStatus 为 true 的,取第一个
- Object firstItem = resultArray.get(0);
- if (firstItem instanceof JSONObject) {
- return ((JSONObject) firstItem).getString("id");
- }
- }
- } else if (resultObj instanceof JSONObject) {
- return ((JSONObject) resultObj).getString("id");
- }
- }
- return Id;
- }
- }
|