From 1f0977f71be20b4cd1ce4a10c5a1f91ab1928ea7 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Thu, 20 Feb 2025 18:28:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=87=E6=9C=9F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/controller/WeChatController.java | 24 ++ .../manager/manager/dao/VerifyDateDao.java | 3 +- .../boot/manager/manager/dao/WeChatDao.java | 264 ++++++++++-------- .../manager/manager/entity/HolidayBean.java | 1 + .../manager/service/WeChatService.java | 10 + .../service/impl/VerifyDateService.java | 2 +- .../service/impl/WeChatServiceImpl.java | 19 ++ .../mappers/wechat/VerifyDateMapper.xml | 20 +- .../resources/mappers/wechat/WeChatMapper.xml | 24 ++ 9 files changed, 248 insertions(+), 119 deletions(-) diff --git a/src/main/java/com/bonus/boot/manager/manager/controller/WeChatController.java b/src/main/java/com/bonus/boot/manager/manager/controller/WeChatController.java index 11e13cc..e3bf2d0 100644 --- a/src/main/java/com/bonus/boot/manager/manager/controller/WeChatController.java +++ b/src/main/java/com/bonus/boot/manager/manager/controller/WeChatController.java @@ -312,6 +312,13 @@ public class WeChatController { if(Objects.equals(syncStatus,1)){ return ServerResponse.createErroe("数据同步中,请勿执行删除操作"); } + if(StringUtils.isNotEmpty(data.getData().getType())){ + // 判断休假报备数据是否被核对 + Integer isCheck = service.dataIsCheck(data.getData().getUuid(),2); + if(!Objects.equals(isCheck,0)){ + return ServerResponse.createErroe("休假报备数据已被核对,无法操作"); + } + } return ServerResponse.createSuccess(service.deleteHolidayById(data.getData())); } catch (Exception e) { log.error(e.toString(),e); @@ -334,6 +341,12 @@ public class WeChatController { if(Objects.equals(syncStatus,1)){ return ServerResponse.createErroe("数据同步中,请勿执行修改操作"); } + // 判断出差报备数据是否被核对 + Integer isCheck = service.dataIsCheck(data.getData().getUuid(),1); + if(!Objects.equals(isCheck,0)){ + return ServerResponse.createErroe("休假报备数据已被核对,无法操作"); + } + // 判断休假报备日期是否存在冲突 String result = verifyDateService.verifyDate(bean,2); if(StringUtils.isNotEmpty(result)){ return ServerResponse.createErroe(result); @@ -357,6 +370,12 @@ public class WeChatController { if(Objects.equals(syncStatus,1)){ return ServerResponse.createErroe("数据同步中,请勿执行修改操作"); } + // 判断出差报备数据是否被核对 + Integer isCheck = service.dataIsCheck(data.getData().getUuid(),2); + if(!Objects.equals(isCheck,0)){ + return ServerResponse.createErroe("出差报备数据已被核对,无法操作"); + } + // 判断出差报备日期是否存在冲突 String[] travelersArr = data.getData().getTravelers().split(","); for (String traveler : travelersArr) { data.getData().setUserId(Long.valueOf(traveler)); @@ -384,6 +403,11 @@ public class WeChatController { if(Objects.equals(syncStatus,1)){ return ServerResponse.createErroe("数据同步中,请勿执行删除操作"); } + // 判断出差报备数据是否被核对 + Integer isCheck = service.dataIsCheck(data.getData().getUuid(),2); + if(!Objects.equals(isCheck,0)){ + return ServerResponse.createErroe("出差报备数据已被核对,无法操作"); + } return ServerResponse.createSuccess(service.deleteEvectionById(data.getData())); } catch (Exception e) { log.error(e.toString(),e); diff --git a/src/main/java/com/bonus/boot/manager/manager/dao/VerifyDateDao.java b/src/main/java/com/bonus/boot/manager/manager/dao/VerifyDateDao.java index 664ccc2..b7c68ad 100644 --- a/src/main/java/com/bonus/boot/manager/manager/dao/VerifyDateDao.java +++ b/src/main/java/com/bonus/boot/manager/manager/dao/VerifyDateDao.java @@ -1,6 +1,7 @@ package com.bonus.boot.manager.manager.dao; import com.bonus.boot.manager.manager.entity.EvectionBean; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -22,5 +23,5 @@ public interface VerifyDateDao { * @author cwchen * @date 2025/2/20 15:44 */ - List> verifyDate(EvectionBean bean); + List> verifyDate(@Param("params") EvectionBean bean,@Param("type") int type); } diff --git a/src/main/java/com/bonus/boot/manager/manager/dao/WeChatDao.java b/src/main/java/com/bonus/boot/manager/manager/dao/WeChatDao.java index b685090..b2ffdb5 100644 --- a/src/main/java/com/bonus/boot/manager/manager/dao/WeChatDao.java +++ b/src/main/java/com/bonus/boot/manager/manager/dao/WeChatDao.java @@ -17,140 +17,176 @@ import java.util.List; @Mapper public interface WeChatDao { - UserDto getById(UserDto data); - UserDto getByUserId(UserDto data); + UserDto getById(UserDto data); - /** - * 查询所有人员-除了当前用户 - * @param userId - * @return - */ - List getSelectUserCurrent(String userId); + UserDto getByUserId(UserDto data); - SysUserWechat getSysUserWechat(String userId); + /** + * 查询所有人员-除了当前用户 + * + * @param userId + * @return + */ + List getSelectUserCurrent(String userId); - /** - * 添加出差报备 - * @param o - * @return - */ - int insertEvection(EvectionBean o); + SysUserWechat getSysUserWechat(String userId); - List selectWchatc(EvectionBean o); + /** + * 添加出差报备 + * + * @param o + * @return + */ + int insertEvection(EvectionBean o); + + List selectWchatc(EvectionBean o); + /** + * 查询出差报备列表 + * + * @param bean + * @return + */ + List getEvectionList(EvectionBean bean); - /** - * 查询出差报备列表 - * @param bean - * @return - */ - List getEvectionList(EvectionBean bean); + /** + * 根据id查询出差报备详情 + * + * @param uuId + * @return + */ + EvectionBean selectEvectionById(String uuId); - /** - * 根据id查询出差报备详情 - * @param uuId - * @return - */ - EvectionBean selectEvectionById(String uuId); + /** + * 添加休假报备 + * + * @param o + * @return + */ + int insertLeaveReporting(LeaveReportingBean o); - /** - * 添加休假报备 - * @param o - * @return - */ - int insertLeaveReporting(LeaveReportingBean o); + /** + * 轮休、临时外出新增 + * + * @param o + * @return + */ + int insertHoliday(HolidayBean o); - /** - * 轮休、临时外出新增 - * @param o - * @return - */ - int insertHoliday(HolidayBean o); + /** + * 查询休假报备列表 + * + * @param bean + * @return + */ + List getLeaveReportingList(LeaveReportingBean bean); - /** - * 查询休假报备列表 - * @param bean - * @return - */ - List getLeaveReportingList(LeaveReportingBean bean); + /** + * 根据id查询休假报备详情 + * + * @param id + * @return + */ + LeaveReportingBean selectLeaveReportingById(String id); - /** - * 根据id查询休假报备详情 - * @param id - * @return - */ - LeaveReportingBean selectLeaveReportingById(String id); + /** + * 修改密码 + * + * @param newUser + * @return + */ + int updateUser(SysUser newUser); - /** - * 修改密码 - * @param newUser - * @return - */ - int updateUser(SysUser newUser); + /** + * 查询出差人 + * + * @return + */ + List getTravelPersonSelect(); - /** - * 查询出差人 - * @return - */ - List getTravelPersonSelect(); + /** + * 查询休假类型 + * + * @return + */ + List getHolidayType(LeaveReportingBean data); - /** - * 查询休假类型 - * @return - */ - List getHolidayType(LeaveReportingBean data); - - /** - * 查询节假日 - * @param bean - * @return - */ - List getFestivalAndHoliday(LeaveReportingBean bean); + /** + * 查询节假日 + * + * @param bean + * @return + */ + List getFestivalAndHoliday(LeaveReportingBean bean); String getAttTypeByUserId(Long userId); - /** - * 查询获取轮休列表 - * @param bean - * @return - */ - List getHolidaysList(HolidayBean bean); + /** + * 查询获取轮休列表 + * + * @param bean + * @return + */ + List 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); + + int deleteEvectionById(EvectionBean data); + + /** + * 判断数据是否处于同步状态,若处于同步状态则禁止操作 + * + * @param data + * @param type + * @return Integer + * @author cwchen + * @date 2025/2/20 14:09 + */ + Integer dataIsSync(@Param("params") EvectionBean data, @Param("type") int type); + + /** + * 查询出差详情 + * @param uuid + * @param type + * @return EvectionBean + * @author cwchen + * @date 2025/2/20 17:08 + */ + EvectionBean getEvectionById(@Param("uuid") String uuid,@Param("type") int type); /** - * 查询获取轮休详情 - * @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); - - int deleteEvectionById(EvectionBean data); - - /** - * 判断数据是否处于同步状态,若处于同步状态则禁止操作 - * @param data - * @param type - * @return Integer + * 判断出差报备数据是否被核对 + * @param evectionBean + * @return List * @author cwchen - * @date 2025/2/20 14:09 + * @date 2025/2/20 17:09 */ - Integer dataIsSync(@Param("params") EvectionBean data,@Param("type") int type); + List isCheck(EvectionBean evectionBean); } diff --git a/src/main/java/com/bonus/boot/manager/manager/entity/HolidayBean.java b/src/main/java/com/bonus/boot/manager/manager/entity/HolidayBean.java index 3cf8fdb..71a3210 100644 --- a/src/main/java/com/bonus/boot/manager/manager/entity/HolidayBean.java +++ b/src/main/java/com/bonus/boot/manager/manager/entity/HolidayBean.java @@ -158,4 +158,5 @@ public class HolidayBean { /**一键审批ID*/ private List ids; + } diff --git a/src/main/java/com/bonus/boot/manager/manager/service/WeChatService.java b/src/main/java/com/bonus/boot/manager/manager/service/WeChatService.java index 847d704..9c3ecc1 100644 --- a/src/main/java/com/bonus/boot/manager/manager/service/WeChatService.java +++ b/src/main/java/com/bonus/boot/manager/manager/service/WeChatService.java @@ -130,4 +130,14 @@ public interface WeChatService { * @date 2025/2/20 14:07 */ Integer dataIsSync(EvectionBean data, int type); + + /** + * 判断出差/休假数据是否被核对 + * @param uuid + * @param type + * @return Integer + * @author cwchen + * @date 2025/2/20 17:04 + */ + Integer dataIsCheck(String uuid, int type); } diff --git a/src/main/java/com/bonus/boot/manager/manager/service/impl/VerifyDateService.java b/src/main/java/com/bonus/boot/manager/manager/service/impl/VerifyDateService.java index c956c99..81b218c 100644 --- a/src/main/java/com/bonus/boot/manager/manager/service/impl/VerifyDateService.java +++ b/src/main/java/com/bonus/boot/manager/manager/service/impl/VerifyDateService.java @@ -24,7 +24,7 @@ public class VerifyDateService { private VerifyDateDao dao; public String verifyDate(EvectionBean bean,int type) { - List> list = dao.verifyDate(bean); + List> list = dao.verifyDate(bean,type); if(CollectionUtils.isNotEmpty(list)){ StringBuilder sb = new StringBuilder(); Map dataMap = list.get(0); diff --git a/src/main/java/com/bonus/boot/manager/manager/service/impl/WeChatServiceImpl.java b/src/main/java/com/bonus/boot/manager/manager/service/impl/WeChatServiceImpl.java index c816ff1..a6934f9 100644 --- a/src/main/java/com/bonus/boot/manager/manager/service/impl/WeChatServiceImpl.java +++ b/src/main/java/com/bonus/boot/manager/manager/service/impl/WeChatServiceImpl.java @@ -9,6 +9,7 @@ import com.bonus.boot.manager.manager.model.SysUser; import com.bonus.boot.manager.manager.service.WeChatService; import com.bonus.boot.manager.manager.utils.UserUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; @@ -322,4 +323,22 @@ public class WeChatServiceImpl implements WeChatService { return null; } } + + @Override + public Integer dataIsCheck(String uuid, int type) { + try { + EvectionBean evectionBean = dao.getEvectionById(uuid,type); + List list = dao.isCheck(evectionBean); + if(CollectionUtils.isNotEmpty(list)){ + for (Integer status : list) { + if(!Objects.equals(status,0)){ + return status; + } + } + } + } catch (Exception e) { + log.error(e.toString(),e); + } + return 0; + } } diff --git a/src/main/resources/mappers/wechat/VerifyDateMapper.xml b/src/main/resources/mappers/wechat/VerifyDateMapper.xml index b86b12e..93b11e4 100644 --- a/src/main/resources/mappers/wechat/VerifyDateMapper.xml +++ b/src/main/resources/mappers/wechat/VerifyDateMapper.xml @@ -14,8 +14,22 @@ leave_end_interval AS leaveEndInterval, user_name AS userName FROM leave_apply_wechat - WHERE user_id = #{userId} AND is_active = '1' - AND (DATE_FORMAT(leave_start_date, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{leaveStartDate}, '%Y-%m-%d') AND DATE_FORMAT(#{leaveEndDate}, '%Y-%m-%d')) OR - (DATE_FORMAT(leave_end_date, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{leaveStartDate}, '%Y-%m-%d') AND DATE_FORMAT(#{leaveEndDate}, '%Y-%m-%d')) + WHERE user_id = #{params.userId} AND is_active = '1' + AND ( + DATE_FORMAT(leave_start_date, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{params.leaveStartDate}, '%Y-%m-%d') AND + DATE_FORMAT(#{params.leaveEndDate}, '%Y-%m-%d') OR + DATE_FORMAT(leave_end_date, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{params.leaveStartDate}, '%Y-%m-%d') AND + DATE_FORMAT(#{params.leaveEndDate}, '%Y-%m-%d') + ) + + + AND leave_form_id != #{params.uuid} + + + + + AND uuid != #{params.uuid} + + diff --git a/src/main/resources/mappers/wechat/WeChatMapper.xml b/src/main/resources/mappers/wechat/WeChatMapper.xml index 14b5645..5ac4e4e 100644 --- a/src/main/resources/mappers/wechat/WeChatMapper.xml +++ b/src/main/resources/mappers/wechat/WeChatMapper.xml @@ -488,5 +488,29 @@ LIMIT 1 + + + +