|
@@ -20,7 +20,9 @@ import kd.bos.entity.operate.result.OperateErrorInfo;
|
|
|
import kd.bos.entity.operate.result.OperationResult;
|
|
|
import kd.bos.entity.validate.ValidateResult;
|
|
|
import kd.bos.ext.hr.metadata.edit.MulPersonEdit;
|
|
|
+import kd.bos.ext.hr.metadata.edit.MulQueryEdit;
|
|
|
import kd.bos.form.*;
|
|
|
+import kd.bos.form.control.Control;
|
|
|
import kd.bos.form.control.EntryGrid;
|
|
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
|
|
import kd.bos.form.control.events.EntryGridBindDataEvent;
|
|
@@ -29,6 +31,7 @@ import kd.bos.form.control.events.ItemClickEvent;
|
|
|
import kd.bos.form.events.*;
|
|
|
import kd.bos.form.field.BasedataEdit;
|
|
|
import kd.bos.form.field.DateEdit;
|
|
|
+import kd.bos.form.field.MulBasedataEdit;
|
|
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
|
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
|
|
import kd.bos.form.field.events.DateClickListener;
|
|
@@ -38,14 +41,18 @@ import kd.bos.list.ListShowParameter;
|
|
|
import kd.bos.logging.Log;
|
|
|
import kd.bos.logging.LogFactory;
|
|
|
import kd.bos.mvc.SessionManager;
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
import kd.bos.orm.util.CollectionUtils;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import kd.bos.servicehelper.QueryServiceHelper;
|
|
|
import kd.bos.servicehelper.operation.OperationServiceHelper;
|
|
|
import kd.bos.servicehelper.workflow.WorkflowServiceHelper;
|
|
|
import kd.hr.hbp.bussiness.cert.HRCertCommonHelper;
|
|
|
import kd.hr.hbp.bussiness.cert.HRCertNoticeTypeEnum;
|
|
|
import kd.hr.hbp.common.util.*;
|
|
|
import kd.hr.hbp.formplugin.web.HRDataBaseEdit;
|
|
|
+import kd.hrmp.hrpi.business.infrastructure.utils.QFilterUtil;
|
|
|
import kd.tdc.tdcs.bussiness.formservice.FormCommonService;
|
|
|
import kd.tdc.tdcs.bussiness.license.TDCSCertCommonHelper;
|
|
|
import kd.tdc.tjga.business.application.quickchange.BatchChangeGradeLevelApplication;
|
|
@@ -70,13 +77,17 @@ public class AdjustJobBillEdit extends HRDataBaseEdit implements BeforeF7SelectL
|
|
|
super.registerListener(e);
|
|
|
MulPersonEdit ermanfileF7 = (MulPersonEdit)this.getControl("ermanfiles");
|
|
|
ermanfileF7.addBeforeF7SelectListener(this);
|
|
|
+ MulBasedataEdit muladjFileF7 = (MulBasedataEdit) this.getControl("nckd_muladjrecord");
|
|
|
+ muladjFileF7.addBeforeF7SelectListener(this);
|
|
|
BasedataEdit hrbu = (BasedataEdit)this.getControl("hrbu");
|
|
|
hrbu.addBeforeF7SelectListener(this);
|
|
|
BasedataEdit jobGrade = (BasedataEdit)this.getControl("jobgrade");
|
|
|
jobGrade.addBeforeF7SelectListener(this);
|
|
|
BasedataEdit jobLevel = (BasedataEdit)this.getControl("joblevel");
|
|
|
jobLevel.addBeforeF7SelectListener(this);
|
|
|
- this.addItemClickListeners(new String[]{"advcontoolbarap"});
|
|
|
+ BasedataEdit standardItem = (BasedataEdit)this.getControl("nckd_standarditem");
|
|
|
+ standardItem.addBeforeF7SelectListener(this);
|
|
|
+ this.addItemClickListeners(new String[]{"advcontoolbarap","nckd_advcontoolbarap"});
|
|
|
DateEdit dateEdit = (DateEdit)this.getControl("changeeffdate");
|
|
|
dateEdit.addDateClickListener(this);
|
|
|
EntryGrid changeEntry = (EntryGrid)this.getControl("changeentry");
|
|
@@ -404,6 +415,11 @@ public class AdjustJobBillEdit extends HRDataBaseEdit implements BeforeF7SelectL
|
|
|
BasedataEdit talentfile = (BasedataEdit)this.getControl("ermanfiles");
|
|
|
talentfile.click();
|
|
|
}
|
|
|
+ if(HRStringUtils.equals(key, "nckd_addsalemp")) {
|
|
|
+ (new ControlDataSyn()).entryToMulBaseEdit(this, "nckd_muladjrecord", "nckd_entryentity", "nckd_adjrecord");
|
|
|
+ BasedataEdit muladjFile = (BasedataEdit)this.getControl("nckd_muladjrecord");
|
|
|
+ muladjFile.click();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
|
@@ -420,6 +436,26 @@ public class AdjustJobBillEdit extends HRDataBaseEdit implements BeforeF7SelectL
|
|
|
formShowParameter.setCloseCallBack(new CloseCallBack(this, "ermanfiles"));
|
|
|
}
|
|
|
|
|
|
+ //多选定调薪信息之前,过滤当前版本
|
|
|
+ if("nckd_muladjrecord".equals(name)) {
|
|
|
+ List<QFilter> customQFilters = beforeF7SelectEvent.getCustomQFilters();
|
|
|
+ customQFilters.add(new QFilter("iscurrentversion", "=", "1"));
|
|
|
+ formShowParameter.setCloseCallBack(new CloseCallBack(this, "muladjrecord"));
|
|
|
+ }
|
|
|
+
|
|
|
+ //过滤,只能选择定调薪信息里面的定调薪项目
|
|
|
+ if("nckd_standarditem".equals(name)) {
|
|
|
+ int currRow = this.getModel().getEntryCurrentRowIndex("nckd_entryentity");
|
|
|
+ DynamicObject entryRowEntity = this.getModel().getEntryRowEntity("nckd_entryentity", currRow);
|
|
|
+ DynamicObject fileObj = entryRowEntity.getDynamicObject("nckd_adjrecord");
|
|
|
+ QFilter filter = QFilterUtil.getCurrentQf();
|
|
|
+ filter.and("salaryadjfile.id", QCP.equals, fileObj.getPkValue());
|
|
|
+ DynamicObjectCollection records = QueryServiceHelper.query("hcdm_salaryadjrecord", "standarditem.id", new QFilter[]{filter});
|
|
|
+ List<Long> itemIds = records.stream().map((dyx -> dyx.getLong("standarditem.id"))).collect(Collectors.toList());
|
|
|
+ List<QFilter> customQFilters = beforeF7SelectEvent.getCustomQFilters();
|
|
|
+ customQFilters.add(new QFilter("id", QCP.in, itemIds));
|
|
|
+ }
|
|
|
+
|
|
|
if ("hrbu".equals(name)) {
|
|
|
formShowParameter.setMultiSelect(false);
|
|
|
}
|
|
@@ -445,6 +481,57 @@ public class AdjustJobBillEdit extends HRDataBaseEdit implements BeforeF7SelectL
|
|
|
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
|
|
String actionId = closedCallBackEvent.getActionId();
|
|
|
long entryGradeId;
|
|
|
+
|
|
|
+ if("muladjrecord".equals(actionId)) {
|
|
|
+ List<Object> primaryIds = getCallBackSelectIds(closedCallBackEvent);
|
|
|
+ if (HRCollUtil.isEmpty(primaryIds)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (primaryIds.size() >= 100000) {
|
|
|
+ this.getView().showErrorNotification(ResManager.loadKDString("最多只能添加100000条数据。", "BatchChangeGradeLevelEdit_11", "tdc-tjga-formplugin", new Object[0]));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ BatchChangeGradeLevelFormService formService = new BatchChangeGradeLevelFormService();
|
|
|
+ List<Long> primaryIdList = (List)primaryIds.stream().map((p) -> {
|
|
|
+ return (Long)p;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("nckd_entryentity");
|
|
|
+ Set<Long> existsFileId = (Set)entryEntity.stream().map((d) -> {
|
|
|
+ return d.getLong("nckd_adjrecord.id");
|
|
|
+ }).collect(Collectors.toSet());
|
|
|
+ Set<Long> checkProcessingId = (Set)primaryIdList.stream().filter((id) -> {
|
|
|
+ return !existsFileId.contains(id);
|
|
|
+ }).collect(Collectors.toSet());
|
|
|
+ Set<Long> processingFileIds = (Set)formService.showProcessingEmp(this, checkProcessingId);
|
|
|
+ Set<Long> notProcessingIds = (Set)primaryIdList.stream().filter((id) -> {
|
|
|
+ return !processingFileIds.contains(id);
|
|
|
+ }).collect(Collectors.toSet());
|
|
|
+ this.getModel().setValue("nckd_muladjrecord", notProcessingIds.toArray());
|
|
|
+ Set<Long> newIdSet = (new ControlDataSyn()).mulBaseEditToEntry(this, "nckd_muladjrecord", new String[]{"id"}, "nckd_entryentity", new String[]{"nckd_adjrecord"});
|
|
|
+ DynamicObjectCollection changeCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("nckd_entryentity");
|
|
|
+ Set<Long> empIdSet = (Set)changeCollection.stream().filter((d) -> {
|
|
|
+ return newIdSet.contains(d.getLong("nckd_adjrecord.id"));
|
|
|
+ }).map((d) -> {
|
|
|
+ return d.getLong("nckd_adjrecord.id");
|
|
|
+ }).collect(Collectors.toSet());
|
|
|
+ IDataModel model = this.getModel();
|
|
|
+ model.beginInit();
|
|
|
+ for(int rowNum = 0; rowNum < changeCollection.size(); ++rowNum) {
|
|
|
+ DynamicObject changeRowObj = (DynamicObject)changeCollection.get(rowNum);
|
|
|
+ DynamicObject record = changeRowObj.getDynamicObject("nckd_adjrecord");
|
|
|
+ Long adjFileId = record.getLong("salaryadjfile.id");
|
|
|
+ DynamicObject adjFile = BusinessDataServiceHelper.loadSingle(adjFileId, "hcdm_adjfileinfo");
|
|
|
+ model.setValue("nckd_adjfile", adjFile, rowNum);
|
|
|
+ model.setValue("nckd_salname", adjFile.getString("person.name"), rowNum);
|
|
|
+ model.setValue("nckd_salnumber", adjFile.getString("person.number"), rowNum);
|
|
|
+ model.setValue("nckd_standarditem", record.getDynamicObject("standarditem"), rowNum);
|
|
|
+ }
|
|
|
+ model.endInit();
|
|
|
+ this.getView().updateView("nckd_entryentity");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if ("ermanfiles".equals(actionId)) {
|
|
|
List<Object> primaryIds = getCallBackSelectIds(closedCallBackEvent);
|
|
|
if (HRCollUtil.isEmpty(primaryIds)) {
|