diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java index aa34b09..5bfc915 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java @@ -4,51 +4,50 @@ import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.EntityMetadataCache; import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.events.SetFilterEvent; import kd.bos.list.BillList; +import kd.bos.list.ListShowParameter; import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; +import java.util.HashSet; +import java.util.List; + +import static kd.fi.cas.helper.PayBillListPlugnHelper.getFcaFilter; + /** * 标准单据列表插件 * 付款处理-取消付款校验 */ public class PayBillListPlugin extends AbstractListPlugin implements Plugin { - - @Override - public void beforeItemClick(BeforeItemClickEvent evt) { - super.beforeItemClick(evt); - - String key = evt.getItemKey().toLowerCase(); - if ("tblcancelpay".equals(key)){ - BillList list = (BillList) this.getView().getControl("billlistap"); - ListSelectedRowCollection selectedRows = list.getSelectedRows(); - if (selectedRows == null || selectedRows.isEmpty()) { - this.getView().showTipNotification("请选择需要操作的付款单!"); - evt.setCancel(true); - return; - } - if (selectedRows.size()>1){ - this.getView().showTipNotification("请选择单条数据进行操作"); - evt.setCancel(true); - return; - } - - DynamicObject recBill= BusinessDataServiceHelper.loadSingle( - selectedRows.get(0).getPrimaryKeyValue(), - EntityMetadataCache.getDataEntityType("cas_paybill")); - this.cancelPayValidator(evt,recBill); + public void setFilter(SetFilterEvent e) { + super.setFilter(e); + ListShowParameter listShowParameter = (ListShowParameter)this.getView().getFormShowParameter(); + if (!"付款处理".equals(listShowParameter.getCaption())) { + return; } - - } - - private void cancelPayValidator(BeforeItemClickEvent evt, DynamicObject recBill) { - boolean ispushsap = recBill.getBoolean("shjh_ispushsap"); - if (ispushsap){ - this.getView().showTipNotification("已推送SAP,不允许取消付款!"); - evt.setCancel(true); + List qFilters = e.getQFilters(); + HashSet value = new HashSet<>(); + for (QFilter qFilter : qFilters) { + if (qFilter.toString().contains("billtype")) { + List nests = qFilter.getNests(true); + for (QFilter.QFilterNest nest : nests) { + String string1 = nest.toString(); + if (string1.contains("billtype")) { + value = (HashSet)nest.getFilter().getValue(); + value.add(993266082510901248L); + } + } + nests.clear(); + qFilters.remove(qFilter); + break; + } } + qFilters.add(new QFilter("billtype", QCP.in, value).and("iswaitsche", QCP.equals, '0')); } } \ No newline at end of file