钉钉相关调整
This commit is contained in:
parent
5f6fc4216b
commit
ce60d0986f
@ -101,9 +101,11 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP
|
|||||||
//如果最后一条数据的卡类型为下班卡,则返回上班卡和加班卡权限 or 检查当前人员是否存在特殊加班中 或者 检查当前人员部门是否开启加班 or 暂时取消这个判定 当天打过加班卡 ( || rzAttendanceDetailMapper.checkOverTimeCard(sysStaff.getUserId(), new Date()) > 0)
|
//如果最后一条数据的卡类型为下班卡,则返回上班卡和加班卡权限 or 检查当前人员是否存在特殊加班中 或者 检查当前人员部门是否开启加班 or 暂时取消这个判定 当天打过加班卡 ( || rzAttendanceDetailMapper.checkOverTimeCard(sysStaff.getUserId(), new Date()) > 0)
|
||||||
if(ObjectUtils.isNotEmpty(eqOverStaffMapper.selectEqOverStaffByUserId(sysStaff.getUserId())) || ObjectUtils.isEmpty(sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>().eq(SysDept::getDeptId, sysStaff.getDeptId()).eq(SysDept::getIsOverTime,"1")))){
|
if(ObjectUtils.isNotEmpty(eqOverStaffMapper.selectEqOverStaffByUserId(sysStaff.getUserId())) || ObjectUtils.isEmpty(sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>().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{
|
}else{
|
||||||
return initMessage(0,"验证通过", "000011000");
|
return initMessage(0,"验证通过", "000011000");
|
||||||
}
|
}
|
||||||
@ -211,11 +213,13 @@ public class KQDeviceExchangeProcessor implements PunchTheClockStrategyExchangeP
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Boolean checkToDayCard(String userId, String rules, Date date){
|
public Boolean checkToDayCard(String userId, String rules, Date date){
|
||||||
return ObjectUtils.isNotEmpty(rzAttendanceDetailService.getOne(new LambdaQueryWrapper<RzAttendanceDetail>()
|
//原位getOne, 修正钉钉打打卡后 会出现多条记录, 所以改为list
|
||||||
|
return ObjectUtils.isNotEmpty(rzAttendanceDetailService.list(new LambdaQueryWrapper<RzAttendanceDetail>()
|
||||||
.like(RzAttendanceDetail::getButtonType,"%"+rules+"%")
|
.like(RzAttendanceDetail::getButtonType,"%"+rules+"%")
|
||||||
.eq(RzAttendanceDetail::getStaffId, Long.valueOf(userId))
|
.eq(RzAttendanceDetail::getStaffId, Long.valueOf(userId))
|
||||||
.eq(RzAttendanceDetail::getDelFlag, Constants.DELETE_FLAG_0)
|
.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)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -80,7 +80,7 @@ public class RzAttendanceDetailServiceImpl extends ServiceImpl<RzAttendanceDetai
|
|||||||
//.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)
|
||||||
//以下为特殊规则, 只针对下班卡起作用
|
//以下为特殊规则, 只针对下班卡起作用
|
||||||
.orderByAsc("下班卡".equals(rules), RzAttendanceDetail::getDateTime)
|
.orderByAsc("下班卡".equals(rules), RzAttendanceDetail::getDateTime)
|
||||||
.last("下班卡".equals(rules)," limit 1 ")
|
.last(" limit 1 ")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,6 +30,9 @@ import com.evo.system.mapper.SysDeptMapper;
|
|||||||
import com.evo.system.mapper.SysStaffMapper;
|
import com.evo.system.mapper.SysStaffMapper;
|
||||||
import com.evo.system.service.ISysStaffService;
|
import com.evo.system.service.ISysStaffService;
|
||||||
import com.evo.wechat.service.SendClientService;
|
import com.evo.wechat.service.SendClientService;
|
||||||
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
@ -146,6 +149,19 @@ public class RzAttendanceServiceImpl extends ServiceImpl<RzAttendanceMapper, RzA
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int attendenceCount() {
|
public int attendenceCount() {
|
||||||
|
// Map<String, String> addressMap = ParamUtils.checkKqAddressCount();
|
||||||
|
// Map<String, Integer> resultMap = Collections.emptyMap();
|
||||||
|
// ObjectMapper mapper = new ObjectMapper();
|
||||||
|
// addressMap.keySet().stream().forEach(key -> {
|
||||||
|
// try {
|
||||||
|
// Map<String, String> limitMap = mapper.readValue(addressMap.get(key), new TypeReference<Map<String, String>>() {});
|
||||||
|
// limitMap.get()
|
||||||
|
// resultMap.put(key, getBaseMapper().attendenceCount())
|
||||||
|
// } catch (JsonProcessingException e) {
|
||||||
|
// throw new RuntimeException(e);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
List<RzAttendance> list = getBaseMapper().attendenceCount();
|
List<RzAttendance> list = getBaseMapper().attendenceCount();
|
||||||
return list.size();
|
return list.size();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,9 @@ import com.evo.attendance.service.IRzSysParamService;
|
|||||||
import com.evo.personnelMatters.domain.RzHoliday;
|
import com.evo.personnelMatters.domain.RzHoliday;
|
||||||
import com.evo.personnelMatters.service.IRzHolidayService;
|
import com.evo.personnelMatters.service.IRzHolidayService;
|
||||||
import com.evo.system.service.ISysDictDataService;
|
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 lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -198,7 +201,16 @@ public class ParamUtils {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static List<String> getTsDevSn(){
|
public static List<String> 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<String> getRestaurantDevSn(){
|
||||||
|
RzSysParam param= paramService.getRzSysParam("获取餐厅打卡机型号", "restaurant_device_sn","T71474,RT64815","获取餐厅打卡机型号, 多个参数使用,隔开");
|
||||||
return Collections.asList(param.getParamValue().split(","));
|
return Collections.asList(param.getParamValue().split(","));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,6 +229,24 @@ public class ParamUtils {
|
|||||||
if(StringUtils.isEmpty(rulesVal)) return false;
|
if(StringUtils.isEmpty(rulesVal)) return false;
|
||||||
return Collections.asList(rulesVal.split(",")).contains(rules);
|
return Collections.asList(rulesVal.split(",")).contains(rules);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 检查各厂考勤人数
|
||||||
|
* sn 设备号
|
||||||
|
* rules 规则
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Map<String, String> 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<String, String>
|
||||||
|
return mapper.readValue(param.getParamValue(), new TypeReference<Map<String, String>>() {});
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
/***
|
/***
|
||||||
* 获取特殊加班的考勤规则
|
* 获取特殊加班的考勤规则
|
||||||
* sn 设备号
|
* sn 设备号
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.evo.ding.processor.callback.impl;
|
package com.evo.ding.processor.callback.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.dingtalk.api.response.OapiAttendanceGroupQueryResponse;
|
import com.dingtalk.api.response.OapiAttendanceGroupQueryResponse;
|
||||||
import com.dingtalk.api.response.OapiAttendanceShiftQueryResponse;
|
import com.dingtalk.api.response.OapiAttendanceShiftQueryResponse;
|
||||||
@ -45,6 +46,8 @@ public class DingCallBackGroupChangeExchangeProcessor implements DingCallBackExc
|
|||||||
@Autowired
|
@Autowired
|
||||||
DingShiftGroupService dingShiftGroupService;
|
DingShiftGroupService dingShiftGroupService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(String eventType) {
|
public boolean accept(String eventType) {
|
||||||
return EVENT_TYPE_ATTEND_GROUP_CHANGE.equals(eventType);
|
return EVENT_TYPE_ATTEND_GROUP_CHANGE.equals(eventType);
|
||||||
@ -79,7 +82,7 @@ public class DingCallBackGroupChangeExchangeProcessor implements DingCallBackExc
|
|||||||
for (Long shiftId : groupDetail.getShiftIds()) {
|
for (Long shiftId : groupDetail.getShiftIds()) {
|
||||||
String strShiftId = String.valueOf(shiftId);
|
String strShiftId = String.valueOf(shiftId);
|
||||||
if(map.containsKey(strShiftId)){
|
if(map.containsKey(strShiftId)){
|
||||||
DingShift dingShift = dingShiftService.selectByDingId(strShiftId);
|
DingShift dingShift = dingShiftService.selectByDingIdEmptyCreate(strShiftId);
|
||||||
for (DingShiftGroup dingShiftGroup : map.get(strShiftId)){
|
for (DingShiftGroup dingShiftGroup : map.get(strShiftId)){
|
||||||
dingShiftGroup.setCheckTime(("OnDuty".equals(dingShiftGroup.getType()) ? dingShift.getOnDutyCheckTime() : dingShift.getOffDutyCheckTime()));
|
dingShiftGroup.setCheckTime(("OnDuty".equals(dingShiftGroup.getType()) ? dingShift.getOnDutyCheckTime() : dingShift.getOffDutyCheckTime()));
|
||||||
dingShiftGroupService.updateById(dingShiftGroup);
|
dingShiftGroupService.updateById(dingShiftGroup);
|
||||||
@ -97,7 +100,7 @@ public class DingCallBackGroupChangeExchangeProcessor implements DingCallBackExc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void crateDingShiftGroup(String groupId, String shiftId){
|
public void crateDingShiftGroup(String groupId, String shiftId){
|
||||||
DingShift dingShift = dingShiftService.selectByDingId(shiftId);
|
DingShift dingShift = dingShiftService.selectByDingIdEmptyCreate(shiftId);
|
||||||
//直接更新上班, 下班
|
//直接更新上班, 下班
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
DingShiftGroup dingShiftGroup = new DingShiftGroup();
|
DingShiftGroup dingShiftGroup = new DingShiftGroup();
|
||||||
|
|||||||
@ -18,5 +18,7 @@ public interface DingShiftService extends IService<DingShift> {
|
|||||||
|
|
||||||
public DingShift selectByDingId(String dingId);
|
public DingShift selectByDingId(String dingId);
|
||||||
|
|
||||||
|
public DingShift selectByDingIdEmptyCreate(String dingId);
|
||||||
|
|
||||||
public List<DingShift> selectList(DingShift dingShift);
|
public List<DingShift> selectList(DingShift dingShift);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,12 +1,17 @@
|
|||||||
package com.evo.ding.service.impl;
|
package com.evo.ding.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.DingShift;
|
||||||
import com.evo.ding.domain.DingShiftGroup;
|
import com.evo.ding.domain.DingShiftGroup;
|
||||||
import com.evo.ding.mapper.DingShiftGroupMapper;
|
import com.evo.ding.mapper.DingShiftGroupMapper;
|
||||||
import com.evo.ding.mapper.DingShiftMapper;
|
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.DingShiftGroupService;
|
||||||
import com.evo.ding.service.DingShiftService;
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -21,11 +26,24 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class DingShiftServiceImpl extends ServiceImpl<DingShiftMapper, DingShift> implements DingShiftService {
|
public class DingShiftServiceImpl extends ServiceImpl<DingShiftMapper, DingShift> implements DingShiftService {
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
DingCallBackShiftChangeExchangeProcessor dingCallBackShiftChangeExchangeProcessor;
|
||||||
@Override
|
@Override
|
||||||
public DingShift selectByDingId(String dingId) {
|
public DingShift selectByDingId(String dingId) {
|
||||||
return getBaseMapper().selectByDingId(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
|
@Override
|
||||||
public List<DingShift> selectList(DingShift dingShift) {
|
public List<DingShift> selectList(DingShift dingShift) {
|
||||||
return getBaseMapper().selectList(dingShift);
|
return getBaseMapper().selectList(dingShift);
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.evo.equipment.service.impl;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.evo.common.utils.ParamUtils;
|
||||||
import com.evo.equipment.constant.Constants;
|
import com.evo.equipment.constant.Constants;
|
||||||
import com.evo.common.core.domain.AjaxResult;
|
import com.evo.common.core.domain.AjaxResult;
|
||||||
import com.evo.common.utils.DateUtils;
|
import com.evo.common.utils.DateUtils;
|
||||||
@ -113,7 +114,7 @@ public class EqImagesServiceImpl implements IEqImagesService
|
|||||||
|
|
||||||
//定义公共打卡机
|
//定义公共打卡机
|
||||||
List<String> dkj_list = new ArrayList<String>();
|
List<String> dkj_list = new ArrayList<String>();
|
||||||
dkj_list.add(Constants.EQ_DEVICE_CODE); //食堂
|
dkj_list.addAll(ParamUtils.getRestaurantDevSn()); //食堂
|
||||||
// dkj_list.add(Constants.EQ_DEVICE_PUBLIC_CODE); //公共
|
// dkj_list.add(Constants.EQ_DEVICE_PUBLIC_CODE); //公共
|
||||||
dkj_list.add(eqImages.getTimeClock());
|
dkj_list.add(eqImages.getTimeClock());
|
||||||
|
|
||||||
@ -265,7 +266,7 @@ public class EqImagesServiceImpl implements IEqImagesService
|
|||||||
Row row = sheet.getRow(p);
|
Row row = sheet.getRow(p);
|
||||||
if(StringUtils.isNotNull(row)){
|
if(StringUtils.isNotNull(row)){
|
||||||
dkj_list = new ArrayList<String>();
|
dkj_list = new ArrayList<String>();
|
||||||
dkj_list.add(Constants.EQ_DEVICE_CODE); //食堂
|
dkj_list.addAll(ParamUtils.getRestaurantDevSn()); //食堂
|
||||||
// dkj_list.add(Constants.EQ_DEVICE_PUBLIC_CODE); //公共
|
// dkj_list.add(Constants.EQ_DEVICE_PUBLIC_CODE); //公共
|
||||||
dkj_list.add(row.getCell(4).getStringCellValue());
|
dkj_list.add(row.getCell(4).getStringCellValue());
|
||||||
cau = new StaffDto();
|
cau = new StaffDto();
|
||||||
|
|||||||
@ -46,7 +46,7 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2024-08-07
|
* @date 2024-08-07
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class EqSnDetailServiceImpl extends ServiceImpl<EqSnDetailMapper, EqSnDetail> implements IEqSnDetailService, ApplicationRunner
|
public class EqSnDetailServiceImpl extends ServiceImpl<EqSnDetailMapper, EqSnDetail> implements IEqSnDetailService
|
||||||
{
|
{
|
||||||
@Resource
|
@Resource
|
||||||
private SysStaffMapper sysStaffMapper;
|
private SysStaffMapper sysStaffMapper;
|
||||||
@ -118,8 +118,15 @@ public class EqSnDetailServiceImpl extends ServiceImpl<EqSnDetailMapper, EqSnDet
|
|||||||
public EqSnDetail selectEqSnDetailBySn(String sn){
|
public EqSnDetail selectEqSnDetailBySn(String sn){
|
||||||
return getBaseMapper().selectEqSnDetailBySn(sn);
|
return getBaseMapper().selectEqSnDetailBySn(sn);
|
||||||
}
|
}
|
||||||
//com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE,
|
//com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE, Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)
|
||||||
static List<String> tsSn = Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE);
|
static List<String> tsSn = Collections.emptyList();
|
||||||
|
|
||||||
|
public List<String> getTsSn(){
|
||||||
|
tsSn.clear();
|
||||||
|
tsSn.addAll(ParamUtils.getTsDevSn());
|
||||||
|
tsSn.addAll(ParamUtils.getRestaurantDevSn());
|
||||||
|
return tsSn;
|
||||||
|
}
|
||||||
|
|
||||||
private List<Map<String, String>> getPhoto(List<SysStaff> userList){
|
private List<Map<String, String>> getPhoto(List<SysStaff> userList){
|
||||||
List<Map<String, String>> userPhotoList = Collections.emptyList();
|
List<Map<String, String>> userPhotoList = Collections.emptyList();
|
||||||
@ -141,11 +148,12 @@ public class EqSnDetailServiceImpl extends ServiceImpl<EqSnDetailMapper, EqSnDet
|
|||||||
public Map<String, List<Map<String, String>>> initTsDkDevice(String deviceSn){
|
public Map<String, List<Map<String, String>>> initTsDkDevice(String deviceSn){
|
||||||
Map<String, List<Map<String, String>>> snUserPhotoList = Collections.emptyMap();
|
Map<String, List<Map<String, String>>> snUserPhotoList = Collections.emptyMap();
|
||||||
//如果有且只有一个设备信息, 并且设备信息为公共打卡机, 或者是 食堂打卡机
|
//如果有且只有一个设备信息, 并且设备信息为公共打卡机, 或者是 食堂打卡机
|
||||||
if(tsSn.contains(deviceSn)) {
|
if(getTsSn().contains(deviceSn)) {
|
||||||
List<Map<String, String>> userPhotoList = Collections.emptyList();
|
List<Map<String, String>> userPhotoList = Collections.emptyList();
|
||||||
List<SysStaff> userList = Collections.emptyList();
|
List<SysStaff> userList = Collections.emptyList();
|
||||||
//deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_PUBLIC_CODE) ||
|
//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<SysStaff>().eq(SysStaff::getDelFlag, Constants.DELETE_FLAG_0).ne(SysStaff::getStatus, Constants.JOB_STATIS_11).select(SysStaff::getUserId, SysStaff::getDeptId, SysStaff::getName));
|
userList = sysStaffMapper.selectList(new LambdaQueryWrapper<SysStaff>().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<EqSnDetailMapper, EqSnDet
|
|||||||
List<Long> userIds = eqOverStaffMapper.selectList(new LambdaQueryWrapper<EqOverStaff>().eq(EqOverStaff::getDelFlag, Constants.DELETE_FLAG_0).select(EqOverStaff::getUserId)).stream().map(EqOverStaff::getUserId).collect(Collectors.toList());
|
List<Long> userIds = eqOverStaffMapper.selectList(new LambdaQueryWrapper<EqOverStaff>().eq(EqOverStaff::getDelFlag, Constants.DELETE_FLAG_0).select(EqOverStaff::getUserId)).stream().map(EqOverStaff::getUserId).collect(Collectors.toList());
|
||||||
userList = sysStaffMapper.selectList((new LambdaQueryWrapper<SysStaff>().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)));
|
userList = sysStaffMapper.selectList((new LambdaQueryWrapper<SysStaff>().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)));
|
||||||
}
|
}
|
||||||
//如果是下发的食堂打卡机, 则需要查找餐饮人员的数据
|
//如果是下发的食堂打卡机, 则需要查找餐饮人员的数据 deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)
|
||||||
if (deviceSn.equals(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE)) {
|
if (ParamUtils.getRestaurantDevSn().contains(deviceSn)) {
|
||||||
List<RzRestaurantImages> list = rzRestaurantImagesMapper.selectList(new LambdaQueryWrapper<RzRestaurantImages>().eq(RzRestaurantImages::getDelFlag, Constants.DELETE_FLAG_0));
|
List<RzRestaurantImages> list = rzRestaurantImagesMapper.selectList(new LambdaQueryWrapper<RzRestaurantImages>().eq(RzRestaurantImages::getDelFlag, Constants.DELETE_FLAG_0));
|
||||||
for (RzRestaurantImages img : list) {
|
for (RzRestaurantImages img : list) {
|
||||||
userPhotoList.add(Collections.asMap("userId", String.valueOf(img.getId()), "name", img.getName(), "photoUrl", img.getImageUrl(), "deptName", "实习生"));
|
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<EqSnDetailMapper, EqSnDet
|
|||||||
Map<String, List<Map<String, String>>> snUserPhotoList = Collections.emptyMap();
|
Map<String, List<Map<String, String>>> snUserPhotoList = Collections.emptyMap();
|
||||||
if(Collections.isEmpty(userPhotoList)){
|
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)));
|
snUserPhotoList.putAll(initTsDkDevice(snList.get(0)));
|
||||||
}else{
|
}else{
|
||||||
List<String> allSnList = new ArrayList<String>(){{addAll(snList);}};
|
List<String> allSnList = new ArrayList<String>(){{addAll(snList);}};
|
||||||
List<String> tsDeviceSn = Collections.findDuplicatesList(allSnList, tsSn);
|
List<String> tsDeviceSn = Collections.findDuplicatesList(allSnList, getTsSn());
|
||||||
//所有所有不是特殊打卡机人员信息
|
//所有所有不是特殊打卡机人员信息
|
||||||
snList.remove(tsDeviceSn);
|
snList.remove(tsDeviceSn);
|
||||||
snList.stream().filter(sn-> !tsSn.contains(sn)).forEach(sn ->{
|
snList.stream().filter(sn-> !getTsSn().contains(sn)).forEach(sn ->{
|
||||||
//获取所有未删除的, 没有离职的员工信息
|
//获取所有未删除的, 没有离职的员工信息
|
||||||
List<SysStaff> userList = sysStaffMapper.selectList((new LambdaQueryWrapper<SysStaff>().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)));
|
List<SysStaff> userList = sysStaffMapper.selectList((new LambdaQueryWrapper<SysStaff>().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));
|
snUserPhotoList.put(sn, getPhoto(userList));
|
||||||
@ -304,8 +312,10 @@ public class EqSnDetailServiceImpl extends ServiceImpl<EqSnDetailMapper, EqSnDet
|
|||||||
update(new UpdateWrapper<EqSnDetail>().set("type","连接已断开").set("session_id","").eq( "session_id", sessionId));
|
update(new UpdateWrapper<EqSnDetail>().set("type","连接已断开").set("session_id","").eq( "session_id", sessionId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
//
|
||||||
public void run(ApplicationArguments args) throws Exception {
|
// @Override
|
||||||
tsSn.addAll(ParamUtils.getTsDevSn());
|
// public void run(ApplicationArguments args) throws Exception {
|
||||||
}
|
// tsSn.addAll(ParamUtils.getTsDevSn());
|
||||||
|
// tsSn.addAll(ParamUtils.getRestaurantDevSn());
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,8 @@ public class RzRestaurantDetail extends BaseEntity
|
|||||||
/** 删除标记 */
|
/** 删除标记 */
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
||||||
|
private String deviceSn;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|||||||
@ -83,7 +83,6 @@ public class RzRestaurantDetailServiceImpl extends ServiceImpl<RzRestaurantDetai
|
|||||||
@Override
|
@Override
|
||||||
public String insertRzRestaurantDetail(String json)
|
public String insertRzRestaurantDetail(String json)
|
||||||
{
|
{
|
||||||
System.out.println(json.toString());
|
|
||||||
//需要返回的对象
|
//需要返回的对象
|
||||||
RestaurantVo cfiv = new RestaurantVo();
|
RestaurantVo cfiv = new RestaurantVo();
|
||||||
RestaurantData cfd = new RestaurantData();
|
RestaurantData cfd = new RestaurantData();
|
||||||
@ -98,7 +97,6 @@ public class RzRestaurantDetailServiceImpl extends ServiceImpl<RzRestaurantDetai
|
|||||||
if(!ParamUtils.getCanteenOpenHour().contains(hour)){
|
if(!ParamUtils.getCanteenOpenHour().contains(hour)){
|
||||||
cfiv.setResult(2);
|
cfiv.setResult(2);
|
||||||
cfiv.setMsg("不在打卡时间内");
|
cfiv.setMsg("不在打卡时间内");
|
||||||
System.out.println(JSONObject.toJSONString(cfiv));
|
|
||||||
return JSONObject.toJSONString(cfiv);
|
return JSONObject.toJSONString(cfiv);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,6 +130,7 @@ public class RzRestaurantDetailServiceImpl extends ServiceImpl<RzRestaurantDetai
|
|||||||
RzRestaurantStatistics restaurantStatistics = rzRestaurantStatisticsMapper.selectRzRestaurantStatisticsByUserIdAndDate(Long.valueOf(userId),new Date());
|
RzRestaurantStatistics restaurantStatistics = rzRestaurantStatisticsMapper.selectRzRestaurantStatisticsByUserIdAndDate(Long.valueOf(userId),new Date());
|
||||||
//增加打卡记录
|
//增加打卡记录
|
||||||
RzRestaurantDetail cyFaceInfo = new RzRestaurantDetail();
|
RzRestaurantDetail cyFaceInfo = new RzRestaurantDetail();
|
||||||
|
cyFaceInfo.setDeviceSn(jsonObject.getString("sn"));
|
||||||
cyFaceInfo.setDate(new Date());
|
cyFaceInfo.setDate(new Date());
|
||||||
cyFaceInfo.setStaffId(restaurantStatistics.getStaffId());
|
cyFaceInfo.setStaffId(restaurantStatistics.getStaffId());
|
||||||
cyFaceInfo.setName(restaurantStatistics.getName());
|
cyFaceInfo.setName(restaurantStatistics.getName());
|
||||||
|
|||||||
@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.evo.common.constant.Constants;
|
import com.evo.common.constant.Constants;
|
||||||
import com.evo.common.core.domain.AjaxResult;
|
import com.evo.common.core.domain.AjaxResult;
|
||||||
import com.evo.common.core.domain.entity.RzUpload;
|
import com.evo.common.core.domain.entity.RzUpload;
|
||||||
import com.evo.common.utils.Collections;
|
import com.evo.common.utils.*;
|
||||||
import com.evo.common.utils.DateUtils;
|
|
||||||
import com.evo.common.utils.SecurityUtils;
|
|
||||||
import com.evo.common.utils.StringUtils;
|
|
||||||
import com.evo.common.utils.file.FileUploadUtils;
|
import com.evo.common.utils.file.FileUploadUtils;
|
||||||
import com.evo.equipment.domain.vo.StaffData;
|
import com.evo.equipment.domain.vo.StaffData;
|
||||||
import com.evo.equipment.domain.vo.StaffDto;
|
import com.evo.equipment.domain.vo.StaffDto;
|
||||||
@ -22,6 +19,7 @@ import com.evo.restaurant.service.IRzRestaurantImagesService;
|
|||||||
import com.evo.restaurant.service.IRzRestaurantStatisticsService;
|
import com.evo.restaurant.service.IRzRestaurantStatisticsService;
|
||||||
import com.evo.system.service.RzUploadService;
|
import com.evo.system.service.RzUploadService;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -45,6 +43,9 @@ public class RzRestaurantImagesServiceImpl extends ServiceImpl<RzRestaurantImage
|
|||||||
private IEqSnDetailService eqSnDetailService;//餐饮统计
|
private IEqSnDetailService eqSnDetailService;//餐饮统计
|
||||||
@Resource
|
@Resource
|
||||||
private RzUploadService rzUploadService;//文件上传
|
private RzUploadService rzUploadService;//文件上传
|
||||||
|
@Autowired
|
||||||
|
private ParamUtils paramUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询餐饮照片管理列表
|
* 查询餐饮照片管理列表
|
||||||
*
|
*
|
||||||
@ -68,8 +69,7 @@ public class RzRestaurantImagesServiceImpl extends ServiceImpl<RzRestaurantImage
|
|||||||
{
|
{
|
||||||
//根据id查询信息
|
//根据id查询信息
|
||||||
RzRestaurantImages rzRestaurantImages = getBaseMapper().selectRzRestaurantImagesById(id);
|
RzRestaurantImages rzRestaurantImages = getBaseMapper().selectRzRestaurantImagesById(id);
|
||||||
//删除打卡机照片
|
|
||||||
String message = "";
|
|
||||||
//需要返回的对象
|
//需要返回的对象
|
||||||
StaffDto cau = new StaffDto();
|
StaffDto cau = new StaffDto();
|
||||||
//发送的数据
|
//发送的数据
|
||||||
@ -78,8 +78,6 @@ public class RzRestaurantImagesServiceImpl extends ServiceImpl<RzRestaurantImage
|
|||||||
cau.setCmd("to_device");
|
cau.setCmd("to_device");
|
||||||
//无用值,空串
|
//无用值,空串
|
||||||
cau.setForm("");
|
cau.setForm("");
|
||||||
//设备号
|
|
||||||
cau.setTo(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE);
|
|
||||||
//给服务端预留的补充字段,设备端不处理这个字段内容。设备在响应这条指令时原样返回
|
//给服务端预留的补充字段,设备端不处理这个字段内容。设备在响应这条指令时原样返回
|
||||||
cau.setExtra("");
|
cau.setExtra("");
|
||||||
//发送的数据
|
//发送的数据
|
||||||
@ -88,7 +86,12 @@ public class RzRestaurantImagesServiceImpl extends ServiceImpl<RzRestaurantImage
|
|||||||
caud.setUser_id(id+"");
|
caud.setUser_id(id+"");
|
||||||
cau.setData(caud);
|
cau.setData(caud);
|
||||||
//调用websocket,推送给设备
|
//调用websocket,推送给设备
|
||||||
WebSocketUsers.sendMessageToUsersByText(JSONObject.toJSONString(cau));
|
ParamUtils.getRestaurantDevSn().stream().forEach(deviceNo ->{
|
||||||
|
//设备号 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);
|
String img_name = rzRestaurantImages.getImageUrl().substring(rzRestaurantImages.getImageUrl().lastIndexOf("/")+1);
|
||||||
File file = new File(com.evo.equipment.constant.Constants.STAFF_IMAGE_ADDRESS + img_name);
|
File file = new File(com.evo.equipment.constant.Constants.STAFF_IMAGE_ADDRESS + img_name);
|
||||||
@ -134,7 +137,7 @@ public class RzRestaurantImagesServiceImpl extends ServiceImpl<RzRestaurantImage
|
|||||||
log.error("处理上传照片信息出现错误", e);
|
log.error("处理上传照片信息出现错误", e);
|
||||||
}
|
}
|
||||||
//下发照片
|
//下发照片
|
||||||
eqSnDetailService.sendPhoto(Collections.asList(com.evo.equipment.constant.Constants.EQ_DEVICE_CODE),
|
eqSnDetailService.sendPhoto(Collections.asList(ParamUtils.getRestaurantDevSn()),
|
||||||
Collections.asList(Collections.asMap("userId", String.valueOf(rzRestaurantImages.getId()),
|
Collections.asList(Collections.asMap("userId", String.valueOf(rzRestaurantImages.getId()),
|
||||||
"name", rzRestaurantImages.getName(), "photoUrl", rzRestaurantImages.getImageUrl())));
|
"name", rzRestaurantImages.getName(), "photoUrl", rzRestaurantImages.getImageUrl())));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -166,12 +166,12 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
|||||||
if(CollectionUtils.isNotEmpty(sysStaff.getTimeClockList())){
|
if(CollectionUtils.isNotEmpty(sysStaff.getTimeClockList())){
|
||||||
sysStaff.setTimeClock(sysStaff.getTimeClockList().stream().collect(Collectors.joining(",")));
|
sysStaff.setTimeClock(sysStaff.getTimeClockList().stream().collect(Collectors.joining(",")));
|
||||||
}
|
}
|
||||||
//新增员工信息到金蝶
|
// //新增员工信息到金蝶
|
||||||
if(StringUtils.isNotEmpty(sysStaff.getJobCode())){
|
// 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])));
|
// 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())){
|
// }else if(StringUtils.isEmpty(sysStaff.getJobCode())){
|
||||||
sysStaff.setExtended(KingdeeRequestUtils.employeeSaveEmptyJob(Collections.asMap("userName", sysStaff.getName(), "userCode", sysStaff.getCode())));
|
// sysStaff.setExtended(KingdeeRequestUtils.employeeSaveEmptyJob(Collections.asMap("userName", sysStaff.getName(), "userCode", sysStaff.getCode())));
|
||||||
}
|
// }
|
||||||
|
|
||||||
int i = getBaseMapper().insertSysStaff(sysStaff);
|
int i = getBaseMapper().insertSysStaff(sysStaff);
|
||||||
if(i < 1){
|
if(i < 1){
|
||||||
@ -281,13 +281,19 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
|
|||||||
//不为空, 准备下发
|
//不为空, 准备下发
|
||||||
if(upload != null){
|
if(upload != null){
|
||||||
List<String> dkj_list = new ArrayList<String>();
|
List<String> dkj_list = new ArrayList<String>();
|
||||||
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.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));
|
// dkj_list.add(sysStaff.getTimeClockList().get(1));
|
||||||
//下发照片
|
//下发照片
|
||||||
SysDept sysDept = deptMapper.selectDeptById(sysStaff.getDeptId());
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,7 +32,7 @@ spring:
|
|||||||
druid:
|
druid:
|
||||||
# 主库数据源
|
# 主库数据源
|
||||||
master:
|
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
|
username: root
|
||||||
password: hbyt123456
|
password: hbyt123456
|
||||||
#username: root
|
#username: root
|
||||||
|
|||||||
@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectRzRestaurantDetailVo">
|
<sql id="selectRzRestaurantDetailVo">
|
||||||
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
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectRzRestaurantDetailList" parameterType="RzRestaurantDetail" resultMap="RzRestaurantDetailResult">
|
<select id="selectRzRestaurantDetailList" parameterType="RzRestaurantDetail" resultMap="RzRestaurantDetailResult">
|
||||||
@ -57,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="time != null">time,</if>
|
<if test="time != null">time,</if>
|
||||||
<if test="sign != null">sign,</if>
|
<if test="sign != null">sign,</if>
|
||||||
<if test="delFlag != null">del_flag,</if>
|
<if test="delFlag != null">del_flag,</if>
|
||||||
|
<if test="deviceSn != null">device_sn,</if>
|
||||||
<if test="createBy != null">create_by,</if>
|
<if test="createBy != null">create_by,</if>
|
||||||
<if test="createTime != null">create_time,</if>
|
<if test="createTime != null">create_time,</if>
|
||||||
<if test="updateBy != null">update_by,</if>
|
<if test="updateBy != null">update_by,</if>
|
||||||
@ -69,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="time != null">#{time},</if>
|
<if test="time != null">#{time},</if>
|
||||||
<if test="sign != null">#{sign},</if>
|
<if test="sign != null">#{sign},</if>
|
||||||
<if test="delFlag != null">#{delFlag},</if>
|
<if test="delFlag != null">#{delFlag},</if>
|
||||||
|
<if test="deviceSn != null">#{deviceSn},</if>
|
||||||
<if test="createBy != null">#{createBy},</if>
|
<if test="createBy != null">#{createBy},</if>
|
||||||
<if test="createTime != null">#{createTime},</if>
|
<if test="createTime != null">#{createTime},</if>
|
||||||
<if test="updateBy != null">#{updateBy},</if>
|
<if test="updateBy != null">#{updateBy},</if>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user