Prechádzať zdrojové kódy

1.入职申请/办理反写候选人联系信息表,然后通过【单据与人员信息映射配置】反写回人员档案-联系方式
2.扩展插件,员工入职自动生成平台用户,用户名为人员工号

Tyx 1 mesiac pred
rodič
commit
9192a8a5ca

+ 47 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/hom/explugin/ContactInfoServiceImplEx.java

@@ -0,0 +1,47 @@
+package nckd.jimin.jyyy.hr.hom.explugin;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.form.IFormView;
+import kd.bos.logging.Log;
+import kd.bos.logging.LogFactory;
+import kd.hr.hom.business.application.extension.IContactInfoService;
+
+public class ContactInfoServiceImplEx implements IContactInfoService {
+    private static final Log log = LogFactory.getLog(ContactInfoServiceImplEx.class);
+
+    public ContactInfoServiceImplEx() {
+
+    }
+
+    @Override
+    public String getExtPropertiesWithAddress() {
+        return "candidate,addresstype,countrycode,addressinfo,nckd_companyemail";
+    }
+
+    @Override
+    public void initViewWithAddress(IFormView iFormView, DynamicObjectCollection dynamicObjectCollection) {
+        log.info("initViewWithAddress");
+    }
+
+    @Override
+    public void setValueBeforeSaveAddress(IFormView iFormView, DynamicObjectCollection dynamicObjectCollection) {
+        log.info("setValueBeforeSaveAddress");
+    }
+
+    @Override
+    public String getExtProperties() {
+        log.info("getExtProperties");
+        return null;
+    }
+
+    @Override
+    public void initViewForExt(IFormView iFormView, DynamicObject dynamicObject) {
+        log.info("initViewForExt");
+    }
+
+    @Override
+    public void setValueBeforeSave(IFormView iFormView, DynamicObject dynamicObject) {
+        log.info("setValueBeforeSave");
+    }
+}

+ 53 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/hom/operate/OnbrdInfoSaveOpPlugin.java

@@ -0,0 +1,53 @@
+package nckd.jimin.jyyy.hr.hom.operate;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.utils.ObjectUtils;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.PreparePropertysEventArgs;
+import kd.bos.entity.plugin.args.AfterOperationArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+/**
+ * Module           :核心人力云-入职管理-入职人员管理-入职申请
+ * Description      :入职申请/办理保存插件
+ * @author Tyx
+ * @date  2025/5/14
+ * 标识 hom_onbrdinfo
+ */
+public class OnbrdInfoSaveOpPlugin extends AbstractOperationServicePlugIn implements Plugin {
+
+    @Override
+    public void onPreparePropertys(PreparePropertysEventArgs e) {
+        super.onPreparePropertys(e);
+        e.getFieldKeys().add("candidate");
+        e.getFieldKeys().add("nckd_companyemail");
+    }
+
+    /**
+     * 在标品保存之后处理公司电子邮箱字段,把公司电子邮箱反写回候选人对应的【候选人联系信息表】
+     * 然后再通过标品的
+     * @param e
+     */
+    @Override
+    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
+        super.afterExecuteOperationTransaction(e);
+        //查询当前版本的候选人联系信息表
+        DynamicObject[] bills = e.getDataEntities();
+        for(DynamicObject bill : bills) {
+            //候选人ID
+            long candidateId = bill.getLong("candidate.id");
+            //查询候选人联系信息表
+            QFilter filter = new QFilter("candidate.id", QCP.equals, candidateId);
+            filter.and("iscurrentversion", QCP.equals, "1");
+            DynamicObject contactInfo = BusinessDataServiceHelper.loadSingle("hcf_cancontactinfo", new QFilter[]{filter});
+            if(!ObjectUtils.isEmpty(contactInfo)) {
+                contactInfo.set("nckd_companyemail", bill.getString("nckd_companyemail"));
+                SaveServiceHelper.save(new DynamicObject[]{contactInfo});
+            }
+        }
+    }
+}

+ 23 - 0
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/hrmp/hrpi/explugin/SyncUserServiceEx.java

@@ -0,0 +1,23 @@
+package nckd.jimin.jyyy.hr.hrmp.hrpi.explugin;
+
+import kd.bos.permission.model.UserParam;
+import kd.hr.hbp.business.service.ext.ISyncUserService;
+import kd.hr.hbp.common.ext.SyncParamModel;
+
+import java.util.Map;
+
+public class SyncUserServiceEx implements ISyncUserService {
+    /**
+     * 替换生成平台用户的用户名为人员工号
+     * SyncParamModel的属性 UserParam,是同步到平台的入参
+     * UserParam.getUserParam()是参数的具体入参,修改dataMap 的值put替换标品的就可以 SyncParamModel 里面有自然人信息可以用来查询
+     * @param syncParamModel
+     */
+    @Override
+    public void updateSyncUserParam(SyncParamModel syncParamModel) {
+        UserParam userParam = syncParamModel.getUserParam();
+        Map<String, Object> dataMap = userParam.getDataMap();
+        String number = syncParamModel.getPersonDy().getString("number");   //人员工号
+        dataMap.put("username", number);
+    }
+}