VoucherValidator.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package fi.gl.business;
  2. import kd.bos.dataentity.entity.DynamicObject;
  3. import kd.bos.entity.ExtendedDataEntity;
  4. import kd.bos.entity.validate.AbstractValidator;
  5. import kd.bos.exception.KDBizException;
  6. import kd.bos.orm.query.QCP;
  7. import kd.bos.orm.query.QFilter;
  8. import kd.bos.servicehelper.BusinessDataServiceHelper;
  9. import java.util.Date;
  10. /**
  11. * 凭证操作插件校验器
  12. * 2024-07-15 wangj
  13. * 主要功能:校验凭证是否日结
  14. */
  15. public class VoucherValidator extends AbstractValidator {
  16. @Override
  17. public void validate() {
  18. String oKey = this.getOperateKey();
  19. switch (oKey) {
  20. case "save":
  21. case "submit":
  22. case "antipost":
  23. case "unaudit":
  24. checkDatas();
  25. break;
  26. }
  27. }
  28. private void checkDatas() {
  29. for (ExtendedDataEntity rowDataEntity : this.getDataEntities()) {
  30. DynamicObject bill = rowDataEntity.getDataEntity();
  31. DynamicObject org = (DynamicObject) bill.get("org");
  32. long orgId = org.getLong("id");
  33. Date bizdate = bill.getDate("bookeddate");
  34. QFilter qFilter_org = new QFilter("nckd_org", QCP.equals,orgId);
  35. QFilter qFilter_bizdate = new QFilter("nckd_dailydate",QCP.equals,bizdate);
  36. DynamicObject[] dailybillCol = BusinessDataServiceHelper.load("nckd_gl_dailybill","id",
  37. new QFilter[]{qFilter_org,qFilter_bizdate});
  38. if(dailybillCol!=null && dailybillCol.length>0){
  39. String errorMessage = "当前组织对应业务日期已日结,无法新增、修改、反审核、反过账凭证";
  40. throw new KDBizException(errorMessage);
  41. }
  42. }
  43. }
  44. }