请假,外出,轮休,休假时间不能重复

Signed-off-by: lSun <15893999301@qq.com>
This commit is contained in:
lSun 2025-02-27 15:15:28 +08:00
parent a53921de80
commit aec4bd2f4b
2 changed files with 113 additions and 92 deletions

View File

@ -12,9 +12,11 @@ import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.common.security.utils.ValidatorsUtils; import com.bonus.common.security.utils.ValidatorsUtils;
import com.bonus.system.api.domain.MapVo; import com.bonus.system.api.domain.MapVo;
import com.bonus.system.api.domain.SysRole; import com.bonus.system.api.domain.SysRole;
import com.bonus.system.api.domain.SysUser;
import com.bonus.system.att.entity.Holiday; import com.bonus.system.att.entity.Holiday;
import com.bonus.system.basic.domain.SysNotice; import com.bonus.system.basic.domain.SysNotice;
import com.bonus.system.basic.service.SysNoticeService; import com.bonus.system.basic.service.SysNoticeService;
import com.bonus.system.dept.dao.ProDeptRoleDao;
import com.bonus.system.holiday.dao.WorkReportDao; import com.bonus.system.holiday.dao.WorkReportDao;
import com.bonus.system.leaveReporting.dao.LeaveReportingDao; import com.bonus.system.leaveReporting.dao.LeaveReportingDao;
import com.bonus.system.leaveReporting.entity.LeaveReportingBean; import com.bonus.system.leaveReporting.entity.LeaveReportingBean;
@ -51,6 +53,8 @@ public class LeaveReportingServiceImpl implements LeaveReportingService {
@Resource(name = "LeaveReportingDao") @Resource(name = "LeaveReportingDao")
private LeaveReportingDao leaveReportingDao; private LeaveReportingDao leaveReportingDao;
@Resource(name = "ProDeptRoleDao")
private ProDeptRoleDao proDeptRoleDao;
@Override @Override
@ -95,6 +99,24 @@ public class LeaveReportingServiceImpl implements LeaveReportingService {
public AjaxResult getUserList(Long id) { public AjaxResult getUserList(Long id) {
try { try {
LeaveReportingBean bean = new LeaveReportingBean(); LeaveReportingBean bean = new LeaveReportingBean();
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
List<String> roleId = sysUser.getRoleList();
//管理员与人资角色可以看到所有
if( roleId !=null && !roleId.isEmpty()){
if (Collections.frequency(roleId, "1")==0 && Collections.frequency(roleId, "16")==0) {
if(Collections.frequency(roleId, "15")==0){
List<MapVo> orgList = sysUser.getOrgList();
if (!orgList.isEmpty()) {
ArrayList<String> ids = new ArrayList<>();
for (MapVo mapVo : orgList) {
String idT = proDeptRoleDao.getOrgChildById(mapVo.getId());
// 使用 Arrays.asList() 将数组转换为 ArrayList
ArrayList<String> idList = new ArrayList<>(Arrays.asList(idT.split(",")));
ids.addAll(idList);
}
bean.setOrgList(ids);
}
}else{
//只能查自己部门的人 //只能查自己部门的人
List<MapVo> orgList = SecurityUtils.getLoginUser().getSysUser().getOrgList(); List<MapVo> orgList = SecurityUtils.getLoginUser().getSysUser().getOrgList();
if(!orgList.isEmpty()){ if(!orgList.isEmpty()){
@ -104,6 +126,9 @@ public class LeaveReportingServiceImpl implements LeaveReportingService {
} }
bean.setOrgList(ids); bean.setOrgList(ids);
} }
}
}
}
bean.setId(id); bean.setId(id);
List<LeaveReportingBean> list = leaveReportingDao.getUserList(bean); List<LeaveReportingBean> list = leaveReportingDao.getUserList(bean);
return AjaxResult.success(list); return AjaxResult.success(list);

View File

@ -23,7 +23,8 @@
<if test="leaveEndInterval != null"> <if test="leaveEndInterval != null">
#{leaveEndInterval}, #{leaveEndInterval},
</if> </if>
#{leaveDuration},#{examineStatus},#{source},#{createUserId}, #{isAgree}, #{location}, #{hostUserId}, #{remark}, #{type}) #{leaveDuration},#{examineStatus},#{source},#{createUserId}, #{isAgree}, #{location}, #{hostUserId}, #{remark},
#{type})
</insert> </insert>
<update id="updateHoliday"> <update id="updateHoliday">
UPDATE leave_apply UPDATE leave_apply
@ -91,10 +92,13 @@
</update> </update>
<delete id="deleteHolidayById"> <delete id="deleteHolidayById">
update leave_apply SET is_active = '0' WHERE id = #{id} update leave_apply
SET is_active = '0'
WHERE id = #{id}
</delete> </delete>
<select id="getHolidayList" resultType="com.bonus.system.holiday.entity.HolidayBean" parameterType="com.bonus.system.holiday.entity.HolidayBean"> <select id="getHolidayList" resultType="com.bonus.system.holiday.entity.HolidayBean"
parameterType="com.bonus.system.holiday.entity.HolidayBean">
SELECT SELECT
DISTINCT DISTINCT
la.id, la.id,
@ -160,8 +164,7 @@
</select> </select>
<select id="selectHolidayById" resultType="com.bonus.system.holiday.entity.HolidayBean"> <select id="selectHolidayById" resultType="com.bonus.system.holiday.entity.HolidayBean">
SELECT SELECT id,
id,
user_id, user_id,
user_name, user_name,
org_id, org_id,
@ -176,67 +179,58 @@
leave_duration, leave_duration,
examine_status, examine_status,
examine_opinion, examine_opinion,
is_agree, location, host_user_id, remark is_agree,
FROM location,
leave_apply host_user_id,
WHERE remark
id = #{id} FROM leave_apply
WHERE id = #{id}
</select> </select>
<select id="getLeaveType" resultType="java.util.Map"> <select id="getLeaveType" resultType="java.util.Map">
</select> </select>
<select id="getOrgList" resultType="com.bonus.system.holiday.entity.HolidayKeyBean"> <select id="getOrgList" resultType="com.bonus.system.holiday.entity.HolidayKeyBean">
SELECT SELECT `id`,
`id`,
org_name as `name` org_name as `name`
FROM FROM sys_organization
sys_organization WHERE is_active = '1'
WHERE
is_active = '1'
</select> </select>
<select id="getPersonList" resultType="com.bonus.system.holiday.entity.HolidayKeyBean"> <select id="getPersonList" resultType="com.bonus.system.holiday.entity.HolidayKeyBean">
SELECT SELECT user_id as `id`,
user_id as `id`,
user_name as `name` user_name as `name`
FROM FROM sys_user
sys_user WHERE is_active = '1'
WHERE
is_active = '1'
</select> </select>
<select id="getLeaveTypeList" resultType="com.bonus.system.holiday.entity.HolidayKeyBean"> <select id="getLeaveTypeList" resultType="com.bonus.system.holiday.entity.HolidayKeyBean">
SELECT SELECT dict_code as `id`,
dict_code as `id`,
dict_label as `name` dict_label as `name`
FROM FROM sys_dict_data
sys_dict_data WHERE dict_type = 'att_status'
WHERE and dict_code > 47
dict_type = 'att_status' and dict_code > 47
</select> </select>
<select id="getUserIdById" resultType="java.lang.Long"> <select id="getUserIdById" resultType="java.lang.Long">
SELECT SELECT user_id
user_id FROM leave_apply
FROM WHERE id = #{id}
leave_apply
WHERE
id = #{id}
</select> </select>
<select id="getHolidayData" resultType="com.bonus.system.holiday.entity.HolidayImportBean"> <select id="getHolidayData" resultType="com.bonus.system.holiday.entity.HolidayImportBean">
SELECT SELECT user_name,
user_name,leave_start_date,leave_end_date leave_start_date,
FROM leave_end_date
leave_apply FROM leave_apply
WHERE leave_end_date > #{previousMonthDate} WHERE leave_end_date > #{previousMonthDate}
</select> </select>
<select id="getHolidayDataByType" resultType="java.lang.String"> <select id="getHolidayDataByType" resultType="java.lang.String">
SELECT date SELECT date
FROM sys_holiday FROM sys_holiday
WHERE date between #{startDate} and #{endDate} and type = 1 WHERE date between #{startDate}
and #{endDate}
and type = 1
</select> </select>
<select id="judgeRepeatStrat" resultType="com.bonus.system.holiday.entity.HolidayBean"> <select id="judgeRepeatStrat" resultType="com.bonus.system.holiday.entity.HolidayBean">
SELECT leave_type AS leaveType, SELECT leave_type AS leaveType,
`type`, `type`,
@ -247,6 +241,7 @@
user_name AS userName user_name AS userName
FROM leave_apply FROM leave_apply
WHERE is_active = '1' and user_id = #{userId} and #{leaveStartDate} BETWEEN leave_start_date AND leave_end_date WHERE is_active = '1' and user_id = #{userId} and #{leaveStartDate} BETWEEN leave_start_date AND leave_end_date
AND examine_status != '2'
<if test='id != null and id !=""'> <if test='id != null and id !=""'>
and id !=#{id} and id !=#{id}
</if> </if>
@ -262,6 +257,7 @@
user_name AS userName user_name AS userName
FROM leave_apply FROM leave_apply
WHERE is_active = '1' and user_id = #{userId} and #{leaveEndDate} BETWEEN leave_start_date AND leave_end_date WHERE is_active = '1' and user_id = #{userId} and #{leaveEndDate} BETWEEN leave_start_date AND leave_end_date
AND examine_status != '2'
<if test='id != null and id !=""'> <if test='id != null and id !=""'>
and id !=#{id} and id !=#{id}
</if> </if>