From d4c27793361eb91fcb1e3d9cdac6cbfbd5ee3bc1 Mon Sep 17 00:00:00 2001 From: dearLin <1261008090@qq.com> Date: Tue, 26 May 2026 18:03:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AE=A1=E6=89=B9=E4=BA=BA=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=A0=A1=E9=AA=8C=E3=80=81=E6=9F=A5=E8=AF=A2=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E8=A1=A5=E5=85=A8=E5=8F=8A=E8=BD=A6=E8=BE=86=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 GET /checkExistByUserId/{userId} 审批人重复检查接口 - 新增 save 时审批人重复校验,存在则抛 BizException - personnelVehicleManagementList 查询支持 name/projectName 过滤 - vehicleApply/list 支持 gateLevelAuthAreaId 港区 JSON 筛选 - personnelVehicleManagementList 车辆数统计去掉 audit_flag=2 限制 Co-Authored-By: Claude Opus 4.7 --- .../web/MkmjApprovalUserController.java | 7 +++++++ .../command/MkmjApprovalUserAddExe.java | 12 +++++++++++- .../command/query/MkmjApprovalUserQueryExe.java | 7 +++++++ .../service/MkmjApprovalUserServiceImpl.java | 13 +++++++++++++ .../primeport/api/MkmjApprovalUserServiceI.java | 3 +++ .../dto/clientobject/AvailableResultCO.java | 13 +++++++++++++ .../domain/gateway/MkmjApprovalUserGateway.java | 2 ++ .../gatewayimpl/MkmjApprovalUserGatewayImpl.java | 16 +++++++++++++++- .../src/main/resources/mapper/PersonApplyDO.xml | 12 ++++++++++++ .../src/main/resources/mapper/VehicleApplyDO.xml | 3 +++ .../main/resources/mapper/XgfApplyPersonDO.xml | 1 - 11 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 web-client/src/main/java/com/zcloud/primeport/dto/clientobject/AvailableResultCO.java diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjApprovalUserController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjApprovalUserController.java index afcd86c..221d551 100644 --- a/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjApprovalUserController.java +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjApprovalUserController.java @@ -11,6 +11,7 @@ import com.zcloud.primeport.api.MkmjApprovalUserServiceI; import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd; import com.zcloud.primeport.dto.MkmjApprovalUserPageQry; import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd; +import com.zcloud.primeport.dto.clientobject.AvailableResultCO; import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -64,6 +65,12 @@ public class MkmjApprovalUserController { mkmjApprovalUserService.remove(id); return SingleResponse.buildSuccess(); } + @ApiOperation("校验审批人是否已录入") + @GetMapping("/checkExistByUserId/{userId}") + public SingleResponse checkExistByUserId(@PathVariable("userId") Long userId) { + return mkmjApprovalUserService.checkExistByUserId(userId); + } + @ApiOperation("修改") @PutMapping("/edit") public SingleResponse edit(@Validated @RequestBody MkmjApprovalUserUpdateCmd mkmjApprovalUserUpdateCmd) { diff --git a/web-app/src/main/java/com/zcloud/primeport/command/MkmjApprovalUserAddExe.java b/web-app/src/main/java/com/zcloud/primeport/command/MkmjApprovalUserAddExe.java index 8553b14..4f65b2a 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/MkmjApprovalUserAddExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/MkmjApprovalUserAddExe.java @@ -1,9 +1,12 @@ package com.zcloud.primeport.command; import com.alibaba.cola.exception.BizException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zcloud.primeport.domain.gateway.MkmjApprovalUserGateway; import com.zcloud.primeport.domain.model.MkmjApprovalUserE; import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd; +import com.zcloud.primeport.persistence.dataobject.MkmjApprovalUserDO; +import com.zcloud.primeport.persistence.repository.MkmjApprovalUserRepository; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; @@ -20,9 +23,17 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class MkmjApprovalUserAddExe { private final MkmjApprovalUserGateway mkmjApprovalUserGateway; + private final MkmjApprovalUserRepository mkmjApprovalUserRepository; @Transactional(rollbackFor = Exception.class) public boolean execute(MkmjApprovalUserAddCmd cmd) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("user_id", cmd.getUserId()); + wrapper.eq("delete_enum", "FALSE"); + MkmjApprovalUserDO exist = mkmjApprovalUserRepository.getOne(wrapper); + if (exist != null) { + throw new BizException("该审批人已录入,不可重复添加"); + } MkmjApprovalUserE examTypeE = new MkmjApprovalUserE(); BeanUtils.copyProperties(cmd, examTypeE); boolean res = false; @@ -37,4 +48,3 @@ public class MkmjApprovalUserAddExe { return true; } } - diff --git a/web-app/src/main/java/com/zcloud/primeport/command/query/MkmjApprovalUserQueryExe.java b/web-app/src/main/java/com/zcloud/primeport/command/query/MkmjApprovalUserQueryExe.java index db931d7..6ecc265 100644 --- a/web-app/src/main/java/com/zcloud/primeport/command/query/MkmjApprovalUserQueryExe.java +++ b/web-app/src/main/java/com/zcloud/primeport/command/query/MkmjApprovalUserQueryExe.java @@ -73,6 +73,13 @@ public class MkmjApprovalUserQueryExe { return mkmjApprovalUserCoConvertor.converDOToCO(byId); } + public MkmjApprovalUserDO getByUserId(Long userId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("user_id", userId); + wrapper.eq("delete_enum", "FALSE"); + return mkmjApprovalUserRepository.getOne(wrapper); + } + public static void main(String[] args) { for (int i = 0; i < 30; i++) { diff --git a/web-app/src/main/java/com/zcloud/primeport/service/MkmjApprovalUserServiceImpl.java b/web-app/src/main/java/com/zcloud/primeport/service/MkmjApprovalUserServiceImpl.java index 8db020c..457a3cd 100644 --- a/web-app/src/main/java/com/zcloud/primeport/service/MkmjApprovalUserServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/primeport/service/MkmjApprovalUserServiceImpl.java @@ -10,6 +10,7 @@ import com.zcloud.primeport.command.query.MkmjApprovalUserQueryExe; import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd; import com.zcloud.primeport.dto.MkmjApprovalUserPageQry; import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd; +import com.zcloud.primeport.dto.clientobject.AvailableResultCO; import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -69,5 +70,17 @@ public class MkmjApprovalUserServiceImpl implements MkmjApprovalUserServiceI { public MkmjApprovalUserCO getInfoById(Long id) { return mkmjApprovalUserQueryExe.getInfoById(id); } + + @Override + public SingleResponse checkExistByUserId(Long userId) { + AvailableResultCO result = new AvailableResultCO(); + if (mkmjApprovalUserQueryExe.getByUserId(userId) != null) { + result.setAvailable(false); + result.setAvailableMessage("该审批人已录入,不可重复添加"); + } else { + result.setAvailable(true); + } + return SingleResponse.of(result); + } } diff --git a/web-client/src/main/java/com/zcloud/primeport/api/MkmjApprovalUserServiceI.java b/web-client/src/main/java/com/zcloud/primeport/api/MkmjApprovalUserServiceI.java index a907367..0ebf1ea 100644 --- a/web-client/src/main/java/com/zcloud/primeport/api/MkmjApprovalUserServiceI.java +++ b/web-client/src/main/java/com/zcloud/primeport/api/MkmjApprovalUserServiceI.java @@ -7,6 +7,7 @@ import com.zcloud.primeport.dto.MkmjApprovalUserPageQry; import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd; import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO; +import com.zcloud.primeport.dto.clientobject.AvailableResultCO; import java.util.Collection; import java.util.List; @@ -30,5 +31,7 @@ public interface MkmjApprovalUserServiceI { List listAll(MkmjApprovalUserPageQry qry); MkmjApprovalUserCO getInfoById(Long id); + + SingleResponse checkExistByUserId(Long userId); } diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/AvailableResultCO.java b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/AvailableResultCO.java new file mode 100644 index 0000000..e6654fb --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/AvailableResultCO.java @@ -0,0 +1,13 @@ +package com.zcloud.primeport.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class AvailableResultCO extends ClientObject { + @ApiModelProperty(value = "是否可用(true可用/false不可用)") + private Boolean available; + @ApiModelProperty(value = "不可用原因") + private String availableMessage; +} diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/MkmjApprovalUserGateway.java b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/MkmjApprovalUserGateway.java index b49b2d1..4e27720 100644 --- a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/MkmjApprovalUserGateway.java +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/MkmjApprovalUserGateway.java @@ -26,5 +26,7 @@ public interface MkmjApprovalUserGateway { Boolean deletedMkmjApprovalUserById(Long id); Boolean deletedMkmjApprovalUserByIds(Long[] id); + + MkmjApprovalUserE getByUserId(Long userId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/MkmjApprovalUserGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/MkmjApprovalUserGatewayImpl.java index cb4b0ea..7015f48 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/MkmjApprovalUserGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/MkmjApprovalUserGatewayImpl.java @@ -1,5 +1,6 @@ package com.zcloud.primeport.gatewayimpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zcloud.primeport.domain.gateway.MkmjApprovalUserGateway; import com.zcloud.primeport.domain.model.MkmjApprovalUserE; import com.zcloud.primeport.persistence.dataobject.MkmjApprovalUserDO; @@ -46,5 +47,18 @@ public class MkmjApprovalUserGatewayImpl implements MkmjApprovalUserGateway { public Boolean deletedMkmjApprovalUserByIds(Long[] ids) { return mkmjApprovalUserRepository.removeByIds(Collections.singletonList(ids)); } -} + @Override + public MkmjApprovalUserE getByUserId(Long userId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MkmjApprovalUserDO::getUserId, userId); + wrapper.eq(MkmjApprovalUserDO::getDeleteEnum, "FALSE"); + MkmjApprovalUserDO d = mkmjApprovalUserRepository.getOne(wrapper); + if (d == null) { + return null; + } + MkmjApprovalUserE e = new MkmjApprovalUserE(); + BeanUtils.copyProperties(d, e); + return e; + } +} diff --git a/web-infrastructure/src/main/resources/mapper/PersonApplyDO.xml b/web-infrastructure/src/main/resources/mapper/PersonApplyDO.xml index 950488b..7ac168b 100644 --- a/web-infrastructure/src/main/resources/mapper/PersonApplyDO.xml +++ b/web-infrastructure/src/main/resources/mapper/PersonApplyDO.xml @@ -63,6 +63,18 @@ WHERE c.delete_enum = 'FALSE' and c.type = 3 + + AND c.corp_name LIKE CONCAT('%', #{params.name}, '%') + + + AND c.id IN ( + SELECT apply_corp_id FROM xgf_apply_person + WHERE project_name LIKE CONCAT('%', #{params.projectName}, '%') AND delete_enum = 'FALSE' AND person_belong_type = 3 + UNION + SELECT vehicle_corp_id FROM vehicle_apply + WHERE project_name LIKE CONCAT('%', #{params.projectName}, '%') AND delete_enum = 'FALSE' AND vehicle_belong_type = 5 AND vehicle_corp_id IS NOT NULL + ) + GROUP BY c.id diff --git a/web-infrastructure/src/main/resources/mapper/VehicleApplyDO.xml b/web-infrastructure/src/main/resources/mapper/VehicleApplyDO.xml index 7f563c9..e8578e0 100644 --- a/web-infrastructure/src/main/resources/mapper/VehicleApplyDO.xml +++ b/web-infrastructure/src/main/resources/mapper/VehicleApplyDO.xml @@ -76,6 +76,9 @@ AND f.employee_vehicle_user_id = #{params.employeeVehicleUserId} + + AND JSON_CONTAINS(f.gate_level_auth_area, JSON_OBJECT('bianma', #{params.gateLevelAuthAreaId}), '$.area') + order by f.id desc