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.domain.model.ClosedAreaCarApplyE;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaCarApplyAuditCmd;
|
import com.zcloud.primeport.dto.ClosedAreaCarApplyAuditCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaCarApplyUpdateCmd;
|
import com.zcloud.primeport.dto.ClosedAreaCarApplyUpdateCmd;
|
||||||
|
import com.zcloud.primeport.plan.mjDevice.TwoCarUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -27,6 +28,7 @@ import java.util.Date;
|
||||||
public class ClosedAreaCarApplyUpdateExe {
|
public class ClosedAreaCarApplyUpdateExe {
|
||||||
private final ClosedAreaCarApplyGateway closedAreaCarApplyGateway;
|
private final ClosedAreaCarApplyGateway closedAreaCarApplyGateway;
|
||||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||||
|
private final TwoCarUtil twoCarUtil;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void execute(ClosedAreaCarApplyUpdateCmd closedAreaCarApplyUpdateCmd) {
|
public void execute(ClosedAreaCarApplyUpdateCmd closedAreaCarApplyUpdateCmd) {
|
||||||
|
|
@ -50,6 +52,11 @@ public class ClosedAreaCarApplyUpdateExe {
|
||||||
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
||||||
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
|
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
|
||||||
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
||||||
|
// 审批通过 → 同步门禁权限(二级海康 + 一级车行)
|
||||||
|
// 根据carBelongType判断车辆类型,内部车不走临时接口,不覆盖一级原有权限
|
||||||
|
if (auditCmd.getAuditFlag().equals(2)) {
|
||||||
|
twoCarUtil.levelTwoCarCompanyByApplyId(auditCmd.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,13 @@
|
||||||
package com.zcloud.primeport.command;
|
package com.zcloud.primeport.command;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
|
||||||
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
|
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
|
||||||
import com.zcloud.gbscommon.utils.DateUtil;
|
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.ClosedAreaFgsPersonAreaGateway;
|
||||||
import com.zcloud.primeport.domain.gateway.ClosedAreaFgsPersonAuthGateway;
|
import com.zcloud.primeport.domain.gateway.ClosedAreaFgsPersonAuthGateway;
|
||||||
import com.zcloud.primeport.domain.gateway.ClosedAreaPersonApplyGateway;
|
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.ClosedAreaPersonApplyAuditCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaPersonApplyAuthCmd;
|
import com.zcloud.primeport.dto.ClosedAreaPersonApplyAuthCmd;
|
||||||
import com.zcloud.primeport.dto.ClosedAreaPersonApplyUpdateCmd;
|
import com.zcloud.primeport.dto.ClosedAreaPersonApplyUpdateCmd;
|
||||||
|
import com.zcloud.primeport.plan.mjDevice.OnePersonUtil;
|
||||||
|
import com.zcloud.primeport.plan.mjDevice.TwoPersonUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -36,6 +44,11 @@ public class ClosedAreaPersonApplyUpdateExe {
|
||||||
private final ClosedAreaFgsPersonAuthGateway areaFgsPersonAuthGateway;
|
private final ClosedAreaFgsPersonAuthGateway areaFgsPersonAuthGateway;
|
||||||
private final ClosedAreaFgsPersonAreaGateway areaFgsPersonAreaGateway;
|
private final ClosedAreaFgsPersonAreaGateway areaFgsPersonAreaGateway;
|
||||||
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
private final TodoListEventPusherUtil todoListEventPusherUtil;
|
||||||
|
private final TwoPersonUtil twoPersonUtil;
|
||||||
|
private final OnePersonUtil onePersonUtil;
|
||||||
|
|
||||||
|
@DubboReference
|
||||||
|
private ZcloudUserFacade zcloudUserFacade;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void execute(ClosedAreaPersonApplyUpdateCmd closedAreaPersonApplyUpdateCmd) {
|
public void execute(ClosedAreaPersonApplyUpdateCmd closedAreaPersonApplyUpdateCmd) {
|
||||||
|
|
@ -58,9 +71,10 @@ public class ClosedAreaPersonApplyUpdateExe {
|
||||||
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
|
||||||
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
|
todoListCompleteEvent.setForeignSubsidiaryKey(auditCmd.getId());
|
||||||
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
|
||||||
// 审批通过赋予权限
|
// 审批通过 → 同步门禁权限(二级海康 + 一级大华)
|
||||||
|
// 内部会先查大华系统判断是否已有权限,不覆盖原有权限
|
||||||
if (auditCmd.getAuditFlag().equals(2)) {
|
if (auditCmd.getAuditFlag().equals(2)) {
|
||||||
|
twoPersonUtil.levelTwoPeopleCompanyByApplyId(auditCmd.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -86,6 +100,36 @@ public class ClosedAreaPersonApplyUpdateExe {
|
||||||
objects.add(closedAreaFgsPersonAreaE);
|
objects.add(closedAreaFgsPersonAreaE);
|
||||||
}
|
}
|
||||||
areaFgsPersonAreaGateway.saveBatch(objects);
|
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,30 +46,36 @@ public class TwoCarUtil {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批时候的主入口 传一个申请id来
|
* 审批时候的主入口 传一个申请id来
|
||||||
*
|
* 同步二级门禁(海康) + 一级门禁(车行系统)
|
||||||
*
|
* 一级门禁仅对临时/相关方车操作,内部车不操作一级避免覆盖原有权限
|
||||||
*/
|
*/
|
||||||
public void levelTwoCarCompanyByApplyId(Long applyId) {
|
public void levelTwoCarCompanyByApplyId(Long applyId) {
|
||||||
if (!dockFlag.equals(1)) return;
|
if (!dockFlag.equals(1)) return;
|
||||||
ClosedAreaCarApplyDO byId = closedAreaCarApplyRepository.getById(applyId);
|
ClosedAreaCarApplyDO byId = closedAreaCarApplyRepository.getById(applyId);
|
||||||
if (byId.getCarBelongType().equals(4)) {
|
Integer carBelongType = byId.getCarBelongType();
|
||||||
|
// 二级门禁(海康)同步 — 所有类型都需要
|
||||||
|
if (carBelongType.equals(4)) {
|
||||||
dockTmpCarLevelTwo(byId.getLicenceNo());
|
dockTmpCarLevelTwo(byId.getLicenceNo());
|
||||||
}else {
|
} else {
|
||||||
dockFgsCarLevelTwo(byId.getLicenceNo());
|
dockFgsCarLevelTwo(byId.getLicenceNo());
|
||||||
}
|
}
|
||||||
OneLevelCarSaveDto oneLevelCarSaveDto = new OneLevelCarSaveDto();
|
// 一级门禁(车行系统)同步 — 仅临时/相关方车需要开通一级临时权限
|
||||||
oneLevelCarSaveDto.setTruckNo(byId.getLicenceNo());
|
// 内部车(1股份/2分公司/5分公司内部)已有独立的一级权限管理,不操作避免覆盖
|
||||||
oneLevelCarSaveDto.setTruckCardColor(byId.getLicenceType());
|
if (carBelongType.equals(3) || carBelongType.equals(4)) {
|
||||||
oneLevelCarSaveDto.setTruckTypCod(CarEnum.getMenuKeyByPath(byId.getVehicleType()));
|
OneLevelCarSaveDto oneLevelCarSaveDto = new OneLevelCarSaveDto();
|
||||||
// todo 待确定到底是东港还是西港
|
oneLevelCarSaveDto.setTruckNo(byId.getLicenceNo());
|
||||||
oneLevelCarSaveDto.setPortId("0");
|
oneLevelCarSaveDto.setTruckCardColor(byId.getLicenceType());
|
||||||
oneLevelCarSaveDto.setDriverNam(byId.getDrivingUserName());
|
oneLevelCarSaveDto.setTruckTypCod(CarEnum.getMenuKeyByPath(byId.getVehicleType()));
|
||||||
oneLevelCarSaveDto.setLinkTel(byId.getUserPhone());
|
// todo 待确定到底是东港还是西港
|
||||||
oneLevelCarSaveDto.setValidDte(DateUtil.date2Str(new Date(),"yyyy-MM-dd"));
|
oneLevelCarSaveDto.setPortId("0");
|
||||||
oneLevelCarSaveDto.setRecTim(DateUtil.date2Str(new Date()));
|
oneLevelCarSaveDto.setDriverNam(byId.getDrivingUserName());
|
||||||
oneLevelCarSaveDto.setYqlCheckFlag("1");
|
oneLevelCarSaveDto.setLinkTel(byId.getUserPhone());
|
||||||
oneLevelCarSaveDto.setIsNeedCheck("0");
|
oneLevelCarSaveDto.setValidDte(DateUtil.date2Str(new Date(),"yyyy-MM-dd"));
|
||||||
tmpVehicleSave(oneLevelCarSaveDto);
|
oneLevelCarSaveDto.setRecTim(DateUtil.date2Str(new Date()));
|
||||||
|
oneLevelCarSaveDto.setYqlCheckFlag("1");
|
||||||
|
oneLevelCarSaveDto.setIsNeedCheck("0");
|
||||||
|
tmpVehicleSave(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,
|
GROUP_CONCAT( chvi.hk_index_code ) hk_index_code,
|
||||||
capa.visit_start_time,
|
capa.visit_start_time,
|
||||||
capa.visit_end_time,
|
capa.visit_end_time,
|
||||||
capa.user_face_url,
|
capa.user_face_url user_face_images,
|
||||||
capa.user_phone,
|
capa.user_phone,
|
||||||
capa.user_card,
|
capa.user_card,
|
||||||
|
capa.apply_person_user_name user_name,
|
||||||
capa.entourage
|
capa.entourage
|
||||||
FROM
|
FROM
|
||||||
closed_area_person_apply capa
|
closed_area_person_apply capa
|
||||||
|
|
@ -144,9 +145,10 @@
|
||||||
GROUP_CONCAT( DISTINCT mg.hk_index_code ) hk_index_code,
|
GROUP_CONCAT( DISTINCT mg.hk_index_code ) hk_index_code,
|
||||||
capa.visit_start_time,
|
capa.visit_start_time,
|
||||||
capa.visit_end_time,
|
capa.visit_end_time,
|
||||||
capa.user_face_url,
|
capa.user_face_url user_face_images,
|
||||||
capa.user_phone,
|
capa.user_phone,
|
||||||
capa.user_card
|
capa.user_card,
|
||||||
|
capa.apply_person_user_name user_name
|
||||||
FROM
|
FROM
|
||||||
closed_area_person_apply capa
|
closed_area_person_apply capa
|
||||||
LEFT JOIN mkmj_gate mg ON capa.level_two_mkmj_id = mg.mkmj_id
|
LEFT JOIN mkmj_gate mg ON capa.level_two_mkmj_id = mg.mkmj_id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue