|
|
@@ -45,6 +45,10 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
* 调动单
|
|
|
*/
|
|
|
private static final String transferEntityName = "hdm_transferapply";
|
|
|
+ /**
|
|
|
+ * 定调薪信息
|
|
|
+ */
|
|
|
+ private static final String adjrecordEntityName = "hcdm_decadjrecord";
|
|
|
|
|
|
private static int days = 5;
|
|
|
|
|
|
@@ -52,10 +56,12 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
|
|
|
private DynamicObjectCollection salaryTypeDyns = null;
|
|
|
private DynamicObject salaryRankDyn = null;
|
|
|
+ private DynamicObject standardItemDyn = null;
|
|
|
|
|
|
@Override
|
|
|
- public void createNewData(BizDataEventArgs e) {
|
|
|
- super.createNewData(e);
|
|
|
+ public void initialize() {
|
|
|
+ super.initialize();
|
|
|
+
|
|
|
/**
|
|
|
* 获取 公共自定义参数 PENDSALARYADJ_DAYS
|
|
|
*/
|
|
|
@@ -80,6 +86,18 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
QFilter qFilter12 = new QFilter("number", QCP.equals, "01");
|
|
|
salaryRankDyn = QueryServiceHelper.queryOne("hsbs_salaryrank","id,number,name",new QFilter[]{qFilter12});
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取 定调薪项目 岗位工资标准
|
|
|
+ */
|
|
|
+ QFilter qFilter13 = new QFilter("name", QCP.equals, "岗位工资标准");
|
|
|
+ standardItemDyn = QueryServiceHelper.queryOne("hsbs_standarditem","id,number,name",new QFilter[]{qFilter13});
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void createNewData(BizDataEventArgs e) {
|
|
|
+ super.createNewData(e);
|
|
|
+
|
|
|
//加载入职单与调动单的数据
|
|
|
getAdjustBillData();
|
|
|
}
|
|
|
@@ -228,7 +246,7 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
/**
|
|
|
* 查询调动单
|
|
|
*/
|
|
|
- String selectField1 = "id,billno,b_effectivedate,ba_em_tid,ba_em_empnumber,bb_po_position.id,aposition.id,bb_po_adminorg.id,aorg.id,bb_po_job.jobseq.id,ajob.jobseq.id";
|
|
|
+ String selectField1 = "id,billno,b_effectivedate,bb_em_tid,ba_em_empnumber,bb_po_position.id,aposition.id,bb_po_adminorg.id,aorg.id,bb_po_job.jobseq.id,ajob.jobseq.id";
|
|
|
QFilter qFilter12 = new QFilter("billstatus", QCP.equals, "C"); // 单据状态 = 已审核
|
|
|
QFilter qFilter13 = new QFilter("b_effectivedate", QCP.large_equals, daysAgo); //实际调动日期
|
|
|
|
|
|
@@ -257,15 +275,18 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
(existing, replacement) -> existing // 保留前面的值
|
|
|
));
|
|
|
|
|
|
+ Map<Long, DynamicObject> adjRecordMap = getAdjRecordInfo(transferDyns);
|
|
|
+
|
|
|
for(DynamicObject transferDyn: transferDyns){
|
|
|
DynamicObject billDyn2 = billMap1.get(transferDyn.getLong("id"));
|
|
|
if(billDyn2 != null) continue;
|
|
|
DynamicObject dyn = BusinessDataServiceHelper.newDynamicObject(entityName);
|
|
|
+ Long employeeID = transferDyn.getLong("bb_em_tid");
|
|
|
dyn.set("billno", transferDyn.getString("billno"));
|
|
|
dyn.set("nckd_billid", transferDyn.getLong("id"));
|
|
|
dyn.set("nckd_billtype", "调动单");
|
|
|
dyn.set("billstatus", "A"); ///待处理
|
|
|
- dyn.set("nckd_employeefield", transferDyn.getLong("ba_em_tid"));
|
|
|
+ dyn.set("nckd_employeefield", employeeID);
|
|
|
dyn.set("nckd_changedate", transferDyn.getDate("b_effectivedate"));
|
|
|
dyn.set("nckd_salaryadjus", salaryTypeDyns.get(1).getLong("id")); //定调薪类型
|
|
|
/**
|
|
|
@@ -274,7 +295,10 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
dyn.set("nckd_oldhradminorg", transferDyn.getLong("bb_po_adminorg.id")); //部门
|
|
|
dyn.set("nckd_oldposition", transferDyn.getLong("bb_po_position.id")); //岗位
|
|
|
dyn.set("nckd_oldjobseqhr", transferDyn.getLong("bb_po_job.jobseq.id")); //职位序列
|
|
|
- dyn.set("nckd_oldsalaryrank", salaryRankDyn.getLong("id")); //薪档
|
|
|
+ DynamicObject adjRecordDyn = adjRecordMap.get(employeeID);
|
|
|
+ if(adjRecordDyn != null) {
|
|
|
+ dyn.set("nckd_oldsalaryrank", adjRecordDyn.getLong("salaryrank.id")); //薪档
|
|
|
+ }
|
|
|
/**
|
|
|
* 调动后
|
|
|
*/
|
|
|
@@ -295,4 +319,41 @@ public class PendingSalaryAdjListPlugin extends AbstractListPlugin implements Pl
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取调薪记录
|
|
|
+ * @param transferDyns 通过调动单查询出人员ID
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Map<Long, DynamicObject> getAdjRecordInfo(DynamicObjectCollection transferDyns) {
|
|
|
+ Map<Long, DynamicObject> transferMap = (Map)transferDyns.stream().collect(Collectors.toMap((obj) -> {
|
|
|
+ return obj.getLong("bb_em_tid");
|
|
|
+ }, (obj) -> {
|
|
|
+ return obj;
|
|
|
+ }, (k1, k2) -> {
|
|
|
+ return k1;
|
|
|
+ }));
|
|
|
+
|
|
|
+ List<Long> personIDs = transferMap.keySet().stream().collect(Collectors.toList());
|
|
|
+
|
|
|
+ String selectField = "id,adjfile.employee.id,adjfile.datastatus,adjfile.iscurrentversion,employee.id,salaryrank.id";
|
|
|
+ QFilter qFilter1 = new QFilter("adjfile.employee.id", QCP.in, personIDs);
|
|
|
+ QFilter qFilter2 = new QFilter("adjfile.datastatus", QCP.equals, "1");
|
|
|
+ QFilter qFilter3 = new QFilter("adjfile.iscurrentversion", QCP.equals, "1");
|
|
|
+ QFilter qFilter4= new QFilter("salaryrank.id", QCP.equals, standardItemDyn.getLong("id"));
|
|
|
+ QFilter qFilter5= new QFilter("iscurrentdata", QCP.equals, "1");
|
|
|
+
|
|
|
+ DynamicObjectCollection adjDyns = QueryServiceHelper.query(adjrecordEntityName, selectField,new QFilter[]{qFilter1,qFilter2,qFilter3,qFilter4,qFilter5});
|
|
|
+
|
|
|
+
|
|
|
+ Map<Long, DynamicObject> adjRecordMap = (Map)adjDyns.stream().collect(Collectors.toMap((obj) -> {
|
|
|
+ return obj.getLong("employee.id");
|
|
|
+ }, (obj) -> {
|
|
|
+ return obj;
|
|
|
+ }, (k1, k2) -> {
|
|
|
+ return k1;
|
|
|
+ }));
|
|
|
+
|
|
|
+ return adjRecordMap;
|
|
|
+ }
|
|
|
}
|