Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
0b924c9cd7
|
@ -1,10 +1,19 @@
|
|||
package shkd.sys.sys.plugin.api;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.openapi.api.plugin.ApiSavePlugin;
|
||||
import kd.bos.openapi.api.plugin.ApiSerializerPlugin;
|
||||
import kd.bos.openapi.api.plugin.SerializerResult;
|
||||
import kd.bos.openapi.common.constant.MediaType;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.user.UserServiceHelper;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -14,9 +23,14 @@ import java.util.Map;
|
|||
* @Author Tao
|
||||
* @Date 2024/11/7
|
||||
*/
|
||||
public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||
public class PayBillApiSavePlugin implements ApiSavePlugin, ApiSerializerPlugin {
|
||||
private static final long serialVersionUID = 7055073356277386444L;
|
||||
private String shkd_businessid;
|
||||
private String shkd_businessnumber;
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> preHandleRequestData(List<Map<String, Object>> reqData) {
|
||||
|
||||
//付款处理 → 收款人ID payee → 付款银行.编码 payerbank_number payeetype 收款人类型 → payeenumber 收款人编码
|
||||
//payeracctbank_number 付款银行账号.number
|
||||
|
||||
|
@ -25,6 +39,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
|
||||
//重复支付校验
|
||||
|
||||
|
||||
String objectType;//对象类型(收/付人类型)
|
||||
String objectNumber;//对象编码(收/付人编码)
|
||||
String fieldName1;//字段名称(收/付人ID)
|
||||
|
@ -32,7 +47,9 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
String bankNumber;//(收/付款银行账号.number)
|
||||
String fieldName2;//字段名称(收/付款银行.number)
|
||||
for (Map<String, Object> map : reqData) {
|
||||
|
||||
Object payeetype = map.get("payeetype");//如果是收款人类型 则为付款处理保存接口
|
||||
Object payertype = map.get("payertype");//如果是付款人类型 则为收款处理保存接口
|
||||
if (payeetype != null) {
|
||||
objectType = payeetype.toString();
|
||||
objectNumber = map.get("payeenumber").toString();
|
||||
|
@ -40,19 +57,56 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
|
||||
bankNumber = map.get("payeracctbank_number").toString();
|
||||
fieldName2 = "payerbank_number";
|
||||
} else {
|
||||
objectType = map.get("payertype").toString();
|
||||
objectNumber = map.get("payernumber").toString();
|
||||
fieldName1 = "payer";
|
||||
|
||||
bankNumber = map.get("accountbank_number").toString();
|
||||
fieldName2 = "payeebank_number";
|
||||
}
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(objectType, "id", new QFilter("billno", QCP.equals, objectNumber).toArray());
|
||||
DynamicObject amAccountbank = BusinessDataServiceHelper.loadSingle("am_accountbank", "id,bank,bank.number", new QFilter("number", QCP.equals, bankNumber).toArray());
|
||||
map.put(fieldName1, dynamicObject.getString("id"));
|
||||
map.put(fieldName2, amAccountbank.getDynamicObject("bank").getString("number"));
|
||||
}
|
||||
|
||||
if (payertype != null){
|
||||
objectType = payertype.toString();
|
||||
objectNumber = map.get("payernumber").toString();
|
||||
fieldName1 = "payer";
|
||||
|
||||
bankNumber = map.get("accountbank_number").toString();
|
||||
fieldName2 = "payeebank_number";
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(objectType, "id", new QFilter("billno", QCP.equals, objectNumber).toArray());
|
||||
DynamicObject amAccountbank = BusinessDataServiceHelper.loadSingle("am_accountbank", "id,bank,bank.number", new QFilter("number", QCP.equals, bankNumber).toArray());
|
||||
map.put(fieldName1, dynamicObject.getString("id"));
|
||||
map.put(fieldName2, amAccountbank.getDynamicObject("bank").getString("number"));
|
||||
}
|
||||
shkd_businessid = map.get("shkd_businessid").toString();
|
||||
shkd_businessnumber = map.get("shkd_businessnumber").toString();
|
||||
// shkd_businessid
|
||||
// shkd_businessnumber
|
||||
// shkd_businessname
|
||||
}
|
||||
return reqData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SerializerResult serialize(Object response, String accept, String contentType) {
|
||||
try {
|
||||
if (contentType.contains(MediaType.APPLICATION_JSON)) {
|
||||
//返回text文本
|
||||
String responseStr = new ObjectMapper().writeValueAsString(response);
|
||||
JSONObject jsonObject = JSON.parseObject(responseStr);
|
||||
// 获取 data 节点
|
||||
JSONObject data = jsonObject.getJSONObject("data");
|
||||
|
||||
// 获取 result 节点
|
||||
JSONArray result = data.getJSONArray("result");
|
||||
result.getJSONObject(0).put("shkd_businessid", shkd_businessid);
|
||||
result.getJSONObject(0).put("shkd_businessnumber", shkd_businessnumber);
|
||||
return new SerializerResult(MediaType.TEXT_PLAIN, jsonObject.toJSONString());
|
||||
} else {
|
||||
//其他类型的出参序列化
|
||||
return null;
|
||||
}
|
||||
} catch (JsonProcessingException e) {
|
||||
//处理异常时严禁抛出异常,可以定义自己的错误返回信息
|
||||
String result="...";
|
||||
return new SerializerResult(MediaType.TEXT_PLAIN,result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue