Compare commits
2 Commits
e2c3007c1f
...
74a55d82b2
| Author | SHA1 | Date |
|---|---|---|
|
|
74a55d82b2 | |
|
|
b3dffc6577 |
|
|
@ -8,6 +8,7 @@ import com.zcloud.primeport.domain.gateway.ClosedAreaCarApplyGateway;
|
|||
import com.zcloud.primeport.domain.model.ClosedAreaCarApplyE;
|
||||
import com.zcloud.primeport.dto.ClosedAreaCarApplyAuditCmd;
|
||||
import com.zcloud.primeport.dto.ClosedAreaCarApplyUpdateCmd;
|
||||
import com.zcloud.primeport.plan.mjDevice.TwoCarUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -27,6 +28,7 @@ import java.util.Date;
|
|||
public class ClosedAreaCarApplyUpdateExe {
|
||||
private final ClosedAreaCarApplyGateway closedAreaCarApplyGateway;
|
||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||
private final TwoCarUtil twoCarUtil;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void execute(ClosedAreaCarApplyUpdateCmd closedAreaCarApplyUpdateCmd) {
|
||||
|
|
@ -50,6 +52,11 @@ public class ClosedAreaCarApplyUpdateExe {
|
|||
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
||||
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
|
||||
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
||||
// 审批通过 → 同步门禁权限(二级海康 + 一级车行)
|
||||
// 根据carBelongType判断车辆类型,内部车不走临时接口,不覆盖一级原有权限
|
||||
if (auditCmd.getAuditFlag().equals(2)) {
|
||||
twoCarUtil.levelTwoCarCompanyByApplyId(auditCmd.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
package com.zcloud.primeport.command;
|
||||
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.alibaba.cola.exception.BizException;
|
||||
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
||||
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
|
||||
import com.zcloud.gbscommon.utils.DateUtil;
|
||||
import com.zcloud.gbscommon.utils.Tools;
|
||||
import com.zcloud.gbscommon.zclouduser.facade.ZcloudUserFacade;
|
||||
import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo;
|
||||
import com.zcloud.primeport.domain.gateway.ClosedAreaFgsPersonAreaGateway;
|
||||
import com.zcloud.primeport.domain.gateway.ClosedAreaFgsPersonAuthGateway;
|
||||
import com.zcloud.primeport.domain.gateway.ClosedAreaPersonApplyGateway;
|
||||
|
|
@ -13,12 +17,16 @@ import com.zcloud.primeport.domain.model.ClosedAreaPersonApplyE;
|
|||
import com.zcloud.primeport.dto.ClosedAreaPersonApplyAuditCmd;
|
||||
import com.zcloud.primeport.dto.ClosedAreaPersonApplyAuthCmd;
|
||||
import com.zcloud.primeport.dto.ClosedAreaPersonApplyUpdateCmd;
|
||||
import com.zcloud.primeport.plan.mjDevice.OnePersonUtil;
|
||||
import com.zcloud.primeport.plan.mjDevice.TwoPersonUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -36,6 +44,11 @@ public class ClosedAreaPersonApplyUpdateExe {
|
|||
private final ClosedAreaFgsPersonAuthGateway areaFgsPersonAuthGateway;
|
||||
private final ClosedAreaFgsPersonAreaGateway areaFgsPersonAreaGateway;
|
||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||
private final TwoPersonUtil twoPersonUtil;
|
||||
private final OnePersonUtil onePersonUtil;
|
||||
|
||||
@DubboReference
|
||||
private ZcloudUserFacade zcloudUserFacade;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void execute(ClosedAreaPersonApplyUpdateCmd closedAreaPersonApplyUpdateCmd) {
|
||||
|
|
@ -58,9 +71,10 @@ public class ClosedAreaPersonApplyUpdateExe {
|
|||
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
||||
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
|
||||
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
||||
// 审批通过赋予权限
|
||||
// 审批通过 → 同步门禁权限(二级海康 + 一级大华)
|
||||
// 内部会先查大华系统判断是否已有权限,不覆盖原有权限
|
||||
if (auditCmd.getAuditFlag().equals(2)) {
|
||||
|
||||
twoPersonUtil.levelTwoPeopleCompanyByApplyId(auditCmd.getId());
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -86,6 +100,36 @@ public class ClosedAreaPersonApplyUpdateExe {
|
|||
objects.add(closedAreaFgsPersonAreaE);
|
||||
}
|
||||
areaFgsPersonAreaGateway.saveBatch(objects);
|
||||
// 开启门禁权限时,查一级大华是否有已有权限,不覆盖
|
||||
if (cmd.getMkmjPermission() != null && cmd.getMkmjPermission().equals(1)) {
|
||||
// 获取人员身份证号
|
||||
SingleResponse<ZcloudUserCo> userInfo = zcloudUserFacade.getInfoByUserId(cmd.getUserId());
|
||||
if (userInfo != null && userInfo.getData() != null) {
|
||||
String userCard = userInfo.getData().getUserIdCard();
|
||||
String userName = userInfo.getData().getName();
|
||||
String userFaceUrl = userInfo.getData().getUserAvatarUrl();
|
||||
if (Tools.notEmpty(userCard)) {
|
||||
// 查询一级门禁(大华)是否已有权限
|
||||
try {
|
||||
cn.hutool.json.JSONArray dahuaUsers = onePersonUtil.getMkmjUserInfoByUserCard(Collections.singletonList(userCard));
|
||||
if (dahuaUsers == null || dahuaUsers.isEmpty()) {
|
||||
// 大华没有该用户 → 新增(有效期按每日任务刷新)
|
||||
onePersonUtil.dockLongTermUserByUserCardAndFaceImg(
|
||||
userCard,
|
||||
"hbqa" + userCard,
|
||||
userName,
|
||||
userFaceUrl,
|
||||
DateUtil.date2Str(new Date(), "yyyy-MM-dd") + " 00:00:00",
|
||||
DateUtil.date2Str(new Date(), "yyyy-MM-dd") + " 23:59:59"
|
||||
);
|
||||
}
|
||||
// 已有大华权限 → 保留,不覆盖
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,17 +46,22 @@ public class TwoCarUtil {
|
|||
|
||||
/**
|
||||
* 审批时候的主入口 传一个申请id来
|
||||
*
|
||||
*
|
||||
* 同步二级门禁(海康) + 一级门禁(车行系统)
|
||||
* 一级门禁仅对临时/相关方车操作,内部车不操作一级避免覆盖原有权限
|
||||
*/
|
||||
public void levelTwoCarCompanyByApplyId(Long applyId) {
|
||||
if (!dockFlag.equals(1)) return;
|
||||
ClosedAreaCarApplyDO byId = closedAreaCarApplyRepository.getById(applyId);
|
||||
if (byId.getCarBelongType().equals(4)) {
|
||||
Integer carBelongType = byId.getCarBelongType();
|
||||
// 二级门禁(海康)同步 — 所有类型都需要
|
||||
if (carBelongType.equals(4)) {
|
||||
dockTmpCarLevelTwo(byId.getLicenceNo());
|
||||
}else {
|
||||
} else {
|
||||
dockFgsCarLevelTwo(byId.getLicenceNo());
|
||||
}
|
||||
// 一级门禁(车行系统)同步 — 仅临时/相关方车需要开通一级临时权限
|
||||
// 内部车(1股份/2分公司/5分公司内部)已有独立的一级权限管理,不操作避免覆盖
|
||||
if (carBelongType.equals(3) || carBelongType.equals(4)) {
|
||||
OneLevelCarSaveDto oneLevelCarSaveDto = new OneLevelCarSaveDto();
|
||||
oneLevelCarSaveDto.setTruckNo(byId.getLicenceNo());
|
||||
oneLevelCarSaveDto.setTruckCardColor(byId.getLicenceType());
|
||||
|
|
@ -71,6 +76,7 @@ public class TwoCarUtil {
|
|||
oneLevelCarSaveDto.setIsNeedCheck("0");
|
||||
tmpVehicleSave(oneLevelCarSaveDto);
|
||||
}
|
||||
}
|
||||
|
||||
// 对接一级口门车辆
|
||||
public void tmpVehicleSave(OneLevelCarSaveDto oneLevelCarSaveDto) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -95,9 +95,10 @@
|
|||
GROUP_CONCAT( chvi.hk_index_code ) hk_index_code,
|
||||
capa.visit_start_time,
|
||||
capa.visit_end_time,
|
||||
capa.user_face_url,
|
||||
capa.user_face_url user_face_images,
|
||||
capa.user_phone,
|
||||
capa.user_card,
|
||||
capa.apply_person_user_name user_name,
|
||||
capa.entourage
|
||||
FROM
|
||||
closed_area_person_apply capa
|
||||
|
|
@ -144,9 +145,10 @@
|
|||
GROUP_CONCAT( DISTINCT mg.hk_index_code ) hk_index_code,
|
||||
capa.visit_start_time,
|
||||
capa.visit_end_time,
|
||||
capa.user_face_url,
|
||||
capa.user_face_url user_face_images,
|
||||
capa.user_phone,
|
||||
capa.user_card
|
||||
capa.user_card,
|
||||
capa.apply_person_user_name user_name
|
||||
FROM
|
||||
closed_area_person_apply capa
|
||||
LEFT JOIN mkmj_gate mg ON capa.level_two_mkmj_id = mg.mkmj_id
|
||||
|
|
|
|||
Loading…
Reference in New Issue