Browse Source

业务处理单过滤

xuhao 5 tháng trước cách đây
mục cha
commit
7dce601e6c

+ 1 - 1
src/main/java/fi/em/formPlugin/BxdBankListtenerFromPlugin.java

@@ -28,7 +28,7 @@ public class BxdBankListtenerFromPlugin extends AbstractListPlugin implements Pl
     @Override
     public void registerListener(EventObject e) {
         super.registerListener(e);
-        // 对采购申请单单号字段(文本控件)添加点击监听
+        // 对字段(文本控件)添加点击监听
         TextEdit textEdit = getControl("nckd_gysbanks");
         textEdit.addClickListener(this);
     }

+ 12 - 0
src/main/java/fi/em/formPlugin/BxdF7ListtenerFromPlugin.java

@@ -2,7 +2,9 @@ package fi.em.formPlugin;
 
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.metadata.dynamicobject.DynamicProperty;
 import kd.bos.exception.KDBizException;
+import kd.bos.form.events.BeforeClosedEvent;
 import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.events.BeforeF7SelectEvent;
 import kd.bos.form.field.events.BeforeF7SelectListener;
@@ -19,7 +21,17 @@ import java.util.Map;
 
 public class BxdF7ListtenerFromPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
     private final static String paycompany="paycompany";//支付组织
+    public void beforeClosed(BeforeClosedEvent e) {
 
+        super.beforeClosed(e);
+        //文本字段退出不提醒
+        DynamicObject dyo=this.getModel().getDataEntity();
+        DynamicProperty textProp = dyo.getDynamicObjectType().getProperty("nckd_attachmentcount");
+        dyo.getDataEntityState().setBizChanged(textProp.getOrdinal(), false);
+        //基础资料退出不提醒
+//        DynamicProperty baseDataProp =  dyo.getDynamicObjectType().getProperty("bidt_basedatafield" + "_id");
+//        dyo.getDataEntityState().setBizChanged(baseDataProp.getOrdinal(), false);
+    }
     @Override
     public void registerListener(EventObject e) {
         super.registerListener(e);

+ 21 - 18
src/main/java/fi/em/opplugin/ExpenseAccountFileOpPlugin.java

@@ -25,24 +25,27 @@ public class ExpenseAccountFileOpPlugin extends AbstractOperationServicePlugIn {
     public void endOperationTransaction(EndOperationTransactionArgs e) {
         super.endOperationTransaction(e);
         //获取当前操作单据数组
-        DynamicObject[] dynamicObjects = e.getDataEntities();
-        for (int i = 0; i < dynamicObjects.length; i++) {
-            JSONObject object = new JSONObject();
-            //当前单头数据包
-            DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
-            BigDecimal reimburseamount = info.getBigDecimal("reimburseamount");
-            if(reimburseamount.compareTo(new BigDecimal(50000)) > -1){
-                this.operationResult.addErrorInfo(new ValidationErrorInfo("",info.getPkValue(),
-                        0,0,"err","billtitle",info.getString("billno")+"请关联出差申请单或上传线下审批单!", ErrorLevel.Error));
-            }
-            BigDecimal nckdFukuanamountfield = info.getBigDecimal("nckd_fukuanamountfield");
-            DynamicObject dynamicObject = info.getDynamicObjectCollection("accountentry").get(0);
-            if(dynamicObject!=null){
-                BigDecimal orireceiveamount = dynamicObject.getBigDecimal("orireceiveamount");
-                if(orireceiveamount.compareTo(nckdFukuanamountfield) == 1){
-                    throw new KDBizException("收款明细分录第一行收款金额大于单头付款金额,请检查!");
-                } else if (orireceiveamount.compareTo(nckdFukuanamountfield) == -1) {
-                    throw new KDBizException("收款明细分录第一行收款金额不等于单头付款金额,请检查!");
+        String operationKey = e.getOperationKey();
+        if(!"er_dailyreimbursebill".equals(operationKey)){
+            DynamicObject[] dynamicObjects = e.getDataEntities();
+            for (int i = 0; i < dynamicObjects.length; i++) {
+                JSONObject object = new JSONObject();
+                //当前单头数据包
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                BigDecimal reimburseamount = info.getBigDecimal("reimburseamount");
+                if(reimburseamount.compareTo(new BigDecimal(50000)) > -1){
+                    this.operationResult.addErrorInfo(new ValidationErrorInfo("",info.getPkValue(),
+                            0,0,"err","billtitle",info.getString("billno")+"请关联出差申请单或上传线下审批单!", ErrorLevel.Error));
+                }
+                BigDecimal nckdFukuanamountfield = info.getBigDecimal("nckd_fukuanamountfield");
+                DynamicObject dynamicObject = info.getDynamicObjectCollection("accountentry").get(0);
+                if(dynamicObject!=null){
+                    BigDecimal orireceiveamount = dynamicObject.getBigDecimal("orireceiveamount");
+                    if(orireceiveamount.compareTo(nckdFukuanamountfield) == 1){
+                        throw new KDBizException("收款明细分录第一行收款金额大于单头付款金额,请检查!");
+                    } else if (orireceiveamount.compareTo(nckdFukuanamountfield) == -1) {
+                        throw new KDBizException("收款明细分录第一行收款金额不等于单头付款金额,请检查!");
+                    }
                 }
             }
         }