提交代码

dev_xd
姜玉琦 2025-06-21 11:32:29 +08:00
parent 5724ba1ea9
commit 64859c3130
9 changed files with 316 additions and 282 deletions

View File

@ -206,6 +206,9 @@ public class AttendanceJgwTask {
quartzProSubdeptsService.insertQuartzProSubdepts(quartzProSubdepts);
redisService.setCacheObject("doSyncProContractor.contractorId::"+json.getString("contractorId"),quartzProSubdepts,2L,TimeUnit.HOURS);
}else{
QuartzProSubdepts quartzProSubdepts = list.get(0);
quartzProSubdepts.setSource(code.toUpperCase()+"::"+json.getString("contractorId"));
quartzProSubdeptsService.updateQuartzProSubdepts(quartzProSubdepts);
redisService.setCacheObject("doSyncProContractor.contractorId::"+json.getString("contractorId"),list.get(0),2L,TimeUnit.HOURS);
}
}else{
@ -328,6 +331,7 @@ public class AttendanceJgwTask {
redisService.setCacheObject("doSyncDirectlyUnderGroup.teamLeaderId::"+json.getString("leaderId"),quartzProSubdeptsGroup,2L,TimeUnit.HOURS);
}else{
QuartzProSubdeptsGroup quartzProSubdeptsGroup = list.get(0);
quartzProSubdeptsGroup.setSource(code.toUpperCase()+"::"+json.getString("id"));
quartzProSubdeptsGroup.setIsDel(Convert.toLong(json.getString("deleteFlag"),0L));
quartzProSubdeptsGroup.setUpdateBy("JGW-TASK");
quartzProSubdeptsGroup.setUpdateTime(DateUtils.getNowDate());
@ -652,6 +656,7 @@ public class AttendanceJgwTask {
}else{
QuartzProSubdeptsUsers quartzProSubdeptsUsers = list.get(0);
quartzProSubdeptsUsers.setUseStatus(StringUtils.eqObj(json.getString("workerStatus"),"01")?UseStateEnums.IN.getCode() : UseStateEnums.OUT.getCode());
quartzProSubdeptsUsers.setSource(code.toUpperCase()+"::"+json.getString("workerId"));
quartzProSubdeptsUsers.setUpdateBy("JGW-TASK");
quartzProSubdeptsUsers.setUpdateTime(DateUtils.getNowDate());
quartzProSubdeptsUsersService.updateQuartzProSubdeptsUsers(quartzProSubdeptsUsers);

View File

@ -141,6 +141,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="source != null">source = #{source},</if>
</trim>
where id = #{id}
</update>

View File

@ -149,6 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="source != null">source = #{source},</if>
</trim>
where id = #{id}
</update>

View File

@ -247,6 +247,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="source != null">source = #{source},</if>
</trim>
where id = #{id}
</update>

View File

@ -83,6 +83,7 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
List<ProProjectInfoSubdeptsUsers> list = proProjectInfoSubdeptsUsersService.groupByCraftTypeByAttendance(where);
return AjaxResult.success(list);
}
/**
*
*/

View File

@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.api.WxMaService;
import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.enums.*;
import com.yanzhu.common.core.exception.ServiceException;
import com.yanzhu.common.core.text.Convert;
import com.yanzhu.common.core.utils.DateUtils;
import com.yanzhu.common.core.utils.StringUtils;
import com.yanzhu.common.security.utils.SecurityUtils;
@ -450,7 +451,7 @@ public class ProProjectInfoSubdeptsGroupServiceImpl implements IProProjectInfoSu
userQuery.setSubDeptGroup(proProjectInfoSubdeptsGroup.getId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
proProjectInfoSubdeptsUsersMapper.updateUseStatusByParams(proProjectInfoSubdeptsGroup.getSubDeptId(),proProjectInfoSubdeptsGroup.getId());
if(users.size()>0){
if("SYSTEM".equals(Convert.toStr(proProjectInfoSubdeptsGroup.getSource(),"SYSTEM")) && users.size()>0){
for(ProProjectInfoSubdeptsUsers user:users){
uniService.syncUserRevoke(user.getId());
}

View File

@ -6,6 +6,7 @@ import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.domain.R;
import com.yanzhu.common.core.enums.*;
import com.yanzhu.common.core.exception.ServiceException;
import com.yanzhu.common.core.text.Convert;
import com.yanzhu.common.core.utils.DateUtils;
import com.yanzhu.common.core.utils.StringUtils;
import com.yanzhu.common.redis.service.RedisService;
@ -15,6 +16,7 @@ import com.yanzhu.manage.domain.ProProjectInfo;
import com.yanzhu.manage.domain.ProProjectInfoSubdepts;
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsGroup;
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
import com.yanzhu.manage.mapper.AttendanceUbiDeviceMapper;
import com.yanzhu.manage.mapper.ProProjectInfoSubdeptsGroupMapper;
import com.yanzhu.manage.mapper.ProProjectInfoSubdeptsMapper;
import com.yanzhu.manage.mapper.ProProjectInfoSubdeptsUsersMapper;
@ -55,6 +57,9 @@ public class ProProjectInfoSubdeptsServiceImpl implements IProProjectInfoSubdept
@Autowired
private RemoteUserService remoteUserService;
@Autowired
private AttendanceUbiDeviceMapper attendanceUbiDeviceMapper;
@Autowired
private ProProjectInfoSubdeptsMapper proProjectInfoSubdeptsMapper;
@ -580,7 +585,7 @@ public class ProProjectInfoSubdeptsServiceImpl implements IProProjectInfoSubdept
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
proProjectInfoSubdeptsGroupMapper.updateUseStatusByParams(proProjectInfoSubdepts.getId());
proProjectInfoSubdeptsUsersMapper.updateUseStatusByParams(proProjectInfoSubdepts.getId(),null);
if(users.size()>0){
if("SYSTEM".equals(Convert.toStr(proProjectInfoSubdepts.getSource(),"SYSTEM")) && users.size()>0){
for(ProProjectInfoSubdeptsUsers user:users){
uniService.syncUserRevoke(user.getId());
}

View File

@ -1,6 +1,5 @@
package com.yanzhu.manage.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
@ -30,8 +29,11 @@ import java.security.NoSuchAlgorithmException;
import java.util.*;
import java.util.concurrent.TimeUnit;
/**
*
*/
@Service
public class UniServiceImpl implements IUniService{
public class UniServiceImpl implements IUniService {
@Autowired
private RedisService redisService;
@ -44,49 +46,50 @@ public class UniServiceImpl implements IUniService{
@Autowired
private ProProjectInfoSubdeptsUsersMapper proProjectInfoSubdeptsUsersMapper;
private void clearAuthCache(long projectId){
String cacheKey=CacheConstants.UNI_AUTH+projectId;
private void clearAuthCache(long projectId) {
String cacheKey = CacheConstants.UNI_AUTH + projectId;
redisService.deleteObject(cacheKey);
}
@Override
public Map<String,String> auth(long projectId) {
String cacheKey=CacheConstants.UNI_AUTH+projectId;
Map<String,String> authMap = redisService.getCacheObject(cacheKey);
String authInfo="404";
String projectGuid="404";
if(authMap!=null){
public Map<String, String> auth(long projectId) {
String cacheKey = CacheConstants.UNI_AUTH + projectId;
Map<String, String> authMap = redisService.getCacheObject(cacheKey);
String authInfo = "404";
String projectGuid = "404";
if (authMap != null) {
return authMap;
}else{
authMap=new HashMap<>();
} else {
authMap = new HashMap<>();
}
AttendanceCfg where=new AttendanceCfg();
AttendanceCfg where = new AttendanceCfg();
where.setProjectId(projectId);
List<AttendanceCfg> list=attendanceCfgMapper.selectAttendanceCfgList(where);
if(list.size()>0){
AttendanceCfg cfg=list.get(0);
if(cfg.getVendorsCode().equals("uni") && StringUtils.isNotEmpty(cfg.getVendorsParameter())){
JSONObject json=JSON.parseObject(cfg.getVendorsParameter());
String appKey=json.getString("AppKey");
String appSecret=json.getString("AppSecret");
projectGuid=json.getString("projectGuid");
String timestamp=""+new Date().getTime();
Map<String, String> headerParams=new HashMap<>();
headerParams.put("appKey",appKey);
headerParams.put("timestamp",timestamp);
String sign=appKey+timestamp+appSecret;
List<AttendanceCfg> list = attendanceCfgMapper.selectAttendanceCfgList(where);
if (list.size() > 0) {
AttendanceCfg cfg = list.get(0);
if (cfg.getVendorsCode().equals("uni") && StringUtils.isNotEmpty(cfg.getVendorsParameter())) {
JSONObject json = JSON.parseObject(cfg.getVendorsParameter());
String appKey = json.getString("AppKey");
String appSecret = json.getString("AppSecret");
projectGuid = json.getString("projectGuid");
String timestamp = "" + new Date().getTime();
Map<String, String> headerParams = new HashMap<>();
headerParams.put("appKey", appKey);
headerParams.put("timestamp", timestamp);
String sign = appKey + timestamp + appSecret;
headerParams.put("sign", UniUtils.md5(sign).toLowerCase());
Request request = new Request.Builder()
.url(UniUtils.getAuthUrl(projectGuid))
.get().headers(UniUtils.setHeaderParams(headerParams))
.build();
String str=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(str);
String data= jo.getString("data");
if(StringUtils.isNotEmpty(data)){
authInfo=data;
authMap.put("token",authInfo);
authMap.put("projectGuid",projectGuid);
String str = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(str);
String data = jo.getString("data");
if (StringUtils.isNotEmpty(data)) {
authInfo = data;
authMap.put("token", authInfo);
authMap.put("projectGuid", projectGuid);
redisService.setCacheObject(cacheKey, authMap, 20l, TimeUnit.HOURS);//缓存20小时
}
}
@ -96,19 +99,19 @@ public class UniServiceImpl implements IUniService{
@Override
public String admitCreate(JSONObject data) {
long projectId=data.getLong("projectId");
long projectId = data.getLong("projectId");
data.remove("projectId");
Request request=new Request.Builder()
Request request = new Request.Builder()
.url(UniUtils.ADMITCREATE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return jo.getJSONObject("data").getString("admitGuid");
}
if("token is illegal".equals(jo.getString("msg"))){
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return admitCreate(data);
}
@ -117,39 +120,39 @@ public class UniServiceImpl implements IUniService{
@Override
public String admitUpdate(JSONObject data) {
long projectId=data.getLong("projectId");
long projectId = data.getLong("projectId");
data.remove("projectId");
Request request=new Request.Builder()
Request request = new Request.Builder()
.url(UniUtils.ADMITUPDATE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if("token is illegal".equals(jo.getString("msg"))){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return admitUpdate(data);
}
return jo.getString("msg");
return jo.getString("msg");
}
@Override
public boolean admitDeletee(JSONObject data) {
long projectId=data.getLong("projectId");
long projectId = data.getLong("projectId");
data.remove("projectId");
Request request=new Request.Builder()
Request request = new Request.Builder()
.url(UniUtils.ADMITDELETE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if("token is illegal".equals(jo.getString("msg"))){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return admitDeletee(data);
}
return jo.getLong("result").intValue()==1;
return jo.getLong("result").intValue() == 1;
}
@Override
@ -164,45 +167,45 @@ public class UniServiceImpl implements IUniService{
@Override
public JSONObject faceRegister(JSONObject data) {
long projectId=data.getLong("projectId");
long projectId = data.getLong("projectId");
data.remove("projectId");
//System.out.println("faceRegister==REQ>"+JSON.toJSONString(data));
Request request=new Request.Builder()
Request request = new Request.Builder()
.url(UniUtils.FACEREGISTER)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
String res = UniUtils.getResult(request);
//System.out.println("faceRegister==RES>"+res);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
return jo.getJSONObject("data");
}
if("token is illegal".equals(jo.getString("msg"))){
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return jo.getJSONObject("data");
}
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return faceRegister(data);
}
return null;
return null;
}
@Override
public boolean faceDelete(JSONObject data) {
long projectId=data.getLong("projectId");
long projectId = data.getLong("projectId");
data.remove("projectId");
//System.out.println("faceDelete==REQ>"+JSON.toJSONString(data));
Request request=new Request.Builder()
Request request = new Request.Builder()
.url(UniUtils.FACEDELETE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
String res = UniUtils.getResult(request);
//System.out.println("faceDelete==RES>"+res);
JSONObject jo=JSON.parseObject(res);
if("token is illegal".equals(jo.getString("msg"))){
JSONObject jo = JSON.parseObject(res);
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return faceDelete(data);
}
return jo.getLong("result").intValue()==1;
return jo.getLong("result").intValue() == 1;
}
@Override
@ -212,18 +215,18 @@ public class UniServiceImpl implements IUniService{
@Override
public String deviceCreate(JSONObject data) {
long projectId=data.getLong("projectId");
Request request=new Request.Builder()
long projectId = data.getLong("projectId");
Request request = new Request.Builder()
.url(UniUtils.DEVICECREATE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return "success";
}
if("token is illegal".equals(jo.getString("msg"))){
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return deviceCreate(data);
}
@ -237,18 +240,18 @@ public class UniServiceImpl implements IUniService{
@Override
public JSONObject deviceDelete(JSONObject data) {
long projectId=data.getLong("projectId");
Request request=new Request.Builder()
long projectId = data.getLong("projectId");
Request request = new Request.Builder()
.url(UniUtils.DEVICEDELETE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return jo.getJSONObject("data");
}
if("token is illegal".equals(jo.getString("msg"))){
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return deviceDelete(data);
}
@ -257,18 +260,18 @@ public class UniServiceImpl implements IUniService{
@Override
public JSONObject deviceDetail(JSONObject data) {
long projectId=data.getLong("projectId");
Request request=new Request.Builder()
long projectId = data.getLong("projectId");
Request request = new Request.Builder()
.url(UniUtils.DEVICEDETAIL)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return jo.getJSONObject("data");
}
if("token is illegal".equals(jo.getString("msg"))){
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return deviceDetail(data);
}
@ -277,18 +280,18 @@ public class UniServiceImpl implements IUniService{
@Override
public String authDevice(JSONObject data) {
long projectId=data.getLong("projectId");
Request request=new Request.Builder()
long projectId = data.getLong("projectId");
Request request = new Request.Builder()
.url(UniUtils.AUTHDEVICE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return "success";
}
if("token is illegal".equals(jo.getString("msg"))){
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return deviceCreate(data);
}
@ -302,157 +305,167 @@ public class UniServiceImpl implements IUniService{
@Override
public String authDeviceRevoke(JSONObject data) {
long projectId=data.getLong("projectId");
Request request=new Request.Builder()
long projectId = data.getLong("projectId");
Request request = new Request.Builder()
.url(UniUtils.AUTHDEVICEREVOKE)
.post(UniUtils.toJsonBody(data))
.headers(UniUtils.setHeaderParams(auth(projectId)))
.build();
String res=UniUtils.getResult(request);
JSONObject jo=JSON.parseObject(res);
if(jo.getLong("result").intValue()==1){
String res = UniUtils.getResult(request);
JSONObject jo = JSON.parseObject(res);
if (jo.getLong("result").intValue() == 1) {
return "success";
}
if("token is illegal".equals(jo.getString("msg"))){
if ("token is illegal".equals(jo.getString("msg"))) {
clearAuthCache(projectId);
return authDeviceRevoke(data);
}
return jo.getString("msg");
}
@Override
public Long syncUniDeviceUser(Long deviceId,Long projectId){
AttendanceUbiDevice device=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(deviceId);
ProProjectInfoSubdeptsUsers userWhere=new ProProjectInfoSubdeptsUsers();
userWhere.setProjectId(projectId);
List<ProProjectInfoSubdeptsUsers> userList=proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere);
JSONObject jo=new JSONObject();
jo.put("projectId",projectId);
jo.put("deviceNo",device.getDeviceNo());
List<String> admitGuidList=new ArrayList<>();
for(ProProjectInfoSubdeptsUsers u :userList){
String admitGuid=u.getAdmitGuid();
if(StringUtils.isNotEmpty(admitGuid)){
admitGuidList.add(admitGuid);
}
}
for(int i=0;i<admitGuidList.size();i+=50){
String admitGuids="";
for(int j=0;j<50 && j+i<admitGuidList.size();j++){
admitGuids+=admitGuidList.get((i+j))+",";
}
if(admitGuids.length()>0){
admitGuids=admitGuids.substring(0,admitGuids.length()-1);
}
jo.put("admitGuids",admitGuids);
authDevice(jo);
}
return 1l;
public Long syncUniDeviceUser(Long deviceId, Long projectId) {
AttendanceUbiDevice device = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(deviceId);
if (Objects.nonNull(device)) {
ProProjectInfoSubdeptsUsers userWhere = new ProProjectInfoSubdeptsUsers();
userWhere.setProjectId(projectId);
List<ProProjectInfoSubdeptsUsers> userList = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere);
JSONObject jo = new JSONObject();
jo.put("projectId", projectId);
jo.put("deviceNo", device.getDeviceNo());
List<String> admitGuidList = new ArrayList<>();
for (ProProjectInfoSubdeptsUsers u : userList) {
String admitGuid = u.getAdmitGuid();
if (StringUtils.isNotEmpty(admitGuid)) {
admitGuidList.add(admitGuid);
}
}
for (int i = 0; i < admitGuidList.size(); i += 50) {
String admitGuids = "";
for (int j = 0; j < 50 && j + i < admitGuidList.size(); j++) {
admitGuids += admitGuidList.get((i + j)) + ",";
}
if (admitGuids.length() > 0) {
admitGuids = admitGuids.substring(0, admitGuids.length() - 1);
}
jo.put("admitGuids", admitGuids);
authDevice(jo);
}
return 1l;
}
return 0L;
}
/**
* 1. 2.
*
* @param ids
* @return
*/
@Override
public long syncUniDeviceDelete(Long[] ids) {
long cnt=0;
for(Long id :ids){
cnt+=deleteDevice(id);
long cnt = 0;
for (Long id : ids) {
cnt += deleteDevice(id);
}
return cnt;
}
/**
*
*
* @param id
*/
@Override
public void syncUserRevoke(Long id) {
ProProjectInfoSubdeptsUsers user= proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
if(user==null){
return;
}
AttendanceUbiDevice where=new AttendanceUbiDevice();
where.setProjectId(user.getProjectId());
List<AttendanceUbiDevice> devList=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
for(AttendanceUbiDevice device :devList){
JSONObject jo=new JSONObject();
jo.put("projectId",user.getProjectId());
jo.put("deviceNo",device.getDeviceNo());
jo.put("admitGuids",user.getAdmitGuid());
authDeviceRevoke(jo);
ProProjectInfoSubdeptsUsers user = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
if (Objects.nonNull(user)) {
AttendanceUbiDevice where = new AttendanceUbiDevice();
where.setProjectId(user.getProjectId());
List<AttendanceUbiDevice> devList = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
if (devList.size() > 0) {
for (AttendanceUbiDevice device : devList) {
JSONObject jo = new JSONObject();
jo.put("projectId", user.getProjectId());
jo.put("deviceNo", device.getDeviceNo());
jo.put("admitGuids", user.getAdmitGuid());
authDeviceRevoke(jo);
}
}
}
}
/**
*
*
* @param id
*/
@Override
public void syncUserAuthDevice(Long id) {
ProProjectInfoSubdeptsUsers user= proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
if(user==null){
return;
}
AttendanceUbiDevice where=new AttendanceUbiDevice();
where.setProjectId(user.getProjectId());
List<AttendanceUbiDevice> devList=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
for(AttendanceUbiDevice device :devList) {
JSONObject jo=new JSONObject();
jo.put("projectId",user.getProjectId());
jo.put("deviceNo",device.getDeviceNo());
jo.put("admitGuids",user.getAdmitGuid());
authDevice(jo);
ProProjectInfoSubdeptsUsers user = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
if (Objects.nonNull(user)) {
AttendanceUbiDevice where = new AttendanceUbiDevice();
where.setProjectId(user.getProjectId());
List<AttendanceUbiDevice> devList = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
if (devList.size() > 0) {
for (AttendanceUbiDevice device : devList) {
JSONObject jo = new JSONObject();
jo.put("projectId", user.getProjectId());
jo.put("deviceNo", device.getDeviceNo());
jo.put("admitGuids", user.getAdmitGuid());
authDevice(jo);
}
}
}
}
/**
*
*
* @param user
*/
private void syncUserAuthDeviceByInfo(ProProjectInfoSubdeptsUsers user) {
AttendanceUbiDevice where=new AttendanceUbiDevice();
AttendanceUbiDevice where = new AttendanceUbiDevice();
where.setProjectId(user.getProjectId());
List<AttendanceUbiDevice> devList=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
for(AttendanceUbiDevice device :devList) {
JSONObject jo=new JSONObject();
jo.put("projectId",user.getProjectId());
jo.put("deviceNo",device.getDeviceNo());
jo.put("admitGuids",user.getAdmitGuid());
List<AttendanceUbiDevice> devList = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
for (AttendanceUbiDevice device : devList) {
JSONObject jo = new JSONObject();
jo.put("projectId", user.getProjectId());
jo.put("deviceNo", device.getDeviceNo());
jo.put("admitGuids", user.getAdmitGuid());
authDevice(jo);
}
}
private Long deleteDevice(Long id) {
AttendanceUbiDevice device=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(id);
if(device==null){
AttendanceUbiDevice device = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(id);
if (device == null) {
return 0l;
}
Long projectId=device.getProjectId();
ProProjectInfoSubdeptsUsers userWhere=new ProProjectInfoSubdeptsUsers();
Long projectId = device.getProjectId();
ProProjectInfoSubdeptsUsers userWhere = new ProProjectInfoSubdeptsUsers();
userWhere.setProjectId(projectId);
List<ProProjectInfoSubdeptsUsers> userList=proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere);
JSONObject jo=new JSONObject();
jo.put("projectId",projectId);
jo.put("deviceNo",device.getDeviceNo());
jo.put("source",device.getSource());
List<String> admitGuidList=new ArrayList<>();
for(ProProjectInfoSubdeptsUsers u :userList){
String admitGuid=u.getAdmitGuid();
if(StringUtils.isNotEmpty(admitGuid)){
List<ProProjectInfoSubdeptsUsers> userList = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere);
JSONObject jo = new JSONObject();
jo.put("projectId", projectId);
jo.put("deviceNo", device.getDeviceNo());
jo.put("source", device.getSource());
List<String> admitGuidList = new ArrayList<>();
for (ProProjectInfoSubdeptsUsers u : userList) {
String admitGuid = u.getAdmitGuid();
if (StringUtils.isNotEmpty(admitGuid)) {
admitGuidList.add(admitGuid);
}
}
for(int i=0;i<admitGuidList.size();i+=50){
String admitGuids="";
for(int j=0;j<50 && j+i<admitGuidList.size();j++){
admitGuids+=admitGuidList.get((i+j))+",";
for (int i = 0; i < admitGuidList.size(); i += 50) {
String admitGuids = "";
for (int j = 0; j < 50 && j + i < admitGuidList.size(); j++) {
admitGuids += admitGuidList.get((i + j)) + ",";
}
if(admitGuids.length()>0){
admitGuids=admitGuids.substring(0,admitGuids.length()-1);
if (admitGuids.length() > 0) {
admitGuids = admitGuids.substring(0, admitGuids.length() - 1);
}
jo.put("admitGuids",admitGuids);
jo.put("admitGuids", admitGuids);
authDeviceRevoke(jo);
}
@ -461,20 +474,20 @@ public class UniServiceImpl implements IUniService{
}
@Override
public Long syncUniDevice(Long deviceId,Long projectId){
AttendanceUbiDevice device=attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(deviceId);
if(device!=null){
JSONObject jo=new JSONObject();
jo.put("projectId",projectId);
jo.put("name",device.getName());
jo.put("tag",device.getTag());
jo.put("source",device.getSource());
jo.put("sceneGuid","");
jo.put("deviceNo",device.getDeviceNo());
jo.put("addition","{'recType':'1'}");
String ret= deviceCreate(jo);
if("success".equals(ret)||"device is occupied".equals(ret)){
JSONObject joDetail=deviceDetail(jo);
public Long syncUniDevice(Long deviceId, Long projectId) {
AttendanceUbiDevice device = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceById(deviceId);
if (device != null) {
JSONObject jo = new JSONObject();
jo.put("projectId", projectId);
jo.put("name", device.getName());
jo.put("tag", device.getTag());
jo.put("source", device.getSource());
jo.put("sceneGuid", "");
jo.put("deviceNo", device.getDeviceNo());
jo.put("addition", "{'recType':'1'}");
String ret = deviceCreate(jo);
if ("success".equals(ret) || "device is occupied".equals(ret)) {
JSONObject joDetail = deviceDetail(jo);
device.setHasRegister(1l);
device.setLastActiveTime(new Date());
device.setDeviceModel(joDetail.getString("deviceModel"));
@ -484,7 +497,7 @@ public class UniServiceImpl implements IUniService{
device.setAddition(joDetail.getString("addition"));
device.setRecType(joDetail.getLong("recType"));
attendanceUbiDeviceMapper.updateAttendanceUbiDevice(device);
return 1l;
return 1l;
}
}
return 0l;
@ -492,83 +505,89 @@ public class UniServiceImpl implements IUniService{
/**
*
*
* @param puser
* @param authFlag
*/
@Override
public void syncUniUser(ProProjectInfoSubdeptsUsers puser, boolean authFlag) {
JSONObject jo;
if(StringUtils.isNotEmpty(puser.getUserInfos())){
jo = JSON.parseObject(puser.getUserInfos());
}else{
jo = new JSONObject();
}
Long projectId=puser.getProjectId();
String admitGuid=puser.getAdmitGuid();
String faceGuid=puser.getFaceGuid();
JSONObject userJo=new JSONObject();
userJo.put("projectId",projectId);
userJo.put("name",puser.getUserName());
userJo.put("phone",puser.getUserPhone());
userJo.put("tag",puser.getUserName());
userJo.put("cardNo",projectId);
userJo.put("idCardNo",puser.getCardCode());
userJo.put("password","");
userJo.put("addition","");
boolean hasUpdate=false;
if(StringUtils.isEmpty(admitGuid)){
//未注册人员
admitGuid=admitCreate(userJo);
puser.setAdmitGuid(admitGuid);
hasUpdate=true;
}else{
//已注册
userJo.put("admitGuid",admitGuid);
String upMsg= admitUpdate(userJo);
if("admit not exist".equals(upMsg)){
userJo.remove("admitGuid");
userJo.put("projectId",projectId);
admitGuid=admitCreate(userJo);
puser.setAdmitGuid(admitGuid);
hasUpdate=true;
AttendanceUbiDevice where = new AttendanceUbiDevice();
where.setProjectId(puser.getProjectId());
List<AttendanceUbiDevice> devList = attendanceUbiDeviceMapper.selectAttendanceUbiDeviceList(where);
if (devList.size() > 0) {
JSONObject jo;
if (StringUtils.isNotEmpty(puser.getUserInfos())) {
jo = JSON.parseObject(puser.getUserInfos());
} else {
jo = new JSONObject();
}
Long projectId = puser.getProjectId();
String admitGuid = puser.getAdmitGuid();
String faceGuid = puser.getFaceGuid();
JSONObject userJo = new JSONObject();
userJo.put("projectId", projectId);
userJo.put("name", puser.getUserName());
userJo.put("phone", puser.getUserPhone());
userJo.put("tag", puser.getUserName());
userJo.put("cardNo", projectId);
userJo.put("idCardNo", puser.getCardCode());
userJo.put("password", "");
userJo.put("addition", "");
boolean hasUpdate = false;
if (StringUtils.isEmpty(admitGuid)) {
//未注册人员
admitGuid = admitCreate(userJo);
puser.setAdmitGuid(admitGuid);
hasUpdate = true;
} else {
//已注册
userJo.put("admitGuid", admitGuid);
String upMsg = admitUpdate(userJo);
if ("admit not exist".equals(upMsg)) {
userJo.remove("admitGuid");
userJo.put("projectId", projectId);
admitGuid = admitCreate(userJo);
puser.setAdmitGuid(admitGuid);
hasUpdate = true;
}
}
JSONObject faceJo = new JSONObject();
faceJo.put("projectId", projectId);
faceJo.put("base64", "");
faceJo.put("admitGuid", admitGuid);
puser.setAdmitGuid(admitGuid);
String url = puser.getUserPicture();
if (!StringUtils.isBlank(url) && !url.startsWith("http")) {
url = "http://62.234.3.186" + url;
}
faceJo.put("url", url);
faceJo.put("faceTag", "");
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
if (StringUtils.isNotEmpty(faceGuid)) {
JSONObject faceDel = new JSONObject();
faceDel.put("projectId", projectId);
faceDel.put("admitGuid", admitGuid);
faceDel.put("faceGuid", faceGuid);
faceDelete(faceDel);
}
}
JSONObject faceJo=new JSONObject();
faceJo.put("projectId",projectId);
faceJo.put("base64","");
faceJo.put("admitGuid",admitGuid);
puser.setAdmitGuid(admitGuid);
String url=puser.getUserPicture();
if(!StringUtils.isBlank(url) && !url.startsWith("http")){
url="http://62.234.3.186"+url;
}
faceJo.put("url",url);
faceJo.put("faceTag","");
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
if(StringUtils.isNotEmpty(faceGuid)){
JSONObject faceDel=new JSONObject();
faceDel.put("projectId",projectId);
faceDel.put("admitGuid",admitGuid);
faceDel.put("faceGuid",faceGuid);
faceDelete(faceDel);
}
//注册图像
JSONObject faceRes = faceRegister(faceJo);
if(faceRes!=null) {
jo.put("uniFaceInfo", faceRes.toJSONString());
puser.setFaceGuid(faceRes.getString("faceGuid"));
hasUpdate=true;
}
//注册图像
JSONObject faceRes = faceRegister(faceJo);
if (faceRes != null) {
jo.put("uniFaceInfo", faceRes.toJSONString());
puser.setFaceGuid(faceRes.getString("faceGuid"));
hasUpdate = true;
}
puser.setUserInfos(jo.toJSONString());
if(hasUpdate){
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(puser);
}
puser.setUserInfos(jo.toJSONString());
if (hasUpdate) {
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(puser);
}
// 人员入场
if(authFlag){
syncUserAuthDeviceByInfo(puser);
// 人员入场
if (authFlag) {
syncUserAuthDeviceByInfo(puser);
}
}
}

View File

@ -523,7 +523,7 @@ public class SysUserServiceImpl implements ISysUserService
public Long registerUser(SysUser user) throws ServiceException
{
SysUser sysUser = userMapper.selectByPhone(user.getPhonenumber());
String userPost = user.getUserType();
String userType = user.getUserType();
if(Objects.nonNull(sysUser)){
user.setUserId(sysUser.getUserId());
sysUser.setUserName(user.getUserName());
@ -540,7 +540,7 @@ public class SysUserServiceImpl implements ISysUserService
user.setCreateTime(user.getUpdateTime());
user.setWorkType(user.getWorkType());
if(StringUtils.isEmpty(user.getPassword())){
user.setPassword(SecurityUtils.encryptPassword(user.getPhonenumber()+"@"+user.getUserType()));
user.setPassword(SecurityUtils.encryptPassword(user.getPhonenumber()));
}
userMapper.insertUser(user);
try {
@ -587,14 +587,14 @@ public class SysUserServiceImpl implements ISysUserService
}
}
Long userId = user.getUserId();
if(Objects.nonNull(userPost) && Objects.nonNull(user.getDeptId())){
if(Objects.nonNull(userType) && Objects.nonNull(user.getDeptId())){
// 删除用户与角色关联
List<SysUserRole> sysUserRoleList = new ArrayList<>();
SysUserRole userRole = new SysUserRole();
userRole.setUserId(userId);
userRole.setDeptId(user.getDeptId());
userRoleMapper.deleteUserRoleByUserRole(userRole);
if(Objects.equals(userPost, UserTypeEnums.FBWTDL.getCode())){
if(Objects.equals(userType, UserTypeEnums.FBWTDL.getCode())){
List<SysRole> list = roleMapper.findDeptRoleListByDeptIdAndKey(user.getDeptId(),UserTypeEnums.FBWTDL.getKeys()+"_"+user.getDeptId());
if(StringUtils.isEmpty(list)){
//新增单位角色...
@ -605,7 +605,7 @@ public class SysUserServiceImpl implements ISysUserService
}
sysUserRoleList.add(userRole);
userRoleMapper.batchUserRole(sysUserRoleList);
}else if(Objects.equals(userPost, UserTypeEnums.FBXMJL.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.FBXMJL.getCode())){
List<SysRole> list = roleMapper.findDeptRoleListByDeptIdAndKey(user.getDeptId(),UserTypeEnums.FBXMJL.getKeys()+"_"+user.getDeptId());
if(StringUtils.isEmpty(list)){
//新增单位角色...
@ -616,7 +616,7 @@ public class SysUserServiceImpl implements ISysUserService
}
sysUserRoleList.add(userRole);
userRoleMapper.batchUserRole(sysUserRoleList);
}else if(Objects.equals(userPost, UserTypeEnums.FBBZZZ.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.FBBZZZ.getCode())){
List<SysRole> list = roleMapper.findDeptRoleListByDeptIdAndKey(user.getDeptId(),UserTypeEnums.FBBZZZ.getKeys()+"_"+user.getDeptId());
if(StringUtils.isEmpty(list)){
//新增单位角色...
@ -627,7 +627,7 @@ public class SysUserServiceImpl implements ISysUserService
}
sysUserRoleList.add(userRole);
userRoleMapper.batchUserRole(sysUserRoleList);
}else if(Objects.equals(userPost, UserTypeEnums.FBLWRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.FBLWRY.getCode())){
List<SysRole> list = roleMapper.findDeptRoleListByDeptIdAndKey(user.getDeptId(),UserTypeEnums.FBLWRY.getKeys()+"_"+user.getDeptId());
if(StringUtils.isEmpty(list)){
//新增单位角色...
@ -638,7 +638,7 @@ public class SysUserServiceImpl implements ISysUserService
}
sysUserRoleList.add(userRole);
userRoleMapper.batchUserRole(sysUserRoleList);
}else if(Objects.equals(userPost, UserTypeEnums.FBCLRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.FBCLRY.getCode())){
List<SysRole> list = roleMapper.findDeptRoleListByDeptIdAndKey(user.getDeptId(),UserTypeEnums.FBCLRY.getKeys()+"_"+user.getDeptId());
if(StringUtils.isEmpty(list)){
//新增单位角色...
@ -649,7 +649,7 @@ public class SysUserServiceImpl implements ISysUserService
}
sysUserRoleList.add(userRole);
userRoleMapper.batchUserRole(sysUserRoleList);
}else if(Objects.equals(userPost, UserTypeEnums.FBAQRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.FBAQRY.getCode())){
List<SysRole> list = roleMapper.findDeptRoleListByDeptIdAndKey(user.getDeptId(),UserTypeEnums.FBAQRY.getKeys()+"_"+user.getDeptId());
if(StringUtils.isEmpty(list)){
//新增单位角色...
@ -660,23 +660,23 @@ public class SysUserServiceImpl implements ISysUserService
}
sysUserRoleList.add(userRole);
userRoleMapper.batchUserRole(sysUserRoleList);
}else if(Objects.equals(userPost, UserTypeEnums.JSDWRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.JSDWRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.JLDWRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.JLDWRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.SGDWRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.SGDWRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.CLFBRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.CLFBRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.HQFBRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.HQFBRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.TSSBRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.TSSBRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.KTDWRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.KTDWRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.SJDWRY.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.SJDWRY.getCode())){
}else if(Objects.equals(userPost, UserTypeEnums.OTHERS.getCode())){
}else if(Objects.equals(userType, UserTypeEnums.OTHERS.getCode())){
}
}