diff --git a/evo-admin/src/main/java/com/evo/attendance/processor/PunchTheClockStrategyExchangeProcessor.java b/evo-admin/src/main/java/com/evo/attendance/processor/PunchTheClockStrategyExchangeProcessor.java index 9b59b63..9863a05 100644 --- a/evo-admin/src/main/java/com/evo/attendance/processor/PunchTheClockStrategyExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/attendance/processor/PunchTheClockStrategyExchangeProcessor.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.evo.attendance.domain.vo.RzAttendanceData; import com.evo.attendance.domain.vo.RzAttendanceVo; import com.evo.common.constant.Constants; +import com.evo.common.utils.ParamUtils; import com.evo.common.utils.StringUtils; import com.evo.common.utils.spring.SpringUtils; import com.evo.personnelMatters.domain.EqOverStaff; @@ -65,11 +66,11 @@ public interface PunchTheClockStrategyExchangeProcessor { //不是特殊打卡, 并且不是公共打卡, 并且当前打卡设备不是人员绑定设备 //&& !sn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE) //!sn.equals(sysStaff.getTimeClock()) - if(!sn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE) && !sysStaff.getTimeClockList().contains(sn)){ + if(!ParamUtils.getTsDevSn().contains(sn) && !sysStaff.getTimeClockList().contains(sn)){ return "未设置当前考勤机打卡权限"; } //是特殊打卡 并且 特殊打卡人员中, 不包含当前人员 - if(sn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE) && StringUtils.isNull(SpringUtils.getBean(EqOverStaffMapper.class).selectEqOverStaffByUserId(sysStaff.getUserId()))){ + if(ParamUtils.getTsDevSn().contains(sn) && StringUtils.isNull(SpringUtils.getBean(EqOverStaffMapper.class).selectEqOverStaffByUserId(sysStaff.getUserId()))){ return "未设置当前考勤机打卡权限"; } return ""; diff --git a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java index 999a823..98a56c9 100644 --- a/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/attendance/processor/impl/KQDeviceExchangeProcessor.java @@ -9,10 +9,7 @@ import com.evo.attendance.processor.PunchTheClockStrategyExchangeProcessor; import com.evo.attendance.service.RzAttendanceDetailService; import com.evo.common.constant.Constants; import com.evo.common.core.domain.entity.SysDept; -import com.evo.common.utils.Collections; -import com.evo.common.utils.DataUtils; -import com.evo.common.utils.DateUtils; -import com.evo.common.utils.StringUtils; +import com.evo.common.utils.*; import com.evo.equipment.mapper.EqButtonMapper; import com.evo.personnelMatters.domain.RzOverTime; import com.evo.personnelMatters.domain.RzOverTimeDetail; @@ -69,8 +66,8 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP @Override public boolean accept(String sn) { - //餐饮打卡机不下发按钮 - return !com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE.equals(sn); + //考勤打卡机不下发按钮 + return !ParamUtils.getTsDevSn().contains(sn); } @Override diff --git a/evo-admin/src/main/java/com/evo/attendance/processor/impl/TSDeviceExchangeProcessor.java b/evo-admin/src/main/java/com/evo/attendance/processor/impl/TSDeviceExchangeProcessor.java index 212775d..f342ca3 100644 --- a/evo-admin/src/main/java/com/evo/attendance/processor/impl/TSDeviceExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/attendance/processor/impl/TSDeviceExchangeProcessor.java @@ -56,7 +56,7 @@ public class TSDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP @Override public boolean accept(String sn) { - return com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE.equals(sn); + return ParamUtils.getTsDevSn().contains(sn); } @Override diff --git a/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java b/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java index f6bb390..d61eb94 100644 --- a/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java +++ b/evo-admin/src/main/java/com/evo/common/utils/ParamUtils.java @@ -157,6 +157,16 @@ public class ParamUtils { RzSysParam param= paramService.getRzSysParam("需要自动计算请假时长的请假类型", "auto_calculation_holiday_type","54,56,57,58,59","需要自动计算请假时长的请假类型, 多个参数使用,隔开"); return Collections.asList(param.getParamValue().split(",")); } + + /*** + * 获取那些请假类型需要自动计算请假时长 + * @return + */ + public static List getTsDevSn(){ + RzSysParam param= paramService.getRzSysParam("获取特殊类型的打卡机型号", "ts_device_sn","ET74336,ET74335","获取特殊类型的打卡机型号, 多个参数使用,隔开"); + return Collections.asList(param.getParamValue().split(",")); + } + /*** * 检查特殊打卡机的规则 * sn 设备号 diff --git a/evo-admin/src/main/java/com/evo/equipment/service/impl/EqSnDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/equipment/service/impl/EqSnDetailServiceImpl.java index d76d708..776fd37 100644 --- a/evo-admin/src/main/java/com/evo/equipment/service/impl/EqSnDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/equipment/service/impl/EqSnDetailServiceImpl.java @@ -27,8 +27,11 @@ import com.evo.system.mapper.SysStaffMapper; import com.evo.system.service.RzUploadService; import com.evo.system.service.impl.SysDeptServiceImpl; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.websocket.Session; import java.util.ArrayList; @@ -43,7 +46,7 @@ import java.util.stream.Collectors; * @date 2024-08-07 */ @Service -public class EqSnDetailServiceImpl extends ServiceImpl implements IEqSnDetailService +public class EqSnDetailServiceImpl extends ServiceImpl implements IEqSnDetailService, ApplicationRunner { @Resource private SysStaffMapper sysStaffMapper; @@ -116,7 +119,7 @@ public class EqSnDetailServiceImpl extends ServiceImpl tsSn = Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE,com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE); + static List tsSn = Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE); private List> getPhoto(List userList){ List> userPhotoList = Collections.emptyList(); @@ -147,7 +150,7 @@ public class EqSnDetailServiceImpl extends ServiceImpl().eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0).ne(SysStaff::getStatus, Constants.JOB_STATIS_11).select(SysStaff::getUserId, SysStaff::getDeptId, SysStaff::getName)); } //加班打卡机 - if (deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE)) { + if (ParamUtils.getTsDevSn().contains(deviceSn)) { List userIds = eqOverStaffMapper.selectList(new LambdaQueryWrapper().eq(EqOverStaff::getDelFlag, Constants.DELETE_FLAG_0).select(EqOverStaff::getUserId)).stream().map(EqOverStaff::getUserId).collect(Collectors.toList()); userList = sysStaffMapper.selectList((new LambdaQueryWrapper().in(SysStaff::getUserId, userIds).eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0).ne(SysStaff::getStatus, Constants.JOB_STATIS_11).select(SysStaff::getUserId, SysStaff::getDeptId, SysStaff::getName))); } @@ -300,4 +303,9 @@ public class EqSnDetailServiceImpl extends ServiceImpl().set("type","连接已断开").set("session_id","").eq( "session_id", sessionId)); } + + @Override + public void run(ApplicationArguments args) throws Exception { + tsSn.addAll(ParamUtils.getTsDevSn()); + } } diff --git a/evo-admin/src/main/java/com/evo/personnelMatters/controller/SpecialOverTimeController.java b/evo-admin/src/main/java/com/evo/personnelMatters/controller/SpecialOverTimeController.java index df79bc5..b2c1f01 100644 --- a/evo-admin/src/main/java/com/evo/personnelMatters/controller/SpecialOverTimeController.java +++ b/evo-admin/src/main/java/com/evo/personnelMatters/controller/SpecialOverTimeController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import com.evo.common.core.controller.BaseController; import com.evo.common.core.domain.AjaxResult; import com.evo.common.core.page.TableDataInfo; +import com.evo.common.utils.ParamUtils; import com.evo.equipment.constant.Constants; import com.evo.equipment.domain.vo.StaffData; import com.evo.equipment.domain.vo.StaffDto; @@ -133,8 +134,6 @@ public class SpecialOverTimeController extends BaseController { cau.setCmd("to_device"); //无用值,空串 cau.setForm(""); - //设备号 - cau.setTo(Constants.EQ_DEVICE_OVER_TIME_CODE); //给服务端预留的补充字段,设备端不处理这个字段内容。设备在响应这条指令时原样返回 cau.setExtra(""); //发送的数据 @@ -149,10 +148,14 @@ public class SpecialOverTimeController extends BaseController { caud.setPhone(""); caud.setMode(0); cau.setData(caud); - //Java对象转换成JSON字符串 - message = JSONObject.toJSONString(cau); - //调用websocket,推送给设备 - WebSocketUsers.sendMessageToUsersByText(message); + for (String sn : ParamUtils.getTsDevSn()){ + //设备号 + cau.setTo(Constants.EQ_DEVICE_OVER_TIME_CODE); + //Java对象转换成JSON字符串 + message = JSONObject.toJSONString(cau); + //调用websocket,推送给设备 + WebSocketUsers.sendMessageToUsersByText(message); + } } catch (Exception e) { e.printStackTrace(); }