|
@@ -6,6 +6,8 @@ import kd.bos.logging.LogFactory;
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import kd.fi.fa.business.constants.BdUser;
|
|
|
+
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
@@ -30,14 +32,25 @@ public class FinanceCommonUtils {
|
|
|
String checkMsg = "";
|
|
|
|
|
|
String selectFields = "id, billno";
|
|
|
-
|
|
|
- QFilter qFilter = buildSearchFilter("er_tripreqbill", billId, userId, startDate, endDate);
|
|
|
+ String entityName = "";
|
|
|
//出差申请单
|
|
|
- DynamicObject[] tripReqBillArray = BusinessDataServiceHelper.load("er_tripreqbill", selectFields, qFilter.toArray());
|
|
|
+ entityName = "er_tripreqbill";
|
|
|
+ QFilter qFilter = buildSearchFilter(entityName, billId, userId, startDate, endDate);
|
|
|
+ DynamicObject[] tripReqBillArray = BusinessDataServiceHelper.load(entityName, selectFields, qFilter.toArray());
|
|
|
|
|
|
- qFilter = buildSearchFilter("er_dailyvehiclebill", billId, userId, startDate, endDate);
|
|
|
//外办单
|
|
|
- DynamicObject[] vehicleBillArray = BusinessDataServiceHelper.load("er_dailyvehiclebill", selectFields, qFilter.toArray());
|
|
|
+ entityName = "er_dailyvehiclebill";
|
|
|
+ qFilter = buildSearchFilter(entityName, billId, userId, startDate, endDate);
|
|
|
+ DynamicObject[] vehicleBillArray = BusinessDataServiceHelper.load(entityName, selectFields, qFilter.toArray());
|
|
|
+
|
|
|
+ //HR休假申请
|
|
|
+ entityName = "wtabm_vaapplyself";
|
|
|
+ qFilter = buildSearchFilter(entityName, billId, userId, startDate, endDate);
|
|
|
+
|
|
|
+ //测试
|
|
|
+ qFilter.and(new QFilter("billno", QCP.equals, "LE-20250604-000002"));
|
|
|
+
|
|
|
+ DynamicObject[] vaapplyBillArray = BusinessDataServiceHelper.load(entityName, selectFields, qFilter.toArray());
|
|
|
|
|
|
String tripReqBills = "";
|
|
|
if(tripReqBillArray.length > 0){
|
|
@@ -47,6 +60,7 @@ public class FinanceCommonUtils {
|
|
|
|
|
|
tripReqBills = String.join(",", numberList);
|
|
|
}
|
|
|
+
|
|
|
String vehicleBills = "";
|
|
|
if(vehicleBillArray.length > 0){
|
|
|
List<String> numberList = (List) Arrays.stream(vehicleBillArray).map((o) -> {
|
|
@@ -56,12 +70,25 @@ public class FinanceCommonUtils {
|
|
|
vehicleBills = String.join(",", numberList);
|
|
|
}
|
|
|
|
|
|
+ String vaapplyBills = "";
|
|
|
+ if(vaapplyBillArray.length > 0){
|
|
|
+ List<String> numberList = (List) Arrays.stream(vaapplyBillArray).map((o) -> {
|
|
|
+ return o.getString("billno");
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ vaapplyBills = String.join(",", numberList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if(tripReqBills.length() > 0){
|
|
|
checkMsg += "出差申请单:" + tripReqBills;
|
|
|
}
|
|
|
if(vehicleBills.length() > 0){
|
|
|
checkMsg += "外办单:" + vehicleBills;
|
|
|
}
|
|
|
+ if(vaapplyBills.length() > 0){
|
|
|
+ checkMsg += "HR休假单:" + vaapplyBills;
|
|
|
+ }
|
|
|
|
|
|
return checkMsg;
|
|
|
}
|
|
@@ -75,22 +102,45 @@ public class FinanceCommonUtils {
|
|
|
*/
|
|
|
public static QFilter buildSearchFilter(String entityName, Long billId, Long userId, Date startDate, Date endDate){
|
|
|
String prefix = "";
|
|
|
+ String startField = "startDate";
|
|
|
+ String endField = "endDate";
|
|
|
|
|
|
- QFilter qFilter = new QFilter("applier", QCP.equals, userId);
|
|
|
- qFilter.and(new QFilter("id", QCP.not_equals, billId));
|
|
|
- if("er_tripreqbill".equals(entityName)){
|
|
|
+ QFilter qFilter = new QFilter("id", QCP.not_equals, billId);
|
|
|
+ if("er_tripreqbill".equals(entityName)){//出差申请
|
|
|
+ qFilter.and(new QFilter("applier", QCP.equals, userId));
|
|
|
+ //废弃 状态不需要校验
|
|
|
qFilter.and(new QFilter("billstatus", QCP.not_equals2, "H"));
|
|
|
|
|
|
prefix = "tripentry.";
|
|
|
+ } else if("er_dailyvehiclebill".equals(entityName)){//用车申请
|
|
|
+ qFilter.and(new QFilter("applier", QCP.equals, userId));
|
|
|
+ } else if("wtabm_vaapplyself".equals(entityName)){//HR休假
|
|
|
+ DynamicObject userInfo = BusinessDataServiceHelper.loadSingleFromCache(userId, "bos_user");
|
|
|
+ String personNo = userInfo.getString("number");
|
|
|
+
|
|
|
+ //过滤条件:考勤人员.工号
|
|
|
+ qFilter.and(new QFilter("personid.number", QCP.equals, personNo));
|
|
|
+ //审批不通过、废弃状态不需要校验
|
|
|
+ qFilter.and(new QFilter("billstatus", QCP.not_in, new String[]{"E","F"}));
|
|
|
+
|
|
|
+ prefix = "entryentity.";
|
|
|
+ startField = "entrystartdate";
|
|
|
+ endField = "entryenddate";
|
|
|
}
|
|
|
|
|
|
- QFilter startFilter = new QFilter(prefix + "startDate", QCP.less_equals, startDate);
|
|
|
- startFilter.and(new QFilter(prefix + "endDate", QCP.large_equals, startDate));
|
|
|
+ QFilter startFilter = new QFilter(prefix + startField, QCP.less_equals, startDate);
|
|
|
+ startFilter.and(new QFilter(prefix + endField, QCP.large_equals, startDate));
|
|
|
+
|
|
|
+ QFilter endFilter = new QFilter(prefix + startField, QCP.less_equals, endDate);
|
|
|
+ endFilter.and(new QFilter(prefix + endField, QCP.large_equals, endDate));
|
|
|
+
|
|
|
+ QFilter startFilter1 = new QFilter(prefix + startField, QCP.large_equals, startDate);
|
|
|
+ startFilter1.and(new QFilter(prefix + startField, QCP.less_than, endDate));
|
|
|
|
|
|
- QFilter endFilter = new QFilter(prefix + "startDate", QCP.less_equals, endDate);
|
|
|
- endFilter.and(new QFilter(prefix + "endDate", QCP.large_equals, endDate));
|
|
|
+ QFilter endFilter1 = new QFilter(prefix + endField, QCP.large_equals, startDate);
|
|
|
+ endFilter1.and(new QFilter(prefix + endField, QCP.less_than, endDate));
|
|
|
|
|
|
- qFilter.and(startFilter.or(endFilter));
|
|
|
+ qFilter.and(startFilter.or(endFilter).or(startFilter1).or(endFilter1));
|
|
|
|
|
|
return qFilter;
|
|
|
}
|