package com.thhy.staff.modules.biz.platuser.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.nacos.api.utils.StringUtils;
|
import com.thhy.general.common.BasicMessage;
|
import com.thhy.general.common.BasicStatus;
|
import com.thhy.general.config.SysUserInfo;
|
import com.thhy.general.exception.BasicException;
|
import com.thhy.general.utils.ScreenMqUtils;
|
import com.thhy.general.utils.UserInfoUtils;
|
import com.thhy.staff.config.EmqxConfig;
|
import com.thhy.staff.config.FaceConfig;
|
import com.thhy.staff.modules.biz.applyhistory.entity.UserApplyHistory;
|
import com.thhy.staff.modules.biz.applyhistory.mapper.UserApplyHistoryMapper;
|
import com.thhy.staff.modules.biz.depart.entity.OtherUser;
|
import com.thhy.staff.modules.biz.face.entity.MqContent;
|
import com.thhy.staff.modules.biz.face.mapper.FaceDeviceMapper;
|
import com.thhy.staff.modules.biz.group.entity.GroupUser;
|
import com.thhy.staff.modules.biz.netty.NettyServerHandler;
|
import com.thhy.staff.modules.biz.platuser.entity.*;
|
import com.thhy.staff.modules.biz.platuser.mapper.PlatUserMapper;
|
import com.thhy.staff.modules.biz.platuser.service.PlatUserService;
|
import com.thhy.staff.utils.MqUtils;
|
import com.thhy.staff.utils.ProcessFlag;
|
import com.thhy.staff.utils.StaffNoUtils;
|
import io.netty.channel.ChannelHandlerContext;
|
import org.checkerframework.checker.units.qual.A;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import java.io.Serializable;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.*;
|
import java.util.concurrent.CopyOnWriteArraySet;
|
|
/**
|
* 服务实现类
|
* @author zhang_xiao_bo
|
* @since 2023-03-30 12:49:45
|
*/
|
@Service
|
public class PlatUserServiceImpl implements PlatUserService {
|
|
private Logger logger = LoggerFactory.getLogger(PlatUserServiceImpl.class);
|
|
@Autowired
|
private PlatUserMapper platUserMapper;
|
|
@Autowired
|
private UserApplyHistoryMapper historyMapper;
|
|
@Autowired
|
private ScreenMqUtils screenMqUtils;
|
|
@Autowired
|
private FaceDeviceMapper faceDeviceMapper;
|
|
@Autowired
|
private EmqxConfig emqxConfig;
|
|
@Autowired
|
private FaceConfig faceConfig;
|
|
public PlatUser get(Serializable id){
|
return platUserMapper.queryById(id);
|
}
|
|
@Override
|
public List<PlatUserPullDown> queryForPullDown(PlatUserDto platUserDto) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
|
if(platUserDto==null)platUserDto = new PlatUserDto();
|
platUserDto.setCompanyId(userInfo.getCompanyId());
|
return platUserMapper.queryForPullDown(platUserDto);
|
}
|
|
@Override
|
public List<PlatUserPullDown> queryForPullDownDorm(PlatUserDto platUserDto) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
|
if(platUserDto==null)platUserDto = new PlatUserDto();
|
platUserDto.setCompanyId(userInfo.getCompanyId());
|
return platUserMapper.queryForPullDownDorm(platUserDto);
|
}
|
|
public List<PlatUserListVo> findList(PlatUserDto platUserDto){
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
platUserDto.setCompanyId(sysUserInfo.getCompanyId());
|
return platUserMapper.findList(platUserDto);
|
}
|
|
@Override
|
public List<PlatUserListVo> findListForExport(PlatUserDto platUserDto, String token) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(token);
|
platUserDto.setCompanyId(sysUserInfo.getCompanyId());
|
return platUserMapper.findList(platUserDto);
|
}
|
|
/**
|
* 增加和修改
|
* @param platUserDto
|
*/
|
@Transactional
|
public void addPlatUser(PlatUserDto platUserDto){
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String syncSysFlag = "false";
|
//String syncJobNum = "";
|
if(platUserDto.getUserId() == null){
|
//增加操作
|
String userId = platUserMapper.queryIdByPhone(platUserDto.getPhone());
|
if(!StringUtils.isEmpty(userId)){
|
throw new BasicException(BasicStatus.PHONE_IS_EXIST);
|
}
|
|
String sysUserId = platUserMapper.querySysUserIdByPhone(platUserDto.getPhone());
|
|
if(!StringUtils.isEmpty(sysUserId)){
|
throw new BasicException(BasicStatus.PHONE_IS_EXIST_SYSUSER);
|
}
|
|
String userIdno = platUserMapper.queryIdByIdno(platUserDto.getIdNo());
|
if(!StringUtils.isEmpty(userIdno)){
|
throw new BasicException(BasicStatus.IDNO_IS_EXIST);
|
}
|
|
|
|
int maxno = platUserMapper.queryMaxJobNum(platUserDto.getUserType());
|
String newJobNum = StaffNoUtils.create(platUserDto.getUserType(),maxno);
|
platUserDto.setJobNum(newJobNum);
|
platUserDto.setCreateUser(sysUserInfo.getUserId());
|
platUserDto.setFromPlat(1); //PC
|
platUserMapper.insert(platUserDto);
|
if(platUserDto.getIsLogin()==1) syncSysFlag="first";
|
}else{
|
//修改操作
|
String userId = platUserMapper.queryIdByPhone(platUserDto.getPhone());
|
String userIdno = platUserMapper.queryIdByIdno(platUserDto.getIdNo());
|
if (!StringUtils.isEmpty(userId)) {
|
if(!platUserDto.getUserId().equals(userId)){
|
throw new BasicException(BasicStatus.PHONE_IS_EXIST);
|
}
|
}
|
if (!StringUtils.isEmpty(userIdno)) {
|
if(!platUserDto.getUserId().equals(userIdno)){
|
throw new BasicException(BasicStatus.IDNO_IS_EXIST);
|
}
|
}
|
PlatUser plat = platUserMapper.queryById(platUserDto.getUserId());
|
platUserDto.setUpdateUser(sysUserInfo.getUserId());
|
platUserDto.setUpdateTime(new Date());
|
if(platUserDto.getIsLogin()==plat.getIsLogin()){
|
syncSysFlag="false";
|
}else{
|
if(platUserDto.getIsLogin()==1)syncSysFlag="updatesync";
|
if(platUserDto.getIsLogin()==2)syncSysFlag="updatedel";
|
|
platUserDto.setJobNum(plat.getJobNum());
|
}
|
platUserMapper.update(platUserDto);
|
|
}
|
if("first".equals(syncSysFlag)){
|
//同步用户表
|
SysUsers sysUsers = StaffNoUtils.PlatoSys(platUserDto);
|
platUserMapper.insertSysUser(sysUsers);
|
//BasicResult basicResult = sysUserService.insertSysUser(JSON.toJSONString(sysUsers));
|
//CheckResult.check(basicResult);
|
}else if(!"false".equals(syncSysFlag)){
|
if("updatesync".equals(syncSysFlag)){
|
SysUsers sysUsers = StaffNoUtils.PlatoSys(platUserDto);
|
platUserMapper.insertSysUser(sysUsers);
|
}else{
|
platUserMapper.syncDelete(platUserDto.getJobNum());
|
}
|
}
|
String posId = platUserDto.getPosId();
|
String departId = platUserDto.getDepartId();
|
String groups = platUserDto.getGroups();
|
platUserMapper.deleteDepartUserByUser(platUserDto.getUserId());
|
platUserMapper.insertDepartUser(new OtherUser(departId, platUserDto.getUserId()));
|
platUserMapper.deletePositionUserByUser(platUserDto.getUserId());
|
platUserMapper.insertPositionUser(new OtherUser(posId, platUserDto.getUserId()));
|
|
|
platUserMapper.deleteGroupUserByUser(platUserDto.getUserId());
|
if (!StringUtils.isEmpty(platUserDto.getGroups())) {
|
String[] groupArray = new String[]{groups};
|
if(groups.contains(",")){
|
groupArray = groups.split(",");
|
}
|
for(String groupId : groupArray){
|
platUserMapper.insertGroupUser(new GroupUser(groupId, platUserDto.getUserId()));
|
}
|
}
|
}
|
|
/**
|
* 删除
|
* @param userId
|
*/
|
@Transactional
|
public void delete(Serializable userId){
|
PlatUser platUser = platUserMapper.queryPhoneAndIsLogin(userId);
|
|
if (platUser.getIsLogin()==1) {
|
platUserMapper.deleteSysUserByPlat(platUser.getUserId());
|
}
|
platUserMapper.deleteDepartUserByUser(platUser.getUserId());
|
platUserMapper.deletePositionUserByUser(platUser.getUserId());
|
platUserMapper.deleteGroupUserByUser(platUser.getUserId());
|
platUserMapper.deletelogic(userId);
|
}
|
|
|
@Override
|
@Transactional
|
public void register(PlatUserDto platUserDto) {
|
if(StringUtils.isEmpty(platUserDto.getOpenId())){
|
throw new BasicException(BasicStatus.OPEN_ID_IS_MISS);
|
}
|
MpRegisterInfoVo reginfo = platUserMapper.queryByOpenId(platUserDto.getOpenId());
|
if(reginfo==null){
|
String phone = platUserMapper.queryIdByPhone(platUserDto.getPhone());
|
if(!StringUtils.isEmpty(phone)){
|
throw new BasicException(BasicStatus.PHONE_IS_EXIST);
|
}
|
|
String userIdno = platUserMapper.queryIdByIdno(platUserDto.getIdNo());
|
if(!StringUtils.isEmpty(userIdno)){
|
throw new BasicException(BasicStatus.IDNO_IS_EXIST);
|
}
|
int maxno = platUserMapper.queryMaxJobNum(2);
|
String newJobNum = StaffNoUtils.create(2,maxno);
|
platUserDto.setJobNum(newJobNum);
|
platUserDto.setUserType(2);//劳务人员
|
platUserDto.setApplyFlag(0);
|
platUserDto.setIsLogin(1);
|
platUserMapper.insert(platUserDto);
|
platUserMapper.deletePositionUserByUser(platUserDto.getUserId());
|
platUserMapper.insertPositionUser(new OtherUser(platUserDto.getPosId(), platUserDto.getUserId()));
|
}else {
|
if(!reginfo.getCompanyId().equals(platUserDto.getCompanyId())){
|
throw new BasicException(BasicStatus.USER_ALREADY_HAS_COMPANY);
|
}
|
if(reginfo.getApplyFlag()==1){
|
throw new BasicException(BasicStatus.REGISTER_IS_PASS); //不要重复注册
|
}
|
String userId = platUserMapper.queryIdByPhone(platUserDto.getPhone());
|
String userIdno = platUserMapper.queryIdByIdno(platUserDto.getIdNo());
|
if (!StringUtils.isEmpty(userId)) {
|
if(!reginfo.getUserId().equals(userId)){
|
throw new BasicException(BasicStatus.PHONE_IS_EXIST);
|
}
|
}
|
if (!StringUtils.isEmpty(userIdno)) {
|
if(!reginfo.getUserId().equals(userIdno)){
|
throw new BasicException(BasicStatus.IDNO_IS_EXIST);
|
}
|
}
|
platUserDto.setUserId(reginfo.getUserId());
|
platUserDto.setApplyFlag(0);
|
platUserMapper.update(platUserDto);
|
if(!reginfo.getPosId().equals(platUserDto.getPosId())){
|
platUserMapper.deletePositionUserByUser(platUserDto.getUserId());
|
platUserMapper.insertPositionUser(new OtherUser(platUserDto.getPosId(), platUserDto.getUserId()));
|
}
|
}
|
|
UserApplyHistory userApplyHistory = new UserApplyHistory();
|
userApplyHistory.setPlatUserId(platUserDto.getUserId());
|
userApplyHistory.setProcessFlag(ProcessFlag.REG.getValue());
|
userApplyHistory.setApplyResult(1);
|
userApplyHistory.setCreateUser(platUserDto.getUserId());
|
historyMapper.insert(userApplyHistory);
|
|
//SysUsers sysUsers = StaffNoUtils.PlatoSys(platUserDto);
|
//platUserMapper.insertSysUser(sysUsers);
|
}
|
|
@Override
|
public Map<String,Object> checkuser(PlatUserDto platUserDto) {
|
Map<String,Object> map = new HashMap<>();
|
//根据openId获取platUser信息
|
MpRegisterInfoVo mpRegisterInfoVo = platUserMapper.queryByOpenId(platUserDto.getOpenId());
|
//判断是否审批完成
|
if(mpRegisterInfoVo==null){
|
map.put("regstatus",0); //新用户需要注册
|
return map;
|
}
|
|
if(mpRegisterInfoVo.getApplyFlag()==1){
|
map.put("regstatus",1); //已经审批完成
|
return map;
|
}
|
|
if(mpRegisterInfoVo.getApplyFlag()==0){
|
map.put("regstatus",2); //等待审核
|
return map;
|
}
|
|
if(mpRegisterInfoVo.getApplyFlag()==2){
|
map.put("regstatus",3); //审核未通过
|
map.put("reginfo",mpRegisterInfoVo);
|
List<ApplyHistory> applyHistories = platUserMapper.queryHistoryByUserId(mpRegisterInfoVo.getUserId());
|
map.put("applyRecord",applyHistories);
|
return map;
|
}
|
return map;
|
}
|
|
@Override
|
public Map<String, Object> applyDetail(PlatUserDto platUserDto) {
|
Map<String,Object> map = new HashMap<>();
|
MpRegisterInfoVo mpRegisterInfoVo = platUserMapper.queryByUserId(platUserDto.getUserId());
|
map.put("reginfo",mpRegisterInfoVo);
|
List<ApplyHistory> applyHistories = platUserMapper.queryHistoryByUserId(mpRegisterInfoVo.getUserId());
|
map.put("applyRecord",applyHistories);
|
return map;
|
}
|
|
@Override
|
public List<ApplyListVo> applyList(PlatUserDto platUserDto) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
|
if(platUserDto==null) platUserDto = new PlatUserDto();
|
platUserDto.setCompanyId(userInfo.getCompanyId());
|
return platUserMapper.queryApplyList(platUserDto);
|
}
|
|
@Override
|
@Transactional
|
public void apply(UserApplyHistory userApplyHistory) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo();
|
userApplyHistory.setCreateUser(userInfo.getUserId());
|
if(userApplyHistory.getApplyResult()==1){
|
userApplyHistory.setProcessFlag(ProcessFlag.APPLY_PASS.getValue());
|
}else {
|
userApplyHistory.setProcessFlag(ProcessFlag.APPLY_NOPASS.getValue());
|
}
|
historyMapper.insert(userApplyHistory);
|
platUserMapper.updateApplyStatus(userApplyHistory.getUserId(), userApplyHistory.getApplyResult());
|
if(userApplyHistory.getApplyResult()==1){
|
PlatUserDto platUserDto = platUserMapper.queryForDtoByUserId(userApplyHistory.getUserId());
|
SysUsers sysUsers = StaffNoUtils.PlatoSys(platUserDto);
|
platUserMapper.insertSysUser(sysUsers);
|
platUserMapper.deleteDepartUserByUser(userApplyHistory.getUserId());
|
platUserMapper.insertDepartUser(new OtherUser(userApplyHistory.getDepartId(), platUserDto.getUserId()));
|
}
|
}
|
|
@Override
|
public void testFace(FaceDto faceDto) {
|
CopyOnWriteArraySet<ChannelHandlerContext> CTXS= NettyServerHandler.CTXS;
|
logger.info("netty链接个数"+CTXS.size());
|
faceDto.setOp(1);
|
/*CopyOnWriteArraySet<Session> SESSIONS = FaceServer.SESSIONS;
|
SESSIONS.forEach(session ->{
|
try {
|
if (session.isOpen()) {
|
session.getBasicRemote().sendText(JSON.toJSONString(faceDto));
|
logger.info("成功推送消息到局域网段"+session.getId()+"___"+session.getRequestURI().getHost());
|
}
|
} catch (IOException e) {
|
throw new RuntimeException(e);
|
}
|
});*/
|
CTXS.forEach(ctx ->{
|
if (!ctx.isRemoved()&&ctx.channel().isOpen()) {
|
ctx.write(JSON.toJSONString(faceDto));
|
ctx.flush();
|
//logger.info("成功推送消息到局域网段"+session.getId()+"___"+session.getRequestURI().getHost());
|
}
|
});
|
/*Map<String,Object> map = AcsMain.addFace(faceDto.getJobNum(),filePrefix+"/"+faceDto.getPhoto());
|
if(map.containsKey("code")){
|
if(Integer.parseInt(map.get("code").toString())!=0){
|
throw new BasicException(new BasicMessage(map.get("code").toString(),map.get("message").toString()));
|
}
|
}*/
|
}
|
|
@Override
|
public void addFace(FaceDto faceDto) {
|
faceDto.setOp(1);
|
FaceDto fd = platUserMapper.queryJobNumByUserId(faceDto.getUserId());
|
platUserMapper.updateFace(faceDto);
|
if(faceDto.getSyncToDevice()==1){
|
//下发
|
List<String> sns = faceDeviceMapper.queryDevSn();
|
|
MqContent mqContent = new MqContent("sync_person", faceConfig.getUrlPrefix()+faceConfig.getNotify());
|
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("path",faceConfig.getUrlPrefix()+faceConfig.getSinglePer());
|
JSONObject pathParamJson = new JSONObject();
|
pathParamJson.put("dev_sno","");
|
pathParamJson.put("limit",10);
|
pathParamJson.put("offset",0);
|
pathParamJson.put("total",1);
|
List<String> userIds = new ArrayList<>();
|
userIds.add(faceDto.getUserId());
|
pathParamJson.put("person_list",userIds);
|
pathParamJson.put("person_type","4");
|
jsonObject.put("path_params",pathParamJson);
|
mqContent.setData(jsonObject);
|
logger.info("下发人脸参数:"+JSON.toJSONString(mqContent));
|
MqUtils.createClient(emqxConfig,sns,JSON.toJSONString(mqContent));
|
/*Map<String,Object> map = AcsMain.addFace(fd.getJobNum(),filePrefix+"/"+fd.getPhoto());
|
if(map.containsKey("code")){
|
if(Integer.parseInt(map.get("code").toString())!=0){
|
throw new BasicException(new BasicMessage(map.get("code").toString(),map.get("message").toString()));
|
}
|
}*/
|
/*CopyOnWriteArraySet<Session> SESSIONS = FaceServer.SESSIONS;
|
if(SESSIONS.size()<1){
|
throw new BasicException(new BasicMessage("99991","与门禁一体机失去链接"));
|
}
|
SESSIONS.forEach(session ->{
|
try {
|
if (session.isOpen()) {
|
faceDto.setPhoto(filePrefix+faceDto.getPhoto());
|
session.getBasicRemote().sendText(JSON.toJSONString(faceDto));
|
logger.info("成功推送消息到局域网段"+session.getId()+"___"+session.getRequestURI().getHost());
|
}
|
} catch (IOException e) {
|
throw new RuntimeException(e);
|
}
|
});*/
|
|
/*CopyOnWriteArraySet<ChannelHandlerContext> CTXS= NettyServerHandler.CTXS;
|
if(CTXS.size()<1){
|
throw new BasicException(new BasicMessage("99991","与门禁一体机失去链接"));
|
}
|
if(CTXS.size()>1){
|
logger.info("多个客户端"+CTXS.size());
|
}
|
CTXS.forEach(ctx ->{
|
if (!ctx.isRemoved()&&ctx.channel().isOpen()) {
|
logger.info("即将推送消息到局域网段");
|
faceDto.setJobNum(fd.getJobNum());
|
faceDto.setRealName(fd.getRealName());
|
ctx.write(JSON.toJSONString(faceDto));
|
ctx.flush();
|
logger.info("成功推送消息到局域网段");
|
}
|
});*/
|
}
|
}
|
|
@Override
|
@Transactional
|
public void delFace(FaceDto faceDto) {
|
String userIds = faceDto.getUserIds();
|
if(StringUtils.isEmpty(userIds)){
|
throw new BasicException(BasicStatus.ERROR);
|
}
|
List<String> sns = faceDeviceMapper.queryDevSn();
|
String[] userIdArray = new String[]{userIds};
|
if(userIds.contains(",")){
|
userIdArray = userIds.split(",");
|
}
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("method","delete_person");
|
jsonObject.put("notify",faceConfig.getUrlPrefix()+"deleteNotify");
|
JSONObject userIdJSON = new JSONObject();
|
userIdJSON.put("userIds",userIdArray);
|
jsonObject.put("params",userIdJSON);
|
JSONObject dataJson = new JSONObject();
|
dataJson.put("person_list",userIdArray);
|
dataJson.put("person_type","4");
|
jsonObject.put("data",dataJson);
|
String content = jsonObject.toJSONString();
|
logger.info("删除指令打印"+content);
|
MqUtils.createClient(emqxConfig,sns,content);
|
}
|
|
@Override
|
public void doorhis(String eventLog) {
|
|
JSONObject jsonObject = JSONObject.parseObject(eventLog);
|
|
if(!jsonObject.containsKey("eventType")){
|
platUserMapper.addDoorHis(eventLog);
|
return;
|
}
|
String eventType = jsonObject.getString("eventType");
|
if(!"AccessControllerEvent".equals(eventType)){
|
platUserMapper.addDoorHis(eventLog);
|
return;
|
}
|
|
JSONObject control = jsonObject.getJSONObject("AccessControllerEvent");
|
|
String majorEventType = control.getString("majorEventType");
|
if(!"1".equals(majorEventType)&&!"5".equals(majorEventType)){
|
platUserMapper.addDoorHis(eventLog);
|
return;
|
}
|
|
DoorLis doorLis = new DoorLis();
|
doorLis.setOriStr(eventLog);
|
doorLis.setIpAddress(jsonObject.getString("ipAddress"));
|
doorLis.setMacAddress(jsonObject.getString("macAddress"));
|
doorLis.setNoticeType(Integer.parseInt(majorEventType));
|
if("5".equals(majorEventType)){
|
String subEventType = control.getString("subEventType");
|
if("75".equals(subEventType)){
|
doorLis.setVerify(1);
|
doorLis.setName(control.getString("name"));
|
doorLis.setEmployeeNoString(control.getString("employeeNoString"));
|
}else if("76".equals(subEventType)){
|
doorLis.setVerify(2);
|
}
|
screenMqUtils.sendFace("update");
|
}else{
|
String subEventType = control.getString("subEventType");
|
if("1038".equals(subEventType)){
|
//联动事件报警
|
|
}
|
}
|
platUserMapper.insertDoorLis(doorLis);
|
}
|
|
@Override
|
public Map<String, Object> faceRecord(String token) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(token);
|
int userCount = platUserMapper.queryPlatUser(userInfo.getCompanyId());
|
Map<String, Object> map = new HashMap<>();
|
map.put("mod","facerecord");
|
map.put("totalUserCount",userCount);
|
map.put("watchUserCount",0);
|
map.put("dangerUserCount",0);
|
List<DoorUserVo> list = platUserMapper.queryDoorUser();
|
map.put("doorUserList",list);
|
PlatUserFace platUserFace = platUserMapper.queryFaceUserByJobNum(list.get(0).getJobNum());
|
platUserFace.setPassTime(list.get(0).getCreateTime());
|
map.put("firstUserInfo",platUserFace);
|
return map;
|
}
|
|
@Override
|
public Map<String, Object> todayWorkUser(String token) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(token);
|
int totalUserCount = platUserMapper.queryPlatUser(userInfo.getCompanyId());
|
int workUserCount = platUserMapper.countInDoorUserToday();
|
|
Map<String,Object> map = new HashMap<>();
|
map.put("mod","todayAttendance");
|
map.put("totalUserCount",totalUserCount);
|
map.put("workUserCount",workUserCount);
|
BigDecimal rate = new BigDecimal(0);
|
if(totalUserCount!=0&&workUserCount!=0){
|
rate = new BigDecimal(workUserCount).divide(new BigDecimal(totalUserCount),2, RoundingMode.HALF_UP);
|
}
|
map.put("rate",rate);
|
return map;
|
}
|
|
@Override
|
public Map<String, Object> groupUserWork(String token) {
|
SysUserInfo userInfo = UserInfoUtils.getInstance().getUserInfo(token);
|
List<GroupWorking> groupWorkingList = platUserMapper.groupUserWorking(userInfo.getCompanyId());
|
groupWorkingList.forEach(gl -> {
|
int count = platUserMapper.countFaceRecordByGroup(gl.getGroupId());
|
gl.setGroupWorkCount(count);
|
});
|
Map<String,Object> map = new HashMap<>();
|
map.put("mod","groupWork");
|
map.put("groupWork",groupWorkingList);
|
return map;
|
}
|
|
@Override
|
public void doorlisWithPic(DoorLisPic doorLisPic) {
|
|
if("5".equals(doorLisPic.getFirstType())){
|
if("4b".equals(doorLisPic.getSecType())){
|
doorLisPic.setVerify(1);
|
}else if("4c".equals(doorLisPic.getSecType())){
|
doorLisPic.setVerify(2);
|
}else if("15".equals(doorLisPic.getSecType())){
|
doorLisPic.setLockOp(1);
|
}else if("16".equals(doorLisPic.getSecType())){
|
doorLisPic.setLockOp(2);
|
}
|
}else if("3".equals(doorLisPic.getFirstType())){
|
|
}
|
platUserMapper.insertDoorListener(doorLisPic);
|
}
|
|
public static void main(String[] args) {
|
MqContent mqContent = new MqContent("sync_person", "notify");
|
String uu = "02d32ee86bec2b11e4b23eb6";
|
JSONObject jsonObject = new JSONObject();
|
jsonObject.put("path","/path");
|
JSONObject pathParamJson = new JSONObject();
|
|
pathParamJson.put("dev_sno","");
|
pathParamJson.put("limit",10);
|
pathParamJson.put("offset",0);
|
pathParamJson.put("total",1);
|
pathParamJson.put("person_list","[\""+uu+"\"]");
|
pathParamJson.put("person_type","4");
|
jsonObject.put("path_params",pathParamJson);
|
mqContent.setData(jsonObject);
|
|
System.out.println(pathParamJson.toJSONString());
|
}
|
}
|