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.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<AvailableResultCO> checkExistByUserId(@PathVariable("userId") Long userId) {
|
||||
return mkmjApprovalUserService.checkExistByUserId(userId);
|
||||
}
|
||||
|
||||
@ApiOperation("修改")
|
||||
@PutMapping("/edit")
|
||||
public SingleResponse edit(@Validated @RequestBody MkmjApprovalUserUpdateCmd mkmjApprovalUserUpdateCmd) {
|
||||
|
|
|
|||
|
|
@ -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<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();
|
||||
BeanUtils.copyProperties(cmd, examTypeE);
|
||||
boolean res = false;
|
||||
|
|
@ -37,4 +48,3 @@ public class MkmjApprovalUserAddExe {
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,13 @@ public class MkmjApprovalUserQueryExe {
|
|||
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) {
|
||||
|
||||
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.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<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.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<MkmjApprovalUserCO> listAll(MkmjApprovalUserPageQry qry);
|
||||
|
||||
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 deletedMkmjApprovalUserByIds(Long[] id);
|
||||
|
||||
MkmjApprovalUserE getByUserId(Long userId);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<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
|
||||
c.delete_enum = 'FALSE'
|
||||
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
|
||||
c.id
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -76,6 +76,9 @@
|
|||
<if test="params.employeeVehicleUserId != null">
|
||||
AND f.employee_vehicle_user_id = #{params.employeeVehicleUserId}
|
||||
</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
|
||||
</select>
|
||||
<select id="fgsCount" resultType="com.zcloud.primeport.persistence.dataobject.FgsVehicleCountDto">
|
||||
|
|
|
|||
|
|
@ -150,7 +150,6 @@
|
|||
vehicle_apply va
|
||||
WHERE
|
||||
va.delete_enum = 'FALSE'
|
||||
AND va.audit_flag = 2
|
||||
AND va.employee_vehicle_user_id != ''
|
||||
AND va.employee_vehicle_user_id IS NOT NULL
|
||||
GROUP BY
|
||||
|
|
|
|||
Loading…
Reference in New Issue