|
@@ -0,0 +1,97 @@
|
|
|
+package nckd.jimin.jyyy.fi.common;
|
|
|
+
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.logging.Log;
|
|
|
+import kd.bos.logging.LogFactory;
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 财务帮助类
|
|
|
+ * @author wanghaiwu_kd
|
|
|
+ * @date 2025/04/29
|
|
|
+ */
|
|
|
+public class FinanceCommonUtils {
|
|
|
+
|
|
|
+ private static final Log logger = LogFactory.getLog(FinanceCommonUtils.class);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验出差申请单、外办单是否存在与参数startDate, endDate存在时间交叉的记录
|
|
|
+ * @param startDate
|
|
|
+ * @param endDate
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String checkDateIsExists(Long billId, Long userId, Date startDate, Date endDate){
|
|
|
+ String checkMsg = "";
|
|
|
+
|
|
|
+ String selectFields = "id, billno";
|
|
|
+
|
|
|
+ QFilter qFilter = buildSearchFilter("er_tripreqbill", billId, userId, startDate, endDate);
|
|
|
+ //出差申请单
|
|
|
+ DynamicObject[] tripReqBillArray = BusinessDataServiceHelper.load("er_tripreqbill", selectFields, qFilter.toArray());
|
|
|
+
|
|
|
+ qFilter = buildSearchFilter("er_dailyvehiclebill", billId, userId, startDate, endDate);
|
|
|
+ //外办单
|
|
|
+ DynamicObject[] vehicleBillArray = BusinessDataServiceHelper.load("er_dailyvehiclebill", selectFields, qFilter.toArray());
|
|
|
+
|
|
|
+ String tripReqBills = "";
|
|
|
+ if(tripReqBillArray.length > 0){
|
|
|
+ List<String> numberList = (List) Arrays.stream(tripReqBillArray).map((o) -> {
|
|
|
+ return o.getString("billno");
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ tripReqBills = String.join(",", numberList);
|
|
|
+ }
|
|
|
+ String vehicleBills = "";
|
|
|
+ if(vehicleBillArray.length > 0){
|
|
|
+ List<String> numberList = (List) Arrays.stream(vehicleBillArray).map((o) -> {
|
|
|
+ return o.getString("billno");
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+
|
|
|
+ vehicleBills = String.join(",", numberList);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(tripReqBills.length() > 0){
|
|
|
+ checkMsg += "出差申请单:" + tripReqBills;
|
|
|
+ }
|
|
|
+ if(vehicleBills.length() > 0){
|
|
|
+ checkMsg += "外办单:" + vehicleBills;
|
|
|
+ }
|
|
|
+
|
|
|
+ return checkMsg;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 构造查询条件
|
|
|
+ * @param entityName
|
|
|
+ * @param startDate
|
|
|
+ * @param endDate
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static QFilter buildSearchFilter(String entityName, Long billId, Long userId, Date startDate, Date endDate){
|
|
|
+ String prefix = "";
|
|
|
+
|
|
|
+ if("er_tripreqbill".equals(entityName)){
|
|
|
+ prefix = "tripentry.";
|
|
|
+ }
|
|
|
+
|
|
|
+ QFilter qFilter = new QFilter("billstatus", QCP.equals, "A");
|
|
|
+ qFilter.and(new QFilter("id", QCP.not_equals, billId));
|
|
|
+ qFilter.and(new QFilter("applier", QCP.equals, userId));
|
|
|
+
|
|
|
+ QFilter startFilter = new QFilter(prefix + "startDate", QCP.less_equals, startDate);
|
|
|
+ startFilter.and(new QFilter(prefix + "endDate", QCP.large_equals, startDate));
|
|
|
+
|
|
|
+ QFilter endFilter = new QFilter(prefix + "startDate", QCP.less_equals, endDate);
|
|
|
+ endFilter.and(new QFilter(prefix + "endDate", QCP.large_equals, endDate));
|
|
|
+
|
|
|
+ qFilter.and(startFilter.or(endFilter));
|
|
|
+
|
|
|
+ return qFilter;
|
|
|
+ }
|
|
|
+}
|