Sfoglia il codice sorgente

1.Moka单点登录优化

Tyx 2 settimane fa
parent
commit
0470dfe893

+ 41 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/hom/print/OnBrdEmployeeCardPrintPlugin.java

@@ -0,0 +1,41 @@
+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.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 OnBrdEmployeeCardPrintPlugin extends AbstractPrintPlugin implements Plugin {
+    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 onBrdDyn = BusinessDataServiceHelper.loadSingle(pkId, entityId);
+            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);
+            }
+        }
+    }
+}

+ 3 - 3
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsrsc/plugin/api/MokaRedirectUrlApi.java

@@ -43,10 +43,10 @@ public class MokaRedirectUrlApi implements Serializable {
     ) {
         try {
             // 操作人邮箱
-            String email = data.getJSONObject("operator").getString("email");
+            String email = data.getJSONObject("operator").getString("number");
             if (email == null) {
-                log.error("MokaRedirectUrlApi:入参邮箱为空");
-                throw new KDException("入参邮箱为空");
+                log.error("MokaRedirectUrlApi:入参工号为空");
+                throw new KDException("入参工号为空");
             }
             JSONObject responseJson = getKingdeeToken();
 

+ 6 - 6
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsrsc/plugin/thirdapp/auth/MokaThirdAppAuthtication.java

@@ -59,20 +59,20 @@ public class MokaThirdAppAuthtication extends ThirdAppAuthtication {
                         // 第三方数据id
                         new QFilter("nckd_accesstoken", QCP.equals, token),
                         // 创建时间:5分钟内
-                        new QFilter("createtime", QCP.large_equals, MokaApiUtil.offsetMinute(-5)),
+                        new QFilter("createtime", QCP.large_equals, MokaApiUtil.offsetMinute(5)),
                 }
         );
         if (tokenObj == null) {
             return result;
         }
-        String email = tokenObj.getString("nckd_email");
-        LOG.info("MokaThirdAppAuthtication.appAuthtication.email:{}", email);
+        String number = tokenObj.getString("nckd_email");
+        LOG.info("MokaThirdAppAuthtication.appAuthtication.email:{}", number);
         // 系统中是否存在该邮箱用户
         DynamicObject user = BusinessDataServiceHelper.loadSingle(
                 "bos_user",
                 new QFilter[]{
                         // 操作人邮箱
-                        new QFilter("email", QCP.equals, email),
+                        new QFilter("number", QCP.equals, number),
                 }
         );
         if (user == null) {
@@ -81,9 +81,9 @@ public class MokaThirdAppAuthtication extends ThirdAppAuthtication {
 
         result.setSucceed(true);
         // 用户标识,包括手机号、邮箱、用户名
-        result.setUserFlag(email);
+        result.setUserFlag(number);
         // 用户类型 枚举类UserType 对应用户标识
-        result.setUserType(UserType.EMAIL);
+        result.setUserType(UserType.WORKER_NUMBER);
         return result;
     }
 }