浏览代码

1.工牌打印模板获取一级部门插件

Tyx 2 周之前
父节点
当前提交
5d9593e562

+ 58 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/hom/print/EmployeeCardPrintPlugin.java

@@ -0,0 +1,58 @@
+package nckd.jimin.jyyy.hr.hom.print;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.print.core.data.DataRowSet;
+import kd.bos.print.core.data.field.TextField;
+import kd.bos.print.core.plugin.AbstractPrintPlugin;
+import kd.bos.print.core.plugin.event.AfterLoadDataEvent;
+import kd.bos.print.core.plugin.event.BeforeLoadDataEvent;
+import kd.bos.print.core.plugin.event.CustomDataLoadEvent;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+import nckd.jimin.jyyy.hr.plugin.workflow.HRWorkflowUtils;
+
+/**
+ * 工牌打印插件 Tyx 2025-07-03
+ * 获取一级部门负责人
+ * 数据源主表是通用协作详情,取通用协作详情上的入职单
+ */
+public class EmployeeCardPrintPlugin extends AbstractPrintPlugin implements Plugin {
+
+    @Override
+    public void beforeLoadData(BeforeLoadDataEvent evt) {
+        super.beforeLoadData(evt);
+    }
+
+    @Override
+    public void loadCustomData(CustomDataLoadEvent evt) {
+        super.loadCustomData(evt);
+        String queryName = evt.getDataSource().getDsName();
+        //获取到入职办理单PK,去找一级部门
+        if("nckd_customquery".equals(queryName)) {
+            //获取通用协作详情ID
+            Object pkId = evt.getDataSource().getPkId();
+            String entityId = evt.getDataSource().getFormId();
+            DynamicObject handleDyn = BusinessDataServiceHelper.loadSingle(pkId, entityId);
+            //获取入职单
+            DynamicObject onBrdDyn = handleDyn.getDynamicObject("onbrdid");
+            Long adminOrgId = onBrdDyn.getLong("aadminorg.id");
+            Long firstDeptId = HRWorkflowUtils.getFirstDeptId(adminOrgId);
+            if(firstDeptId != 0L) {
+                DynamicObject firstDept = BusinessDataServiceHelper.loadSingle(firstDeptId, "haos_adminorghr");
+                //一级部门名称
+                String firstDeptName = firstDept.getString("name");
+                evt.getCustomDataRows().clear();
+                DataRowSet dataRowSet = new DataRowSet();
+                dataRowSet.put("nckd_firstdept", new TextField(firstDeptName));
+                evt.getCustomDataRows().add(dataRowSet);
+            }
+
+
+        }
+    }
+
+    @Override
+    public void afterLoadData(AfterLoadDataEvent evt) {
+        super.afterLoadData(evt);
+    }
+}