diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java index 73d69e2..ed2552e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java @@ -24,12 +24,16 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn { @Override public void onPreparePropertys(PreparePropertysEventArgs e) { super.onPreparePropertys(e); + e.getFieldKeys().add("zcgj_isec");//工程单据 ,如果是工程单据则需要判断付款方式为DG才需要判断账户一致性 e.getFieldKeys().add("costcompany"); e.getFieldKeys().add("accountentry"); - + e.getFieldKeys().add("billpayerid");//往来单位 + e.getFieldKeys().add("zcgj_ecpaytype");//付款方式 e.getFieldKeys().add("zcgj_prepay");//冲销预付 e.getFieldKeys().add("writeoffmoney");//冲销预付 + + } @Override @@ -57,6 +61,13 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn { for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { 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"); //获取报销人 DynamicObject applier = dataEntity.getDynamicObject("applier"); @@ -84,7 +95,12 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn { continue; } 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)){ //客户 DynamicObject customer = dynamicObject.getDynamicObject("customer"); if(customer ==null){ @@ -92,10 +108,28 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn { continue; } 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); } + 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)); + } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java index d38b78d..4ca1a79 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java @@ -22,6 +22,9 @@ public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn { e.getFieldKeys().add("zcgj_invoiceremark"); e.getFieldKeys().add("makeoutcompname"); e.getFieldKeys().add("costcompany"); + //无合同付款相关 + e.getFieldKeys().add("zcgj_isec");//工程单据 + //e.getFieldKeys().add("zcgj_ecpaytype");//付款方式 } @Override @@ -37,7 +40,8 @@ public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn { for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObject costCompany = dataEntity.getDynamicObject("costcompany");//费用承担公司 - if (costCompany != null) { + boolean isec = dataEntity.getBoolean("zcgj_isec"); + if (costCompany != null && !isec) { Long companyId = costCompany.getLong("id"); if (OrgCheckUtils.isKS(companyId)) { //仅针对矿山下组织下的逻辑