diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/req/ChangeCardReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/req/ChangeCardReq.java index a846f9b..b3ca17a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/req/ChangeCardReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/req/ChangeCardReq.java @@ -9,12 +9,6 @@ import lombok.Data; */ @Data public class ChangeCardReq { - /** - * origVoucherId int64 Y 原凭证ID - * idno string Y 物理卡号 - * remark string N 备注 - * personID int64 Y 人员ID - */ /** * 原凭证ID diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java index dc39abe..fa87143 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java @@ -62,7 +62,8 @@ public class VoucherControlServiceImpl implements VoucherControlService { public Boolean issueVoucherMany(List req) { // 封装入参 Map params = new HashMap<>(); - params.put("", req); + params.put("many", true); + params.put("list", req); // 调用API ApiResp apiResp = e8ApiUtil.doPost(params, ISSUANCE_VOUCHER_MANY); @@ -119,7 +120,8 @@ public class VoucherControlServiceImpl implements VoucherControlService { @Override public Boolean cancelVoucher(CancelVoucherReq req) { Map params = new HashMap<>(); - params.put("", req.getIds()); + params.put("many", true); + params.put("list", req.getIds()); ApiResp apiResp = e8ApiUtil.doPost(params, CANCEL_VOUCHER); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/utils/E8ApiUtil.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/utils/E8ApiUtil.java index 84fd0e7..3cc1df4 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/utils/E8ApiUtil.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/utils/E8ApiUtil.java @@ -1,5 +1,6 @@ package org.dromara.sis.sdk.e8.utils; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.crypto.digest.DigestUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; @@ -10,10 +11,7 @@ import org.springframework.util.ObjectUtils; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; -import java.util.Base64; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -38,13 +36,30 @@ public class E8ApiUtil { public ApiResp doPost(Map params, String api) { // 时间戳 String timestamp = Long.toString(System.currentTimeMillis()); - // sign签名 - String sign = getPostSign(params, api, timestamp); + + String sign; + String jsonBody; + // 判断是否执行批量接口 + if (params.get("many") != null) { + Object list = params.get("list"); + List realParams = CollectionUtil.toList(list); + + // sign签名 + sign = getPostSign(null, api, timestamp); + // 将params转换为JSON字符串 + jsonBody = JSONUtil.toJsonStr(realParams); + + }else { + // sign签名 + sign = getPostSign(params, api, timestamp); + // 将params转换为JSON字符串 + jsonBody = JSONUtil.toJsonStr(params); + } + // url String url = BASE_URL + api; - // 将params转换为JSON字符串 - String jsonBody = JSONUtil.toJsonStr(params); + // 对请求体进行Base64加密,指定UTF-8编码,避免乱码 String base64Body = Base64.getEncoder().encodeToString(jsonBody.getBytes(StandardCharsets.UTF_8));