Merge remote-tracking branch 'origin/main' into main
This commit is contained in:
commit
aea0c54900
|
@ -63,16 +63,16 @@ public class CreateToDoHandler {
|
|||
|
||||
public boolean
|
||||
sendCreateToDoNew(String messageInfo, String title, String appRecordId, String userId, String number) {
|
||||
logger.info("###进入待办推送接口数据组装");
|
||||
logger.info("###新eoss进入待办推送接口数据组装");
|
||||
try {
|
||||
//调用接口结果
|
||||
String result = RequestClient.getInstance().callServiceNew(ToDoCenterConstant.URI_send_addNew, messageInfo);
|
||||
logger.info("###接口返回结果" + result);
|
||||
logger.info("###新eoss接口返回结果" + result);
|
||||
//接口调用结果
|
||||
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||
if (jsonObject == null) {
|
||||
RequestClient.getInstance().saveCreateToDoNew(title, ToDoCenterConstant.URI_send_addNew, false, result, messageInfo, appRecordId, userId, number);
|
||||
logger.info("###响应报文为空");
|
||||
logger.info("###新eoss响应报文为空");
|
||||
return false;
|
||||
} else {
|
||||
if (Objects.equals("success", jsonObject.getString("status"))) {
|
||||
|
@ -84,7 +84,7 @@ public class CreateToDoHandler {
|
|||
//调用保存操作
|
||||
RequestClient.getInstance().saveCreateToDoNew(title, ToDoCenterConstant.URI_send_addNew, false, result, messageInfo, appRecordId, userId, number);
|
||||
//发送失败
|
||||
logger.error("###接口调通失败");
|
||||
logger.error("###新eoss接口调通失败");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -195,18 +195,18 @@ public class RequestClient {
|
|||
* @param number 单据编码
|
||||
*/
|
||||
public void saveCreateToDoNew(String title,String url, boolean isTrue,String result,String jsonMessage,String appRecordId,String userId,String number){
|
||||
logger.info("###开始调用待办保存日志方法");
|
||||
logger.info("###新eoss开始调用待办保存日志方法");
|
||||
StringBuffer urlStr = new StringBuffer();
|
||||
urlStr.append(this.protocal).append("://").append(this.newIp);
|
||||
if (!StringUtils.isEmpty(this.newPort)) {
|
||||
urlStr.append(":").append(this.newPort);
|
||||
}
|
||||
urlStr.append(url);;
|
||||
logger.info("###保存时,环境参数,protocal:"+this.protocal+",ip:"+this.newIp+",this.port:"+this.newPort);
|
||||
logger.info("###新eoss保存时,环境参数,protocal:"+this.protocal+",ip:"+this.newIp+",this.port:"+this.newPort);
|
||||
try{
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("shkd_backlog1");
|
||||
logger.info("###保存日志表id"+dynamicObject.getPkValue());
|
||||
dynamicObject.set("shkd_url","测试环境:"+urlStr);
|
||||
logger.info("###新eoss保存日志表id"+dynamicObject.getPkValue());
|
||||
dynamicObject.set("shkd_url","新eoss:"+urlStr);
|
||||
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(), dynamicObject, null);
|
||||
dynamicObject.set("billno",CodeRuleServiceHelper.getNumber(codeRule,dynamicObject));
|
||||
dynamicObject.set("shkd_traceid",appRecordId);
|
||||
|
@ -221,11 +221,11 @@ public class RequestClient {
|
|||
dynamicObject.set("shkd_number",number);
|
||||
}
|
||||
Object[] save = SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||
logger.info("###保存日志表后id"+dynamicObject.getPkValue());
|
||||
logger.info("save结果"+save.toString());
|
||||
logger.info("###结束调用待办保存日志方法");
|
||||
logger.info("###新eoss保存日志表后id"+dynamicObject.getPkValue());
|
||||
logger.info("新eosssave结果"+save.toString());
|
||||
logger.info("###新eoss结束调用待办保存日志方法");
|
||||
}catch (Exception execution){
|
||||
logger.info("###保存日志失败"+execution.getMessage());
|
||||
logger.info("###新eoss保存日志失败"+execution.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -285,7 +285,7 @@ public class RequestClient {
|
|||
* @param status 类型 2:已办 5:撤销
|
||||
*/
|
||||
public void saveDeLToDoNew(Long appRecordId,String userId,String url,boolean isTrue,String result,String jsonMessage,String status,String number){
|
||||
logger.info("###开始调用已办、撤销保存日志方法");
|
||||
logger.info("###开始新eoss调用已办、撤销保存日志方法");
|
||||
StringBuffer urlStr = new StringBuffer();
|
||||
urlStr.append(this.protocal).append("://").append(this.newIp);
|
||||
if (!StringUtils.isEmpty(this.newPort)) {
|
||||
|
@ -294,7 +294,7 @@ public class RequestClient {
|
|||
urlStr.append(url);
|
||||
try{
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("shkd_backlog1");
|
||||
dynamicObject.set("shkd_url","测试环境:"+urlStr.toString());
|
||||
dynamicObject.set("shkd_url","新eoss:"+urlStr.toString());
|
||||
CodeRuleInfo codeRule = CodeRuleServiceHelper.getCodeRule(dynamicObject.getDataEntityType().getName(), dynamicObject, null);
|
||||
dynamicObject.set("billno",CodeRuleServiceHelper.getNumber(codeRule,dynamicObject));
|
||||
dynamicObject.set("shkd_traceid",appRecordId);
|
||||
|
@ -309,11 +309,11 @@ public class RequestClient {
|
|||
dynamicObject.set("shkd_number",number);
|
||||
}
|
||||
Object[] save = SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||
logger.info("###保存日志表id"+dynamicObject.getPkValue());
|
||||
logger.info("save结果"+save.toString());
|
||||
logger.info("###结束调用已办、撤销保存日志方法");
|
||||
logger.info("###新eoss保存日志表id"+dynamicObject.getPkValue());
|
||||
logger.info("新eosssave结果"+save.toString());
|
||||
logger.info("###新eoss结束调用已办、撤销保存日志方法");
|
||||
}catch (Exception execution){
|
||||
logger.info("###保存日志失败"+execution.getMessage());
|
||||
logger.info("###新eoss保存日志失败"+execution.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ import org.springframework.http.HttpHeaders;
|
|||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.Files;
|
||||
|
@ -190,6 +191,8 @@ public class ApiService {
|
|||
*
|
||||
* @param dynamic 某个单据的 某条需要推送的数据 注:映射字段必须包含在其中,缺失字段会报错
|
||||
* @param systemName 推送系统标识
|
||||
* @param dynamicObjects 反写单据数据
|
||||
* @param requestBody 请求体数据
|
||||
* @return 推送结果
|
||||
*/
|
||||
public static String paymentSlipsJson(DynamicObject dynamic, String systemName, List<DynamicObject> dynamicObjects, String requestBody) {
|
||||
|
@ -244,6 +247,7 @@ public class ApiService {
|
|||
jsonObject = JSON.parseObject(saveResponseBody);
|
||||
code = jsonObject.getString("code");
|
||||
if ("200".equals(code)) {
|
||||
LogService.newLog("INFO", "付款单", dynamic.getString("billno"), "付款处理 → BIP保存接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody);
|
||||
logger.info("付款处理 → BIP保存接口 → 成功\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
||||
data = jsonObject.getJSONObject("data");
|
||||
dynamic.set("shkd_businessnumber", data.getString("code"));
|
||||
|
@ -260,6 +264,7 @@ public class ApiService {
|
|||
logger.info("付款处理 → BIP提交接口 → 返回结果:{}", submitResponseBody);
|
||||
result = "推送 → 付款处理单 → 成功";
|
||||
} else {
|
||||
LogService.newLog("ERROR", "付款单", dynamic.getString("billno"), "付款处理 → BIP保存接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
||||
logger.info("付款处理 → BIP保存接口 → 失败\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
||||
result = "推送 → 付款处理单 → 失败";
|
||||
}
|
||||
|
@ -272,6 +277,8 @@ public class ApiService {
|
|||
jsonObject = JSON.parseObject(saveResponseBody);
|
||||
code = jsonObject.getString("code");
|
||||
if ("200".equals(code)) {
|
||||
LogService.newLog("INFO", "收款单", dynamic.getString("billno"), "收款处理 → BIP保存接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("收款处理 → BIP保存接口 → 成功\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
||||
data = jsonObject.getJSONObject("data");
|
||||
dynamic.set("shkd_businessnumber", data.getString("code"));
|
||||
|
@ -287,7 +294,9 @@ public class ApiService {
|
|||
logger.info("收款处理 → BIP提交接口 → 返回结果:{}", submitResponseBody);
|
||||
result = "推送 → 收款处理 → 成功";
|
||||
} else {
|
||||
logger.info("收款处理 → BIP保存接口 → 成功\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
||||
LogService.newLog("ERROR", "收款单", dynamic.getString("billno"), "收款处理 → BIP保存接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("收款处理 → BIP保存接口 → 失败\n失败单据编号:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
||||
result = "推送 → 收款处理 → 失败";
|
||||
}
|
||||
|
||||
|
@ -301,9 +310,13 @@ public class ApiService {
|
|||
dynamic.set("shkd_pushstatus", "已推送");
|
||||
dynamic.set("shkd_businessname", "共享系统");
|
||||
dynamicObjects.add(dynamic);
|
||||
LogService.newLog("INFO", "银行收付处理", dynamic.getString("billno"), "银行收付处理 → BIP推送接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("银行收付处理 → BIP推送接口 → 成功\n成功单据编号:{}\n成功请求体:{}\n推送成功接口返回数据:{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
||||
result = "推送 → 银行收付处理 → 成功";
|
||||
} else {
|
||||
LogService.newLog("ERROR", "银行收付处理", dynamic.getString("billno"), "银行收付处理 → BIP推送接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("银行收付处理 → BIP推送接口 → 失败\n失败单据编号:{}\n失败请求体:{}\n推送失败接口返回数据:{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
||||
result = "推送 → 银行收付处理 → 失败";
|
||||
}
|
||||
|
@ -318,20 +331,21 @@ public class ApiService {
|
|||
jsonObject = JSON.parseObject(saveResponseBody);
|
||||
code = jsonObject.getString("code");
|
||||
if ("200".equals(code)) {
|
||||
if ("TF、NC、OF".contains(dynamic.getString("bankpaystatus"))) {
|
||||
dynamic.set("billstatus", "A");
|
||||
dynamic.set("shkd_pushstatus", "结算失败");
|
||||
} else if ("TS".equals(dynamic.getString("bankpaystatus"))) {
|
||||
if ("TS".equals(dynamic.getString("bankpaystatus"))) {
|
||||
dynamic.set("shkd_pushstatus", "已结算");
|
||||
} else {
|
||||
dynamic.set("shkd_pushstatus", "结算失败");
|
||||
}
|
||||
|
||||
dynamicObjects.add(dynamic);
|
||||
LogService.newLog("INFO", "付款单(结算结果)", dynamic.getString("billno"), "付款处理(支付结果) → BIP推送接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("付款处理(支付结果) → BIP推送接口 → 成功\n成功单据编号:{}\n成功请求体:{}\n推送成功接口返回数据:{}",
|
||||
dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
||||
result = "推送 → 付款处理(支付结果) → 成功,返回信息:";
|
||||
} else {
|
||||
LogService.newLog("ERROR", "付款单(结算结果)", dynamic.getString("billno"), "付款处理(支付结果) → BIP推送接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("付款处理(支付结果) → BIP推送接口 → 失败\n失败单据编号:{}\n失败请求体:{}\n推送失败接口返回数据:{}",
|
||||
dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
||||
result = "推送 → 付款处理(支付结果) → 失败,返回信息:" + JSON.parseObject(saveResponseBody).getString("message");
|
||||
|
@ -372,8 +386,12 @@ public class ApiService {
|
|||
String attachmentRequestBody = getAttachmentRequestBody(hashMap);
|
||||
String pushResult = pushBill(token, "https://10.1.9.43/iuap-api-auth//yonbip/ctm/bank/tran/update", attachmentRequestBody);
|
||||
logger.info("电子回单查询 → BIP推送附件接口 → 请求返回结果:\n{}", pushResult);
|
||||
LogService.newLog("INFO", "电子回单", dynamic.getString("billno"), "电子回单查询 → BIP推送接口 → 成功", "请求数据:" + saveRequestBody + "\n推送成功接口返回数据:" + saveResponseBody + "\n推送附件URL:" + pdfUrl + "\n推送附件接口返回数据:" + pushResult);
|
||||
|
||||
result = "推送 → 电子回单和附件 → 成功";
|
||||
} else {
|
||||
LogService.newLog("ERROR", "电子回单", dynamic.getString("billno"), "电子回单查询 → BIP推送接口 → 失败", "请求数据:" + saveRequestBody + "\n推送失败接口返回数据:" + saveResponseBody);
|
||||
|
||||
logger.info("电子回单查询 → BIP推送接口 → 失败\n失败单据编号:{}\n失败请求体:{}\n推送失败接口返回数据:{}",
|
||||
dynamic.getString("billno"), saveRequestBody, saveResponseBody);
|
||||
result = "推送 → 电子回单和附件 → 失败";
|
||||
|
@ -423,13 +441,13 @@ public class ApiService {
|
|||
JSONArray jsonArray = new JSONArray();
|
||||
JSONObject json = new JSONObject();
|
||||
for (DynamicObject dynamicObject : dynamicObjectCollection) {
|
||||
valueAssignment(dynamicObject, dynamic, json, floors);
|
||||
valueAssignment(dynamicObject, dynamic, json, floors, 0);
|
||||
}
|
||||
jsonArray.add(json);
|
||||
return jsonArray.toJSONString();
|
||||
} else {
|
||||
JSONObject resultJson = new JSONObject();
|
||||
processFloor(resultJson, "data", floors.get(0), floors, dynamic);
|
||||
processFloor(resultJson, "data", floors.get(0), floors, dynamic, 0);
|
||||
return resultJson.toJSONString();
|
||||
}
|
||||
}
|
||||
|
@ -443,33 +461,33 @@ public class ApiService {
|
|||
* @param floors 所有楼层对象(List<List>)
|
||||
* @param dynamic 源单据对象
|
||||
*/
|
||||
private static void processFloor(JSONObject parentJson, String parentKey, List<DynamicObject> currentFloor, List<List<DynamicObject>> floors, DynamicObject dynamic) {
|
||||
private static void processFloor(JSONObject parentJson, String parentKey, List<DynamicObject> currentFloor, List<List<DynamicObject>> floors, DynamicObject dynamic, int i) {
|
||||
logger.info("进入processFloor方法");
|
||||
if (currentFloor.isEmpty()) {
|
||||
logger.info("currentFloor.isEmpty()");
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentFloor.size() == 1 && "object".equals(currentFloor.get(0).getString("shkd_tartype"))) {
|
||||
if (currentFloor.size() == 1 && "对象".equals(currentFloor.get(0).getString("shkd_tartype"))) {
|
||||
parentJson.put(parentKey, new JSONObject());
|
||||
processFloor(parentJson.getJSONObject(parentKey), parentKey, getChildren(floors, currentFloor.get(0).getString("shkd_tarfield")), floors, dynamic);
|
||||
processFloor(parentJson.getJSONObject(parentKey), parentKey, getChildren(floors, currentFloor.get(0).getString("shkd_tarfield")), floors, dynamic, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
if ("arrayList".equals(currentFloor.get(0).getString("shkd_tartype"))) {
|
||||
if ("数组".equals(currentFloor.get(0).getString("shkd_tartype"))) {
|
||||
logger.info("进入数组");
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
//目前JSONArray都是一层
|
||||
JSONObject json = new JSONObject();
|
||||
for (DynamicObject dynamicObject : currentFloor) {
|
||||
valueAssignment(dynamicObject, dynamic, json, floors);
|
||||
valueAssignment(dynamicObject, dynamic, json, floors, 0);
|
||||
}
|
||||
jsonArray.add(json);
|
||||
parentJson.put(parentKey, jsonArray);
|
||||
} else {
|
||||
logger.info("进入对象");
|
||||
for (DynamicObject dynamicObject : currentFloor) {
|
||||
valueAssignment(dynamicObject, dynamic, parentJson, floors);
|
||||
valueAssignment(dynamicObject, dynamic, parentJson, floors, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -482,7 +500,7 @@ public class ApiService {
|
|||
* @param jsonObject JSON对象
|
||||
* @param floors 层集合
|
||||
*/
|
||||
private static void valueAssignment(DynamicObject dynamicObject, DynamicObject billObject, JSONObject jsonObject, List<List<DynamicObject>> floors) {
|
||||
private static void valueAssignment(DynamicObject dynamicObject, DynamicObject billObject, JSONObject jsonObject, List<List<DynamicObject>> floors, int i) {
|
||||
|
||||
String key = dynamicObject.getString("shkd_tarfield");
|
||||
Object value = null;
|
||||
|
@ -580,7 +598,7 @@ public class ApiService {
|
|||
} else if (parts.length == 2) {
|
||||
if ("entry".equals(parts[0])) {
|
||||
DynamicObjectCollection dynamicObjectCollection1 = billObject.getDynamicObjectCollection(parts[0]);
|
||||
value = dynamicObjectCollection1.get(0).get(parts[1]);
|
||||
value = dynamicObjectCollection1.get(i).get(parts[1]);
|
||||
} else {
|
||||
DynamicObject object = billObject.getDynamicObject(parts[0]);
|
||||
if (object != null) {
|
||||
|
@ -590,7 +608,7 @@ public class ApiService {
|
|||
} else if (parts.length == 3) {
|
||||
if ("entry".equals(parts[0])) {
|
||||
DynamicObjectCollection dynamicObjectCollection1 = billObject.getDynamicObjectCollection(parts[0]);
|
||||
DynamicObject object = dynamicObjectCollection1.get(0).getDynamicObject(parts[1]);
|
||||
DynamicObject object = dynamicObjectCollection1.get(i).getDynamicObject(parts[1]);
|
||||
if (object != null) {
|
||||
value = object.get(parts[2]);
|
||||
}
|
||||
|
@ -620,13 +638,19 @@ public class ApiService {
|
|||
jsonObject.put(key, new BigDecimal(String.valueOf(value)));
|
||||
} else if ("对象".equals(tartype)) {
|
||||
JSONObject childJson = new JSONObject();
|
||||
processFloor(childJson, key, getChildren(floors, dynamicObject.getString("shkd_tarfield")), floors, billObject);
|
||||
processFloor(childJson, key, getChildren(floors, dynamicObject.getString("shkd_tarfield")), floors, billObject, 0);
|
||||
jsonObject.put(key, childJson);
|
||||
} else if ("数组".equals(tartype)) {
|
||||
JSONArray childJsonArray = new JSONArray();
|
||||
JSONObject childJson = new JSONObject();
|
||||
processFloor(childJson, key, getChildren(floors, dynamicObject.getString("shkd_tarfield")), floors, billObject);
|
||||
childJsonArray.add(childJson);
|
||||
|
||||
DynamicObjectCollection dynamicObjectCollection = billObject.getDynamicObjectCollection("entry");
|
||||
logger.info("分录长度:" + dynamicObjectCollection.size());
|
||||
for (int j = 0; j < dynamicObjectCollection.size(); j++) {
|
||||
JSONObject childJson = new JSONObject();
|
||||
processFloor(childJson, key, getChildren(floors, dynamicObject.getString("shkd_tarfield")), floors, billObject, j);
|
||||
childJsonArray.add(childJson);
|
||||
}
|
||||
|
||||
jsonObject.put(key, childJsonArray);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package shkd.sys.sys.mservice;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author Tao
|
||||
* @Date 2025/4/9
|
||||
*/
|
||||
public class LogService {
|
||||
/**
|
||||
* @param shkd_loglevel 日志级别
|
||||
* @param shkd_billtype 单据类型
|
||||
* @param shkd_billnumber 推送单据编码
|
||||
* @param shkd_logdetails 日志摘要
|
||||
* @param shkd_logdetails_tag 日志详情
|
||||
*/
|
||||
public static void newLog(String shkd_loglevel, String shkd_billtype, String shkd_billnumber, String shkd_logdetails, String shkd_logdetails_tag) {
|
||||
DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("shkd_log");
|
||||
dynamicObject.set("shkd_loglevel", shkd_loglevel);
|
||||
dynamicObject.set("shkd_billtype", shkd_billtype);
|
||||
dynamicObject.set("shkd_billnumber", shkd_billnumber);
|
||||
dynamicObject.set("shkd_logdetails", shkd_logdetails);// 大文本摘要
|
||||
dynamicObject.set("shkd_logdetails_tag", shkd_logdetails_tag);// 大文本内容
|
||||
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
|
||||
}
|
||||
}
|
|
@ -175,18 +175,35 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
} else if ("bos_user".equals(payeetype)) {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", map.get("payeenumber").toString());
|
||||
map.put("shkd_user", username);
|
||||
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 收款人编码
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
// 收款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
if (map.get("shkd_businessname").toString().equals("XK")) {
|
||||
Map<String, Object> user_number = new HashMap<>();
|
||||
user_number.put("number", map.get("payeenumber").toString());
|
||||
map.put("shkd_user", user_number);
|
||||
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("number", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 收款人编码
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
// 收款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
} else {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", map.get("payeenumber").toString());
|
||||
map.put("shkd_user", username);
|
||||
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payeenumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 收款人编码
|
||||
map.put("payeenumber", objects[0].getString("number"));
|
||||
// 收款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
//收款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
}
|
||||
} else if ("bos_org".equals(payeetype)) {
|
||||
Map<String, Object> number = new HashMap<>();
|
||||
|
@ -282,18 +299,32 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
} else if ("bos_user".equals(payertype)) {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", map.get("payernumber").toString());
|
||||
map.put("shkd_user", username);
|
||||
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 付款人编码
|
||||
map.put("payernumber", objects[0].getString("number"));
|
||||
// 付款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
// 付款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
if (map.get("shkd_businessname").toString().equals("XK")) {
|
||||
Map<String, Object> user_number = new HashMap<>();
|
||||
user_number.put("number", map.get("payernumber").toString());
|
||||
map.put("shkd_user", user_number);
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,name,number,username", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 付款人编码
|
||||
map.put("payernumber", objects[0].getString("number"));
|
||||
// 付款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
// 付款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
} else {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", map.get("payernumber").toString());
|
||||
map.put("shkd_user", username);
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
// 付款人编码
|
||||
map.put("payernumber", objects[0].getString("number"));
|
||||
// 付款人ID
|
||||
map.put(fieldName1, objects[0].getPkValue());
|
||||
// 付款人编码
|
||||
objectNumber = objects[0].getString("number");
|
||||
}
|
||||
}
|
||||
} else if ("bos_org".equals(payertype)) {
|
||||
Map<String, Object> number = new HashMap<>();
|
||||
|
@ -346,15 +377,27 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
|||
map.put("asstact", number);
|
||||
}
|
||||
} else if ("bos_user".equals(asstacttype)) {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", asstact.get("number").toString());
|
||||
map.put("shkd_user", username);
|
||||
logger.info("人员用户名:{}", asstact.get("number").toString());
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("bos_user", "id,name,number,username", new QFilter("username", QCP.equals, asstact.get("number").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
Map<String, Object> number = new HashMap<>();
|
||||
number.put("number", objects[0].getString("number"));
|
||||
map.put("asstact", number);
|
||||
if ("XK".equals(map.get("shkd_businessname").toString())) {
|
||||
Map<String, Object> user_number = new HashMap<>();
|
||||
user_number.put("number", asstact.get("number").toString());
|
||||
map.put("shkd_user", user_number);
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("bos_user", "id,name,number,username", new QFilter("number", QCP.equals, asstact.get("number").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
Map<String, Object> number = new HashMap<>();
|
||||
number.put("number", objects[0].getString("number"));
|
||||
map.put("asstact", number);
|
||||
}
|
||||
} else {
|
||||
Map<String, Object> username = new HashMap<>();
|
||||
username.put("username", asstact.get("number").toString());
|
||||
map.put("shkd_user", username);
|
||||
logger.info("人员用户名:{}", asstact.get("number").toString());
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("bos_user", "id,name,number,username", new QFilter("username", QCP.equals, asstact.get("number").toString()).toArray());
|
||||
if (objects.length > 0) {
|
||||
Map<String, Object> number = new HashMap<>();
|
||||
number.put("number", objects[0].getString("number"));
|
||||
map.put("asstact", number);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -213,12 +213,11 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
|||
// 付款处理
|
||||
case "cas_paybill":
|
||||
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,org.number,org.name,bizdate," +
|
||||
"description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("billno", QCP.equals, billNumber)
|
||||
.and("org.name", QCP.in, new String[]{"四川川投能源股份有限公司", "川投(攀枝花)新能源开发有限公司", "四川川投屏山书楼抽水蓄能开发有限公司", "四川天彭电力开发有限公司"})//目前四家公司
|
||||
.toArray());
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,entry.e_actamt,settletype," +
|
||||
"payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype," +
|
||||
"org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||
"billstatus,bankpaystatus"
|
||||
, new QFilter("billno", QCP.equals, billNumber).toArray());
|
||||
billObject = objects1[0];
|
||||
logger.info("获取付款处理推送对象 → billObject:{}", billObject);
|
||||
break;
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package shkd.sys.sys.plugin.form;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.form.control.Toolbar;
|
||||
import kd.bos.form.control.events.ItemClickEvent;
|
||||
import kd.bos.form.field.RichTextEdit;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import shkd.sys.sys.mservice.LogService;
|
||||
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 单据界面插件
|
||||
*/
|
||||
public class LogBillPlugin extends AbstractBillPlugIn implements Plugin {
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
// super.registerListener(e);
|
||||
|
||||
// 获取工具栏,监听整个工具栏
|
||||
Toolbar save = this.getView().getControl("tbmain");
|
||||
// 监听工具栏这个按钮的点击事件
|
||||
save.addItemClickListener(this);
|
||||
|
||||
// 获取除了工具栏上的其他按钮
|
||||
// Button save = this.getView().getControl("qwz5_baritemap");
|
||||
// save.addClickListener(this); // 添加出菜单栏点击事件监听
|
||||
}
|
||||
|
||||
@Override
|
||||
public void itemClick(ItemClickEvent evt) {
|
||||
super.itemClick(evt);
|
||||
// 获取键
|
||||
String key = evt.getItemKey();
|
||||
|
||||
if ("shkd_setlog".equals(key)) {
|
||||
LogService.newLog("INFO", "付款单", "FKD-20250409-0001", "付款单 → 推送至BIP → 成功", "风听到了海豚和云的笑声。云是个爱哭鬼,可是风还是特别喜欢她,风推着她跑啊跑得,把她带到每个好玩儿的地方去。她哭的时候风就呼啊呼把她的眼泪吹干了,后来风没有留住云,她变成了雨,去到了海里陪海豚征服湛蓝的世界去了,风还是一遍一遍地吹动海面。因为风还是特别喜欢她。");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterBindData(EventObject e) {
|
||||
super.afterBindData(e);
|
||||
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
||||
if (dataEntity.get("shkd_logdetails_tag") != null) {
|
||||
String shkdLogdetailsTag = dataEntity.getString("shkd_logdetails_tag");
|
||||
RichTextEdit edit = this.getView().getControl("shkd_richtexteditorap");
|
||||
edit.setText(shkdLogdetailsTag);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
package shkd.sys.sys.plugin.operation;
|
||||
|
||||
import kd.bos.dataentity.OperateOption;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.entity.operate.result.OperationResult;
|
||||
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||
|
@ -9,10 +11,12 @@ import kd.bos.logging.LogFactory;
|
|||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import scala.collection.mutable.StringBuilder;
|
||||
import shkd.sys.sys.mservice.ApiService;
|
||||
import kd.bos.entity.operate.result.IOperateInfo;
|
||||
import shkd.sys.sys.plugin.form.ApiMappingBillPlugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -28,6 +32,7 @@ public class HitBackOperationServicePlugin extends AbstractOperationServicePlugI
|
|||
|
||||
/**
|
||||
* 单据操作前 打回操作
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
@Override
|
||||
|
@ -38,41 +43,52 @@ public class HitBackOperationServicePlugin extends AbstractOperationServicePlugI
|
|||
Arrays.stream(entities).forEach(dynamicObject -> {
|
||||
pkValue.add(dynamicObject.getPkValue());
|
||||
});
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
DynamicObject[] objects = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype," +
|
||||
"payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype," +
|
||||
"org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||
"billstatus,bankpaystatus"
|
||||
, new QFilter("id", QCP.in, pkValue)
|
||||
.and("billstatus", QCP.equals, "C")//已审核
|
||||
.and("billstatus", QCP.in, "A、C")
|
||||
.and("shkd_businessname", QCP.equals, "共享系统").toArray());
|
||||
if (objects == null || objects.length == 0) {
|
||||
args.setCancel(true);
|
||||
args.setCancelMessage("选择打回单据必须为BIP推送单据");
|
||||
args.setCancelMessage("打回失败\n" +
|
||||
"1、选择打回单据必须为BIP推送单据\n" +
|
||||
"2、只能打回提交、已审核的单据\n" +
|
||||
"(若有其他问题,可找业务老师咨询)"
|
||||
);
|
||||
} else {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
List<DynamicObject> dynamicObjects = new ArrayList<>();
|
||||
for (DynamicObject dynamicObject : objects) {
|
||||
String bankpaystatus = dynamicObject.getString("bankpaystatus");
|
||||
if (!"未结算".equals(dynamicObject.getString("shkd_pushstatus"))) {
|
||||
args.setCancel(true);
|
||||
args.setCancelMessage("打回失败,该单据结算结果已被推送");
|
||||
return;
|
||||
}
|
||||
|
||||
if ("TF、NC、OF".contains(bankpaystatus)) {
|
||||
List<DynamicObject> dynamicObjects = new ArrayList<>();
|
||||
String result = ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjects, null);
|
||||
OperationResult sumbit = OperationServiceHelper.executeOperate("unsubmit", "cas_paybill", dynamicObjects.toArray(new DynamicObject[0]), OperateOption.create());
|
||||
List<IOperateInfo> allErrorOrValidateInfo = sumbit.getAllErrorOrValidateInfo();
|
||||
if (allErrorOrValidateInfo.isEmpty()) {
|
||||
String result = ApiService.paymentSlipsJson(dynamicObject, "BIPRE", dynamicObjects, null);
|
||||
logger.info("result信息:{}", result);
|
||||
if (result.contains("成功")) {
|
||||
SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0]));
|
||||
stringBuilder.append(result);
|
||||
return;
|
||||
|
||||
} else {
|
||||
args.setCancel(true);
|
||||
args.setCancelMessage(result);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
allErrorOrValidateInfo.forEach(operateInfo -> {
|
||||
DynamicObject object = BusinessDataServiceHelper.loadSingle(operateInfo.getPkValue(), "cas_paybill");
|
||||
stringBuilder.append("单据编号:" + object.get("billno") + "," + operateInfo.getMessage() + "\n");
|
||||
});
|
||||
args.setCancel(true);
|
||||
args.setCancelMessage("打回失败,请确认银行支付状态");
|
||||
args.setCancelMessage(stringBuilder.toString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -39,18 +39,26 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
List<DynamicObject> dynamicObjectList = new ArrayList<>();
|
||||
if (billMark != null) {
|
||||
switch (billMark.toString()) {
|
||||
//BIP推过来,系统为共享系统,推送状态未结算
|
||||
//司库推BIP → 只能通过能源公司和来源系统判断:,且推送系统为空(推送后返回系统为能源共享,推送状态为)
|
||||
|
||||
// 已结算、未结算、结算失败、未推送
|
||||
// 付款处理
|
||||
case "cas_paybill":
|
||||
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
|
||||
.and("shkd_pushstatus", QCP.not_equals, "已结算")
|
||||
.and("shkd_pushstatus", QCP.not_equals, "结算失败")
|
||||
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,entry.e_actamt,settletype," +
|
||||
"payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype," +
|
||||
"org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname," +
|
||||
"billstatus,bankpaystatus"
|
||||
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth(3))
|
||||
.and("billstatus", QCP.equals, "D").toArray());
|
||||
|
||||
Arrays.stream(objects1).forEach(dynamicObject -> {
|
||||
DynamicObject org = dynamicObject.getDynamicObject("org");
|
||||
if ("SIG1040100、SIG1090000、SIG000101135、SIG1041000、SIG1040802、SIG1040804、SIG1040803、SIG1040801、SIG1040400".contains(org.getString("number"))) {
|
||||
if (("SIG1040100、SIG1040901、SIG1040201、SIG1090000、SIG1040700、SIG000101135、SIG1040600、SIG1040300、" +
|
||||
"SIG000100079、SIG000003001、SIG1041000、SIG1040802、SIG000101558、SIG1040808、SIG1040804、" +
|
||||
"SIG1040803、SIG1040801、SIG1040400、SIG104010101、SIG104010102、SIG1040202、SIG1040203、" +
|
||||
"SIG1040204、SIG1040902、SIG000101822、SIG000101799").contains(org.getString("number"))) {
|
||||
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
|
||||
}
|
||||
});
|
||||
|
@ -69,16 +77,10 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
//OF 银企异常
|
||||
DynamicObject[] objects4 = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(10))
|
||||
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
|
||||
.and("bankpaystatus", QCP.equals, "TS")
|
||||
.and("shkd_pushstatus", QCP.equals, "未结算")
|
||||
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
|
||||
|
||||
DynamicObject[] objects5 = BusinessDataServiceHelper.load("cas_paybill", "id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum,payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description,shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||
, new QFilter("bankpaystatus", QCP.equals, "TS")
|
||||
.and("shkd_pushstatus", QCP.equals, "结算失败")
|
||||
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
|
||||
dynamicObjects = Arrays.asList(objects4);
|
||||
dynamicObjects.addAll(Arrays.asList(objects5));
|
||||
dynamicObjects.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjectList, null));
|
||||
SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0]));
|
||||
break;
|
||||
|
@ -111,7 +113,10 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
|||
|
||||
Arrays.stream(objects3).forEach(dynamicObject -> {
|
||||
DynamicObject companys = dynamicObject.getDynamicObject("company");
|
||||
if (("SIG1040100、SIG1040901、SIG1040201、SIG1090000、SIG1040700、SIG000101135、SIG1040600、SIG1040300、SIG000100079、SIG000003001、SIG1041000、SIG1040802、SIG000101558、SIG1040808、SIG1040804、SIG1040803、SIG1040801、SIG1040400、SIG104010101、SIG104010102、SIG1040202、SIG1040203、SIG1040204、SIG1040902、SIG000101822、SIG000101799").contains(companys.getString("number"))) {
|
||||
if (("SIG1040100、SIG1040901、SIG1040201、SIG1090000、SIG1040700、SIG000101135、SIG1040600、SIG1040300、" +
|
||||
"SIG000100079、SIG000003001、SIG1041000、SIG1040802、SIG000101558、SIG1040808、SIG1040804、" +
|
||||
"SIG1040803、SIG1040801、SIG1040400、SIG104010101、SIG104010102、SIG1040202、SIG1040203、" +
|
||||
"SIG1040204、SIG1040902、SIG000101822、SIG000101799").contains(companys.getString("number"))) {
|
||||
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue