feat:口门相关管理

koumen
dearLin 2026-03-16 17:17:49 +08:00
parent ae80b0fb4f
commit 6cfd3a6fcf
25 changed files with 138 additions and 74 deletions

View File

@ -108,7 +108,7 @@ public class PersonApplyController {
@ApiOperation("股份,分公司-人员授权") @ApiOperation("股份,分公司-人员授权")
@PostMapping("/authorization") @PostMapping("/authorization")
public Response authorization(PersonAuthCmd cmd) { public Response authorization(@RequestBody PersonAuthCmd cmd) {
personApplyService.authorization(cmd); personApplyService.authorization(cmd);
return Response.buildSuccess(); return Response.buildSuccess();
} }

View File

@ -94,5 +94,11 @@ public class VehicleApplyController {
result.put("available", available); result.put("available", available);
return SingleResponse.of(result); return SingleResponse.of(result);
} }
@ApiOperation("分公司统计")
@GetMapping("/fgsCount")
public PageResponse<VehicleApplyCO> fgsCount(@RequestBody VehicleApplyPageQry qry) {
return vehicleApplyService.listPage(qry);
}
} }

View File

@ -33,12 +33,11 @@ import java.util.ArrayList;
public class VehicleBlackController { public class VehicleBlackController {
private final VehicleBlackServiceI vehicleBlackService; private final VehicleBlackServiceI vehicleBlackService;
// @ApiOperation("新增") @ApiOperation("新增")
// @PostMapping("/save") @PostMapping("/save")
// public SingleResponse<VehicleBlackCO> add(@Validated @RequestBody VehicleBlackAddCmd cmd) { public SingleResponse<VehicleBlackCO> add(@Validated @RequestBody VehicleBlackAddCmd cmd) {
// SSOUser ssoUser = AuthContext.getCurrentUser(); return vehicleBlackService.add(cmd);
// return vehicleBlackService.add(cmd); }
// }
@ApiOperation("分页") @ApiOperation("分页")
@PostMapping("/list") @PostMapping("/list")

View File

@ -1,7 +1,9 @@
package com.zcloud.primeport.command; package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.primeport.domain.gateway.MkmjGateGateway;
import com.zcloud.primeport.domain.gateway.PersonApplyGateway; import com.zcloud.primeport.domain.gateway.PersonApplyGateway;
import com.zcloud.primeport.domain.gateway.XgfApplyPersonGateway;
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;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd; import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
@ -24,6 +26,8 @@ import javax.validation.constraints.NotNull;
@AllArgsConstructor @AllArgsConstructor
public class PersonApplyUpdateExe { public class PersonApplyUpdateExe {
private final PersonApplyGateway personApplyGateway; private final PersonApplyGateway personApplyGateway;
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) {
@ -43,11 +47,15 @@ public class PersonApplyUpdateExe {
personApplyGateway.xgfPersonAudit(build); personApplyGateway.xgfPersonAudit(build);
} }
public void authorization(Long applyPersonId, Integer mkmjPermission) { public void authorization(Long applyPersonId, Long XgfApplyPersonId, Integer mkmjPermission, String gate) {
PersonApplyE personApplyE = new PersonApplyE(); PersonApplyE personApplyE = new PersonApplyE();
personApplyE.setId(applyPersonId); personApplyE.setId(applyPersonId);
personApplyE.setMkmjPermission(mkmjPermission); personApplyE.setMkmjPermission(mkmjPermission);
personApplyGateway.update(personApplyE); personApplyGateway.update(personApplyE);
XgfApplyPersonE xgfApplyPersonE = new XgfApplyPersonE();
xgfApplyPersonE.setId(XgfApplyPersonId);
xgfApplyPersonE.setGateLevelAuthArea(gate);
xgfApplyPersonGateway.update(xgfApplyPersonE);
} }
} }

View File

@ -43,15 +43,18 @@ public class VehicleApplyAddExe {
examTypeE.setBlockedFlag(2); examTypeE.setBlockedFlag(2);
examTypeE.setAuditFlag(AuditEnum.WAITING.getCode()); examTypeE.setAuditFlag(AuditEnum.WAITING.getCode());
// 股份、分公司个人车辆 // 股份、分公司个人车辆
if (cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.JGD_PRI_VEHICLES.getCode()) || cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.FGS_PRI_VEHICLES.getCode())) { if (cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.JGD_PRI_VEHICLES.getCode())
SSOUser user = AuthContext.getCurrentUser(); || cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.FGS_PRI_VEHICLES.getCode())) {
if (user != null) { if (cmd.getEmployeeVehicleUserId() == null) {
examTypeE.setVehicleCorpId(user.getTenantId()); SSOUser user = AuthContext.getCurrentUser();
examTypeE.setVehicleCorpName(user.getTenantName()); if (user != null) {
examTypeE.setVehicleDepartmentId(user.getOrgId()); examTypeE.setVehicleCorpId(user.getTenantId());
examTypeE.setVehicleDepartmentName(user.getOrgName()); examTypeE.setVehicleCorpName(user.getTenantName());
examTypeE.setEmployeeVehicleUserId(user.getUserId()); examTypeE.setVehicleDepartmentId(user.getOrgId());
examTypeE.setEmployeeVehicleUserName(user.getName()); examTypeE.setVehicleDepartmentName(user.getOrgName());
examTypeE.setEmployeeVehicleUserId(user.getUserId());
examTypeE.setEmployeeVehicleUserName(user.getName());
}
} }
} }
vehicleApplyGateway.add(examTypeE); vehicleApplyGateway.add(examTypeE);

View File

@ -43,8 +43,8 @@ public class MkmjApprovalUserQueryExe {
public List<MkmjApprovalUserCO> listAll(MkmjApprovalUserPageQry qry) { public List<MkmjApprovalUserCO> listAll(MkmjApprovalUserPageQry qry) {
QueryWrapper<MkmjApprovalUserDO> mkmjApprovalUserCOQueryWrapper = new QueryWrapper<>(); QueryWrapper<MkmjApprovalUserDO> mkmjApprovalUserCOQueryWrapper = new QueryWrapper<>();
mkmjApprovalUserCOQueryWrapper.eq("corp_id", qry.getCorpId()); // mkmjApprovalUserCOQueryWrapper.eq("corp_id", qry.getCorpId());
mkmjApprovalUserCOQueryWrapper.eq("dept_id", qry.getDeptId()); // mkmjApprovalUserCOQueryWrapper.eq("dept_id", qry.getDeptId());
if (qry.getPersonnelPermissionFlag() != null) { if (qry.getPersonnelPermissionFlag() != null) {
mkmjApprovalUserCOQueryWrapper.eq("personnel_permission_flag", qry.getPersonnelPermissionFlag()); mkmjApprovalUserCOQueryWrapper.eq("personnel_permission_flag", qry.getPersonnelPermissionFlag());
} }

View File

@ -90,9 +90,9 @@ public class PersonApplyServiceImpl implements PersonApplyServiceI {
public void authorization(PersonAuthCmd cmd) { public void authorization(PersonAuthCmd cmd) {
if (cmd.getXgfApplyPersonId() != null) { if (cmd.getXgfApplyPersonId() != null) {
// 修改 // 修改
personApplyUpdateExe.authorization(cmd.getApplyPersonId(),cmd.getMkmjPermission()); personApplyUpdateExe.authorization(cmd.getApplyPersonId(),cmd.getXgfApplyPersonId(),cmd.getMkmjPermission(),cmd.getGateLevelAuthArea());
} else { } else {
// 新增 就是股份,企业的。 // 新增 就是股份,企业的。
personApplyAddExe.authorization(cmd); personApplyAddExe.authorization(cmd);
} }
} }

View File

@ -31,7 +31,7 @@ public class MkmjGateUpdateCmd extends Command {
@NotNull(message = "通道id不能为空") @NotNull(message = "通道id不能为空")
private Long passageId; private Long passageId;
@ApiModelProperty(value = "闸机标识", name = "gateNumber", required = true) @ApiModelProperty(value = "闸机标识", name = "gateNumber", required = true)
@NotEmpty(message = "闸机标识不能为空") // @NotEmpty(message = "闸机标识不能为空")
private String gateNumber; private String gateNumber;
@ApiModelProperty(value = "闸机名称", name = "gateName", required = true) @ApiModelProperty(value = "闸机名称", name = "gateName", required = true)
@NotEmpty(message = "闸机名称不能为空") @NotEmpty(message = "闸机名称不能为空")
@ -58,10 +58,10 @@ public class MkmjGateUpdateCmd extends Command {
@NotEmpty(message = "闸机位置不能为空") @NotEmpty(message = "闸机位置不能为空")
private String gatePosition; private String gatePosition;
@ApiModelProperty(value = "经度", name = "longitude", required = true) @ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空") // @NotEmpty(message = "经度不能为空")
private String longitude; private String longitude;
@ApiModelProperty(value = "纬度", name = "latitude", required = true) @ApiModelProperty(value = "纬度", name = "latitude", required = true)
@NotEmpty(message = "纬度不能为空") // @NotEmpty(message = "纬度不能为空")
private String latitude; private String latitude;
} }

View File

@ -24,7 +24,14 @@ public class MkmjPageQry extends PageQuery {
* - `le`: * - `le`:
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
@ApiModelProperty(value = "前端标识",name = "likeMkmjName")
private String likeMkmjName; private String likeMkmjName;
@ApiModelProperty(value = "口门状态",name = "mkmjStatus")
private Integer mkmjStatus;
@ApiModelProperty(value = "口门类型",name = "mkmjType")
private String mkmjType;
@ApiModelProperty(value = "所属区域",name = "hgAuthArea")
private String hgAuthArea;
@ApiModelProperty(value = "前端标识") @ApiModelProperty(value = "前端标识")
private String menuPath; private String menuPath;
} }

View File

@ -21,26 +21,27 @@ import javax.validation.constraints.NotNull;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class MkmjPassageUpdateCmd extends Command { public class MkmjPassageUpdateCmd extends Command {
@ApiModelProperty(value = "主键", name = "id", required = true) @ApiModelProperty(value = "主键", name = "id")
@NotNull(message = "主键不能为空") @NotNull(message = "主键不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "通道名称", name = "passageName", required = true) @ApiModelProperty(value = "通道名称", name = "passageName")
@NotEmpty(message = "通道名称不能为空") @NotEmpty(message = "通道名称不能为空")
private String passageName; private String passageName;
@ApiModelProperty(value = "通道类型 1-人行 2-车行 3-综合", name = "passageType", required = true) @ApiModelProperty(value = "通道类型 1-人行 2-车行 3-综合", name = "passageType")
@NotNull(message = "通道类型 1-人行 2-车行 3-综合不能为空") @NotEmpty(message = "通道类型 1-人行 2-车行 3-综合不能为空")
private Integer passageType; private String passageType;
@ApiModelProperty(value = "通道状态 1-停用 2-正常", name = "passageStatus", required = true) @ApiModelProperty(value = "通道类型 1-人行 2-车行 3-综合", name = "passageTypeName")
@NotEmpty(message = "通道类型 1-人行 2-车行 3-综合不能为空")
private String passageTypeName;
@ApiModelProperty(value = "通道状态 1-停用 2-正常", name = "passageStatus")
@NotNull(message = "通道状态 1-停用 2-正常不能为空") @NotNull(message = "通道状态 1-停用 2-正常不能为空")
private Integer passageStatus; private Integer passageStatus;
@ApiModelProperty(value = "口门区域id", name = "mkmjId", required = true) @ApiModelProperty(value = "口门区域id", name = "mkmjId")
@NotEmpty(message = "口门区域id不能为空") @NotEmpty(message = "口门区域id不能为空")
private String mkmjId; private Long mkmjId;
@ApiModelProperty(value = "经度", name = "longitude", required = true) @ApiModelProperty(value = "经度", name = "longitude")
@NotEmpty(message = "经度不能为空")
private String longitude; private String longitude;
@ApiModelProperty(value = "纬度", name = "latitude", required = true) @ApiModelProperty(value = "纬度", name = "latitude")
@NotEmpty(message = "纬度不能为空")
private String latitude; private String latitude;
} }

View File

@ -47,5 +47,8 @@ public class VehicleApplyPageQry extends PageQuery {
@ApiModelProperty(value = "名称", name = "remarks") @ApiModelProperty(value = "名称", name = "remarks")
private String remarks; private String remarks;
@ApiModelProperty(value = "企业名称", name = "corpName")
private String corpName;
} }

View File

@ -21,17 +21,20 @@ import javax.validation.constraints.NotNull;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class VehicleBlackAddCmd extends Command { public class VehicleBlackAddCmd extends Command {
@ApiModelProperty(value = "车辆信息表vehicle_apply的主键id", name = "vehicleId", required = true)
@NotNull(message = "车辆信息表vehicle_apply的主键id不能为空")
private Long vehicleId;
@ApiModelProperty(value = "车辆所属人姓名(临时车)", name = "employeeVehicleUserName", required = true)
@NotEmpty(message = "车辆所属人姓名(临时车)不能为空")
private String employeeVehicleUserName;
@ApiModelProperty(value = "车牌号", name = "licenceNo", required = true) @ApiModelProperty(value = "车牌号", name = "licenceNo", required = true)
@NotEmpty(message = "车牌号不能为空") @NotEmpty(message = "车牌号不能为空")
private String licenceNo; private String licenceNo;
@ApiModelProperty(value = "车牌类型数据字典")
private String licenceType;
//车牌类型名称0-白牌 1- 蓝牌 2-黄牌 3-绿牌 4-黑牌
@ApiModelProperty(value = "车牌类型名称0-白牌 1- 蓝牌 2-黄牌 3-绿牌 4-黑牌")
private String licenceTypeName;
@ApiModelProperty(value = "车辆类型")
private String vehicleType;
//车辆类型-名字
@ApiModelProperty(value = "车辆类型-名字")
private String vehicleTypeName;
@ApiModelProperty(value = "备注", name = "remarks", required = true) @ApiModelProperty(value = "备注", name = "remarks", required = true)
@NotEmpty(message = "备注不能为空")
private String remarks; private String remarks;
} }

View File

@ -26,6 +26,16 @@ public class VehicleViolationsAddCmd extends Command {
@ApiModelProperty(value = "车牌号", name = "licenceNo", required = true) @ApiModelProperty(value = "车牌号", name = "licenceNo", required = true)
@NotEmpty(message = "车牌号不能为空") @NotEmpty(message = "车牌号不能为空")
private String licenceNo; private String licenceNo;
@ApiModelProperty(value = "车牌类型数据字典")
private String licenceType;
//车牌类型名称0-白牌 1- 蓝牌 2-黄牌 3-绿牌 4-黑牌
@ApiModelProperty(value = "车牌类型名称0-白牌 1- 蓝牌 2-黄牌 3-绿牌 4-黑牌")
private String licenceTypeName;
@ApiModelProperty(value = "车辆类型")
private String vehicleType;
//车辆类型-名字
@ApiModelProperty(value = "车辆类型-名字")
private String vehicleTypeName;
@ApiModelProperty(value = "违规类型", name = "violationType", required = true) @ApiModelProperty(value = "违规类型", name = "violationType", required = true)
@NotEmpty(message = "违规类型不能为空") @NotEmpty(message = "违规类型不能为空")
private String violationType; private String violationType;

View File

@ -0,0 +1,21 @@
package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FgsVehicleCountCo extends ClientObject {
//审批人企业id
@ApiModelProperty(value = "企业id",name = "corpId")
private Long corpId;
@ApiModelProperty(value = "企业名称",name = "corpName")
private Long corpName;
@ApiModelProperty(value = "人员数",name = "userCount")
private Integer userCount;
@ApiModelProperty(value = "个人车辆数",name = "priCarCount")
private Integer priCarCount;
@ApiModelProperty(value = "单位车辆数",name = "pubCarCount")
private Integer pubCarCount;
}

View File

@ -19,6 +19,8 @@ public class MkmjCO extends ClientObject {
//口门名称 //口门名称
@ApiModelProperty(value = "口门名称") @ApiModelProperty(value = "口门名称")
private String mkmjName; private String mkmjName;
private String hgAuthArea;
private String hgAuthAreaName;
//口门级别 1-一级 2-二级 //口门级别 1-一级 2-二级
@ApiModelProperty(value = "口门级别 1-一级 2-二级") @ApiModelProperty(value = "口门级别 1-一级 2-二级")
private Integer mkmjLevel; private Integer mkmjLevel;

View File

@ -40,5 +40,7 @@ public class MkmjGateCO extends ClientObject {
private String longitude; private String longitude;
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private String latitude; private String latitude;
@ApiModelProperty(value = "摄像头数量")
private Integer videoCount;
} }

View File

@ -1,6 +1,7 @@
package com.zcloud.primeport.dto.clientobject; package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject; import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -30,5 +31,7 @@ public class MkmjPassageCO extends ClientObject {
private String remarks; private String remarks;
@ApiModelProperty(value = "闸机数量") @ApiModelProperty(value = "闸机数量")
private Integer gateCount; private Integer gateCount;
@ApiModelProperty(value = "摄像头数量")
private Integer videoCount;
} }

View File

@ -16,5 +16,7 @@ public interface XgfApplyPersonGateway {
void save(XgfApplyPersonE build); void save(XgfApplyPersonE build);
XgfApplyPersonE getInfoById(Long id); XgfApplyPersonE getInfoById(Long id);
void update(XgfApplyPersonE xgfApplyPersonE);
} }

View File

@ -18,9 +18,9 @@ import lombok.NoArgsConstructor;
@Builder @Builder
public class MkmjGateE extends BaseE { public class MkmjGateE extends BaseE {
//口门区域id //口门区域id
private String mkmjId; private Long mkmjId;
//通道id //通道id
private String passageId; private Long passageId;
//闸机标识 //闸机标识
private String gateNumber; private String gateNumber;
//闸机名称 //闸机名称

View File

@ -19,34 +19,10 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@Builder @Builder
public class VehicleBlackE extends BaseE { public class VehicleBlackE extends BaseE {
//车牌号
private String licenceNo; private String licenceNo;
private String vehicleType; private String vehicleType;
//车辆类型-名字
private String vehicleTypeName; private String vehicleTypeName;
//车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆 private String licenceType;
private String vehicleBelongType; private String licenceTypeName;
private Long vehicleCorpId;
//车辆所属企业名称
private String vehicleCorpName;
//车辆所属部门id
private Long vehicleDepartmentId;
//车辆所属部门名称
private String vehicleDepartmentName;
//车辆所属人id(员工车辆/驾驶人id)
private Long employeeVehicleUserId;
//行驶证照片
private Long drivingLicenseId;
//车辆照片
private Long attachmentId;
//告知签字
private Long informSignId;
//项目id
private Long projectId;
//项目名称
private String projectName;
} }

View File

@ -44,5 +44,12 @@ public class XgfApplyPersonGatewayImpl implements XgfApplyPersonGateway {
return d; return d;
} }
@Override
public void update(XgfApplyPersonE xgfApplyPersonE) {
XgfApplyPersonDO d = new XgfApplyPersonDO();
BeanUtils.copyProperties(xgfApplyPersonE, d);
xgfApplyPersonMapper.updateById(d);
}
} }

View File

@ -31,5 +31,8 @@ public class MkmjPassageDO extends BaseDO {
@ApiModelProperty(value = "口门名称") @ApiModelProperty(value = "口门名称")
@TableField(exist = false) @TableField(exist = false)
private String mkmjName; private String mkmjName;
@ApiModelProperty(value = "摄像头数量")
@TableField(exist = false)
private Integer videoCount;
} }

View File

@ -23,13 +23,14 @@ public class VehicleBlackDO extends BaseDO {
//车牌号 //车牌号
@ApiModelProperty(value = "车牌号") @ApiModelProperty(value = "车牌号")
private String licenceNo; private String licenceNo;
private String licenceType;
private String licenceTypeName;
@ApiModelProperty(value = "车辆类型") @ApiModelProperty(value = "车辆类型")
@TableField(exist = false) // @TableField(exist = false)
private String vehicleType; private String vehicleType;
//车辆类型-名字 //车辆类型-名字
@ApiModelProperty(value = "车辆类型-名字") @ApiModelProperty(value = "车辆类型-名字")
@TableField(exist = false) // @TableField(exist = false)
private String vehicleTypeName; private String vehicleTypeName;
//车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆 //车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆
@ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆") @ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆")

View File

@ -24,11 +24,14 @@
g.create_name, g.create_name,
g.create_time, g.create_time,
m.mkmj_name AS mkmjName, m.mkmj_name AS mkmjName,
COUNT(DISTINCT v.id) video_count,
p.passage_name AS passageName p.passage_name AS passageName
FROM FROM
mkmj_gate g mkmj_gate g
LEFT JOIN mkmj m ON g.mkmj_id = m.id AND m.delete_enum = 'false' LEFT JOIN mkmj m ON g.mkmj_id = m.id AND m.delete_enum = 'false'
LEFT JOIN mkmj_passage p ON g.passage_id = p.id AND p.delete_enum = 'false' LEFT JOIN mkmj_passage p ON g.passage_id = p.id AND p.delete_enum = 'false'
LEFT JOIN video v ON m.id = v.foreign_id AND v.device_type = 2 AND v.delete_enum = 'false'
WHERE WHERE
g.delete_enum = 'false' g.delete_enum = 'false'
<if test="parmas.mkmjId != null and parmas.mkmjId != ''"> <if test="parmas.mkmjId != null and parmas.mkmjId != ''">

