feat:临时访客一级口门申请
parent
6e331ede6f
commit
94dffef375
|
|
@ -31,7 +31,6 @@ import java.util.Date;
|
||||||
public class PersonApplyUpdateExe {
|
public class PersonApplyUpdateExe {
|
||||||
private final PersonApplyGateway personApplyGateway;
|
private final PersonApplyGateway personApplyGateway;
|
||||||
private final XgfApplyPersonGateway xgfApplyPersonGateway;
|
private final XgfApplyPersonGateway xgfApplyPersonGateway;
|
||||||
private final MkmjGateGateway mkmjGateGateway;
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void execute(PersonApplyUpdateCmd personApplyUpdateCmd) {
|
public void execute(PersonApplyUpdateCmd personApplyUpdateCmd) {
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import com.zcloud.primeport.dto.clientobject.PersonCountCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.XgfPersonApplyCO;
|
import com.zcloud.primeport.dto.clientobject.XgfPersonApplyCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.XgfPersonCountCO;
|
import com.zcloud.primeport.dto.clientobject.XgfPersonCountCO;
|
||||||
import com.zcloud.primeport.plan.mjDevice.OnePersonUtil;
|
import com.zcloud.primeport.plan.mjDevice.OnePersonUtil;
|
||||||
|
import jodd.util.Base64;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
@ -101,16 +102,16 @@ public class PersonApplyServiceImpl implements PersonApplyServiceI {
|
||||||
// 开启门禁
|
// 开启门禁
|
||||||
if (co != null) {
|
if (co != null) {
|
||||||
personApplyUpdateExe.authorization(co.getId(), co.getXgfApplyPersonId(), cmd.getMkmjPermission(), cmd.getGateLevelAuthArea());
|
personApplyUpdateExe.authorization(co.getId(), co.getXgfApplyPersonId(), cmd.getMkmjPermission(), cmd.getGateLevelAuthArea());
|
||||||
onePersonUtil.expirationDateRefreshedUserCard(co.getUserCard(), DateUtil.date2Str(new Date()), "2030-12-31 23:59:59");
|
onePersonUtil.expirationDateRefreshedUserCard(Base64.decodeToString(co.getUserCard()), DateUtil.date2Str(new Date()), "2030-12-31 23:59:59");
|
||||||
} else {
|
} else {
|
||||||
personApplyAddExe.authorization(cmd);
|
personApplyAddExe.authorization(cmd);
|
||||||
onePersonUtil.dockLongTermUserByUserCardAndFaceImg(co.getUserCard(), co.getUserUid(), co.getEmployeePersonUserName(), co.getUserFaceUrl(), DateUtil.date2Str(new Date()), "2030-12-31 23:59:59");
|
onePersonUtil.dockLongTermUserByUserCardAndFaceImg(Base64.decodeToString(co.getUserCard()), "hbqa"+Base64.decodeToString(co.getUserCard()), co.getEmployeePersonUserName(), co.getUserFaceUrl(), DateUtil.date2Str(new Date()), "2030-12-31 23:59:59");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 关闭门禁,这个人都没有授权过的话,什么都不管。
|
// 关闭门禁,这个人都没有授权过的话,什么都不管。
|
||||||
if (co != null) {
|
if (co != null) {
|
||||||
personApplyUpdateExe.authorization(co.getId(), co.getXgfApplyPersonId(), cmd.getMkmjPermission(), cmd.getGateLevelAuthArea());
|
personApplyUpdateExe.authorization(co.getId(), co.getXgfApplyPersonId(), cmd.getMkmjPermission(), cmd.getGateLevelAuthArea());
|
||||||
onePersonUtil.freezeByUserCard(co.getUserCard(), cmd.getMkmjPermission());
|
onePersonUtil.freezeByUserCard(Base64.decodeToString(co.getUserCard()), cmd.getMkmjPermission());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public interface PersonApplyGateway {
|
||||||
|
|
||||||
void saveBatch(ArrayList<PersonApplyE> personApplyES);
|
void saveBatch(ArrayList<PersonApplyE> personApplyES);
|
||||||
|
|
||||||
void xgfPersonAudit(XgfApplyPersonE build);
|
void xgfPersonAudit(XgfApplyPersonE build) throws Exception;
|
||||||
|
|
||||||
List<PersonApplyE> personListByxgfApplyPersonId(Long id);
|
List<PersonApplyE> personListByxgfApplyPersonId(Long id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
package com.zcloud.primeport.gatewayimpl;
|
package com.zcloud.primeport.gatewayimpl;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONArray;
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
||||||
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
|
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
|
||||||
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
|
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
|
||||||
|
import com.zcloud.gbscommon.utils.DateUtil;
|
||||||
import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
|
import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
|
||||||
import com.zcloud.primeport.domain.model.PersonApplyE;
|
import com.zcloud.primeport.domain.model.PersonApplyE;
|
||||||
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
|
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
|
||||||
|
|
@ -14,13 +17,14 @@ import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
|
||||||
import com.zcloud.primeport.persistence.repository.PersonApplyRepository;
|
import com.zcloud.primeport.persistence.repository.PersonApplyRepository;
|
||||||
import com.zcloud.primeport.persistence.repository.PersonMessageRepository;
|
import com.zcloud.primeport.persistence.repository.PersonMessageRepository;
|
||||||
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
|
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
|
||||||
|
import com.zcloud.primeport.plan.mjDevice.OnePersonUtil;
|
||||||
|
import jodd.util.Base64;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
import java.util.stream.Collectors;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-infrastructure
|
* web-infrastructure
|
||||||
|
|
@ -35,6 +39,7 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
|
||||||
private final XgfApplyPersonRepository xgfApplyPersonRepository;
|
private final XgfApplyPersonRepository xgfApplyPersonRepository;
|
||||||
private final PersonMessageRepository personMessageRepository;
|
private final PersonMessageRepository personMessageRepository;
|
||||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||||
|
private final OnePersonUtil onePersonUtil;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean add(PersonApplyE personApplyE) {
|
public Boolean add(PersonApplyE personApplyE) {
|
||||||
|
|
@ -74,7 +79,7 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void xgfPersonAudit(XgfApplyPersonE build) {
|
public void xgfPersonAudit(XgfApplyPersonE build) throws Exception {
|
||||||
XgfApplyPersonDO d = new XgfApplyPersonDO();
|
XgfApplyPersonDO d = new XgfApplyPersonDO();
|
||||||
BeanUtils.copyProperties(build, d);
|
BeanUtils.copyProperties(build, d);
|
||||||
xgfApplyPersonRepository.updateById(d);
|
xgfApplyPersonRepository.updateById(d);
|
||||||
|
|
@ -92,6 +97,8 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
|
||||||
personApplyDOUpdateWrapper.set("mkmj_permission", 1);
|
personApplyDOUpdateWrapper.set("mkmj_permission", 1);
|
||||||
personApplyDOUpdateWrapper.eq("xgf_apply_person_id", d.getId());
|
personApplyDOUpdateWrapper.eq("xgf_apply_person_id", d.getId());
|
||||||
ArrayList<PersonMessageDO> personMessageDOS = new ArrayList<>();
|
ArrayList<PersonMessageDO> personMessageDOS = new ArrayList<>();
|
||||||
|
HashSet<String> userCardHashSet = new HashSet<>();
|
||||||
|
HashMap<String, JSONObject> stringJSONObjectHashMap = new HashMap<>();
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
PersonMessageDO messageDO = new PersonMessageDO();
|
PersonMessageDO messageDO = new PersonMessageDO();
|
||||||
messageDO.setPersonBelongType(byId.getPersonBelongType());
|
messageDO.setPersonBelongType(byId.getPersonBelongType());
|
||||||
|
|
@ -103,14 +110,72 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
|
||||||
messageDO.setVisitStartTime(byId.getVisitStartTime());
|
messageDO.setVisitStartTime(byId.getVisitStartTime());
|
||||||
messageDO.setVisitEndTime(byId.getVisitEndTime());
|
messageDO.setVisitEndTime(byId.getVisitEndTime());
|
||||||
personMessageDOS.add(messageDO);
|
personMessageDOS.add(messageDO);
|
||||||
|
userCardHashSet.add(Base64.decodeToString(item.getUserCard()));
|
||||||
|
JSONObject entries = new JSONObject();
|
||||||
|
entries.set("name", item.getEmployeePersonUserName());
|
||||||
|
entries.set("code", "hbqa"+Base64.decodeToString(item.getUserCard()));
|
||||||
|
entries.set("validStartTime", byId.getVisitStartTime() + " 00:00:00");
|
||||||
|
entries.set("validEndTime", byId.getVisitEndTime() + " 23:59:59");
|
||||||
|
entries.set("paperType", 111);
|
||||||
|
entries.set("paperNumber", Base64.decodeToString(item.getUserCard()));
|
||||||
|
entries.set("departmentId", 1);
|
||||||
|
JSONObject fileInfo = new JSONObject();
|
||||||
|
List<JSONObject> dataList = new ArrayList();
|
||||||
|
fileInfo.set("type", 3);
|
||||||
|
fileInfo.set("index", 1);
|
||||||
|
fileInfo.set("path", item.getUserFaceUrl());
|
||||||
|
dataList.add(fileInfo);
|
||||||
|
entries.set("personBiosignatures", dataList);
|
||||||
|
stringJSONObjectHashMap.put(Base64.decodeToString(item.getUserCard()), entries);
|
||||||
|
// byId.getPersonBelongType()
|
||||||
|
// onePersonUtil.dockLongTermUserByUserCardAndFaceImg()
|
||||||
});
|
});
|
||||||
personMessageRepository.saveBatch(personMessageDOS);
|
personMessageRepository.saveBatch(personMessageDOS);
|
||||||
|
dcokDoorEquipment(userCardHashSet, stringJSONObjectHashMap);
|
||||||
}
|
}
|
||||||
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
||||||
todoListCompleteEvent.setForeignSubsidiaryKey(build.getId());
|
todoListCompleteEvent.setForeignSubsidiaryKey(build.getId());
|
||||||
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 对接口门设备
|
||||||
|
public void dcokDoorEquipment(HashSet<String> userCardHashSet, HashMap<String, JSONObject> userHashMap) throws Exception {
|
||||||
|
// 对接过的用户信息
|
||||||
|
ArrayList<JSONObject> waitSaveUser = new ArrayList<>();
|
||||||
|
ArrayList<JSONObject> waitEditUser = new ArrayList<>();
|
||||||
|
ArrayList<String> dockEdUserCards = new ArrayList<>();
|
||||||
|
JSONArray mkmjUserInfoByUserCard = onePersonUtil.getMkmjUserInfoByUserCard(new ArrayList<>(userCardHashSet));
|
||||||
|
for (int i = 0; i < mkmjUserInfoByUserCard.size(); i++) {
|
||||||
|
JSONObject o = mkmjUserInfoByUserCard.getJSONObject(i);
|
||||||
|
String str = o.getStr("paperNumber");
|
||||||
|
JSONObject entries = userHashMap.get(str);
|
||||||
|
if (userCardHashSet.add(str)) {
|
||||||
|
// 要新增的
|
||||||
|
waitSaveUser.add(entries);
|
||||||
|
} else {
|
||||||
|
// 已存在 看下今天是不是在 申请的时间里
|
||||||
|
long validStartTime = DateUtil.fomatDate(entries.getStr("validStartTime")+ "00:00:00","yyyy-MM-dd HH:mm:ss").getTime();
|
||||||
|
long validEndTime = DateUtil.fomatDate(entries.getStr("validEndTime")+ "23:59:59","yyyy-MM-dd HH:mm:ss").getTime();
|
||||||
|
long time = new Date().getTime();
|
||||||
|
if (time >= validStartTime && time <= validEndTime) {
|
||||||
|
// 今天在申请的时间里 需要修改
|
||||||
|
JSONObject entries1 = new JSONObject();
|
||||||
|
entries1.set("personId", o.getLong("id"));
|
||||||
|
entries1.set("validStartTime", DateUtil.date2Str(new Date(),"yyyy-MM-dd")+ "00:00:00");
|
||||||
|
entries1.set("validEndTime", DateUtil.date2Str(new Date(),"yyyy-MM-dd")+ "23:59:59");
|
||||||
|
waitEditUser.add(entries1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dockEdUserCards.add(str);
|
||||||
|
}
|
||||||
|
if (!waitSaveUser.isEmpty()) {
|
||||||
|
onePersonUtil.batchSaveUser(waitSaveUser);
|
||||||
|
}
|
||||||
|
if (!waitEditUser.isEmpty()) {
|
||||||
|
onePersonUtil.expirationDateRefreshedUserCard(waitEditUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PersonApplyE> personListByxgfApplyPersonId(Long id) {
|
public List<PersonApplyE> personListByxgfApplyPersonId(Long id) {
|
||||||
QueryWrapper<PersonApplyDO> xgfApplyPersonDOQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<PersonApplyDO> xgfApplyPersonDOQueryWrapper = new QueryWrapper<>();
|
||||||
|
|
@ -124,5 +189,13 @@ public class PersonApplyGatewayImpl implements PersonApplyGateway {
|
||||||
});
|
});
|
||||||
return xgfApplyPersonES;
|
return xgfApplyPersonES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
HashSet<String> strings = new HashSet<>();
|
||||||
|
System.out.println(strings.add("1"));
|
||||||
|
System.out.println(strings.add("2"));
|
||||||
|
System.out.println(strings.add("3"));
|
||||||
|
System.out.println(strings.add("1"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import lombok.EqualsAndHashCode;
|
||||||
@TableName("xgf_apply_person")
|
@TableName("xgf_apply_person")
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class XgfApplyPersonDO extends BaseDO {
|
public class XgfApplyPersonDO extends BaseDO {
|
||||||
|
// 申请归属1股份2分公司3相关方4临时人员
|
||||||
private Integer personBelongType;
|
private Integer personBelongType;
|
||||||
//授权范围港区与区域
|
//授权范围港区与区域
|
||||||
@ApiModelProperty(value = "授权范围港区与区域")
|
@ApiModelProperty(value = "授权范围港区与区域")
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.zcloud.primeport.persistence.dataobject.VehicleApplyDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
|
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
|
@ -33,5 +34,6 @@ public interface XgfApplyPersonMapper extends BaseMapper<XgfApplyPersonDO> {
|
||||||
|
|
||||||
IPage<PersonCountDto> personnelVehicleManagementList(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params, String menuPerms);
|
IPage<PersonCountDto> personnelVehicleManagementList(Page<Map<String, Object>> page, @Param("params") Map<String, Object> params, String menuPerms);
|
||||||
|
|
||||||
|
List<XgfApplyPersonDO> listTodayHasPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.zcloud.primeport.persistence.dataobject.PersonApplyDO;
|
||||||
import com.zcloud.primeport.persistence.dataobject.PersonCountDto;
|
import com.zcloud.primeport.persistence.dataobject.PersonCountDto;
|
||||||
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
|
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -20,5 +21,7 @@ public interface XgfApplyPersonRepository extends BaseRepository<XgfApplyPersonD
|
||||||
PageResponse<PersonCountDto> personnelVehicleManagementList(Map<String, Object> params);
|
PageResponse<PersonCountDto> personnelVehicleManagementList(Map<String, Object> params);
|
||||||
|
|
||||||
PageResponse<XgfApplyPersonDO> listPage(Map<String, Object> params);
|
PageResponse<XgfApplyPersonDO> listPage(Map<String, Object> params);
|
||||||
|
|
||||||
|
List<XgfApplyPersonDO> listTodayHasPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -72,6 +73,11 @@ public class XgfApplyPersonRepositoryImpl extends BaseRepositoryImpl<XgfApplyPer
|
||||||
return PageHelper.pageToResponse(result, result.getRecords());
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<XgfApplyPersonDO> listTodayHasPort() {
|
||||||
|
return xgfApplyPersonMapper.listTodayHasPort();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.zcloud.primeport.plan;
|
||||||
|
|
||||||
|
import com.jjb.saas.framework.job.Job;
|
||||||
|
import com.jjb.saas.framework.job.annotation.JobRegister;
|
||||||
|
import com.xxl.job.core.biz.model.ReturnT;
|
||||||
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||||
|
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
|
||||||
|
import com.zcloud.primeport.plan.mjDevice.OnePersonUtil;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class OneLevelUserXxlJon implements Job {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OnePersonUtil onePersonUtil;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@JobRegister(cron = "0 14 0 * * ?", jobDesc = "口门定时任务,每日12点14进行当日可进门人员推送", triggerStatus = 1)
|
||||||
|
@XxlJob("com.zcloud.plan.VehicleExpiredExpirationXxlJob")
|
||||||
|
public ReturnT<String> execute(String param) {
|
||||||
|
// 相关方、临时访客 每日授权 门禁
|
||||||
|
onePersonUtil.execute();
|
||||||
|
return ReturnT.SUCCESS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -9,11 +9,16 @@ import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.TypeReference;
|
import com.alibaba.fastjson.TypeReference;
|
||||||
import com.zcloud.gbscommon.dahuaDevice.DaHuaDeviceCommon;
|
import com.zcloud.gbscommon.dahuaDevice.DaHuaDeviceCommon;
|
||||||
import com.zcloud.gbscommon.dahuaDevice.DhuaConfig;
|
import com.zcloud.gbscommon.dahuaDevice.DhuaConfig;
|
||||||
|
import com.zcloud.gbscommon.utils.DateUtil;
|
||||||
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
|
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
|
||||||
|
import com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO;
|
||||||
|
import com.zcloud.primeport.persistence.repository.VehicleApplyRepository;
|
||||||
import com.zcloud.primeport.persistence.repository.VehicleDockLogRepository;
|
import com.zcloud.primeport.persistence.repository.VehicleDockLogRepository;
|
||||||
|
import com.zcloud.primeport.persistence.repository.XgfApplyPersonRepository;
|
||||||
import com.zcloud.primeport.plan.mjDevice.dto.OneLevelCarBlackDto;
|
import com.zcloud.primeport.plan.mjDevice.dto.OneLevelCarBlackDto;
|
||||||
import com.zcloud.primeport.plan.mjDevice.dto.OneLevelCarRemoveDto;
|
import com.zcloud.primeport.plan.mjDevice.dto.OneLevelCarRemoveDto;
|
||||||
import com.zcloud.primeport.plan.mjDevice.dto.OneLevelCarSaveDto;
|
import com.zcloud.primeport.plan.mjDevice.dto.OneLevelCarSaveDto;
|
||||||
|
import jodd.util.Base64;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -32,24 +37,33 @@ import java.util.stream.Collectors;
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class OnePersonUtil {
|
public class OnePersonUtil {
|
||||||
@Value("${kmmj.dockflag}")
|
@Resource
|
||||||
private Integer dockFlag;
|
private XgfApplyPersonRepository xgfApplyPersonRepository;
|
||||||
@Value("${oneLevelPerson.prefix}")
|
// @Value("${kmmj.dockflag}")
|
||||||
private String prefix;
|
// private Integer dockFlag;
|
||||||
private static String prefix2 = "https://skqhdg.porthebei.com:9008/yjkmRy/";
|
// @Value("${oneLevelPerson.prefix}")
|
||||||
|
// private String prefix;
|
||||||
|
private static Integer dockFlag = 1;
|
||||||
|
private static String prefix = "https://skqhdg.porthebei.com:9008/yjkmRy/";
|
||||||
private static String username = "shuangkong";
|
private static String username = "shuangkong";
|
||||||
private static String password = "qinan@202604";
|
private static String password = "qinan@202604";
|
||||||
private static String clientId = "mkmj_management";
|
private static String clientId = "mkmj_management";
|
||||||
private static String clientSecret = "5ef82f7c-9926-46a3-8d07-136fd054849c";
|
private static String clientSecret = "5ef82f7c-9926-46a3-8d07-136fd054849c";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 刷入当日门禁权限有效期
|
||||||
|
* */
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 跟据身份证号码进行用户对接
|
* 跟据身份证号码进行长期用户对接
|
||||||
*/
|
*/
|
||||||
public void dockLongTermUserByUserCardAndFaceImg(String userCard, String userUid, String username, String userFaceImages, String visitStartTime, String visitEndTime) throws Exception {
|
public void dockLongTermUserByUserCardAndFaceImg(String userCard, String userUid, String username, String userFaceImages, String visitStartTime, String visitEndTime) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return ;
|
||||||
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||||
JSONObject userByUserCard = daHuaDeviceCommon.getUserByUserCard(userCard).getJSONObject("data");
|
JSONObject userByUserCard = daHuaDeviceCommon.getUserByUserCard(userCard).getJSONObject("data");
|
||||||
if (userByUserCard.isEmpty()) {
|
if (userByUserCard.isEmpty()) {
|
||||||
// 这个人不存在进行保存用户
|
// 这个人不存在 保存用户
|
||||||
Long generateId = daHuaDeviceCommon.getGenerateId();
|
Long generateId = daHuaDeviceCommon.getGenerateId();
|
||||||
JSONObject userInfo = new JSONObject();
|
JSONObject userInfo = new JSONObject();
|
||||||
JSONObject fileInfo = new JSONObject();
|
JSONObject fileInfo = new JSONObject();
|
||||||
|
|
@ -59,7 +73,7 @@ public class OnePersonUtil {
|
||||||
fileInfo.set("path", userFaceImages);
|
fileInfo.set("path", userFaceImages);
|
||||||
dataList.add(fileInfo);
|
dataList.add(fileInfo);
|
||||||
userInfo.set("id", generateId);
|
userInfo.set("id", generateId);
|
||||||
userInfo.set("personBiosignatures", generateId);
|
userInfo.set("personBiosignatures", dataList);
|
||||||
userInfo.set("validStartTime", visitStartTime);
|
userInfo.set("validStartTime", visitStartTime);
|
||||||
userInfo.set("validEndTime", visitEndTime);
|
userInfo.set("validEndTime", visitEndTime);
|
||||||
userInfo.set("code", userUid);
|
userInfo.set("code", userUid);
|
||||||
|
|
@ -69,13 +83,31 @@ public class OnePersonUtil {
|
||||||
userInfo.set("departmentId", 1L);
|
userInfo.set("departmentId", 1L);
|
||||||
userInfo.set("personType", 0);
|
userInfo.set("personType", 0);
|
||||||
daHuaDeviceCommon.saveUser(userInfo);
|
daHuaDeviceCommon.saveUser(userInfo);
|
||||||
|
}else {
|
||||||
|
// 这个人存在 更新用户
|
||||||
|
expirationDateRefreshedUserCard(userCard, visitStartTime, visitEndTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增用户
|
||||||
|
*/
|
||||||
|
public void batchSaveUser(List<JSONObject> userList) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return ;
|
||||||
|
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||||
|
JSONArray batchGenerateId = daHuaDeviceCommon.getBatchGenerateId(userList.size());
|
||||||
|
for (int i = 0; i < batchGenerateId.size(); i++) {
|
||||||
|
JSONObject entries = userList.get(i);
|
||||||
|
entries.set("id", batchGenerateId.getInt(i));
|
||||||
|
}
|
||||||
|
daHuaDeviceCommon.batchSaveUser(userList);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 跟据身份证号码进行用户门禁有效期刷新
|
* 跟据身份证号码进行用户门禁有效期刷新
|
||||||
*/
|
*/
|
||||||
public void expirationDateRefreshedUserCard(String userCard, String visitStartTime, String visitEndTime) throws Exception {
|
public void expirationDateRefreshedUserCard(String userCard, String visitStartTime, String visitEndTime) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return ;
|
||||||
JSONObject entries = new JSONObject();
|
JSONObject entries = new JSONObject();
|
||||||
entries.set("userCard", userCard);
|
entries.set("userCard", userCard);
|
||||||
entries.set("visitStartTime", visitStartTime);
|
entries.set("visitStartTime", visitStartTime);
|
||||||
|
|
@ -88,6 +120,7 @@ public class OnePersonUtil {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public void expirationDateRefreshedUserCard(List<JSONObject> userList) throws Exception {
|
public void expirationDateRefreshedUserCard(List<JSONObject> userList) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return ;
|
||||||
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||||
List<String> userCard = userList.stream().map(item -> item.getStr("userCard")).collect(Collectors.toList());
|
List<String> userCard = userList.stream().map(item -> item.getStr("userCard")).collect(Collectors.toList());
|
||||||
Map<String, JSONObject> userCardMap = userList.stream().collect(Collectors.toMap(item -> item.getStr("userCard"), item -> item, (existing, replacement) -> replacement));
|
Map<String, JSONObject> userCardMap = userList.stream().collect(Collectors.toMap(item -> item.getStr("userCard"), item -> item, (existing, replacement) -> replacement));
|
||||||
|
|
@ -111,6 +144,7 @@ public class OnePersonUtil {
|
||||||
* 跟据身份证号码进行用户门禁有效期刷新
|
* 跟据身份证号码进行用户门禁有效期刷新
|
||||||
*/
|
*/
|
||||||
private void expirationDateBatchRefreshedUserCardList(List<JSONObject> dataList) throws Exception {
|
private void expirationDateBatchRefreshedUserCardList(List<JSONObject> dataList) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return ;
|
||||||
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||||
daHuaDeviceCommon.updatePersonValidity(dataList);
|
daHuaDeviceCommon.updatePersonValidity(dataList);
|
||||||
}
|
}
|
||||||
|
|
@ -121,24 +155,64 @@ public class OnePersonUtil {
|
||||||
* (1:有 2:无)
|
* (1:有 2:无)
|
||||||
*/
|
*/
|
||||||
public void freezeByUserCard(String userCard, Integer mkmjPermission) throws Exception {
|
public void freezeByUserCard(String userCard, Integer mkmjPermission) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return ;
|
||||||
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||||
JSONObject userByUserCard = daHuaDeviceCommon.getUserByUserCard(userCard).getJSONObject("data");
|
JSONObject userByUserCard = daHuaDeviceCommon.getUserByUserCard(userCard).getJSONObject("data");
|
||||||
daHuaDeviceCommon.updatePersonStatus(userByUserCard.getLong("id"), mkmjPermission);
|
daHuaDeviceCommon.updatePersonStatus(userByUserCard.getLong("id"), mkmjPermission);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 跟据身份证号码查询用户信息
|
||||||
|
*/
|
||||||
|
public JSONArray getMkmjUserInfoByUserCard(List<String> userCards) throws Exception {
|
||||||
|
if (!dockFlag.equals(1)) return new JSONArray();
|
||||||
|
DaHuaDeviceCommon daHuaDeviceCommon = getDaHuaDeviceCommon();
|
||||||
|
return daHuaDeviceCommon.getUserListByUserCard(userCards).getJSONObject("data").getJSONArray("pageData");
|
||||||
|
}
|
||||||
|
|
||||||
public DaHuaDeviceCommon getDaHuaDeviceCommon() {
|
protected DaHuaDeviceCommon getDaHuaDeviceCommon() {
|
||||||
DhuaConfig dhuaConfig = new DhuaConfig();
|
return new DaHuaDeviceCommon(new DhuaConfig(dockFlag, prefix, username, password, clientId, clientSecret));
|
||||||
dhuaConfig.setPrefix(prefix2);
|
|
||||||
dhuaConfig.setClientId(clientId);
|
|
||||||
dhuaConfig.setClientSecret(clientSecret);
|
|
||||||
dhuaConfig.setUsername(username);
|
|
||||||
dhuaConfig.setPassword(password);
|
|
||||||
return new DaHuaDeviceCommon(dhuaConfig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
OnePersonUtil onePersonUtil = new OnePersonUtil();
|
OnePersonUtil onePersonUtil = new OnePersonUtil();
|
||||||
onePersonUtil.freezeByUserCard("360425198208131948", "1");
|
// JSONArray mkmjUserInfoByUserCard = onePersonUtil.getMkmjUserInfoByUserCard(Arrays.asList("360425198208131948"));
|
||||||
|
// JSONArray mkmjUserInfoByUserCard2 = onePersonUtil.getMkmjUserInfoByUserCard(Arrays.asList("160425198208131948"));
|
||||||
|
//// onePersonUtil.freezeByUserCard("360425198208131948", "1");
|
||||||
|
// System.out.println(mkmjUserInfoByUserCard);
|
||||||
|
// System.out.println(mkmjUserInfoByUserCard2);
|
||||||
|
//
|
||||||
|
// JSONArray batchGenerateId = onePersonUtil.getDaHuaDeviceCommon().getBatchGenerateId(10);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void execute() {
|
||||||
|
if (!dockFlag.equals(1)) return;
|
||||||
|
List<XgfApplyPersonDO> dataList = xgfApplyPersonRepository.listTodayHasPort();
|
||||||
|
if (!dataList.isEmpty()) {
|
||||||
|
HashMap<String,JSONObject> userCardHashSet = new HashMap<>();
|
||||||
|
ArrayList<JSONObject> jsonObjects = new ArrayList<>();
|
||||||
|
dataList.forEach(item -> {
|
||||||
|
JSONObject entries = new JSONObject();
|
||||||
|
entries.set("userCard", Base64.decodeToString(item.getUserCard()));
|
||||||
|
entries.set("validStartTime", DateUtil.date2Str(new Date(),"yyyy-MM-dd") + " 00:00:00");
|
||||||
|
entries.set("validEndTime", DateUtil.date2Str(new Date(),"yyyy-MM-dd") + " 23:59:59");
|
||||||
|
userCardHashSet.put(Base64.decodeToString(item.getUserCard()), entries);
|
||||||
|
jsonObjects.add(entries);
|
||||||
|
});
|
||||||
|
JSONArray mkmjUserInfoByUserCard = null;
|
||||||
|
try {
|
||||||
|
mkmjUserInfoByUserCard = getMkmjUserInfoByUserCard(new ArrayList<>(userCardHashSet.keySet()));
|
||||||
|
for (int i = 0; i < mkmjUserInfoByUserCard.size(); i++) {
|
||||||
|
JSONObject jsonObject = mkmjUserInfoByUserCard.getJSONObject(i);
|
||||||
|
userCardHashSet.get(jsonObject.getStr("paperNumber")).set("id", jsonObject.getLong("id"));
|
||||||
|
}
|
||||||
|
expirationDateBatchRefreshedUserCardList(new ArrayList<>(userCardHashSet.values()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -163,5 +163,27 @@
|
||||||
ORDER BY
|
ORDER BY
|
||||||
u.department_id
|
u.department_id
|
||||||
</select>
|
</select>
|
||||||
|
<select id="listTodayHasPort" resultType="com.zcloud.primeport.persistence.dataobject.XgfApplyPersonDO">
|
||||||
|
SELECT
|
||||||
|
pa.employee_person_user_name,
|
||||||
|
pa.user_card,
|
||||||
|
pa.user_face_url,
|
||||||
|
xap.gate_level_auth_area,
|
||||||
|
xap.audit_flag,
|
||||||
|
xap.person_belong_type,
|
||||||
|
xap.visit_start_time,
|
||||||
|
xap.visit_end_time
|
||||||
|
FROM
|
||||||
|
person_apply pa
|
||||||
|
LEFT JOIN xgf_apply_person xap ON pa.xgf_apply_person_id = xap.id
|
||||||
|
WHERE
|
||||||
|
pa.delete_enum = "FALSE"
|
||||||
|
AND xap.delete_enum = 'FALSE'
|
||||||
|
AND xap.audit_flag = 2
|
||||||
|
AND xap.person_belong_type IN ( 3, 4 )
|
||||||
|
AND xap.visit_start_time <= DATE_FORMAT( now(), '%y-%m-%d' ) AND xap.visit_end_time >= DATE_FORMAT( now(), '%y-%m-%d' )
|
||||||
|
GROUP BY
|
||||||
|
pa.user_card
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue