From ad6a05f2535c1f29a764f352d8ca666cae1b97d1 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期六, 22 二月 2025 17:06:28 +0800
Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/project_management-java
---
business/src/main/resources/mapper/ProjectInfoMapper.xml | 13 +++++++++++++
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java | 40 ++++++++++++++++++++++++++++++++++++++--
start/src/main/resources/application.yml | 1 +
business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java | 4 ++++
4 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java b/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java
index f3b4467..8667a1f 100644
--- a/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java
+++ b/business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java
@@ -1,5 +1,6 @@
package com.ycl.mapper;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.common.annotation.DataScope;
@@ -34,6 +35,7 @@
* 鍒嗛〉
*/
@DataScope(deptAlias = "d")
+ @InterceptorIgnore(tenantLine = "true")
IPage getPage(@Param("query") ProjectInfoQuery query, IPage page);
@DataScope(deptAlias = "d")
@@ -42,4 +44,6 @@
List<ProjectVO> selectProjectDetailByIds(@Param("dataIdList") List<Long> dataIdList);
ProjectInfo queryById(Integer recordId);
+
+ List<ProjectInfo> checkProjectNameAndIdIsUnique(@Param("id")Long id,@Param("name") String name,@Param("code")String code);
}
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
index 4bdbcd7..47ece3d 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java
@@ -116,6 +116,9 @@
if (ProjectConstant.COMMIT.equals(entity.getUsedStatus()) && ProjectStatusEnum.PENDDING.getType().equals(entity.getProjectStatus())) {
entity.setUsedStatus(ProjectConstant.PASS);
}
+ if(!checkProjectNameAndIdIsUnique(entity,null)){
+ return Result.error("椤圭洰鍚嶆垨椤圭洰鐮佸凡瀛樺湪");
+ }
baseMapper.insert(entity);
addPlan(entity.getId()); //娣诲姞璁″垝琛�
//娣诲姞鏂囦欢
@@ -133,6 +136,33 @@
return Result.ok("娣诲姞鎴愬姛").data(entity.getId());
}
+ /**
+ * 鍒ゆ柇椤圭洰鍚嶅拰椤圭洰鐮佹槸鍚﹀敮涓�
+ * @param entity from true 鏉ヨ嚜add() false 鏉ヨ嚜edit()
+ * @return
+ */
+ public boolean checkProjectNameAndIdIsUnique(ProjectInfo entity,Long updateId){
+ QueryWrapper<ProjectInfo> queryWrapper = new QueryWrapper<ProjectInfo>();
+ if (updateId == null) {
+
+ queryWrapper.eq("project_name", entity.getProjectName());
+
+ if (StringUtils.isNotEmpty(entity.getProjectCode())) {
+ queryWrapper.or();
+ queryWrapper.eq("project_code", entity.getProjectCode());
+ }
+
+ List<ProjectInfo> project = projectInfoMapper.selectList(queryWrapper);
+
+ return project == null || project.isEmpty();
+ }else {
+
+ List<ProjectInfo> project = projectInfoMapper.checkProjectNameAndIdIsUnique(updateId,entity.getProjectName(),entity.getProjectCode());
+
+ return project == null || project.isEmpty();
+ }
+
+ }
public void addPlan(Long projectInfoId) {
Plan plan = new Plan();
@@ -154,6 +184,7 @@
@Override
public Result update(ProjectInfoForm form) {
ProjectInfo entity = baseMapper.selectById(form.getId());
+
// 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
ProjectInfoForm.getEntityByForm(form, entity);
@@ -162,6 +193,9 @@
//濡傛灉鏄偍澶囬」鐩�(鏈紑宸ラ」鐩�)涓嶉渶瑕佸鏍�
if (ProjectConstant.COMMIT.equals(entity.getUsedStatus()) && ProjectStatusEnum.PENDDING.getType().equals(entity.getProjectStatus())) {
entity.setUsedStatus(ProjectConstant.PASS);
+ }
+ if(!checkProjectNameAndIdIsUnique(entity,form.getId())){
+ return Result.error("椤圭洰鍚嶆垨椤圭洰鐮佸凡瀛樺湪");
}
//鏇存柊椤圭洰淇℃伅
baseMapper.updateById(entity);
@@ -775,12 +809,14 @@
@Transactional(rollbackFor = Exception.class)
public Result editProject(ProjectForm form) {
if (ObjectUtil.isNotNull(form.getProjectInfoForm())) {
+
if (ObjectUtil.isNull(form.getProjectInfoForm().getId())) {
//鏂板
- ((ProjectInfoServiceImpl) AopContext.currentProxy()).add(form.getProjectInfoForm());
+ return ((ProjectInfoServiceImpl) AopContext.currentProxy()).add(form.getProjectInfoForm());
+
} else {
//鏇存柊
- ((ProjectInfoServiceImpl) AopContext.currentProxy()).update(form.getProjectInfoForm());
+ return ((ProjectInfoServiceImpl) AopContext.currentProxy()).update(form.getProjectInfoForm());
}
}
if (ObjectUtil.isNotNull(form.getProjectInvestmentInfoForm())) {
diff --git a/business/src/main/resources/mapper/ProjectInfoMapper.xml b/business/src/main/resources/mapper/ProjectInfoMapper.xml
index 2ab2752..f81ae05 100644
--- a/business/src/main/resources/mapper/ProjectInfoMapper.xml
+++ b/business/src/main/resources/mapper/ProjectInfoMapper.xml
@@ -232,4 +232,17 @@
<select id="queryById" resultType="com.ycl.domain.entity.ProjectInfo">
select * from t_project_info where id = #{id} and deleted = 0
</select>
+
+ <resultMap id="pInfo" type="com.ycl.domain.entity.ProjectInfo">
+ <id column="id" property="id"/>
+ </resultMap>
+ <select id="checkProjectNameAndIdIsUnique" resultMap="pInfo">
+ select p.id from t_project_info p where p.project_name =#{name}
+ <if test="code !=null and code !=''">
+ or p.project_code =#{code}
+ </if>
+ having p.id != #{id}
+
+ </select>
+
</mapper>
diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml
index 3be20ad..5e1ce3d 100644
--- a/start/src/main/resources/application.yml
+++ b/start/src/main/resources/application.yml
@@ -5,6 +5,7 @@
# 瀹炰綋鎵弿锛屽涓猵ackage鐢ㄩ�楀彿鎴栬�呭垎鍙峰垎闅�
typeAliasesPackage: com.ycl.**.domain
configuration:
+ shrink-whitespaces-in-sql: true #浠嶴QL涓垹闄ゅ浣欑殑绌烘牸瀛楃
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler # 閫氱敤鏋氫妇澶勭悊鍣�
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 鏃ュ織鎵撳嵃
global-config:
--
Gitblit v1.8.0