Переглянути джерело

1.核算名单-逻辑调整

Tyx 8 годин тому
батько
коміт
adcb19e6e9

+ 21 - 10
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/swc/hsas/util/CalPersonUtil.java

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