From 9d22bf2b596d8f5627f671f009b3f42d71d73bf4 Mon Sep 17 00:00:00 2001
From: zm <2369059705qq.com>
Date: 星期一, 04 十一月 2024 16:02:07 +0800
Subject: [PATCH] 考情看板和报表

---
 src/main/java/com/product/administration/service/LeaveRequestService.java |   84 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 74 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/product/administration/service/LeaveRequestService.java b/src/main/java/com/product/administration/service/LeaveRequestService.java
index 7dab13b..3dd8c9d 100644
--- a/src/main/java/com/product/administration/service/LeaveRequestService.java
+++ b/src/main/java/com/product/administration/service/LeaveRequestService.java
@@ -9,6 +9,10 @@
 import com.product.core.service.support.AbstractBaseService;
 import com.product.core.service.support.QueryFilterService;
 import com.product.core.spring.context.SpringMVCContextHolder;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
 import java.util.Date;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -43,7 +47,7 @@
 		if(!StringUtils.isEmpty(dataFilter)){
 			filter += " and "+dataFilter;
 		}
-		DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE,filter,null,null,"created_utc_datetime desc",fs.getInteger(CmnConst.PAGESIZE),fs.getInteger(CmnConst.CPAGE),false);
+		DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE,filter,null,null,"id desc",fs.getInteger(CmnConst.PAGESIZE),fs.getInteger(CmnConst.CPAGE),false);
 		baseDao.loadPromptData(dt);
 		return dt;
 	}
@@ -61,17 +65,49 @@
 	 * 璇峰亣鐢宠淇濆瓨
 	 */
 	public String saveLeaveRequest(FieldSetEntity fs) throws BaseException {
-//		fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid());//鍏徃
-//		fs.setValue("fill_in_time", new Date());//濉崟鏃堕棿
-//		fs.setValue("department_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid());//閮ㄩ棬
-		fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());//濮撳悕
-		fs.setValue("flow_flag", 0);
-		if(StringUtils.isEmpty(fs.getString(CmnConst.UUID))){
-			return baseDao.add(fs);
+		DataTableEntity dataTableEntity = baseDao.listTable(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE, " uuid  not in (?) and user_id=? and ((start_time<=? and end_time>=?) or(start_time<=? and end_time>=?))"
+				, new String[]{StringUtils.isEmpty(fs.getUUID())?"":fs.getUUID(), fs.getString("user_id"), fs.getString("start_time"), fs.getString("start_time"), fs.getString("end_time"), fs.getString("end_time")});
+        if (dataTableEntity.getRows()>0){
+			return "1";
 		}else {
-			baseDao.update(fs);
-			return fs.getString(CmnConst.UUID);
+			if (StringUtils.isEmpty(fs.getString(CmnConst.UUID))) {
+				fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
+				fs.setValue("created_utc_datetime", new Date());
+				fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid());
+				return baseDao.add(fs);
+			} else {
+				fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
+				fs.setValue("updated_utc_datetime", new Date());
+				baseDao.update(fs);
+				return fs.getString(CmnConst.UUID);
+			}
+
 		}
+	}
+
+	/**
+	 * 璁$畻璇峰亣澶╂暟
+	 * @param fs
+	 * @return
+	 * @throws BaseException
+	 */
+	public FieldSetEntity getDay(FieldSetEntity fs) throws BaseException {
+		DataTableEntity dt = baseDao.listTable(com.product.org.admin.config.CmnConst.PRODUCT_SYS_COMPANY_HOLIDAY, "date_holiday >=? and date_holiday<=?", new String[]{fs.getString("start_time"), fs.getString("end_time")});
+		String dateStr1 = fs.getString("start_time");
+		String dateStr2 = fs.getString("end_time");
+
+		// 浣跨敤DateTimeFormatter瑙f瀽鏃ユ湡瀛楃涓�
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+		// 灏嗗瓧绗︿覆瑙f瀽涓篖ocalDate瀵硅薄
+		LocalDate date1 = LocalDate.parse(dateStr1, formatter);
+		LocalDate date2 = LocalDate.parse(dateStr2, formatter);
+
+		// 璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫ぉ鏁板樊
+		long daysBetween = java.time.Duration.between(date1.atStartOfDay(), date2.atStartOfDay()).toDays()+1;
+		fs.setValue("day",daysBetween-dt.getRows());
+
+		return fs;
 	}
 	/**
 	 * @Date: 2020-03-30 16:43
@@ -81,4 +117,32 @@
 	public boolean deleteLeaveRequest(FieldSetEntity fs) throws BaseException {
 		return baseDao.delete(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE,CmnConst.UUID+"=?",new Object[]{fs.getString(CmnConst.UUID)});
 	}
+
+	/**
+	 * 鏍规嵁鐢宠浜哄拰璇峰亣鏃ユ湡鑾峰彇璇峰亣鍗曟嵁
+	 * @param fs
+	 * @return
+	 */
+	public FieldSetEntity getLeave(FieldSetEntity fs){
+		return  baseDao.getFieldSetByFilter(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE,"user_id=? and DATE_FORMAT(start_time,'%Y-%m-%d')<=? and DATE_FORMAT(end_time,'%Y-%m-%d')>=?",new String[]{fs.getString("user_id"),fs.getString("date"),fs.getString("date")},false);
+	}
+
+	/**
+	 *
+	 * @param fs
+	 * @return
+	 */
+	public DataTableEntity leaveList(FieldSetEntity fs){
+		String a="";
+		ArrayList<String> list = new ArrayList<>();
+		if (!StringUtils.isEmpty(fs.getString("yearAndMonth"))){
+			a="(DATE_FORMAT( start_time, '%Y-%m' )=? or DATE_FORMAT( end_time, '%Y-%m' )=?) and user_id=? and";
+			list.add(fs.getString("yearAndMonth"));
+			list.add(fs.getString("yearAndMonth"));
+			list.add(fs.getString("created_by"));
+		}
+		DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE, a + " flow_flag = 2", list.toArray());
+		baseDao.loadPromptData(dt);
+		return dt;
+	}
 }

--
Gitblit v1.9.2