Commit 44cfd6c4 authored by 施翔轲's avatar 施翔轲

【优化】项目编码关联项目名称相关修改

parent 906a74a6
package com.dsk.cscec.controller;
import cn.dev33.satoken.annotation.SaCheckRole;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.dsk.common.constant.TenantConstants;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.*;
import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo;
import com.dsk.cscec.domain.vo.CbProjectHeadInfoVo;
......@@ -45,12 +50,16 @@ public class CbProjectRecordController extends BaseController {
* 校验项目编码是否存在
*/
@GetMapping("/checkProjectCodeExist")
public R<Boolean> checkProjectCodeExist(@Validated CbCheckProjectCodeExistBo checkBo) {
if (dProjectService.checkProjectCodeExist(checkBo)) {
return R.ok(true);
} else {
return R.fail("IPM项目编码无效", false);
public R<String> checkProjectCodeExist(@Validated CbCheckProjectCodeExistBo checkBo) {
return R.ok(dProjectService.checkProjectCodeExist(checkBo));
}
/**
* 根据项目名称模糊查询项目列表
*/
@GetMapping("/queryProjectNameList/projectName")
public R<List<DProject>> queryProjectNameList(@RequestParam @NotBlank(message = "项目名称不能为空") String projectName) {
return R.ok(dProjectService.queryProjectNameList(projectName));
}
/**
......@@ -66,6 +75,7 @@ public class CbProjectRecordController extends BaseController {
* 新增项目
*/
@PostMapping("/addProject")
//@SaCheckRole(value = {TenantConstants.SUPER_ADMIN_ROLE_KEY, TenantConstants.DSK_TENANT_ADMIN_ROLE_KEY, TenantConstants.TENANT_SUPER_ADMIN_ROLE_KEY}, mode = SaMode.OR)
public R<CbProjectRecord> addProject(@Validated @RequestBody AddCbProjectBo addCbProjectBo) {
CbProjectRecord projectRecord = baseService.addProject(addCbProjectBo);
Assert.notNull(projectRecord, "新增项目失败,请联系管理员");
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.*;
import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo;
import com.dsk.cscec.domain.vo.CbProjectHeadInfoVo;
......
......@@ -61,7 +61,7 @@ public interface IDProjectService extends IService<DProject> {
* @param checkBo 待校验信息
* @return 校验结果
*/
Boolean checkProjectCodeExist(CbCheckProjectCodeExistBo checkBo);
String checkProjectCodeExist(CbCheckProjectCodeExistBo checkBo);
/**
* 获取工程项目信息
......@@ -70,5 +70,13 @@ public interface IDProjectService extends IService<DProject> {
* @return 工程项目信息
*/
CbProjectInfoVo getCbProjectInfo(Long projectId);
/**
* 根据项目名称模糊查询项目列表
*
* @param projectName 项目名称
* @return 项目列表
*/
List<DProject> queryProjectNameList(String projectName);
}
......@@ -17,6 +17,7 @@ import com.dsk.component.DataAnalysisComponent;
import com.dsk.cscec.constant.CbProjectConstants;
import com.dsk.cscec.domain.CbProjectFile;
import com.dsk.cscec.domain.CbProjectRecord;
import com.dsk.cscec.domain.DProject;
import com.dsk.cscec.domain.bo.*;
import com.dsk.cscec.domain.vo.CbProjectCbStageNotDraftVo;
import com.dsk.cscec.domain.vo.CbProjectHeadInfoVo;
......@@ -31,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
......
......@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.StringUtils;
import com.dsk.cscec.constant.AdvisoryBodyManageQueryConstants;
import com.dsk.cscec.domain.AdvisoryBody;
......@@ -35,6 +36,7 @@ import com.dsk.jsk.domain.EnterpriseInfoHeaderBody;
import com.dsk.system.utils.DskOpenApiUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.poi.ss.formula.functions.DProduct;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -261,16 +263,13 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
* @return 校验结果
*/
@Override
public Boolean checkProjectCodeExist(CbCheckProjectCodeExistBo checkBo) {
public String checkProjectCodeExist(CbCheckProjectCodeExistBo checkBo) {
Long projectId = checkBo.getProjectId();
String projectCode = checkBo.getProjectCode();
//新增全新项目时,直接校验IPM编码是否重复和是否存在
if (ObjectUtil.isNull(projectId)) {
Assert.isFalse(projectRecordMapper.exists(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getIpmProjectNo, projectCode)), "项目台账列表中已存在相同IPM编码的项目");
return baseMapper.exists(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectCode, projectCode));
return this.treatProjectCodeExist(projectCode);
} else {
CbProjectRecord projectRecord = projectRecordMapper.selectById(projectId);
////未做任何改动时
......@@ -278,14 +277,22 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
//修改项目信息or新增新阶段项目时
if (projectCode.equals(projectRecord.getIpmProjectNo())
&& projectRecord.getIsGetProjectDetail()) {
return true;
return projectRecord.getProjectName();
} else {
return this.treatProjectCodeExist(projectCode);
}
}
}
private String treatProjectCodeExist(String projectCode) {
Assert.isFalse(projectRecordMapper.exists(new LambdaQueryWrapper<CbProjectRecord>()
.eq(CbProjectRecord::getIpmProjectNo, projectCode)), "项目台账列表中已存在相同IPM编码的项目");
return baseMapper.exists(new LambdaQueryWrapper<DProject>()
DProject dProject = baseMapper.selectOne(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectCode, projectCode));
if (ObjectUtil.isNotNull(dProject)) {
return dProject.getProjectName();
}
}
throw new ServiceException("IPM项目编码无效");
}
/**
......@@ -303,5 +310,18 @@ public class IDProjectServiceImpl extends ServiceImpl<DProjectMapper, DProject>
return BeanUtil.toBean(baseMapper.selectOne(new LambdaQueryWrapper<DProject>()
.eq(DProject::getProjectCode, projectRecord.getIpmProjectNo())), CbProjectInfoVo.class);
}
/**
* 根据项目名称模糊查询项目列表
*
* @param projectName 项目名称
* @return 项目列表
*/
@Override
public List<DProject> queryProjectNameList(String projectName) {
return baseMapper.selectList(new LambdaQueryWrapper<DProject>()
.select(DProject::getProjectName, DProject::getProjectCode)
.like(StringUtils.isNotBlank(projectName), DProject::getProjectName, projectName));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment