package com.product.administration.service; import com.product.administration.config.CmnConst; import com.product.common.lang.StringUtils; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.permission.PermissionService; import com.product.core.service.support.AbstractBaseService; import com.product.core.service.support.QueryFilterService; import com.product.core.spring.context.SpringMVCContextHolder; 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 * @Author: Xin.Luo * @Description: 请假申请 */ @Component public class LeaveRequestService extends AbstractBaseService { @Autowired private BaseDao baseDao; @Autowired PermissionService permissionService; @Autowired QueryFilterService queryFilterService; /** * @Date: 2020-03-30 14:10 * @Author: ZhouJie * 请假申请列表 */ public DataTableEntity getLeaveRequestList(FieldSetEntity fs) throws BaseException { String filter=fs.getString("filter"); String dataFilter = permissionService.getDataFilter(fs.getTableName(),CmnConst.CREATED_BY); if(!StringUtils.isEmpty(dataFilter)){ filter += " and "+dataFilter; } 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; } /** * @Date: 2020-03-30 14:46 * @Author: ZhouJie * 请假申请详情 */ public FieldSetEntity getLeaveRequestInfo(FieldSetEntity fs) throws BaseException { return baseDao.listInternationDataTable(baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE, fs.getString(CmnConst.UUID), true),null); } /** * @Date: 2020-03-30 15:32 * @Author: ZhouJie * 请假申请保存 */ public String saveLeaveRequest(FieldSetEntity fs) throws BaseException { 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 { 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); } } } /** * @Date: 2020-03-30 16:43 * @Author: ZhouJie * 删除请假申请 */ public boolean deleteLeaveRequest(FieldSetEntity fs) throws BaseException { return baseDao.delete(CmnConst.PRODUCT_SYS_ASK_FOR_LEAVE,CmnConst.UUID+"=?",new Object[]{fs.getString(CmnConst.UUID)}); } }