|
@@ -10,7 +10,9 @@ import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
import kd.bos.schedule.api.StopTask;
|
|
|
import kd.bos.schedule.executor.AbstractTask;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
import kd.bos.servicehelper.QueryServiceHelper;
|
|
|
+import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
import nckd.jimin.jyyy.fi.common.constant.BillTypeConstants;
|
|
|
import nckd.jimin.jyyy.fi.common.util.CommonUtils;
|
|
|
import nckd.jimin.jyyy.fi.plugin.operate.Helper.PersonReimQuotaHelper;
|
|
@@ -37,34 +39,42 @@ public class PersonReimLeverSyncTask extends AbstractTask implements StopTask {
|
|
|
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
|
|
log.info("-------- PersonReimLeverSyncTask 启动同步人员报销级别任务 --------");
|
|
|
|
|
|
+ // 查询所有人员的报销级别设置
|
|
|
+ DynamicObject[] reimburseSettingArray = BusinessDataServiceHelper.load("er_reimbursesetting_rel", "user.id,user.number,reimburselevel.id,company.id", QFilter.isNotNull("user.id").toArray());
|
|
|
// 查询当前生效的人员岗位信息
|
|
|
- DynamicObjectCollection positionCol = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPPOSORGREL, "person.id,position.id,company.id", new QFilter[]{
|
|
|
+ DynamicObjectCollection positionCol = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPPOSORGREL, "person.number,company.id", new QFilter[]{
|
|
|
new QFilter("businessstatus", QCP.equals, "1"),
|
|
|
new QFilter("iscurrentversion", QCP.equals, "1"),
|
|
|
new QFilter("datastatus", QCP.equals, "1"),
|
|
|
new QFilter("isprimary", QCP.equals, "1")
|
|
|
});
|
|
|
- Map<Long, Long> personCompanyMap = positionCol.stream().collect(Collectors.toMap(r -> r.getLong("person.id"), r -> r.getLong("company.id"), (k1, k2) -> k1));
|
|
|
+ Map<String, Long> personCompanyMap = positionCol.stream().collect(Collectors.toMap(r -> r.getString("person.number"), r -> r.getLong("company.id"), (k1, k2) -> k1));
|
|
|
// 获取所有人员最新的职级
|
|
|
- Map<Long, Long> personJobMap = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPJOBREL, "person.id,joblevel.id", new QFilter[]{
|
|
|
+ Map<String, Long> personJobMap = QueryServiceHelper.query(BillTypeConstants.HRPI_EMPJOBREL, "person.number,joblevel.id", new QFilter[]{
|
|
|
new QFilter("businessstatus", QCP.equals, "1"),
|
|
|
new QFilter("datastatus", QCP.equals, "1"),
|
|
|
new QFilter("iscurrentversion", QCP.equals, "1")
|
|
|
- }).stream().collect(Collectors.toMap(r -> r.getLong("person.id"), r -> r.getLong("joblevel.id"), (k1, k2) -> k1));
|
|
|
-
|
|
|
+ }).stream().collect(Collectors.toMap(r -> r.getString("person.number"), r -> r.getLong("joblevel.id"), (k1, k2) -> k1));
|
|
|
// 获取人员最新的报销级别
|
|
|
PersonReimQuotaHelper helper = getPersonReimQuotaHelper();
|
|
|
+ // 默认职级
|
|
|
+ DynamicObject defultReimLever = helper.getDefultReimLever();
|
|
|
+ // 通过公司查询共享策略查询报销级别;没有查到就取默认
|
|
|
+ for(DynamicObject reimburseSetting : reimburseSettingArray){
|
|
|
+ String userNumber = reimburseSetting.getString("user.number");
|
|
|
+ Long companyId = reimburseSetting.getLong("company.id");
|
|
|
+ Long personCompanyId = personCompanyMap.get(userNumber);
|
|
|
+ DynamicObject reimLever = null;
|
|
|
+ if(personCompanyId != null && companyId != null && personCompanyId.equals(companyId)) {
|
|
|
+ reimLever = helper.getReimLever(personJobMap.get(userNumber), personCompanyId);
|
|
|
+ }
|
|
|
|
|
|
- for(Map.Entry<Long, Long> entryRow : personJobMap.entrySet()){
|
|
|
- Long personId = entryRow.getKey();
|
|
|
- Long jobLeverId = entryRow.getValue();
|
|
|
- if(personJobMap.containsKey(personId)){
|
|
|
- DynamicObject userInfo = CommonUtils.getUserByHrPersonId(personId);
|
|
|
- helper.syncReimLever(userInfo.getLong("id"),personCompanyMap.get(personId),jobLeverId);
|
|
|
+ if (reimLever == null) {
|
|
|
+ reimLever = defultReimLever;
|
|
|
}
|
|
|
+ reimburseSetting.set("reimburselevel", reimLever.getLong("id"));
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ SaveServiceHelper.save(reimburseSettingArray);
|
|
|
log.info("-------- PersonReimLeverSyncTask 同步人员报销级别任务结束 --------");
|
|
|
}
|
|
|
}
|