diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java index c25843ec1..4553d667f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleInvoiceChRecordServiceImpl.java @@ -526,12 +526,34 @@ public class EmisSettleInvoiceChRecordServiceImpl extends EmisBaseService implem } - } - else{ - EmisSettleInvoiceChRecord newRecord=new EmisSettleInvoiceChRecord(); + } else { + // 安全获取failDetails数组 - 根据实际JSON结构调整路径 + JSONArray jArrFailList = null; + String errorMessage = jRst != null ? jRst.getString("message") : "未知错误"; + + if (jRst != null) { + JSONObject data = jRst.getJSONObject("data"); + if (data != null) { + jArrFailList = data.getJSONArray("failDetails"); + } + } + + // 构建错误描述 + String statusDesc = errorMessage; + if (jArrFailList != null && jArrFailList.size() > 0) { + JSONObject item0 = jArrFailList.getJSONObject(0); + if (item0 != null) { + String failReason = item0.getString("failReason"); + if (failReason != null) { + statusDesc = errorMessage + " -- " + failReason; + } + } + } + + EmisSettleInvoiceChRecord newRecord = new EmisSettleInvoiceChRecord(); newRecord.setId(old.getId()); newRecord.setOpenChStatus("-1"); - newRecord.setOpenChStatusDesc(jRst.getString("message")); + newRecord.setOpenChStatusDesc(statusDesc); emisSettleInvoiceChRecordMapper.updateEmisSettleInvoiceChRecord(newRecord); } return 1;