diff --git a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceJgwTask.java b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceJgwTask.java index d9180c88..fd609736 100644 --- a/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceJgwTask.java +++ b/yanzhu-modules/yanzhu-job/src/main/java/com/yanzhu/job/task/AttendanceJgwTask.java @@ -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); diff --git a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsGroupMapper.xml b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsGroupMapper.xml index 1c63eda2..b94f1f52 100644 --- a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsGroupMapper.xml +++ b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsGroupMapper.xml @@ -141,6 +141,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, remark = #{remark}, + source = #{source}, where id = #{id} diff --git a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsMapper.xml b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsMapper.xml index 56160863..ad2ada66 100644 --- a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsMapper.xml +++ b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzProSubdeptsMapper.xml @@ -149,6 +149,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, remark = #{remark}, + source = #{source}, where id = #{id} diff --git a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzSubdeptsUsersMapper.xml b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzSubdeptsUsersMapper.xml index 94890348..6c8b8c1a 100644 --- a/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzSubdeptsUsersMapper.xml +++ b/yanzhu-modules/yanzhu-job/src/main/resources/mapper/job/QuartzSubdeptsUsersMapper.xml @@ -247,6 +247,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, remark = #{remark}, + source = #{source}, where id = #{id} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java index 07804656..4dd9d3f7 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoSubdeptsUsersController.java @@ -83,6 +83,7 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController List list = proProjectInfoSubdeptsUsersService.groupByCraftTypeByAttendance(where); return AjaxResult.success(list); } + /** * 导出分包单位工人列表 */ diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsGroupServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsGroupServiceImpl.java index 483cac3e..0b673cad 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsGroupServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsGroupServiceImpl.java @@ -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 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()); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java index 030fea27..d854ae50 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsServiceImpl.java @@ -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 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()); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java index 3d460e0e..fc97a50d 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/UniServiceImpl.java @@ -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 auth(long projectId) { - String cacheKey=CacheConstants.UNI_AUTH+projectId; - Map authMap = redisService.getCacheObject(cacheKey); - String authInfo="404"; - String projectGuid="404"; - if(authMap!=null){ + public Map auth(long projectId) { + String cacheKey = CacheConstants.UNI_AUTH + projectId; + Map 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 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 headerParams=new HashMap<>(); - headerParams.put("appKey",appKey); - headerParams.put("timestamp",timestamp); - String sign=appKey+timestamp+appSecret; + List 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 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 userList=proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere); - JSONObject jo=new JSONObject(); - jo.put("projectId",projectId); - jo.put("deviceNo",device.getDeviceNo()); - List admitGuidList=new ArrayList<>(); - for(ProProjectInfoSubdeptsUsers u :userList){ - String admitGuid=u.getAdmitGuid(); - if(StringUtils.isNotEmpty(admitGuid)){ - admitGuidList.add(admitGuid); - } - } - for(int i=0;i0){ - 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 userList = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere); + JSONObject jo = new JSONObject(); + jo.put("projectId", projectId); + jo.put("deviceNo", device.getDeviceNo()); + List 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 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 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 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 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 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 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 userList=proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere); - JSONObject jo=new JSONObject(); - jo.put("projectId",projectId); - jo.put("deviceNo",device.getDeviceNo()); - jo.put("source",device.getSource()); - List admitGuidList=new ArrayList<>(); - for(ProProjectInfoSubdeptsUsers u :userList){ - String admitGuid=u.getAdmitGuid(); - if(StringUtils.isNotEmpty(admitGuid)){ + List userList = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userWhere); + JSONObject jo = new JSONObject(); + jo.put("projectId", projectId); + jo.put("deviceNo", device.getDeviceNo()); + jo.put("source", device.getSource()); + List admitGuidList = new ArrayList<>(); + for (ProProjectInfoSubdeptsUsers u : userList) { + String admitGuid = u.getAdmitGuid(); + if (StringUtils.isNotEmpty(admitGuid)) { admitGuidList.add(admitGuid); } } - for(int i=0;i0){ - 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 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); + } } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java index c483a886..a3301d15 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java @@ -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 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 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 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 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 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 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 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())){ } }