|
@@ -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");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|