From 846f437c9a522b55311f67a2cdc6c21ed8526e78 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Tue, 20 May 2025 16:23:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E6=8E=A8=E9=80=81sap?= =?UTF-8?q?=E5=88=86=E9=85=8D=E7=BC=96=E5=8F=B7=EF=BC=8C=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E5=8D=95=E5=A2=9E=E5=8A=A0=E4=BA=A4=E6=98=93=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E7=9A=84=E5=AF=B9=E6=96=B9=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/RecBillChangeListExtendPlugin.java | 11 +++++-- .../fi/fi/plugin/form/RecBillFromPlugin.java | 31 +++++++++++++++++++ .../operate/ClearAccountBillOperation.java | 6 +++- .../operate/PaybillPushSapOperation.java | 12 ++++++- .../operate/RecPushVoucherOperation.java | 15 +++++++-- .../validators/ClaimSubmitValidator.java | 6 ++-- 6 files changed, 71 insertions(+), 10 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java index fd27f85..b2a7d15 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java @@ -93,9 +93,14 @@ public class RecBillChangeListExtendPlugin extends AbstractListPlugin implements return; } - // 收款类型校验 - if (Arrays.asList("103", "109", "100").contains(typeNumber)) { - this.getView().showTipNotification("所选单据不满足变更条件,收款类型=“预付款退回/员工还款/销售回款”的收款单不允许变更。"); + // 收款类型校验--取消销售回款 100 的类型 yxl 20250520 +// if (Arrays.asList("103", "109", "100").contains(typeNumber)) { +// this.getView().showTipNotification("所选单据不满足变更条件,收款类型=“预付款退回/员工还款/销售回款”的收款单不允许变更。"); +// evt.setCancel(true); +// return; +// } + if (Arrays.asList("103", "109").contains(typeNumber)) { + this.getView().showTipNotification("所选单据不满足变更条件,收款类型=“预付款退回/员工还款”的收款单不允许变更。"); evt.setCancel(true); return; } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillFromPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillFromPlugin.java index b8b191a..20fbba7 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillFromPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillFromPlugin.java @@ -5,6 +5,7 @@ import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.events.BeforeClosedEvent; import kd.bos.form.events.ClosedCallBackEvent; import kd.bos.form.field.BasedataEdit; import kd.bos.form.plugin.AbstractFormPlugin; @@ -23,6 +24,9 @@ import java.util.EventObject; */ public class RecBillFromPlugin extends AbstractFormPlugin implements Plugin { + private final static String transDetailEntryID = "bankcheckentity";//收款单交易明细分录标识 + private final static String transDetailName = "bei_transdetail_cas";//交易明细标识 + @Override public void registerListener(EventObject e) { super.registerListener(e); @@ -63,6 +67,33 @@ public class RecBillFromPlugin extends AbstractFormPlugin implements Plugin { shjh_costcenter.setMustInput(false); shjh_profitcenter.setMustInput(false); } + + //关联交易明细,新增“对方户名,银行账户,付款银行”,改名【银行交易明细】位置上移至表头与付款方之间 yxl 20250520 + DynamicObjectCollection entrys = this.getModel().getEntryEntity(transDetailEntryID); + if (null != entrys) { + DynamicObject entryInfo;//收款单交易明细分录对象 + DynamicObject transdetailinfo;//交易明细对象 + for (int i = 0; i < entrys.size(); i++) { + entryInfo = entrys.get(i); + transdetailinfo = BusinessDataServiceHelper.loadSingle(entryInfo.getLong("edetailid"),transDetailName, + "id,billno,oppunit,oppbanknumber,oppbank"); + this.getModel().setValue("shjh_oppunit",transdetailinfo.getString("oppunit"), i);//对方户名 + this.getModel().setValue("shjh_oppbanknumber",transdetailinfo.getString("oppbanknumber"), i);//银行账户 + this.getModel().setValue("shjh_oppbank",transdetailinfo.getString("oppbank"), i);//付款银行 + } + //更新分录页面显示 + this.getView().updateView(transDetailEntryID); + } + } + + @Override + public void beforeClosed(BeforeClosedEvent e) { + super.beforeClosed(e); + String billstatus = (String) this.getModel().getValue("billstatus"); + if(!("A".equals(billstatus) || "暂存".equals(billstatus))){ + //单据状态不是暂存的话,关闭前不校验是否有修改 + e.setCheckDataChange(false);//取消修改确认弹框,默认为true + } } @Override diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java index 7ea3e7f..b83b060 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/ClearAccountBillOperation.java @@ -562,7 +562,11 @@ public class ClearAccountBillOperation extends AbstractOperationServicePlugIn im //添加用户名过滤条件-操作审核按钮的用户(OA用户名) DynamicObject userinfo = BusinessDataServiceHelper.loadSingleFromCache(RequestContext.get().getCurrUserId(), userName); String oauser = userinfo.getString("shjh_oauser"); - IS_HEADER.put("USNAM",oauser);//用户名 + if(JhzjUtils.isEmpty(oauser)){ + IS_HEADER.put("USNAM","资金系统");//用户名 + }else{ + IS_HEADER.put("USNAM",oauser);//用户名 + } //----------------处理详细入参(有账扣或尾差需要items参数)---------------------- BigDecimal deductionamount = prinfo.getBigDecimal("shjh_deductionamount");//账扣 BigDecimal diffamount = prinfo.getBigDecimal("shjh_diffamount");//尾差 diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java index b8835fb..cf08e44 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PaybillPushSapOperation.java @@ -2,6 +2,7 @@ package shjh.jhzj7.fi.fi.plugin.operate; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.ExtendedDataEntity; @@ -38,6 +39,8 @@ import static shjh.jhzj7.fi.fi.utils.SapUtils.sap_accounVoucher; */ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn implements Plugin { + private static final String userName = "bos_user";//用户 + @Override public void onAddValidators(AddValidatorsEventArgs e) { super.onAddValidators(e); @@ -198,7 +201,14 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl IS_HEADER.put("WAERS", JhzjUtils.getCurrencyCode(isoCode));//币种_付款币种(付款单currency) IS_HEADER.put("XBLNR", bill.getString("billno"));//参考凭证号_单据编号(付款单billno) IS_HEADER.put("BKTXT", bill.getString("payeename"));//凭证抬头文本_收款人名称(付款单payeename) - IS_HEADER.put("USNAM", "资金系统");//用户名 + //添加用户名过滤条件-操作审核按钮的用户(OA用户名) + DynamicObject userinfo = BusinessDataServiceHelper.loadSingleFromCache(RequestContext.get().getCurrUserId(), userName); + String oauser = userinfo.getString("shjh_oauser"); + if(JhzjUtils.isEmpty(oauser)){ + IS_HEADER.put("USNAM","资金系统");//用户名 + }else{ + IS_HEADER.put("USNAM",oauser);//用户名 + } return IS_HEADER; } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java index 11a343d..ffe7a61 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecPushVoucherOperation.java @@ -2,6 +2,7 @@ package shjh.jhzj7.fi.fi.plugin.operate; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.StringUtils; @@ -44,6 +45,7 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl private static final String glbdName = "gl_assist_bd";//核算项目组合纵表 private static final String customerName = "bd_customer";//客户标识 private static final String voucherName = "gl_voucher";//凭证标识 + private static final String userName = "bos_user";//用户 /** @@ -305,8 +307,14 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl // 凭证抬头文本 IS_HEADER.put("BKTXT", recBill.getString("payername")); - // 固定值 - IS_HEADER.put("USNAM", "资金系统"); + //添加用户名过滤条件-操作审核按钮的用户(OA用户名) + DynamicObject userinfo = BusinessDataServiceHelper.loadSingleFromCache(RequestContext.get().getCurrUserId(), userName); + String oauser = userinfo.getString("shjh_oauser"); + if(JhzjUtils.isEmpty(oauser)){ + IS_HEADER.put("USNAM","资金系统");//用户名 + }else{ + IS_HEADER.put("USNAM",oauser);//用户名 + } String payerType = recBill.getString("payertype"); if (payerType != null) { @@ -456,6 +464,9 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl }else if("f000054".equals(asstype)){ //原因码 f000054 IT_ITEMS.put("RSTGR",glassistbd.getString("assval")); + }else if("f000056".equals(asstype)){ + //分配编号 f000056 + IT_ITEMS.put("ZUONR",glassistbd.getString("assval")); } } } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/validators/ClaimSubmitValidator.java b/main/java/shjh/jhzj7/fi/fi/plugin/validators/ClaimSubmitValidator.java index 9fd9f64..8448f1b 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/validators/ClaimSubmitValidator.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/validators/ClaimSubmitValidator.java @@ -65,15 +65,15 @@ public class ClaimSubmitValidator extends AbstractValidator { */ private boolean isAmountInvalid(String type, BigDecimal reAmount, BigDecimal receivableAll, BigDecimal refundedAll, BigDecimal repaymentAll) { switch (type) { - case "100": - //当收款类型=销售回款时,分录行【应收金额合计】>收款金额。 - return receivableAll.compareTo(reAmount) > 0; case "103": //当收款类型=预付款退回时,分录行【本次退还本位币金额合计】>收款金额。 return refundedAll.compareTo(reAmount) > 0; case "109": //当收款类型=员工还款时,分录行【本次还款金额合计】>收款金额。 return repaymentAll.compareTo(reAmount) > 0; + case "100": + //当收款类型=销售回款时,分录行【应收金额合计】>收款金额。 + return receivableAll.compareTo(reAmount) > 0; default: return false; }