fix: 审批人重复校验、查询过滤补全及车辆统计修正
- 新增 GET /checkExistByUserId/{userId} 审批人重复检查接口
- 新增 save 时审批人重复校验,存在则抛 BizException
- personnelVehicleManagementList 查询支持 name/projectName 过滤
- vehicleApply/list 支持 gateLevelAuthAreaId 港区 JSON 筛选
- personnelVehicleManagementList 车辆数统计去掉 audit_flag=2 限制
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
koumen
parent
3304e16943
commit
d4c2779336
|
|
@ -11,6 +11,7 @@ import com.zcloud.primeport.api.MkmjApprovalUserServiceI;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd;
|
import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserPageQry;
|
import com.zcloud.primeport.dto.MkmjApprovalUserPageQry;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd;
|
import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd;
|
||||||
|
import com.zcloud.primeport.dto.clientobject.AvailableResultCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO;
|
import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -64,6 +65,12 @@ public class MkmjApprovalUserController {
|
||||||
mkmjApprovalUserService.remove(id);
|
mkmjApprovalUserService.remove(id);
|
||||||
return SingleResponse.buildSuccess();
|
return SingleResponse.buildSuccess();
|
||||||
}
|
}
|
||||||
|
@ApiOperation("校验审批人是否已录入")
|
||||||
|
@GetMapping("/checkExistByUserId/{userId}")
|
||||||
|
public SingleResponse<AvailableResultCO> checkExistByUserId(@PathVariable("userId") Long userId) {
|
||||||
|
return mkmjApprovalUserService.checkExistByUserId(userId);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("修改")
|
@ApiOperation("修改")
|
||||||
@PutMapping("/edit")
|
@PutMapping("/edit")
|
||||||
public SingleResponse edit(@Validated @RequestBody MkmjApprovalUserUpdateCmd mkmjApprovalUserUpdateCmd) {
|
public SingleResponse edit(@Validated @RequestBody MkmjApprovalUserUpdateCmd mkmjApprovalUserUpdateCmd) {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
package com.zcloud.primeport.command;
|
package com.zcloud.primeport.command;
|
||||||
|
|
||||||
import com.alibaba.cola.exception.BizException;
|
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.gateway.MkmjApprovalUserGateway;
|
||||||
import com.zcloud.primeport.domain.model.MkmjApprovalUserE;
|
import com.zcloud.primeport.domain.model.MkmjApprovalUserE;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd;
|
import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd;
|
||||||
|
import com.zcloud.primeport.persistence.dataobject.MkmjApprovalUserDO;
|
||||||
|
import com.zcloud.primeport.persistence.repository.MkmjApprovalUserRepository;
|
||||||
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;
|
||||||
|
|
@ -20,9 +23,17 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class MkmjApprovalUserAddExe {
|
public class MkmjApprovalUserAddExe {
|
||||||
private final MkmjApprovalUserGateway mkmjApprovalUserGateway;
|
private final MkmjApprovalUserGateway mkmjApprovalUserGateway;
|
||||||
|
private final MkmjApprovalUserRepository mkmjApprovalUserRepository;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean execute(MkmjApprovalUserAddCmd cmd) {
|
public boolean execute(MkmjApprovalUserAddCmd cmd) {
|
||||||
|
QueryWrapper<MkmjApprovalUserDO> 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();
|
MkmjApprovalUserE examTypeE = new MkmjApprovalUserE();
|
||||||
BeanUtils.copyProperties(cmd, examTypeE);
|
BeanUtils.copyProperties(cmd, examTypeE);
|
||||||
boolean res = false;
|
boolean res = false;
|
||||||
|
|
@ -37,4 +48,3 @@ public class MkmjApprovalUserAddExe {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,13 @@ public class MkmjApprovalUserQueryExe {
|
||||||
return mkmjApprovalUserCoConvertor.converDOToCO(byId);
|
return mkmjApprovalUserCoConvertor.converDOToCO(byId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MkmjApprovalUserDO getByUserId(Long userId) {
|
||||||
|
QueryWrapper<MkmjApprovalUserDO> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.eq("user_id", userId);
|
||||||
|
wrapper.eq("delete_enum", "FALSE");
|
||||||
|
return mkmjApprovalUserRepository.getOne(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
for (int i = 0; i < 30; i++) {
|
for (int i = 0; i < 30; i++) {
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.zcloud.primeport.command.query.MkmjApprovalUserQueryExe;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd;
|
import com.zcloud.primeport.dto.MkmjApprovalUserAddCmd;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserPageQry;
|
import com.zcloud.primeport.dto.MkmjApprovalUserPageQry;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd;
|
import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd;
|
||||||
|
import com.zcloud.primeport.dto.clientobject.AvailableResultCO;
|
||||||
import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO;
|
import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@ -69,5 +70,17 @@ public class MkmjApprovalUserServiceImpl implements MkmjApprovalUserServiceI {
|
||||||
public MkmjApprovalUserCO getInfoById(Long id) {
|
public MkmjApprovalUserCO getInfoById(Long id) {
|
||||||
return mkmjApprovalUserQueryExe.getInfoById(id);
|
return mkmjApprovalUserQueryExe.getInfoById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<AvailableResultCO> 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import com.zcloud.primeport.dto.MkmjApprovalUserPageQry;
|
||||||
import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd;
|
import com.zcloud.primeport.dto.MkmjApprovalUserUpdateCmd;
|
||||||
import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO;
|
import com.zcloud.primeport.dto.clientobject.MkmjApprovalUserCO;
|
||||||
|
|
||||||
|
import com.zcloud.primeport.dto.clientobject.AvailableResultCO;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -30,5 +31,7 @@ public interface MkmjApprovalUserServiceI {
|
||||||
List<MkmjApprovalUserCO> listAll(MkmjApprovalUserPageQry qry);
|
List<MkmjApprovalUserCO> listAll(MkmjApprovalUserPageQry qry);
|
||||||
|
|
||||||
MkmjApprovalUserCO getInfoById(Long id);
|
MkmjApprovalUserCO getInfoById(Long id);
|
||||||
|
|
||||||
|
SingleResponse<AvailableResultCO> checkExistByUserId(Long userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -26,5 +26,7 @@ public interface MkmjApprovalUserGateway {
|
||||||
Boolean deletedMkmjApprovalUserById(Long id);
|
Boolean deletedMkmjApprovalUserById(Long id);
|
||||||
|
|
||||||
Boolean deletedMkmjApprovalUserByIds(Long[] id);
|
Boolean deletedMkmjApprovalUserByIds(Long[] id);
|
||||||
|
|
||||||
|
MkmjApprovalUserE getByUserId(Long userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.zcloud.primeport.gatewayimpl;
|
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.gateway.MkmjApprovalUserGateway;
|
||||||
import com.zcloud.primeport.domain.model.MkmjApprovalUserE;
|
import com.zcloud.primeport.domain.model.MkmjApprovalUserE;
|
||||||
import com.zcloud.primeport.persistence.dataobject.MkmjApprovalUserDO;
|
import com.zcloud.primeport.persistence.dataobject.MkmjApprovalUserDO;
|
||||||
|
|
@ -46,5 +47,18 @@ public class MkmjApprovalUserGatewayImpl implements MkmjApprovalUserGateway {
|
||||||
public Boolean deletedMkmjApprovalUserByIds(Long[] ids) {
|
public Boolean deletedMkmjApprovalUserByIds(Long[] ids) {
|
||||||
return mkmjApprovalUserRepository.removeByIds(Collections.singletonList(ids));
|
return mkmjApprovalUserRepository.removeByIds(Collections.singletonList(ids));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MkmjApprovalUserE getByUserId(Long userId) {
|
||||||
|
LambdaQueryWrapper<MkmjApprovalUserDO> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,18 @@
|
||||||
WHERE
|
WHERE
|
||||||
c.delete_enum = 'FALSE'
|
c.delete_enum = 'FALSE'
|
||||||
and c.type = 3
|
and c.type = 3
|
||||||
|
<if test="params.name != null and params.name != ''">
|
||||||
|
AND c.corp_name LIKE CONCAT('%', #{params.name}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="params.projectName != null and params.projectName != ''">
|
||||||
|
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
|
||||||
|
)
|
||||||
|
</if>
|
||||||
GROUP BY
|
GROUP BY
|
||||||
c.id
|
c.id
|
||||||
</select>
|
</select>
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,9 @@
|
||||||
<if test="params.employeeVehicleUserId != null">
|
<if test="params.employeeVehicleUserId != null">
|
||||||
AND f.employee_vehicle_user_id = #{params.employeeVehicleUserId}
|
AND f.employee_vehicle_user_id = #{params.employeeVehicleUserId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="params.gateLevelAuthAreaId != null and params.gateLevelAuthAreaId != ''">
|
||||||
|
AND JSON_CONTAINS(f.gate_level_auth_area, JSON_OBJECT('bianma', #{params.gateLevelAuthAreaId}), '$.area')
|
||||||
|
</if>
|
||||||
order by f.id desc
|
order by f.id desc
|
||||||
</select>
|
</select>
|
||||||
<select id="fgsCount" resultType="com.zcloud.primeport.persistence.dataobject.FgsVehicleCountDto">
|
<select id="fgsCount" resultType="com.zcloud.primeport.persistence.dataobject.FgsVehicleCountDto">
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,6 @@
|
||||||
vehicle_apply va
|
vehicle_apply va
|
||||||
WHERE
|
WHERE
|
||||||
va.delete_enum = 'FALSE'
|
va.delete_enum = 'FALSE'
|
||||||
AND va.audit_flag = 2
|
|
||||||
AND va.employee_vehicle_user_id != ''
|
AND va.employee_vehicle_user_id != ''
|
||||||
AND va.employee_vehicle_user_id IS NOT NULL
|
AND va.employee_vehicle_user_id IS NOT NULL
|
||||||
GROUP BY
|
GROUP BY
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue