轮休、临时外出

This commit is contained in:
lSun 2025-02-17 18:07:13 +08:00
parent f0725b196f
commit 508be2814d
7 changed files with 580 additions and 5 deletions

View File

@ -199,4 +199,111 @@ public class WeChatController {
}
/**
* 轮休临时外出列表
* @param data
* @return
*/
@GetMapping("/holidaysList")
@DecryptAndVerify(decryptedClass = HolidayBean.class)
public ServerResponse holidaysList(EncryptedReq<HolidayBean> data) {
try{
return ServerResponse.createSuccess(service.getHolidaysList(data.getData()));
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
/**
* 根据id获取轮休临时外出详细信息
*/
@PostMapping("getHolidaysDetail")
@DecryptAndVerify(decryptedClass = HolidayBean.class)
public ServerResponse getHolidaysDetail(@Validated @RequestBody EncryptedReq<HolidayBean> data) {
try{
return ServerResponse.createSuccess(service.getHolidaysDetail(data.getData().getUuid()));
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
/**
* 轮休临时外出新增
*/
@PostMapping("insertHoliday")
@DecryptAndVerify(decryptedClass = HolidayBean.class)//加解密统一管理
public ServerResponse insertHoliday(@Validated @RequestBody EncryptedReq<HolidayBean> data) {
try{
int res = service.insertHoliday(data.getData());
return ServerResponse.createSuccess(res);
}catch (Exception e){
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
/**
* 轮休临时外出修改
*/
@PostMapping("/updateHoliday")
@DecryptAndVerify(decryptedClass = HolidayBean.class)//加解密统一管理
public ServerResponse updateHoliday(@Validated @RequestBody EncryptedReq<HolidayBean> data){
try {
return ServerResponse.createSuccess(service.updateHoliday(data.getData()));
} catch (Exception e) {
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
/**
* 轮休临时外出 休假报备删除
*/
@PostMapping("/deleteHolidayById")
@DecryptAndVerify(decryptedClass = HolidayBean.class)//加解密统一管理
public ServerResponse deleteHolidayById(@Validated @RequestBody EncryptedReq<HolidayBean> data){
try {
return ServerResponse.createSuccess(service.deleteHolidayById(data.getData()));
} catch (Exception e) {
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
/**
* 休假报备修改
*/
@PostMapping("/editHoliday")
@DecryptAndVerify(decryptedClass = LeaveReportingBean.class)//加解密统一管理
public ServerResponse editHoliday(@Validated @RequestBody EncryptedReq<LeaveReportingBean> data){
try {
return ServerResponse.createSuccess(service.editHoliday(data.getData()));
} catch (Exception e) {
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
/**
* 出差报备修改
*/
@PostMapping("/editEvection")
@DecryptAndVerify(decryptedClass = EvectionBean.class)//加解密统一管理
public ServerResponse editEvection(@Validated @RequestBody EncryptedReq<EvectionBean> data){
try {
return ServerResponse.createSuccess(service.editEvection(data.getData()));
} catch (Exception e) {
log.error(e.toString(),e);
}
return ServerResponse.createErroe("操作失败");
}
}

View File

@ -1,10 +1,7 @@
package com.bonus.boot.manager.manager.dao;
import com.bonus.boot.manager.appManage.entity.SysUserWechat;
import com.bonus.boot.manager.manager.entity.EvectionBean;
import com.bonus.boot.manager.manager.entity.LeaveReportingBean;
import com.bonus.boot.manager.manager.entity.UserDto;
import com.bonus.boot.manager.manager.entity.WidthVo;
import com.bonus.boot.manager.manager.entity.*;
import com.bonus.boot.manager.manager.model.SysUser;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
@ -63,6 +60,13 @@ public interface WeChatDao {
*/
int insertLeaveReporting(LeaveReportingBean o);
/**
* 轮休临时外出新增
* @param o
* @return
*/
int insertHoliday(HolidayBean o);
/**
* 查询休假报备列表
* @param bean
@ -104,4 +108,36 @@ public interface WeChatDao {
List<LeaveReportingBean> getFestivalAndHoliday(LeaveReportingBean bean);
String getAttTypeByUserId(Long userId);
/**
* 查询获取轮休列表
* @param bean
* @return
*/
List<HolidayBean> getHolidaysList(HolidayBean bean);
/**
* 查询获取轮休详情
* @param uuId
* @return
*/
HolidayBean getHolidaysDetail(String uuId);
/**
* 修改轮休
* @param data
* @return
*/
int updateHoliday(HolidayBean data);
/**
* 删除轮休
* @param data
* @return
*/
int deleteHolidayById(HolidayBean data);
int editHoliday(LeaveReportingBean data);
int editEvection(EvectionBean data);
}

View File

@ -0,0 +1,160 @@
package com.bonus.boot.manager.manager.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
/**
* packageName com.bonus.boot.manager.manager.entity
*
* @author lsun
* @version 1.0.0
* @className HolidayBean (此处以class为例)
* @date 2025/2/17
*/
@Data
public class HolidayBean {
/**
* 编号
*/
private long id;
/**
* uuid
*/
private String uuid;
/**
* 所属部门编号
*/
private Long orgId;
/**
* 所属部门名称
*/
private String orgName;
/**
* 请假人用户编号
*/
private Long userId;
/** 创建者 */
private Long createUserId;
/**
* 用户编号用来判断是否是本人
*/
private Long userIds;
/**
* 请假人姓名
*/
private String userName;
/**
* 请假开始日期
*/
private LocalDate leaveStartDate;
/**
* 请假开始时段1上午2下午
*/
private String leaveStartInterval;
/**
* 请假结束日期
*/
private LocalDate leaveEndDate;
/**
* 请假结束时段1上午2下午
*/
private String leaveEndInterval;
/**
* 请假时长
*/
private Double leaveDuration;
/**
* 请假事由
*/
private String leaveReason;
/**
* 请假类型
*/
private String leaveType;
/**
* 请假类型
*/
private String type;
/**
* 请假日期
*/
private String leaveDate;
/**
* 数据来源1新增2导入
*/
private String source;
/**
* 审批意见
*/
private String examineOpinion;
/**
* 审批状态0审核中1通过2不通过
*/
private String examineStatus;
/**
* 审批时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date examineTime;
/**
* 审批人编号
*/
private Long examineUserId;
/**
* 导出类型 1 查询 2 审批
*/
private String exportType;
/**
* 自己项目部所在分公司下的所有项目部id
*/
private List<String> orgList;
/**
* 代理主持工作人员多个自动隔开
*/
private String hostUserId;
/**
* 地点
*/
private String location;
/**
* 是否请示领导 1 0
*/
private String isAgree;
/**
* 备注
*/
private String remark;
/**
* 角色类型 1:人资专员和管理员;2:考勤员
*/
private String roleType;
private String[] orgListId;
private Long updateUserId;
/**一键审批ID*/
private List<Long> ids;
}

View File

@ -32,6 +32,8 @@ public class LeaveReportingBean {
*/
private Long userId;
private Long updateUserId;
private Long createUserId;
/**

View File

@ -1,6 +1,7 @@
package com.bonus.boot.manager.manager.service;
import com.bonus.boot.manager.manager.entity.EvectionBean;
import com.bonus.boot.manager.manager.entity.HolidayBean;
import com.bonus.boot.manager.manager.entity.LeaveReportingBean;
import com.bonus.boot.manager.manager.entity.UserDto;
import com.bonus.boot.manager.manager.model.SysUser;
@ -88,4 +89,33 @@ public interface WeChatService {
* @return
*/
String getDays(LeaveReportingBean bean);
/**
* 获取轮休列表
* @param data
* @return
*/
List<HolidayBean> getHolidaysList(HolidayBean data);
/**
* 获取轮休详情
* @param uuId
* @return
*/
HolidayBean getHolidaysDetail(String uuId);
/**
* 轮休临时外出新增
* @param data
* @return
*/
int insertHoliday(HolidayBean data);
int updateHoliday(HolidayBean data);
int deleteHolidayById(HolidayBean data);
int editHoliday(LeaveReportingBean data);
int editEvection(EvectionBean data);
}

View File

@ -2,6 +2,7 @@ package com.bonus.boot.manager.manager.service.impl;
import com.bonus.boot.manager.manager.dao.WeChatDao;
import com.bonus.boot.manager.manager.entity.EvectionBean;
import com.bonus.boot.manager.manager.entity.HolidayBean;
import com.bonus.boot.manager.manager.entity.LeaveReportingBean;
import com.bonus.boot.manager.manager.entity.UserDto;
import com.bonus.boot.manager.manager.model.SysUser;
@ -186,6 +187,81 @@ public class WeChatServiceImpl implements WeChatService {
}
}
/**
* 获取轮休列表
* @param bean
* @return
*/
@Override
public List<HolidayBean> getHolidaysList(HolidayBean bean) {
Long userId = Long.valueOf(UserUtil.getLoginUser().getUserId());
bean.setUserId(userId);
return dao.getHolidaysList(bean);
}
/**
* 获取轮休详情
* @param uuId
* @return
*/
@Override
public HolidayBean getHolidaysDetail(String uuId) {
return dao.getHolidaysDetail(uuId);
}
/**
* 轮休临时外出新增
* @param o
* @return
*/
@Override
public int insertHoliday(HolidayBean o) {
Long userId = Long.valueOf(UserUtil.getLoginUser().getUserId());
String uuId = UUID.randomUUID().toString();
o.setUuid(uuId);
o.setCreateUserId(userId);
o.setSource("3");
o.setUserId(userId);
o.setLeaveStartInterval("1");
o.setLeaveEndInterval("2");
int i = dao.insertHoliday(o);
return i;
}
/**
* 轮休临时外出修改
* @param data
* @return
*/
@Override
public int updateHoliday(HolidayBean data) {
Long userId = Long.valueOf(UserUtil.getLoginUser().getUserId());
data.setUpdateUserId(userId);
int i = dao.updateHoliday(data);
return i;
}
@Override
public int deleteHolidayById(HolidayBean data) {
return dao.deleteHolidayById(data);
}
@Override
public int editHoliday(LeaveReportingBean data) {
Long userId = Long.valueOf(UserUtil.getLoginUser().getUserId());
data.setUpdateUserId(userId);
int i = dao.editHoliday(data);
return i;
}
@Override
public int editEvection(EvectionBean data) {
Long userId = Long.valueOf(UserUtil.getLoginUser().getUserId());
data.setUpdateUserId(userId);
int i = dao.editEvection(data);
return i;
}
// 辅助方法将字符串解析为Date对象
private Date parseDate(String dateStr) throws ParseException {
return DATE_FORMAT.get().parse(dateStr);

View File

@ -34,13 +34,133 @@
#{leaveEndDate},
#{leaveEndInterval},
#{leaveDuration}, #{source}, #{createUserId}, #{isAgree}, #{location}, #{hostUserId}, #{hostUserName},
#{remark}, '1')
#{remark}, '0')
</insert>
<insert id="insertHoliday">
INSERT INTO leave_apply_wechat(uuid, user_id, user_name, org_id, org_name, leave_type, type, leave_reason,
leave_start_date,
leave_start_interval,
leave_end_date,
leave_end_interval,
leave_duration, source, create_user_id, is_agree, location, host_user_id,
host_user_name, remark, examine_status)
VALUES (#{uuid}, #{userId}, #{userName}, #{orgId}, #{orgName}, #{leaveType}, #{type}, #{leaveReason},
#{leaveStartDate},
#{leaveStartInterval},
#{leaveEndDate},
#{leaveEndInterval},
#{leaveDuration}, #{source}, #{createUserId}, #{isAgree}, #{location}, #{hostUserId}, #{hostUserName},
#{remark}, '0')
</insert>
<update id="updateUser">
update sys_user_wechat
set password = #{password}
where user_id = #{userId}
</update>
<update id="updateHoliday">
UPDATE leave_apply_wechat
<set>
<if test="userId != null and userId != ''">
user_id = #{userId},
</if>
<if test="userName != null and userName != ''">
user_name = #{userName},
</if>
<if test="orgId != null and orgId != ''">
org_id = #{orgId},
</if>
<if test="orgName != null and orgName != ''">
org_name = #{orgName},
</if>
leave_reason = #{leaveReason},
leave_start_date = #{leaveStartDate},
leave_start_interval = #{leaveStartInterval},
leave_end_date = #{leaveEndDate},
leave_end_interval = #{leaveEndInterval},
leave_duration = #{leaveDuration},
examine_status = #{examineStatus},
update_user_id = #{updateUserId},
is_agree = #{isAgree},
location = #{location},
host_user_id = #{hostUserId},
remark = #{remark}
</set>
where uuid = #{uuid}
</update>
<update id="deleteHolidayById">
update leave_apply_wechat SET is_active = '0' WHERE uuid = #{uuid}
</update>
<update id="editHoliday">
UPDATE leave_apply_wechat
<set>
<if test="userId != null and userId != ''">
user_id = #{userId},
</if>
<if test="userName != null and userName != ''">
user_name = #{userName},
</if>
<if test="orgId != null and orgId != ''">
org_id = #{orgId},
</if>
<if test="orgName != null and orgName != ''">
org_name = #{orgName},
</if>
leave_type = #{leaveType},
type = '请假',
leave_reason = #{leaveReason},
leave_start_date = #{leaveStartDate},
leave_start_interval = #{leaveStartInterval},
leave_end_date = #{leaveEndDate},
leave_end_interval = #{leaveEndInterval},
leave_duration = #{leaveDuration},
source = #{source},
update_user_id = #{updateUserId},
is_agree = #{isAgree},
location = #{location},
host_user_id = #{hostUserId},
host_user_name = #{hostUserName},
remark = #{remark}
</set>
where uuid = #{uuid}
</update>
<update id="editEvection">
UPDATE leave_apply_wechat
<set>
<if test="userId != null and userId != ''">
user_id = #{userId},
</if>
<if test="userName != null and userName != ''">
user_name = #{userName},
</if>
<if test="orgId != null and orgId != ''">
org_id = #{orgId},
</if>
<if test="orgName != null and orgName != ''">
org_name = #{orgName},
</if>
leave_reason = #{leaveReason},
leave_start_date = #{leaveStartDate},
leave_start_interval = #{leaveStartInterval},
leave_end_date = #{leaveEndDate},
leave_end_interval = #{leaveEndInterval},
leave_duration = #{leaveDuration},
source = #{source},
update_user_id = #{updateUserId},
is_agree = #{isAgree},
location = #{location},
host_user_id = #{hostUserId},
host_user_name = #{hostUserName},
remark = #{remark}
</set>
where uuid = #{uuid}
</update>
<select id="getById" resultType="com.bonus.boot.manager.manager.entity.UserDto">
select su.id,
su.username as username,
@ -297,4 +417,48 @@
WHERE user_id = #{userId}
</select>
<select id="getHolidaysList" resultType="com.bonus.boot.manager.manager.entity.HolidayBean">
SELECT DISTINCT la.id,
la.uuid,
la.user_id,
la.user_name,
la.org_id,
la.org_name,
la.create_time,
la.leave_type,
la.leave_reason,
la.leave_start_date,
la.leave_start_interval,
la.leave_end_date,
la.leave_end_interval,
la.leave_duration,
la.examine_status
FROM leave_apply_wechat la
WHERE la.is_active = '1'
and la.type = #{type}
and la.user_id = #{userId}
ORDER BY la.update_time DESC
</select>
<select id="getHolidaysDetail" resultType="com.bonus.boot.manager.manager.entity.HolidayBean">
SELECT DISTINCT la.id,
la.uuid,
la.user_id,
la.user_name,
la.org_id,
la.org_name,
la.create_time,
la.leave_type,
la.leave_reason,
la.leave_start_date,
la.leave_start_interval,
la.leave_end_date,
la.leave_end_interval,
la.leave_duration,
la.examine_status
FROM leave_apply_wechat la
WHERE la.is_active = '1'
and la.uuid = #{uuId}
</select>
</mapper>