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 d1c1896..afa6fbd 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 @@ -5,6 +5,9 @@ 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.StringUtils; +import com.evo.common.utils.spring.SpringUtils; +import com.evo.personnelMatters.domain.EqOverStaff; +import com.evo.personnelMatters.mapper.EqOverStaffMapper; import com.evo.system.domain.SysStaff; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,7 +62,12 @@ public interface PunchTheClockStrategyExchangeProcessor { if(StringUtils.isEmpty(sysStaff.getTimeClock())){ return "当前人员未注册打卡机"; } - if(!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) && !sn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE) && !sn.equals(sysStaff.getTimeClock())){ + return "未设置当前考勤机打卡权限"; + } + //是特殊打卡 并且 特殊打卡人员中, 不包含当前人员 + if(sn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_OVER_TIME_CODE) && StringUtils.isNull(SpringUtils.getBean(EqOverStaffMapper.class).selectEqOverStaffByUserId(sysStaff.getUserId()))){ return "未设置当前考勤机打卡权限"; } return ""; diff --git a/evo-admin/src/main/java/com/evo/attendance/service/impl/PunchTheClockServiceImpl.java b/evo-admin/src/main/java/com/evo/attendance/service/impl/PunchTheClockServiceImpl.java index 16c29ca..676da3c 100644 --- a/evo-admin/src/main/java/com/evo/attendance/service/impl/PunchTheClockServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/attendance/service/impl/PunchTheClockServiceImpl.java @@ -9,6 +9,7 @@ import com.evo.common.utils.Collections; import com.evo.common.utils.StringUtils; import com.evo.equipment.domain.EqButton; import com.evo.equipment.mapper.EqButtonMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; @@ -22,6 +23,7 @@ import java.util.Map; @Service +@Slf4j public class PunchTheClockServiceImpl implements PunchTheClockService { @Resource @@ -52,6 +54,7 @@ public class PunchTheClockServiceImpl implements PunchTheClockService { public String returnMessage(String json){ //解析收到的数据 JSONObject jsonObject = JSONObject.parseObject(json); + log.info("获取打卡按钮信息{}", jsonObject.toString()); String userId = jsonObject.getString("user_id"); //需要推送的数据 String sn = jsonObject.getString("sn"); @@ -216,7 +219,7 @@ public class PunchTheClockServiceImpl implements PunchTheClockService { //根据顺序获取打卡规则 EqButton eqButton = bt_list.get(Integer.parseInt(button)-1); String rules = eqButton.getName(); //打卡规则 - + log.info("获取打卡信息{}", jsonObject.toString()); Map mqttRequestExchangeProcessorMap = applicationContext.getBeansOfType(PunchTheClockStrategyExchangeProcessor.class); for (PunchTheClockStrategyExchangeProcessor processor : mqttRequestExchangeProcessorMap.values()) { if(processor.accept(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 f367040..954369b 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 @@ -192,9 +192,10 @@ public class EqSnDetailServiceImpl extends ServiceImpl tsDeviceSn = Collections.findDuplicatesList(snList, tsSn); + List allSnList = new ArrayList(){{addAll(snList);}}; + List tsDeviceSn = Collections.findDuplicatesList(allSnList, tsSn); //所有所有不是特殊打卡机人员信息 + snList.remove(tsDeviceSn); snList.stream().filter(sn-> !tsSn.contains(sn)).forEach(sn ->{ //获取所有未删除的, 没有离职的员工信息 List userList = sysStaffMapper.selectList((new LambdaQueryWrapper().eq(SysStaff::getTimeClock, sn).eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0).ne(SysStaff::getStatus,Constants.JOB_STATIS_11).select(SysStaff::getUserId, SysStaff::getName))); diff --git a/evo-admin/src/main/java/com/evo/system/domain/SysStaff.java b/evo-admin/src/main/java/com/evo/system/domain/SysStaff.java index 2fdd971..9f246bb 100644 --- a/evo-admin/src/main/java/com/evo/system/domain/SysStaff.java +++ b/evo-admin/src/main/java/com/evo/system/domain/SysStaff.java @@ -202,7 +202,7 @@ public class SysStaff extends BaseEntity private List subsidyList; public List getSubsidyList() { - if(StringUtils.isNotEmpty(subsidys)){ + if(Collections.isEmpty(subsidyList) && StringUtils.isNotEmpty(subsidys)){ subsidyList = Collections.asList(subsidys.split(",")).stream().map(Long::valueOf).collect(Collectors.toList()); } return subsidyList;