From 9db1c6c261049fbdcb104e6c0e07fa544bb42013 Mon Sep 17 00:00:00 2001 From: 杜洪波 <1074825718@qq.com> Date: 星期三, 14 五月 2025 18:28:14 +0800 Subject: [PATCH] 代码BUG(预警解析异常) --- src/main/java/com/product/administration/service/LeaveRequestService.java | 86 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 75 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/product/administration/service/LeaveRequestService.java b/src/main/java/com/product/administration/service/LeaveRequestService.java index 453fed8..3dd8c9d 100644 --- a/src/main/java/com/product/administration/service/LeaveRequestService.java +++ b/src/main/java/com/product/administration/service/LeaveRequestService.java @@ -9,13 +9,17 @@ 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; /** * Copyright 漏 LX-BASE - * + * * @Title: LeaveRequestService * @Project: LX-BASE-SERVER * @Date: 2020-11-13 09:27:35 @@ -43,7 +47,7 @@ if(!StringUtils.isEmpty(dataFilter)){ filter += " and "+dataFilter; } - DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE,filter,null,null,null,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