Quellcode durchsuchen

feat(agency-bill): 新增单位代发单表单插件

Tyx vor 1 Monat
Ursprung
Commit
7a5fcbdfa0

+ 112 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcdm/formplugin/agencybill/AgencyBillEdit.java

@@ -0,0 +1,112 @@
+package nckd.jxccl.swc.hcdm.formplugin.agencybill;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.dataentity.metadata.IMetadata;
+import kd.bos.dataentity.resource.ResManager;
+import kd.bos.entity.datamodel.IDataModel;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.form.CloseCallBack;
+import kd.bos.form.ShowFormHelper;
+import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.form.events.ClosedCallBackEvent;
+import kd.bos.form.operate.FormOperate;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.list.ListFilterParameter;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.orm.util.CollectionUtils;
+import kd.hr.hbp.business.servicehelper.HRBaseServiceHelper;
+import kd.sdk.plugin.Plugin;
+import kd.swc.hcdm.business.domain.applybill.helper.ApplyBillPermCommonHelper;
+import kd.swc.hsbp.common.util.SWCDateTimeUtils;
+import kd.swc.hsbp.formplugin.web.SWCBaseFormPlugin;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * Tyx 2025-10-29
+ * 单位代发单表单插件
+ */
+public class AgencyBillEdit extends SWCBaseFormPlugin implements Plugin {
+
+    private static final String CALLBACK_CLOSE_ADD_ADJFILE = "CALLBACK_CLOSE_ADD_ADJFILE";
+    private static final HRBaseServiceHelper SALARYFILE_HELPER = new HRBaseServiceHelper("hsas_salaryfile");
+
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        this.addItemClickListeners("nckd_advcontoolbarap");
+    }
+
+    @Override
+    public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
+        super.afterDoOperation(afterDoOperationEventArgs);
+        FormOperate source = (FormOperate)afterDoOperationEventArgs.getSource();
+        switch (source.getOperateKey()) {
+            case "add_adjfile":
+                this.showAdjFileF7(afterDoOperationEventArgs);
+        }
+    }
+
+    private void showAdjFileF7(AfterDoOperationEventArgs args) {
+        ListShowParameter formShowParameter = ShowFormHelper.createShowListForm("hsas_salaryfilef7", true);
+        ListFilterParameter listFilterParameter = formShowParameter.getListFilterParameter();
+        formShowParameter.setMultiSelect(true);
+        List<QFilter> qFilters = listFilterParameter.getQFilters();
+        qFilters.add(new QFilter("iscurrentversion", QCP.equals, "1"));
+        List<QFilter> adjFileInfoPerm = ApplyBillPermCommonHelper.getAdjFileInfoPerm(this.getCheckRightAppId("0VO5EV13=I9W"));
+        if (!CollectionUtils.isEmpty(adjFileInfoPerm)) {
+            qFilters.addAll(adjFileInfoPerm);
+        }
+
+        Date effectiveDate = new Date();
+        long orgId = this.getModel().getDataEntity().getLong("org.id");
+        qFilters.add(new QFilter("org.id", QCP.equals, orgId));
+        if (effectiveDate != null) {
+            formShowParameter.setCustomParam("effectiveDate", SWCDateTimeUtils.format(effectiveDate, "yyyy-MM-dd"));
+        }
+
+        formShowParameter.setListFilterParameter(listFilterParameter);
+        formShowParameter.setCloseCallBack(new CloseCallBack(this, "CALLBACK_CLOSE_ADD_ADJFILE"));
+        formShowParameter.setCaption(ResManager.loadKDString("请添加代发人员", "ApplyBillEdit_1", "swc-hcdm-formplugin", new Object[0]));
+//        Long billId = (Long)this.getModel().getDataEntity().getPkValue();
+//        formShowParameter.setCustomParam("billid", String.valueOf(billId));
+//        formShowParameter.setCustomParam("addPersonFlag", Boolean.TRUE.toString());
+//        formShowParameter.setCustomParam("isHistoryPage", Boolean.TRUE.toString());
+//        formShowParameter.setCustomParam("hisPage", "versionListPage");
+//        formShowParameter.setCustomParam("option", "hisversioninfo");
+        this.getView().showForm(formShowParameter);
+    }
+
+    @Override
+    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
+        super.closedCallBack(closedCallBackEvent);
+        String actionId = closedCallBackEvent.getActionId();
+        Object returnData = closedCallBackEvent.getReturnData();
+        if (CALLBACK_CLOSE_ADD_ADJFILE.equals(actionId) && returnData != null) {
+            this.onCloseCallbackAddAdjFile(closedCallBackEvent);
+        }
+    }
+
+    private void onCloseCallbackAddAdjFile(ClosedCallBackEvent args) {
+        IDataModel model = this.getModel();
+        ListSelectedRowCollection selectedRows = (ListSelectedRowCollection) args.getReturnData();
+        Object[] primaryKeyObjs = selectedRows.getPrimaryKeyValues();
+        List<Long> ids = Arrays.stream(primaryKeyObjs).map(obj -> (Long)obj).collect(Collectors.toList());
+        QFilter filter = new QFilter("id", QCP.in, ids);
+        String selectFields = "employee.id, employee.name, employee.empnumber, empposorgrel.adminorg.id";
+        DynamicObject[] adjFiles = SALARYFILE_HELPER.load(selectFields, new QFilter[]{filter});
+        DynamicObjectCollection entryCols = model.getDataEntity(true).getDynamicObjectCollection("nckd_entryentity");
+        model.beginInit();
+        for (DynamicObject adjFile : adjFiles) {
+            DynamicObject entry = entryCols.addNew();
+            entry.set("nckd_employee", adjFile.getDynamicObject("employee"));
+            entry.set("nckd_adminorg", adjFile.getDynamicObject("empposorgrel.adminorg"));
+        }
+        model.endInit();
+        this.getView().updateView("nckd_entryentity");
+    }
+}