package com.product.administration.service; import com.product.administration.config.CmnConst; import com.product.administration.config.SystemCode; 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 com.product.util.BaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; /** * Copyright LX * * @Title: WorkOvertimeService * @Project: product-server * @date: 2021年03月31日 09:54 * @author: ZhouJie * @Description: 加班申请 */ @Component public class WorkOvertimeService extends AbstractBaseService { @Autowired public BaseDao baseDao; @Autowired PermissionService permissionService; @Autowired QueryFilterService queryFilterService; /** * @Date: 2020-03-31 10:10 * @Author: ZhouJie * @Description: 加班申请列表 */ public DataTableEntity getWorkOvertimeList(FieldSetEntity fs) throws BaseException { String filter=fs.getString("filter"); Object[] param=new Object[]{}; String dataFilter = permissionService.getDataFilter(fs.getTableName(),CmnConst.CREATED_BY); if(!StringUtils.isEmpty(dataFilter)){ filter += " and "+dataFilter; } DataTableEntity dt = baseDao.listTable(CmnConst.PRODUCT_OA_WORK_OVERTIME,filter,param,null,null,fs.getInteger(CmnConst.PAGESIZE),fs.getInteger(CmnConst.CPAGE)); baseDao.loadPromptData(dt); return dt; } /** * @Date: 2020-03-31 11:16 * @Author: ZhouJie * @Description: 加班申请详情 */ public FieldSetEntity getWorkOvertimeInfo(FieldSetEntity fs) throws BaseException { return baseDao.listInternationDataTable(baseDao.getFieldSetEntity(CmnConst.PRODUCT_OA_WORK_OVERTIME, fs.getString(CmnConst.UUID), true),null); } /** * @Date: 2020-03-31 14:56 * @Author: ZhouJie * @Description: 保存加班申请(新增、修改) */ public boolean saveWorkOvertime(FieldSetEntity fse) throws BaseException { BaseUtil.createCreatorAndCreationTime(fse); FieldSetEntity fseRepeatData = null; if(StringUtils.isEmpty(fse.getUUID())){ fseRepeatData = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_OA_WORK_OVERTIME, "user_id = ? AND month = ?", new Object[] {fse.getString("user_id"), fse.getString("month")}, false); }else { fseRepeatData = baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_OA_WORK_OVERTIME, "user_id = ? AND month = ? AND uuid != ?", new Object[] {fse.getString("user_id"), fse.getString("month"), fse.getUUID()}, false); } if (fseRepeatData != null) { throw new BaseException(SystemCode.SYSTEM_SAVE_FAIL_DATA_READY_EXIST.getValue(), SystemCode.SYSTEM_SAVE_FAIL_DATA_READY_EXIST.getText()); } return baseDao.saveFieldSetEntity(fse); } /** * @Date: 2020-03-31 17:30 * @Author: ZhouJie * @Description: 删除加班申请 */ public boolean deleteWorkOvertime(FieldSetEntity fs) throws BaseException { String uuid = fs.getUUID(); String[] uuids = uuid.split(","); return baseDao.delete(CmnConst.PRODUCT_OA_WORK_OVERTIME, BaseUtil.buildQuestionMarkFilter(CmnConst.UUID, uuids.length, true), uuids); } }