Преглед изворни кода

1.招聘需求/Offer/候选人列表过滤
2.招聘需求提交生效逻辑

Tyx пре 3 дана
родитељ
комит
d1de5ee742

+ 43 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsc/tso/formplugin/web/offer/infopage/OfferBaseFilterListPlugin.java

@@ -0,0 +1,43 @@
+package nckd.jimin.jyyy.hr.tsc.tso.formplugin.web.offer.infopage;
+
+import kd.bos.form.events.SetFilterEvent;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.permission.PermissionServiceHelper;
+import kd.bos.servicehelper.user.UserServiceHelper;
+import kd.hrmp.hrpi.business.domian.service.impl.PersonServiceImpl;
+import kd.sdk.plugin.Plugin;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Offer列表过滤插件
+ * 默认按照制单人 = 当前用户 or Offer招聘需求负责人 = 当前HR人员
+ * 如果当前用户在 角色编码 = S-001 下,不受控制
+ * @author :Tyx
+ * @since :2025-07-14
+ */
+public class OfferBaseFilterListPlugin extends AbstractListPlugin implements Plugin {
+
+    @Override
+    public void setFilter(SetFilterEvent e) {
+        super.setFilter(e);
+        //当前用户ID
+        Long userId = UserServiceHelper.getCurrentUserId();
+        //查询角色是否在 编码=S-001 的角色下 在的话不做任何过滤
+        List<Long> userIds = PermissionServiceHelper.getUsersByRoleNum("S-001");
+        if(userIds.contains(userId))
+            return;
+
+        Long personId = 999999L;
+        Map<String, Object> map = PersonServiceImpl.getInstance().getPersonModelIdByUserId(userId);
+        if(Boolean.valueOf(map.get("success").toString())) {
+            personId = Long.valueOf(((Map) map.get("data")).get("person").toString());
+        }
+        QFilter filter = new QFilter("creator.id", QCP.equals, userId);
+        filter.or("nckd_manager.id",QCP.equals, personId);
+        e.addCustomQFilter(filter);
+    }
+}

+ 1 - 1
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsc/tso/formplugin/web/offer/infopage/WaitOfferBaseFormPluginEx.java

@@ -62,7 +62,7 @@ public class WaitOfferBaseFormPluginEx extends AbstractFormPlugin implements Plu
         if(!ObjectUtil.isEmpty(applyEntry)) {
             model.setValue("peadminorg", applyEntry.getLong("entryentity.nckd_recruitorg.id"));
             model.setValue("peposition", applyEntry.getLong("entryentity.nckd_recruitpost.id"));
-            model.setValue("nckd_responser", applyEntry.getLong("nckd_person.id"));
+            model.setValue("nckd_manager", applyEntry.getLong("nckd_person.id"));
             model.setValue("nckd_isuseapply", true);
         }
     }

+ 9 - 5
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsrsc/plugin/form/AppFileFilterListPlugin.java

@@ -2,6 +2,8 @@ package nckd.jimin.jyyy.hr.tsrsc.plugin.form;
 
 import kd.bos.form.events.SetFilterEvent;
 import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.permission.PermissionServiceHelper;
 import kd.bos.servicehelper.user.UserServiceHelper;
 import kd.hrmp.hrpi.business.domian.service.impl.PersonServiceImpl;
@@ -12,7 +14,7 @@ import java.util.Map;
 
 /**
  * 候选人列表过滤插件
- * 默认按照制单人 = 当前用户 or 对应招聘需求的招聘需求负责人 = 当前HR人员
+ * 默认按照制单人 = 当前用户 or 对应应聘登记表的招聘需求负责人工号 = 当前HR人员工号
  * 如果当前用户在 角色编码 = S-001 下,不受控制
  * @author :Tyx
  * @since :2025-07-09
@@ -24,12 +26,14 @@ public class AppFileFilterListPlugin extends AbstractListPlugin implements Plugi
         super.setFilter(e);
         //当前用户ID
         Long userId = UserServiceHelper.getCurrentUserId();
-        //查询角色是否在 编码=S-001 的角色下 在的话不做任何过滤
+        //查询角色是否在 编码 = S-001 的角色下 在的话不做任何过滤
         List<Long> userIds = PermissionServiceHelper.getUsersByRoleNum("S-001");
         if(userIds.contains(userId))
             return;
-        Long personId = 999999L;
-        Map<String, Object> map = PersonServiceImpl.getInstance().getPersonModelIdByUserId(userId);
-
+        Map<String, Object> userInfo = UserServiceHelper.getUserInfoByID(userId);
+        String personNumber = userInfo.get("number").toString();
+        QFilter filter = new QFilter("creator.id", QCP.equals, userId);
+        filter.or("arfrsm.nckd_managernumber",QCP.equals, personNumber);
+        e.addCustomQFilter(filter);
     }
 }

+ 12 - 2
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/tsrsc/plugin/operate/ApplySubmitEffectOpPlugin.java

@@ -9,12 +9,15 @@ import kd.bos.entity.plugin.args.AfterOperationArgs;
 import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
 import kd.bos.exception.KDException;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.bos.servicehelper.user.UserServiceHelper;
 import kd.sdk.plugin.Plugin;
 import nckd.jimin.jyyy.hr.tsrsc.plugin.util.MokaApiUtil;
 import nckd.jimin.jyyy.hr.tsrsc.plugin.workflow.CasRecrApplyMokaWorkFlowPlugin;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.Map;
 
 /**
@@ -36,9 +39,9 @@ public class ApplySubmitEffectOpPlugin extends AbstractOperationServicePlugIn im
     public void afterExecuteOperationTransaction(AfterOperationArgs e) {
         super.afterExecuteOperationTransaction(e);
         DynamicObject[] bills = e.getDataEntities();
-        for (DynamicObject bill : bills) {
+        for (DynamicObject dynamicObject : bills) {
             // 目标单据
-            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bill.getPkValue(), bill.getDynamicObjectType().getName());
+            // DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(bill.getPkValue(), bill.getDynamicObjectType().getName());
             // 申请人数为零
             if (dynamicObject == null || dynamicObject.getInt("nckd_applynum") <= 0) {
                 throw new KDException("申请人数为零!");
@@ -120,6 +123,13 @@ public class ApplySubmitEffectOpPlugin extends AbstractOperationServicePlugIn im
             if (!errList.isEmpty()) {
                 throw new KDException("该年度招聘计划新建Moka招聘需求时,发生以下错误:\r\n" + String.join("\r\n", errList));
             }
+            else {
+                dynamicObject.set("billstatus", "C");
+                dynamicObject.set("auditor", UserServiceHelper.getCurrentUserId());
+                dynamicObject.set("auditdate",new Date());
+                SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
+            }
+
         }
     }
 }