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("股份,分公司-人员授权")
@PostMapping("/authorization")
public Response authorization(PersonAuthCmd cmd) {
public Response authorization(@RequestBody PersonAuthCmd cmd) {
personApplyService.authorization(cmd);
return Response.buildSuccess();
}

View File

@ -94,5 +94,11 @@ public class VehicleApplyController {
result.put("available", available);
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 {
private final VehicleBlackServiceI vehicleBlackService;
// @ApiOperation("新增")
// @PostMapping("/save")
// public SingleResponse<VehicleBlackCO> add(@Validated @RequestBody VehicleBlackAddCmd cmd) {
// SSOUser ssoUser = AuthContext.getCurrentUser();
// return vehicleBlackService.add(cmd);
// }
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<VehicleBlackCO> add(@Validated @RequestBody VehicleBlackAddCmd cmd) {
return vehicleBlackService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")

View File

@ -1,7 +1,9 @@
package com.zcloud.primeport.command;
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.XgfApplyPersonGateway;
import com.zcloud.primeport.domain.model.PersonApplyE;
import com.zcloud.primeport.domain.model.XgfApplyPersonE;
import com.zcloud.primeport.dto.PersonApplyUpdateCmd;
@ -24,6 +26,8 @@ import javax.validation.constraints.NotNull;
@AllArgsConstructor
public class PersonApplyUpdateExe {
private final PersonApplyGateway personApplyGateway;
private final XgfApplyPersonGateway xgfApplyPersonGateway;
private final MkmjGateGateway mkmjGateGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(PersonApplyUpdateCmd personApplyUpdateCmd) {
@ -43,11 +47,15 @@ public class PersonApplyUpdateExe {
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.setId(applyPersonId);
personApplyE.setMkmjPermission(mkmjPermission);
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.setAuditFlag(AuditEnum.WAITING.getCode());
// 股份、分公司个人车辆
if (cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.JGD_PRI_VEHICLES.getCode()) || cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.FGS_PRI_VEHICLES.getCode())) {
SSOUser user = AuthContext.getCurrentUser();
if (user != null) {
examTypeE.setVehicleCorpId(user.getTenantId());
examTypeE.setVehicleCorpName(user.getTenantName());
examTypeE.setVehicleDepartmentId(user.getOrgId());
examTypeE.setVehicleDepartmentName(user.getOrgName());
examTypeE.setEmployeeVehicleUserId(user.getUserId());
examTypeE.setEmployeeVehicleUserName(user.getName());
if (cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.JGD_PRI_VEHICLES.getCode())
|| cmd.getVehicleBelongType().equals(VehicleBelongTypeEnum.FGS_PRI_VEHICLES.getCode())) {
if (cmd.getEmployeeVehicleUserId() == null) {
SSOUser user = AuthContext.getCurrentUser();
if (user != null) {
examTypeE.setVehicleCorpId(user.getTenantId());
examTypeE.setVehicleCorpName(user.getTenantName());
examTypeE.setVehicleDepartmentId(user.getOrgId());
examTypeE.setVehicleDepartmentName(user.getOrgName());
examTypeE.setEmployeeVehicleUserId(user.getUserId());
examTypeE.setEmployeeVehicleUserName(user.getName());
}
}
}
vehicleApplyGateway.add(examTypeE);

View File

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

View File

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

View File

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

View File

@ -24,7 +24,14 @@ public class MkmjPageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
@ApiModelProperty(value = "前端标识",name = "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 = "前端标识")
private String menuPath;
}

View File

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

View File

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

View File

@ -21,17 +21,20 @@ import javax.validation.constraints.NotNull;
@NoArgsConstructor
@AllArgsConstructor
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)
@NotEmpty(message = "车牌号不能为空")
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)
@NotEmpty(message = "备注不能为空")
private String remarks;
}

View File

@ -26,6 +26,16 @@ public class VehicleViolationsAddCmd extends Command {
@ApiModelProperty(value = "车牌号", name = "licenceNo", required = true)
@NotEmpty(message = "车牌号不能为空")
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)
@NotEmpty(message = "违规类型不能为空")
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 = "口门名称")
private String mkmjName;
private String hgAuthArea;
private String hgAuthAreaName;
//口门级别 1-一级 2-二级
@ApiModelProperty(value = "口门级别 1-一级 2-二级")
private Integer mkmjLevel;

View File

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

View File

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

View File

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

View File

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

View File

@ -19,34 +19,10 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@Builder
public class VehicleBlackE extends BaseE {
//车牌号
private String licenceNo;
private String vehicleType;
//车辆类型-名字
private String vehicleTypeName;
//车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆
private String vehicleBelongType;
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;
private String licenceType;
private String licenceTypeName;
}

View File

@ -44,5 +44,12 @@ public class XgfApplyPersonGatewayImpl implements XgfApplyPersonGateway {
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 = "口门名称")
@TableField(exist = false)
private String mkmjName;
@ApiModelProperty(value = "摄像头数量")
@TableField(exist = false)
private Integer videoCount;
}

View File

@ -23,13 +23,14 @@ public class VehicleBlackDO extends BaseDO {
//车牌号
@ApiModelProperty(value = "车牌号")
private String licenceNo;
private String licenceType;
private String licenceTypeName;
@ApiModelProperty(value = "车辆类型")
@TableField(exist = false)
// @TableField(exist = false)
private String vehicleType;
//车辆类型-名字
@ApiModelProperty(value = "车辆类型-名字")
@TableField(exist = false)
// @TableField(exist = false)
private String vehicleTypeName;
//车辆所属类型 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_time,
m.mkmj_name AS mkmjName,
COUNT(DISTINCT v.id) video_count,
p.passage_name AS passageName
FROM
mkmj_gate g
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 video v ON m.id = v.foreign_id AND v.device_type = 2 AND v.delete_enum = 'false'
WHERE
g.delete_enum = 'false'
<if test="parmas.mkmjId != null and parmas.mkmjId != ''">

View File

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