From ce60d0986f850191cccdd102de442932c9a2f692 Mon Sep 17 00:00:00 2001 From: andy <1042025947@qq.com> Date: Sat, 4 Jul 2026 10:00:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=89=E9=92=89=E7=9B=B8=E5=85=B3=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/KQDeviceExchangeProcessor.java | 12 ++++-- .../impl/RzAttendanceDetailServiceImpl.java | 2 +- .../service/impl/RzAttendanceServiceImpl.java | 16 ++++++++ .../java/com/evo/common/utils/ParamUtils.java | 32 +++++++++++++++- ...gCallBackGroupChangeExchangeProcessor.java | 7 +++- .../evo/ding/service/DingShiftService.java | 2 + .../service/impl/DingShiftServiceImpl.java | 18 +++++++++ .../service/impl/EqImagesServiceImpl.java | 5 ++- .../service/impl/EqSnDetailServiceImpl.java | 38 ++++++++++++------- .../restaurant/domain/RzRestaurantDetail.java | 2 + .../impl/RzRestaurantDetailServiceImpl.java | 3 +- .../impl/RzRestaurantImagesServiceImpl.java | 23 ++++++----- .../service/impl/SysStaffServiceImpl.java | 24 +++++++----- .../src/main/resources/application-local.yml | 2 +- .../restaurant/RzRestaurantDetailMapper.xml | 4 +- 15 files changed, 143 insertions(+), 47 deletions(-) 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 dc2d716..54e53dc 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 @@ -101,9 +101,11 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP //如果最后一条数据的卡类型为下班卡,则返回上班卡和加班卡权限 or 检查当前人员是否存在特殊加班中 或者 检查当前人员部门是否开启加班 or 暂时取消这个判定 当天打过加班卡 ( || rzAttendanceDetailMapper.checkOverTimeCard(sysStaff.getUserId(), new Date()) > 0) if(ObjectUtils.isNotEmpty(eqOverStaffMapper.selectEqOverStaffByUserId(sysStaff.getUserId())) || ObjectUtils.isEmpty(sysDeptMapper.selectOne(new LambdaQueryWrapper().eq(SysDept::getDeptId, sysStaff.getDeptId()).eq(SysDept::getIsOverTime,"1")))){ //如果存在特殊加班, 或者当前部门没有开启加班 或者当天打过加班, 则无法打加班卡 - return initMessage(0,"验证通过", "111000000"); + // return initMessage(0,"验证通过", "111000000"); + return initMessage(0,"验证通过", "000000000"); } - return initMessage(0,"验证通过", "111100000"); + // return initMessage(0,"验证通过", "111100000"); + return initMessage(0,"验证通过", "00100000"); }else{ return initMessage(0,"验证通过", "000011000"); } @@ -211,11 +213,13 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP } public Boolean checkToDayCard(String userId, String rules, Date date){ - return ObjectUtils.isNotEmpty(rzAttendanceDetailService.getOne(new LambdaQueryWrapper() + //原位getOne, 修正钉钉打打卡后 会出现多条记录, 所以改为list + return ObjectUtils.isNotEmpty(rzAttendanceDetailService.list(new LambdaQueryWrapper() .like(RzAttendanceDetail::getButtonType,"%"+rules+"%") .eq(RzAttendanceDetail::getStaffId, Long.valueOf(userId)) .eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0) - .apply(" date_format(date_time,'%Y%m%d') = date_format({0},'%Y%m%d') ", date))); + .apply(" date_format(date_time,'%Y%m%d') = date_format({0},'%Y%m%d') ", date) + .orderByDesc(RzAttendanceDetail::getCreateTime))); } diff --git a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java index bf6a8a4..de4b49d 100644 --- a/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/attendance/service/impl/RzAttendanceDetailServiceImpl.java @@ -80,7 +80,7 @@ public class RzAttendanceDetailServiceImpl extends ServiceImpl addressMap = ParamUtils.checkKqAddressCount(); +// Map resultMap = Collections.emptyMap(); +// ObjectMapper mapper = new ObjectMapper(); +// addressMap.keySet().stream().forEach(key -> { +// try { +// Map limitMap = mapper.readValue(addressMap.get(key), new TypeReference>() {}); +// limitMap.get() +// resultMap.put(key, getBaseMapper().attendenceCount()) +// } catch (JsonProcessingException e) { +// throw new RuntimeException(e); +// } +// }); + List list = getBaseMapper().attendenceCount(); return list.size(); } 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 99317d2..efce23d 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 @@ -7,6 +7,9 @@ import com.evo.attendance.service.IRzSysParamService; import com.evo.personnelMatters.domain.RzHoliday; import com.evo.personnelMatters.service.IRzHolidayService; import com.evo.system.service.ISysDictDataService; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -198,7 +201,16 @@ public class ParamUtils { * @return */ public static List getTsDevSn(){ - RzSysParam param= paramService.getRzSysParam("获取特殊类型的打卡机型号", "ts_device_sn","ET74336,ET74335","获取特殊类型的打卡机型号, 多个参数使用,隔开"); + RzSysParam param= paramService.getRzSysParam("获取特殊类型的打卡机型号", "ts_device_sn","T71474,RT64815","获取特殊类型的打卡机型号, 多个参数使用,隔开"); + return Collections.asList(param.getParamValue().split(",")); + } + + /*** + * 获取餐厅设备信息 + * @return + */ + public static List getRestaurantDevSn(){ + RzSysParam param= paramService.getRzSysParam("获取餐厅打卡机型号", "restaurant_device_sn","T71474,RT64815","获取餐厅打卡机型号, 多个参数使用,隔开"); return Collections.asList(param.getParamValue().split(",")); } @@ -217,6 +229,24 @@ public class ParamUtils { if(StringUtils.isEmpty(rulesVal)) return false; return Collections.asList(rulesVal.split(",")).contains(rules); } + + /*** + * 检查各厂考勤人数 + * sn 设备号 + * rules 规则 + * @return + */ + public static Map checkKqAddressCount(){ + try { + RzSysParam param= paramService.getRzSysParam("检查各厂考勤人数规则", "check_kq_address_count","{\"北厂\":\"{\"longScope\":\"123-456\",\"latScope\":\"123-456\"}\"}","特殊打卡机的打卡按钮规则, 使用json格式, 如果打卡机存在多个按钮规则用,分割"); + String val = param.getParamValue(); + ObjectMapper mapper = new ObjectMapper(); + // 第一层:外层 Map + return mapper.readValue(param.getParamValue(), new TypeReference>() {}); + } catch (Exception e) { + throw new RuntimeException(e); + } + } /*** * 获取特殊加班的考勤规则 * sn 设备号 diff --git a/evo-admin/src/main/java/com/evo/ding/processor/callback/impl/DingCallBackGroupChangeExchangeProcessor.java b/evo-admin/src/main/java/com/evo/ding/processor/callback/impl/DingCallBackGroupChangeExchangeProcessor.java index d01f23d..f077f15 100644 --- a/evo-admin/src/main/java/com/evo/ding/processor/callback/impl/DingCallBackGroupChangeExchangeProcessor.java +++ b/evo-admin/src/main/java/com/evo/ding/processor/callback/impl/DingCallBackGroupChangeExchangeProcessor.java @@ -1,5 +1,6 @@ package com.evo.ding.processor.callback.impl; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.dingtalk.api.response.OapiAttendanceGroupQueryResponse; import com.dingtalk.api.response.OapiAttendanceShiftQueryResponse; @@ -45,6 +46,8 @@ public class DingCallBackGroupChangeExchangeProcessor implements DingCallBackExc @Autowired DingShiftGroupService dingShiftGroupService; + + @Override public boolean accept(String eventType) { return EVENT_TYPE_ATTEND_GROUP_CHANGE.equals(eventType); @@ -79,7 +82,7 @@ public class DingCallBackGroupChangeExchangeProcessor implements DingCallBackExc for (Long shiftId : groupDetail.getShiftIds()) { String strShiftId = String.valueOf(shiftId); if(map.containsKey(strShiftId)){ - DingShift dingShift = dingShiftService.selectByDingId(strShiftId); + DingShift dingShift = dingShiftService.selectByDingIdEmptyCreate(strShiftId); for (DingShiftGroup dingShiftGroup : map.get(strShiftId)){ dingShiftGroup.setCheckTime(("OnDuty".equals(dingShiftGroup.getType()) ? dingShift.getOnDutyCheckTime() : dingShift.getOffDutyCheckTime())); dingShiftGroupService.updateById(dingShiftGroup); @@ -97,7 +100,7 @@ public class DingCallBackGroupChangeExchangeProcessor implements DingCallBackExc } } public void crateDingShiftGroup(String groupId, String shiftId){ - DingShift dingShift = dingShiftService.selectByDingId(shiftId); + DingShift dingShift = dingShiftService.selectByDingIdEmptyCreate(shiftId); //直接更新上班, 下班 for (int i = 0; i < 2; i++) { DingShiftGroup dingShiftGroup = new DingShiftGroup(); diff --git a/evo-admin/src/main/java/com/evo/ding/service/DingShiftService.java b/evo-admin/src/main/java/com/evo/ding/service/DingShiftService.java index 950c4fc..c0eef70 100644 --- a/evo-admin/src/main/java/com/evo/ding/service/DingShiftService.java +++ b/evo-admin/src/main/java/com/evo/ding/service/DingShiftService.java @@ -18,5 +18,7 @@ public interface DingShiftService extends IService { public DingShift selectByDingId(String dingId); + public DingShift selectByDingIdEmptyCreate(String dingId); + public List selectList(DingShift dingShift); } diff --git a/evo-admin/src/main/java/com/evo/ding/service/impl/DingShiftServiceImpl.java b/evo-admin/src/main/java/com/evo/ding/service/impl/DingShiftServiceImpl.java index 8e4cabc..c83b343 100644 --- a/evo-admin/src/main/java/com/evo/ding/service/impl/DingShiftServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/ding/service/impl/DingShiftServiceImpl.java @@ -1,12 +1,17 @@ package com.evo.ding.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.evo.common.utils.Collections; import com.evo.ding.domain.DingShift; import com.evo.ding.domain.DingShiftGroup; import com.evo.ding.mapper.DingShiftGroupMapper; import com.evo.ding.mapper.DingShiftMapper; +import com.evo.ding.processor.callback.impl.DingCallBackShiftChangeExchangeProcessor; import com.evo.ding.service.DingShiftGroupService; import com.evo.ding.service.DingShiftService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.List; @@ -21,11 +26,24 @@ import java.util.List; */ @Service public class DingShiftServiceImpl extends ServiceImpl implements DingShiftService { + @Autowired + @Lazy + DingCallBackShiftChangeExchangeProcessor dingCallBackShiftChangeExchangeProcessor; @Override public DingShift selectByDingId(String dingId) { return getBaseMapper().selectByDingId(dingId); } + @Override + public DingShift selectByDingIdEmptyCreate(String dingId) { + DingShift dingShift = getBaseMapper().selectByDingId(dingId); + if(dingShift == null){ + dingCallBackShiftChangeExchangeProcessor.exchange(JSONObject.from(Collections.asMap("id", dingId))); + return selectByDingId(dingId); + } + return dingShift; + } + @Override public List selectList(DingShift dingShift) { return getBaseMapper().selectList(dingShift); diff --git a/evo-admin/src/main/java/com/evo/equipment/service/impl/EqImagesServiceImpl.java b/evo-admin/src/main/java/com/evo/equipment/service/impl/EqImagesServiceImpl.java index f3d8f67..8d07776 100644 --- a/evo-admin/src/main/java/com/evo/equipment/service/impl/EqImagesServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/equipment/service/impl/EqImagesServiceImpl.java @@ -2,6 +2,7 @@ package com.evo.equipment.service.impl; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.evo.common.utils.ParamUtils; import com.evo.equipment.constant.Constants; import com.evo.common.core.domain.AjaxResult; import com.evo.common.utils.DateUtils; @@ -113,7 +114,7 @@ public class EqImagesServiceImpl implements IEqImagesService //定义公共打卡机 List dkj_list = new ArrayList(); - dkj_list.add(Constants.EQ_DEVICE_CODE); //食堂 + dkj_list.addAll(ParamUtils.getRestaurantDevSn()); //食堂 // dkj_list.add(Constants.EQ_DEVICE_PUBLIC_CODE); //公共 dkj_list.add(eqImages.getTimeClock()); @@ -265,7 +266,7 @@ public class EqImagesServiceImpl implements IEqImagesService Row row = sheet.getRow(p); if(StringUtils.isNotNull(row)){ dkj_list = new ArrayList(); - dkj_list.add(Constants.EQ_DEVICE_CODE); //食堂 + dkj_list.addAll(ParamUtils.getRestaurantDevSn()); //食堂 // dkj_list.add(Constants.EQ_DEVICE_PUBLIC_CODE); //公共 dkj_list.add(row.getCell(4).getStringCellValue()); cau = new StaffDto(); 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 776fd37..13ec3fb 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 @@ -46,7 +46,7 @@ import java.util.stream.Collectors; * @date 2024-08-07 */ @Service -public class EqSnDetailServiceImpl extends ServiceImpl implements IEqSnDetailService, ApplicationRunner +public class EqSnDetailServiceImpl extends ServiceImpl implements IEqSnDetailService { @Resource private SysStaffMapper sysStaffMapper; @@ -118,8 +118,15 @@ public class EqSnDetailServiceImpl extends ServiceImpl tsSn = Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE); + //com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE, Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE) + static List tsSn = Collections.emptyList(); + + public List getTsSn(){ + tsSn.clear(); + tsSn.addAll(ParamUtils.getTsDevSn()); + tsSn.addAll(ParamUtils.getRestaurantDevSn()); + return tsSn; + } private List> getPhoto(List userList){ List> userPhotoList = Collections.emptyList(); @@ -141,11 +148,12 @@ public class EqSnDetailServiceImpl extends ServiceImpl>> initTsDkDevice(String deviceSn){ Map>> snUserPhotoList = Collections.emptyMap(); //如果有且只有一个设备信息, 并且设备信息为公共打卡机, 或者是 食堂打卡机 - if(tsSn.contains(deviceSn)) { + if(getTsSn().contains(deviceSn)) { List> userPhotoList = Collections.emptyList(); List userList = Collections.emptyList(); //deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE) || - if (deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)) { + //deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE) + if (ParamUtils.getRestaurantDevSn().contains(deviceSn)) { //获取所有未删除的, 没有离职的员工信息 userList = sysStaffMapper.selectList(new LambdaQueryWrapper().eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0).ne(SysStaff::getStatus, Constants.JOB_STATIS_11).select(SysStaff::getUserId, SysStaff::getDeptId, SysStaff::getName)); } @@ -154,8 +162,8 @@ public class EqSnDetailServiceImpl extends ServiceImpl 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))); } - //如果是下发的食堂打卡机, 则需要查找餐饮人员的数据 - if (deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)) { + //如果是下发的食堂打卡机, 则需要查找餐饮人员的数据 deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE) + if (ParamUtils.getRestaurantDevSn().contains(deviceSn)) { List list = rzRestaurantImagesMapper.selectList(new LambdaQueryWrapper().eq(RzRestaurantImages::getDelFlag, Constants.DELETE_FLAG_0)); for (RzRestaurantImages img : list) { userPhotoList.add(Collections.asMap("userId", String.valueOf(img.getId()), "name", img.getName(), "photoUrl", img.getImageUrl(), "deptName", "实习生")); @@ -204,14 +212,14 @@ public class EqSnDetailServiceImpl extends ServiceImpl>> snUserPhotoList = Collections.emptyMap(); if(Collections.isEmpty(userPhotoList)){ //如果有且只有一个设备信息, 并且设备信息为公共打卡机, 或者是 食堂打卡机 - if(snList.size() ==1 && tsSn.contains(snList.get(0))){ + if(snList.size() ==1 && getTsSn().contains(snList.get(0))){ snUserPhotoList.putAll(initTsDkDevice(snList.get(0))); }else{ List allSnList = new ArrayList(){{addAll(snList);}}; - List tsDeviceSn = Collections.findDuplicatesList(allSnList, tsSn); + List tsDeviceSn = Collections.findDuplicatesList(allSnList, getTsSn()); //所有所有不是特殊打卡机人员信息 snList.remove(tsDeviceSn); - snList.stream().filter(sn-> !tsSn.contains(sn)).forEach(sn ->{ + snList.stream().filter(sn-> !getTsSn().contains(sn)).forEach(sn ->{ //获取所有未删除的, 没有离职的员工信息 List userList = sysStaffMapper.selectList((new LambdaQueryWrapper().like(SysStaff::getTimeClock, sn).eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0).ne(SysStaff::getStatus,Constants.JOB_STATIS_11).select(SysStaff::getUserId, SysStaff::getDeptId, SysStaff::getName))); snUserPhotoList.put(sn, getPhoto(userList)); @@ -304,8 +312,10 @@ 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()); - } +// +// @Override +// public void run(ApplicationArguments args) throws Exception { +// tsSn.addAll(ParamUtils.getTsDevSn()); +// tsSn.addAll(ParamUtils.getRestaurantDevSn()); +// } } diff --git a/evo-admin/src/main/java/com/evo/restaurant/domain/RzRestaurantDetail.java b/evo-admin/src/main/java/com/evo/restaurant/domain/RzRestaurantDetail.java index 0a78092..a6af374 100644 --- a/evo-admin/src/main/java/com/evo/restaurant/domain/RzRestaurantDetail.java +++ b/evo-admin/src/main/java/com/evo/restaurant/domain/RzRestaurantDetail.java @@ -54,6 +54,8 @@ public class RzRestaurantDetail extends BaseEntity /** 删除标记 */ private String delFlag; + private String deviceSn; + @Override public String toString() { diff --git a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java index 44a7497..c8ccca0 100644 --- a/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java +++ b/evo-admin/src/main/java/com/evo/restaurant/service/impl/RzRestaurantDetailServiceImpl.java @@ -83,7 +83,6 @@ public class RzRestaurantDetailServiceImpl extends ServiceImpl{ + //设备号 com.evo.equipment.constant.Constants.EQ_DEVICE_CODE + cau.setTo(deviceNo); + WebSocketUsers.sendMessageToUsersByText(JSONObject.toJSONString(cau)); + }); + //删除照片 String img_name = rzRestaurantImages.getImageUrl().substring(rzRestaurantImages.getImageUrl().lastIndexOf("/")+1); File file = new File(com.evo.equipment.constant.Constants.STAFF_IMAGE_ADDRESS + img_name); @@ -134,7 +137,7 @@ public class RzRestaurantImagesServiceImpl extends ServiceImpl i if(CollectionUtils.isNotEmpty(sysStaff.getTimeClockList())){ sysStaff.setTimeClock(sysStaff.getTimeClockList().stream().collect(Collectors.joining(","))); } - //新增员工信息到金蝶 - if(StringUtils.isNotEmpty(sysStaff.getJobCode())){ - sysStaff.setExtended(KingdeeRequestUtils.employeeSave(Collections.asMap("userName", sysStaff.getName(), "userCode", sysStaff.getCode(), "jobCode", sysStaff.getJobCode().split("_")[0],"deptCode", sysStaff.getJobCode().split("_")[1]))); - }else if(StringUtils.isEmpty(sysStaff.getJobCode())){ - sysStaff.setExtended(KingdeeRequestUtils.employeeSaveEmptyJob(Collections.asMap("userName", sysStaff.getName(), "userCode", sysStaff.getCode()))); - } +// //新增员工信息到金蝶 +// if(StringUtils.isNotEmpty(sysStaff.getJobCode())){ +// sysStaff.setExtended(KingdeeRequestUtils.employeeSave(Collections.asMap("userName", sysStaff.getName(), "userCode", sysStaff.getCode(), "jobCode", sysStaff.getJobCode().split("_")[0],"deptCode", sysStaff.getJobCode().split("_")[1]))); +// }else if(StringUtils.isEmpty(sysStaff.getJobCode())){ +// sysStaff.setExtended(KingdeeRequestUtils.employeeSaveEmptyJob(Collections.asMap("userName", sysStaff.getName(), "userCode", sysStaff.getCode()))); +// } int i = getBaseMapper().insertSysStaff(sysStaff); if(i < 1){ @@ -281,13 +281,19 @@ public class SysStaffServiceImpl extends ServiceImpl i //不为空, 准备下发 if(upload != null){ List dkj_list = new ArrayList(); - dkj_list.add(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE); //食堂 + dkj_list.addAll(ParamUtils.getRestaurantDevSn()); //食堂 // dkj_list.add(com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE); //公共 - dkj_list.addAll(sysStaff.getTimeClockList()); + if(Collections.isNotEmpty(sysStaff.getTimeClockList())){ + dkj_list.addAll(sysStaff.getTimeClockList()); + } // dkj_list.add(sysStaff.getTimeClockList().get(1)); //下发照片 SysDept sysDept = deptMapper.selectDeptById(sysStaff.getDeptId()); - eqSnDetailService.sendPhoto(dkj_list, Collections.asList(Collections.asMap("userId", String.valueOf(sysStaff.getUserId()), "name", sysStaff.getName(), "photoUrl", ParamUtils.getGlobalStaticUrl()+upload.getFileName(), "deptName", sysDept.getDeptName()))); + try { + eqSnDetailService.sendPhoto(dkj_list, Collections.asList(Collections.asMap("userId", String.valueOf(sysStaff.getUserId()), "name", sysStaff.getName(), "photoUrl", ParamUtils.getGlobalStaticUrl()+upload.getFileName(), "deptName", sysDept.getDeptName()))); + } catch (Exception e) { + throw new RuntimeException("员工新增成功, 但是照片下发失败了,请截图联系管理员: 直白原因: "+ e.getMessage()); + } } } diff --git a/evo-admin/src/main/resources/application-local.yml b/evo-admin/src/main/resources/application-local.yml index 57e972b..4fe0511 100644 --- a/evo-admin/src/main/resources/application-local.yml +++ b/evo-admin/src/main/resources/application-local.yml @@ -32,7 +32,7 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/evo_cw_dev_ding?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/evo_cw_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: hbyt123456 #username: root diff --git a/evo-admin/src/main/resources/mapper/restaurant/RzRestaurantDetailMapper.xml b/evo-admin/src/main/resources/mapper/restaurant/RzRestaurantDetailMapper.xml index d1fc356..945492f 100644 --- a/evo-admin/src/main/resources/mapper/restaurant/RzRestaurantDetailMapper.xml +++ b/evo-admin/src/main/resources/mapper/restaurant/RzRestaurantDetailMapper.xml @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, staff_id,name, date, time, sign, del_flag, create_by, create_time, update_by, update_time from rz_restaurant_detail + select id, staff_id,name, date, time, sign, del_flag, device_sn, create_by, create_time, update_by, update_time from rz_restaurant_detail