|
|
@@ -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");
|
|
|
+ }
|
|
|
+}
|