对公报销单和无合同付款申请单校验

This commit is contained in:
zhangzhiguo 2025-09-17 17:09:35 +08:00
parent c7ea54355d
commit 67778668f7
2 changed files with 42 additions and 4 deletions

View File

@ -24,12 +24,16 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
@Override @Override
public void onPreparePropertys(PreparePropertysEventArgs e) { public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e); super.onPreparePropertys(e);
e.getFieldKeys().add("zcgj_isec");//工程单据 如果是工程单据则需要判断付款方式为DG才需要判断账户一致性
e.getFieldKeys().add("costcompany"); e.getFieldKeys().add("costcompany");
e.getFieldKeys().add("accountentry"); e.getFieldKeys().add("accountentry");
e.getFieldKeys().add("billpayerid");//往来单位
e.getFieldKeys().add("zcgj_ecpaytype");//付款方式
e.getFieldKeys().add("zcgj_prepay");//冲销预付 e.getFieldKeys().add("zcgj_prepay");//冲销预付
e.getFieldKeys().add("writeoffmoney");//冲销预付 e.getFieldKeys().add("writeoffmoney");//冲销预付
} }
@Override @Override
@ -57,6 +61,13 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObject dataEntity = extendedDataEntity.getDataEntity();
DynamicObject billPayerId = dataEntity.getDynamicObject("billpayerid");//往来单位
String ecpaytype = dataEntity.getString("zcgj_ecpaytype");//付款方式
boolean isec = dataEntity.getBoolean("zcgj_isec");//付款方式
boolean ckType = true;
if(isec){
ckType = "DG".equals(ecpaytype); //如果是无合同付款中的付款方式为 对公则需要校验
}
long aLong = dataEntity.getLong("id"); long aLong = dataEntity.getLong("id");
//获取报销人 //获取报销人
DynamicObject applier = dataEntity.getDynamicObject("applier"); DynamicObject applier = dataEntity.getDynamicObject("applier");
@ -84,7 +95,12 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
continue; continue;
} }
String name = supplier.getString("name"); String name = supplier.getString("name");
isOk = payeraccountname.equals(name); if(ckType){
String billPayerIdName = billPayerId.getString("name");
isOk = payeraccountname.equals(name) && payeraccountname.equals(billPayerIdName);
}else{
isOk = payeraccountname.equals(name);
}
}else if("bd_customer".equals(payertype)){ //客户 }else if("bd_customer".equals(payertype)){ //客户
DynamicObject customer = dynamicObject.getDynamicObject("customer"); DynamicObject customer = dynamicObject.getDynamicObject("customer");
if(customer ==null){ if(customer ==null){
@ -92,10 +108,28 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn {
continue; continue;
} }
String name = customer.getString("name"); String name = customer.getString("name");
if(ckType){
String billPayerIdName = billPayerId.getString("name");
isOk = payeraccountname.equals(name) && payeraccountname.equals(billPayerIdName);
}else{
isOk = payeraccountname.equals(name);
}
}else if("er_payeer".equals(payertype)){ //职员
DynamicObject payer = dynamicObject.getDynamicObject("payer");
if(payer ==null){
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行收款人不能为空",i));
continue;
}
String name = payer.getString("name");
isOk = payeraccountname.equals(name); isOk = payeraccountname.equals(name);
} }
if(!isOk && accountTxt.isEmpty()){ if(!isOk && accountTxt.isEmpty()){
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行收款人名称和账户名称不一致请在当前行填写账户不一致说明",i)); if(ckType){//带往来单位
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行往来单位与收款人名称和账户名称不一致请在当前行填写账户不一致说明",i));
}else{
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行收款人名称和账户名称不一致请在当前行填写账户不一致说明",i));
}
} }
} }

View File

@ -22,6 +22,9 @@ public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn {
e.getFieldKeys().add("zcgj_invoiceremark"); e.getFieldKeys().add("zcgj_invoiceremark");
e.getFieldKeys().add("makeoutcompname"); e.getFieldKeys().add("makeoutcompname");
e.getFieldKeys().add("costcompany"); e.getFieldKeys().add("costcompany");
//无合同付款相关
e.getFieldKeys().add("zcgj_isec");//工程单据
//e.getFieldKeys().add("zcgj_ecpaytype");//付款方式
} }
@Override @Override
@ -37,7 +40,8 @@ public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn {
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObject dataEntity = extendedDataEntity.getDataEntity();
DynamicObject costCompany = dataEntity.getDynamicObject("costcompany");//费用承担公司 DynamicObject costCompany = dataEntity.getDynamicObject("costcompany");//费用承担公司
if (costCompany != null) { boolean isec = dataEntity.getBoolean("zcgj_isec");
if (costCompany != null && !isec) {
Long companyId = costCompany.getLong("id"); Long companyId = costCompany.getLong("id");
if (OrgCheckUtils.isKS(companyId)) { if (OrgCheckUtils.isKS(companyId)) {
//仅针对矿山下组织下的逻辑 //仅针对矿山下组织下的逻辑