Эх сурвалжийг харах

商旅确认单:
1.新增反审核校验:已创建商旅对账不允许反审核

lisheng 3 өдөр өмнө
parent
commit
02dae939ef

+ 8 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/operate/travelcheck/FinanceBillConfirmOp.java

@@ -3,6 +3,7 @@ package nckd.jimin.jyyy.fi.plugin.operate.travelcheck;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.AddValidatorsEventArgs;
 import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
@@ -18,6 +19,7 @@ import nckd.jimin.jyyy.fi.common.constant.travelcheck.BusTravelCheckBillConstant
 import nckd.jimin.jyyy.fi.common.constant.travelcheck.FinanceBillConfirmConstant;
 import nckd.jimin.jyyy.fi.common.constant.travelcheck.TravelFinanDraftConstant;
 import nckd.jimin.jyyy.fi.common.constant.travelcheck.TripReqBillConstant;
+import nckd.jimin.jyyy.fi.plugin.operate.validator.FinanceBillConfirmValidator;
 
 import java.util.Arrays;
 import java.util.HashSet;
@@ -27,6 +29,12 @@ public class FinanceBillConfirmOp extends AbstractOperationServicePlugIn {
 
     private static final Log logger = LogFactory.getLog(FinanceBillConfirmOp.class);
 
+    @Override
+    public void onAddValidators(AddValidatorsEventArgs e) {
+        super.onAddValidators(e);
+        e.getValidators().add(new FinanceBillConfirmValidator());
+    }
+
     @Override
     public void beginOperationTransaction(BeginOperationTransactionArgs e) {
         super.beginOperationTransaction(e);

+ 31 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/operate/validator/FinanceBillConfirmValidator.java

@@ -0,0 +1,31 @@
+package nckd.jimin.jyyy.fi.plugin.operate.validator;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.ExtendedDataEntity;
+import kd.bos.entity.validate.AbstractValidator;
+import kd.bos.orm.ORM;
+import kd.bos.orm.query.QFilter;
+import nckd.jimin.jyyy.fi.common.constant.travelcheck.BusTravelCheckBillConstant;
+
+import java.util.Arrays;
+
+public class FinanceBillConfirmValidator extends AbstractValidator {
+    @Override
+    public void validate() {
+        String operateKey = this.getOperateKey();
+        ExtendedDataEntity[] dataEntities = getDataEntities();
+        if("unaudit".equals(operateKey)){
+            Arrays.stream(dataEntities).forEach(r -> checkCreateCheckBill(r));
+        }
+    }
+
+    protected void checkCreateCheckBill(ExtendedDataEntity dataEntity) {
+        DynamicObject billInfo = dataEntity.getDataEntity();
+        Object billId = billInfo.getPkValue();
+        QFilter hasCreateCheckFilter = new QFilter(BusTravelCheckBillConstant.NCKD_NCKD_SOURCEBILLID, QFilter.equals, billId);
+        if(ORM.create().exists(BusTravelCheckBillConstant.ENTITYID, hasCreateCheckFilter.toArray())){
+            this.addErrorMessage(dataEntity, "已生成商旅对账单,不允许反审核单据。");
+            return;
+        }
+    }
+}