Browse Source

1.薪酬/职级调整单,职级调整分录携带最新任职的职位

Tyx 23 hours ago
parent
commit
6a86586150

+ 26 - 1
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/swc/hcdm/formplugin/web/AdjustJobBillEdit.java

@@ -11,6 +11,7 @@ import kd.bos.dataentity.OperateOption;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.dataentity.resource.ResManager;
+import kd.bos.dataentity.utils.ObjectUtils;
 import kd.bos.entity.datamodel.IDataModel;
 import kd.bos.entity.datamodel.ListSelectedRow;
 import kd.bos.entity.datamodel.ListSelectedRowCollection;
@@ -607,7 +608,15 @@ public class AdjustJobBillEdit extends HRDataBaseEdit implements BeforeF7SelectL
                         Set<Long> ids = (Set)permissionHrBuMap.get("PermissionHrBuIds");
                         if (superUser || ids.contains(entryGradeId)) {
                             model.setValue("hrbu", entryGradeId, rowNum);
-                            model.setValue("job", empJobObj.getLong("job.id"), rowNum);
+                            /**
+                             * 2025-07-30 Tyx 因业务做调动申请时,只变更岗位/职位,不变更职级职等,人员档案中职级职等不会生成新数据
+                             * 这里改成取人员最新任职的职位/职级方案/职等方案
+                             */
+                            // 人员ID
+                            Long personId = changeRowObj.getLong("person.id");
+                            // 根据人员ID获取最新任职信息上的职位ID
+                            Long jobId = getLatestJobIdByPersonId(personId);
+                            model.setValue("job", jobId, rowNum);
                             model.setValue("seqfamclass", seqFamilyClass, rowNum);
                             DynamicObject entryRowEntity = this.getModel().getEntryRowEntity("changeentry", rowNum);
                             Long jobGradeScmId = formService.getJobGradeOrLevelScm(entryRowEntity.getDynamicObject("job"), "jobgradescm");
@@ -789,4 +798,20 @@ public class AdjustJobBillEdit extends HRDataBaseEdit implements BeforeF7SelectL
     public void entryGridBindData(EntryGridBindDataEvent e) {
         this.setEntryEnable();
     }
+
+    public Long getLatestJobIdByPersonId(Long personId) {
+        QFilter filter = QFilterUtil.getCurrentQf();
+        filter.and("isprimary", QCP.equals, "1");
+        filter.and("person.id", QCP.equals, personId);
+        filter.and("startdate", QCP.less_equals, new Date());
+        filter.and("enddate", QCP.large_equals, new Date());
+        DynamicObject dyn = QueryServiceHelper.queryOne("hrpi_empposorgrel", "job.id", new QFilter[]{filter});
+        if(ObjectUtils.isEmpty(dyn)) {
+            return 0L;
+        }
+        else {
+            return dyn.getLong("job.id");
+        }
+    }
+
 }