View File

@ -9,17 +9,20 @@
p.id, p.id,
p.passage_name, p.passage_name,
p.passage_type, p.passage_type,
p.passage_type_name,
p.passage_status, p.passage_status,
p.mkmj_id, p.mkmj_id,
p.longitude, p.longitude,
p.latitude, p.latitude,
p.remarks, p.remarks,
m.mkmj_name AS mkmjName, m.mkmj_name AS mkmjName,
COUNT(DISTINCT v.id) video_count,
COUNT(DISTINCT g.id) AS gate_count COUNT(DISTINCT g.id) AS gate_count
FROM FROM
mkmj_passage p mkmj_passage p
LEFT JOIN mkmj m ON p.mkmj_id = m.id AND m.delete_enum = 'false' LEFT JOIN mkmj m ON p.mkmj_id = m.id AND m.delete_enum = 'false'
LEFT JOIN mkmj_gate g ON p.id = g.passage_id AND g.delete_enum = 'false' LEFT JOIN mkmj_gate g ON p.id = g.passage_id AND g.delete_enum = 'false'
LEFT JOIN video v ON m.id = v.foreign_id AND v.device_type = 2 AND v.delete_enum = 'false'
WHERE WHERE
p.delete_enum = 'false' p.delete_enum = 'false'
<if test="parmas.eqMkmjId != null"> <if test="parmas.eqMkmjId != null">
@ -34,6 +37,7 @@
<if test="parmas.eqPassageStatus != null"> <if test="parmas.eqPassageStatus != null">
AND p.passage_status = #{parmas.eqPassageStatus} AND p.passage_status = #{parmas.eqPassageStatus}
</if> </if>
GROUP BY p.id GROUP BY p.id
ORDER BY p.create_time DESC ORDER BY p.create_time DESC
</select> </select>