diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/MaterialInBillOrgSubmitValidatorOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/MaterialInBillOrgSubmitValidatorOp.java index 6ed8e3c..bc9907b 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/MaterialInBillOrgSubmitValidatorOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/MaterialInBillOrgSubmitValidatorOp.java @@ -11,14 +11,20 @@ import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; +import java.math.BigDecimal; + /** * 入库单提交操作校验插件 - * 说明: + * 说明:分录中资源编码不是火工材料和燃料类的分录行,且单价大于两千的分录行,则需要上传比价附件 */ public class MaterialInBillOrgSubmitValidatorOp extends AbstractOperationServicePlugIn { public void onPreparePropertys(PreparePropertysEventArgs e) { super.onPreparePropertys(e); e.getFieldKeys().add("fiaccountOrg"); + e.getFieldKeys().add("entryentity"); + e.getFieldKeys().add("material"); + e.getFieldKeys().add("price"); + e.getFieldKeys().add("zcgj_attachmentcount"); } @Override @@ -33,7 +39,7 @@ public class MaterialInBillOrgSubmitValidatorOp extends AbstractOperationService ExtendedDataEntity[] extendedDataEntities = this.getDataEntities(); for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { DynamicObject ecma_MaterialInBill = extendedDataEntity.getDataEntity(); - DynamicObject fiaccountOrg = ecma_MaterialInBill.getDynamicObject("fiaccountOrg");//财务记账组织 + DynamicObject fiaccountOrg = ecma_MaterialInBill.getDynamicObject("fiaccountorg");//财务记账组织 if (fiaccountOrg == null) { return; } @@ -43,20 +49,24 @@ public class MaterialInBillOrgSubmitValidatorOp extends AbstractOperationService new QFilter[]{f1.and(f2)});//入库单公司过滤 if (zcgj_authorizedcompany != null) { DynamicObjectCollection entryEntityCollection = ecma_MaterialInBill.getDynamicObjectCollection("entryentity");//入库单分录 - for (int i = 0; i < entryEntityCollection.size(); i++) { - DynamicObject entryEntity = entryEntityCollection.get(i); + boolean isPrice = false; + for (DynamicObject entryEntity : entryEntityCollection) { DynamicObject material = entryEntity.getDynamicObject("material");//资源编码 if (material != null) { DynamicObject resource = material.getDynamicObject("resource");//资源编码-清单分类 if (resource != null) { String number = resource.getString("number");//清单分类-编码 - if (number.contains("ZCKS03") || number.contains("ZCKS05")) { - return; + BigDecimal price = entryEntity.getBigDecimal("price");//入库单价 + if (price.compareTo(new BigDecimal("2000")) > 0 && !number.contains("ZCKS03") && !number.contains("ZCKS05")) { + isPrice = true; } } } } - ecma_MaterialInBill.getString("zcgj_attachmentcountfield");//附件数 + int zcgj_attachmentcount = ecma_MaterialInBill.getInt("zcgj_attachmentcount"); //比价附件数 + if (zcgj_attachmentcount == 0 && isPrice) { + this.addFatalErrorMessage(extendedDataEntity, "入库单价大于2000,需要上传比价附件!"); + } } } }