zm
2024-10-15 032ab98c53cd1448f81d1e8be04423d6b46c4fa1
src/main/java/com/product/administration/service/LeaveRequestService.java
@@ -9,6 +9,9 @@
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.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -43,7 +46,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,18 +64,50 @@
    * 请假申请保存
    */
   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解析日期字符串
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
      // 将字符串解析为LocalDate对象
      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
    * @Author: ZhouJie