package fi.gl.business; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.ExtendedDataEntity; import kd.bos.entity.validate.AbstractValidator; import kd.bos.exception.KDBizException; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import java.util.Date; /** * 凭证操作插件校验器 * 2024-07-15 wangj * 主要功能:校验凭证是否日结 */ public class VoucherValidator extends AbstractValidator { @Override public void validate() { String oKey = this.getOperateKey(); switch (oKey) { case "save": case "submit": case "antipost": case "unaudit": checkDatas(); break; } } private void checkDatas() { for (ExtendedDataEntity rowDataEntity : this.getDataEntities()) { DynamicObject bill = rowDataEntity.getDataEntity(); DynamicObject org = (DynamicObject) bill.get("org"); long orgId = org.getLong("id"); Date bizdate = bill.getDate("bookeddate"); QFilter qFilter_org = new QFilter("nckd_org", QCP.equals,orgId); QFilter qFilter_bizdate = new QFilter("nckd_dailydate",QCP.equals,bizdate); DynamicObject[] dailybillCol = BusinessDataServiceHelper.load("nckd_gl_dailybill","id", new QFilter[]{qFilter_org,qFilter_bizdate}); if(dailybillCol!=null && dailybillCol.length>0){ String errorMessage = "当前组织对应业务日期已日结,无法新增、修改、反审核、反过账凭证"; throw new KDBizException(errorMessage); } } } }