|
@@ -10,10 +10,7 @@ import kd.bos.orm.query.QFilter;
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
import kd.bos.servicehelper.QueryServiceHelper;
|
|
|
|
|
|
-import java.util.Calendar;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
public class CalPersonUtil {
|
|
@@ -23,6 +20,12 @@ public class CalPersonUtil {
|
|
|
public static String PAYSETTING_ENTITY = "hsas_paysetting";
|
|
|
public static String PERBANKCARD_ENTITY = "hrpi_perbankcard";
|
|
|
public static String CONTRACT_ENTITY = "hlcm_contract";
|
|
|
+ public static List<String> periodTypeList = new ArrayList();
|
|
|
+ static {
|
|
|
+ periodTypeList.add("1020_S");
|
|
|
+ periodTypeList.add("1030_S");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 根据薪酬档案ID获取银行信息
|
|
@@ -31,6 +34,8 @@ public class CalPersonUtil {
|
|
|
*/
|
|
|
public static Map<Long, DynamicObject> getBankInfoByFileID(List<Long> salaryFileIds) {
|
|
|
QFilter filter = new QFilter("salaryfile.id", QCP.in, salaryFileIds);
|
|
|
+ filter.and("iscurrentversion", QCP.equals, "1");
|
|
|
+ filter.and("datastatus", QCP.equals, "1");
|
|
|
String selectFields = "salaryfile.id,entryentity.perbankcard.id," +
|
|
|
"entryentity.perbankcard.bankcardnum,entryentity.perbankcard.bankdeposit,entryentity.perbankcard.username";
|
|
|
DynamicObjectCollection paySettingCols = QueryServiceHelper.query(PAYSETTING_ENTITY, selectFields, new QFilter[]{filter});
|
|
@@ -78,17 +83,20 @@ public class CalPersonUtil {
|
|
|
Date lastDate = getLastMonthDay(date);
|
|
|
//人员
|
|
|
QFilter personFilter = new QFilter("person.id", QCP.in, personIds);
|
|
|
+ personFilter.and("iscurrentversion", QCP.equals, "1");
|
|
|
+ personFilter.and("datastatus", QCP.equals, "1");
|
|
|
+ personFilter.and("signstatus", QCP.not_equals2, "7");
|
|
|
//固定期限:
|
|
|
QFilter filter1 = new QFilter("periodtype.number", QCP.equals, "1010_S");
|
|
|
filter1.and("startdate", QCP.less_equals, lastDate);
|
|
|
filter1.and("enddate", QCP.large_equals, lastDate);
|
|
|
//无固定期限:
|
|
|
- QFilter filter2 = new QFilter("periodtype.number", QCP.equals, "1020_S");
|
|
|
+ QFilter filter2 = new QFilter("periodtype.number", QCP.in, periodTypeList);
|
|
|
filter2.and("startdate", QCP.less_equals, lastDate);
|
|
|
QFilter dateFilter = filter1.or(filter2);
|
|
|
QFilter filter = personFilter.and(dateFilter);
|
|
|
- String selectFields = "person.id,actualsigncompany.id,startdate";
|
|
|
- DynamicObjectCollection contractCols = QueryServiceHelper.query(CONTRACT_ENTITY, selectFields, new QFilter[]{filter},"startdate desc");
|
|
|
+ String selectFields = "person.id,actualsigncompany.id,startdate,signstatus";
|
|
|
+ DynamicObjectCollection contractCols = QueryServiceHelper.query(CONTRACT_ENTITY, selectFields, new QFilter[]{filter},"startdate desc,signstatus desc");
|
|
|
//按照person.id提取
|
|
|
Map contractMap = contractCols.stream().collect(Collectors.toMap((dyx) -> {
|
|
|
return dyx.getLong("person.id");
|
|
@@ -109,17 +117,20 @@ public class CalPersonUtil {
|
|
|
public static Map<Long, Long> getBContractInfoByPersonID (List<Long> personIds, Date date) {
|
|
|
//人员
|
|
|
QFilter personFilter = new QFilter("person.id", QCP.in, personIds);
|
|
|
+ personFilter.and("iscurrentversion", QCP.equals, "1");
|
|
|
+ personFilter.and("datastatus", QCP.equals, "1");
|
|
|
+ personFilter.and("signstatus", QCP.not_equals2, "7");
|
|
|
//固定期限:
|
|
|
QFilter filter1 = new QFilter("periodtype.number", QCP.equals, "1010_S");
|
|
|
filter1.and("startdate", QCP.less_equals, date);
|
|
|
filter1.and("enddate", QCP.large_equals, date);
|
|
|
//无固定期限:
|
|
|
- QFilter filter2 = new QFilter("periodtype.number", QCP.equals, "1020_S");
|
|
|
+ QFilter filter2 = new QFilter("periodtype.number", QCP.in, periodTypeList);
|
|
|
filter2.and("startdate", QCP.less_equals, date);
|
|
|
QFilter dateFilter = filter1.or(filter2);
|
|
|
QFilter filter = personFilter.and(dateFilter);
|
|
|
- String selectFields = "person.id,actualsigncompany.id,startdate";
|
|
|
- DynamicObjectCollection contractCols = QueryServiceHelper.query(CONTRACT_ENTITY, selectFields, new QFilter[]{filter},"startdate desc");
|
|
|
+ String selectFields = "person.id,actualsigncompany.id,startdate,signstatus";
|
|
|
+ DynamicObjectCollection contractCols = QueryServiceHelper.query(CONTRACT_ENTITY, selectFields, new QFilter[]{filter},"startdate desc,signstatus desc");
|
|
|
//按照person.id提取
|
|
|
Map contractMap = contractCols.stream().collect(Collectors.toMap((dyx) -> {
|
|
|
return dyx.getLong("person.id");
|