package tqq9.lc123.cloud.app.api.utils; import com.alibaba.fastjson.JSONObject; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.operate.result.IOperateInfo; import kd.bos.entity.operate.result.OperateErrorInfo; import kd.bos.openapi.common.custom.annotation.ApiModel; import kd.bos.openapi.common.custom.annotation.ApiParam; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.io.Serializable; import java.util.*; @ApiModel public class ApiResultExt implements Serializable { @ApiParam("操作失败数量") private int failCount; @ApiParam("操作成功数量") private int successCount; @ApiParam("返回结果") private List result; public int getFailCount() { return failCount; } public void setFailCount(int failCount) { this.failCount = failCount; } public int getSuccessCount() { return successCount; } public void setSuccessCount(int successCount) { this.successCount = successCount; } public List getResult() { return result; } public void setResult(List result) { this.result = result; } @ApiModel public static class ResultBean implements Serializable { @ApiParam("数据索引") private int billIndex; @ApiParam("接口操作是否成功") private boolean billStatus; @ApiParam("错误信息") private Error errors; @ApiParam("金蝶单据id") private String id; @ApiParam("候选键信息") private JSONObject keys; @ApiParam("金蝶单据编号") private String number; @ApiParam("接口操作类型") private String type; public int getBillIndex() { return billIndex; } public void setBillIndex(int billIndex) { this.billIndex = billIndex; } public boolean isBillStatus() { return billStatus; } public void setBillStatus(boolean billStatus) { this.billStatus = billStatus; } public Error getErrors() { return errors; } public void setErrors(Error errors) { this.errors = errors; } public String getId() { return id; } public void setId(String id) { this.id = id; } public JSONObject getKeys() { return keys; } public void setKeys(JSONObject keys) { this.keys = keys; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getType() { return type; } public void setType(String type) { this.type = type; } } public static class Error implements Serializable { private String entityKey; private String entryRowIndex; private JSONObject keys; private List rowMsg; private String subEntryRowIndex; // Getter 和 Setter public String getEntityKey() { return entityKey; } public void setEntityKey(String entityKey) { this.entityKey = entityKey; } public String getEntryRowIndex() { return entryRowIndex; } public void setEntryRowIndex(String entryRowIndex) { this.entryRowIndex = entryRowIndex; } public JSONObject getKeys() { return keys; } public void setKeys(JSONObject keys) { this.keys = keys; } public List getRowMsg() { return rowMsg; } public void setRowMsg(List rowMsg) { this.rowMsg = rowMsg; } public String getSubEntryRowIndex() { return subEntryRowIndex; } public void setSubEntryRowIndex(String subEntryRowIndex) { this.subEntryRowIndex = subEntryRowIndex; } } public HashMap addErrorToResultBeanByNumber(List resultBeans, IOperateInfo iOperateInfo, String entityKey) { Set idSet = new HashSet<>(); for (ResultBean resultBean : resultBeans) { Error error = resultBean.getErrors(); resultBean.setBillStatus(false); String message = iOperateInfo.getMessage(); String id = iOperateInfo.getPkValue().toString(); if (StringUtils.equals(resultBean.getId(),id)) { if (error == null) { error = new Error(); error.setRowMsg(new ArrayList()); } error.setKeys(resultBean.getKeys()); error.setEntityKey(entityKey); List rowMsg = error.getRowMsg(); rowMsg.add(message); error.setRowMsg(rowMsg); resultBean.setErrors(error); break; } } HashMap returnMap = new HashMap<>(); returnMap.put("ResultBeanList",resultBeans); return returnMap; } public static DynamicObject[] removeBillByBillno(DynamicObject[] bills, Set idSet) { DynamicObject[] tempBills = new DynamicObject[bills.length]; int index = 0; // 遍历原数组,复制不需要删除的元素到 tempBills for (DynamicObject bill : bills) { if (!idSet.contains(bill.getString("id"))) { tempBills[index++] = bill; } } // 使用 Arrays.copyOf 修剪数组到实际大小 return Arrays.copyOf(tempBills, index); } }