zhanghua
2025-02-22 ad6a05f2535c1f29a764f352d8ca666cae1b97d1
Merge branch 'master' of http://42.193.1.25:9521/r/project_management-java
4个文件已修改
58 ■■■■■ 已修改文件
business/src/main/java/com/ycl/mapper/ProjectInfoMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/ProjectInfoServiceImpl.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/ProjectInfoMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
}
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());
        // 为空抛IllegalArgumentException,做全局异常处理
        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())) {
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>
start/src/main/resources/application.yml
@@ -5,6 +5,7 @@
  # 实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.ycl.**.domain
  configuration:
    shrink-whitespaces-in-sql: true #从SQL中删除多余的空格字符
    default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler # 通用枚举处理器
  #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 日志打印
  global-config: