From 959ad0585f6566a971165e52a9fdfa3842f41e6a Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Mon, 12 May 2025 17:49:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E5=87=AD=E8=AF=81=E7=BA=A2?= =?UTF-8?q?=E5=86=B2=EF=BC=8C=E8=B4=B9=E6=8E=A7=E4=BB=98=E6=AC=BE=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E8=BD=AC=E8=B4=A6?= =?UTF-8?q?=E9=99=84=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operate/RecRedPushOperation.java | 9 +++++-- .../plugin/operate/VoucherAuditOperation.java | 22 ++++++++++++---- .../fi/fi/webapi/ApplyBillControler.java | 26 +++++++++---------- .../fi/fi/webapi/model/ApplyBillModel.java | 9 +++++++ 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java index 45ab695..930e590 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecRedPushOperation.java @@ -177,7 +177,7 @@ public class RecRedPushOperation extends AbstractOperationServicePlugIn implemen responseBody.put("requestTime", requestTime); HashMap data = new HashMap<>(1); List> IT_ITEM = new ArrayList<>(1); - //TODO 用户名-从红冲单上获取人员,当前操作人可能是定时任务 + //用户名-从红冲单上获取人员,当前操作人可能是定时任务 DynamicObject userinfo = BusinessDataServiceHelper.loadSingleFromCache(RequestContext.get().getCurrUserId(), "bos_user"); String oaUser = userinfo.getString("shjh_oauser"); //冲销原因 @@ -200,7 +200,12 @@ public class RecRedPushOperation extends AbstractOperationServicePlugIn implemen IT_ITEMS.put("BUKRS",recBill.getString("org.number"));//公司代码 IT_ITEMS.put("GJAHR",recBill.getString("shjh_sapfiscalyear"));//会计年度 IT_ITEMS.put("STGRD","04");//冲销原因 跨期冲销;默认04,冲销日期必传 - IT_ITEMS.put("UNAME",oaUser);//用户名 + if(EsbUtils.isEmpty(oaUser)){ + IT_ITEMS.put("UNAME","资金系统");//用户名 + }else{ + IT_ITEMS.put("UNAME",oaUser);//用户名 + } + SimpleDateFormat sdfdate = new SimpleDateFormat("yyyy-MM-dd"); IT_ITEMS.put("BUDAT",sdfdate.format(new Date()));//凭证中的过帐日期 IT_ITEM.add(IT_ITEMS); diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java index 5ae743c..69f0db5 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/VoucherAuditOperation.java @@ -13,6 +13,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.sdk.plugin.Plugin; +import java.math.BigDecimal; import java.util.List; public class VoucherAuditOperation extends AbstractOperationServicePlugIn implements Plugin { @@ -50,12 +51,23 @@ public class VoucherAuditOperation extends AbstractOperationServicePlugIn implem sourcebilltype = pzinfo.getDynamicObject("sourcebilltype").getString("number"); if(recbillName.equals(sourcebilltype)){ bizbillinfo = BusinessDataServiceHelper.loadSingle(sourcebillid,recbillName); + //执行收款单推送sap操作,并反馈操作执行结果 - operResult = OperationServiceHelper.executeOperate("pushvoucher", recbillName, new DynamicObject[]{bizbillinfo}, operateOption); - // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 - if (operResult.isSuccess()) { - logger.info("执行收款单 pushvoucher 成功,单据编号:" + bizbillinfo.getString("billno")); - } else { + if (bizbillinfo.getBigDecimal("actrecamt").compareTo(BigDecimal.ZERO) > 0) { + operResult = OperationServiceHelper.executeOperate("pushvoucher", recbillName, new DynamicObject[]{bizbillinfo}, operateOption); + if (operResult.isSuccess()) { + logger.info("执行收款单 pushvoucher 成功,单据编号:" + bizbillinfo.getString("billno")); + } + }else{ + //收款金额为负数 红冲 redpunch + operResult = OperationServiceHelper.executeOperate("redpunch", recbillName, new DynamicObject[]{bizbillinfo}, operateOption); + if (operResult.isSuccess()) { + logger.info("执行收款单 redpunch 成功,单据编号:" + bizbillinfo.getString("billno")); + } + } + + //可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 + if (!operResult.isSuccess()){ logger.error(operResult.getMessage()); List allErrorInfo = operResult.getAllErrorInfo(); for (OperateErrorInfo errorInfo : allErrorInfo) { diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/ApplyBillControler.java b/main/java/shjh/jhzj7/fi/fi/webapi/ApplyBillControler.java index 2f3fd85..a7d4568 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/ApplyBillControler.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/ApplyBillControler.java @@ -1,8 +1,5 @@ package shjh.jhzj7.fi.fi.webapi; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONException; -import com.alibaba.fastjson.JSONObject; import com.drew.lang.annotations.NotNull; import kd.bos.context.RequestContext; import kd.bos.dataentity.OperateOption; @@ -30,7 +27,9 @@ import shjh.jhzj7.fi.fi.webapi.model.ApplyBillModel; import javax.validation.Valid; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.*; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; /** * "应付付款申请单接口 @@ -56,19 +55,19 @@ public class ApplyBillControler { @ApiPostMapping(value = apimenthod, desc = "应付付款申请单接口") public CustomApiResult applybill_sync (@NotNull @Valid @ApiRequestBody(value="入参json格式数据") ApplyBillModel applybill) { - JSONObject json_body; +// JSONObject json_body; String jsonBodyString = null; //返回值 ApiResultPayApplyExt apiResultExt = new ApiResultPayApplyExt(); - try { - // 解析入参,如果格式不正确,日志记录,并反馈esb - json_body = (JSONObject) JSON.toJSON(applybill); - jsonBodyString = JSON.toJSONString(json_body); - } catch (JSONException e) { - handleError("应付付款申请单接口入参异常:" + e.getMessage(), Apimenthod, "费控", null); - return handleErrorAndReturn(apiResultExt, "接口入参异常"); - } +// try { +// // 解析入参,如果格式不正确,日志记录,并反馈esb +// json_body = (JSONObject) JSON.toJSON(applybill); +// jsonBodyString = JSON.toJSONString(json_body); +// } catch (JSONException e) { +// handleError("应付付款申请单接口入参异常:" + e.getMessage(), Apimenthod, "费控", null); +// return handleErrorAndReturn(apiResultExt, "接口入参异常"); +// } // 费控单据编号 String fkBillNum = applybill.getFkBillNum(); @@ -429,6 +428,7 @@ public class ApplyBillControler { ap_payapply.set("shjh_sourcesystem", "B");//费控 //唯一值(勿动) ap_payapply.set("shjh_sapuniquevalue",fkBillID + fkEntryID);//费控唯一值 :费控表头ID+费控分录ID + ap_payapply.set("shjh_transferremark", applybill.getTransferRemark());//转账附言 20250512 yxl OperateOption option= OperateOption.create(); option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); // 不执行警告级别校验器 diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/model/ApplyBillModel.java b/main/java/shjh/jhzj7/fi/fi/webapi/model/ApplyBillModel.java index 5525b8d..8da024d 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/model/ApplyBillModel.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/model/ApplyBillModel.java @@ -57,7 +57,16 @@ public class ApplyBillModel implements Serializable { private String fkEntryID; @ApiParam(value="付款类型",required=false,position=25) private String paymenttype; + @ApiParam(value="转账附言",required=false,position=26) + private String transferRemark; + public String getTransferRemark() { + return transferRemark; + } + + public void setTransferRemark(String transferRemark) { + this.transferRemark = transferRemark; + } public void setPaymenttype(String paymenttype) { this.paymenttype = paymenttype;