收款推送sap分配编号,收款单增加交易明细的对方信息

This commit is contained in:
yuxueliang0813 2025-05-20 16:23:40 +08:00
parent baa34ac3f7
commit 846f437c9a
6 changed files with 71 additions and 10 deletions

View File

@ -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;
}

View File

@ -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

View File

@ -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");//尾差

View File

@ -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;
}

View File

@ -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"));
}
}
}

View File

@ -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;
}