bug修复

This commit is contained in:
guo 2024-04-11 09:43:25 +08:00
parent 9f2ea46f03
commit a57a1d58c9
3 changed files with 40 additions and 4 deletions

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.xz.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 星纵-项目组织机构
@ -14,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface XzProjectOrgMapper extends BaseMapper<XzProjectOrg> {
void deleteChildren(String id);
void updateAncestors(@Param("oldAncestor") String oldAncestor, @Param("newAncestor") String newAncestor, @Param("projectSn") String projectSn);
}

View File

@ -6,4 +6,10 @@
from xz_project_org
where find_in_set(#{id}, ancestors)
</delete>
<update id="updateAncestors">
UPDATE xz_project_org
SET ancestors=REPLACE(ancestors, #{oldAncestor}, #{newAncestor})
WHERE ancestors LIKE N'${oldAncestor}%' and project_sn = #{projectSn}
</update>
</mapper>

View File

@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.stuff.entity.StuffType;
import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg;
import com.zhgd.xmgl.modules.xz.mapper.XzProjectOrgMapper;
import com.zhgd.xmgl.modules.xz.service.IXzProjectOrgService;
@ -20,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Struct;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
@ -86,15 +84,44 @@ public class XzProjectOrgServiceImpl extends ServiceImpl<XzProjectOrgMapper, XzP
@Override
public void edit(XzProjectOrg xzProjectOrg) {
XzProjectOrg oldPo = baseMapper.selectById(xzProjectOrg.getId());
if (oldPo == null) {
throw new OpenAlertException("部门不存在");
}
List<XzProjectOrg> cOrgs = xzProjectOrgMapper.selectList(new LambdaQueryWrapper<XzProjectOrg>()
.eq(XzProjectOrg::getParentId, xzProjectOrg.getId())
.eq(XzProjectOrg::getProjectSn, xzProjectOrg.getProjectSn())
.eq(XzProjectOrg::getStatus, 0)
);
if (CollUtil.isNotEmpty(cOrgs)) {
throw new OpenAlertException("该部门有下级部门未停用,不能停用");
}
xzProjectOrg.setAncestors(null);
baseMapper.updateById(xzProjectOrg);
if (!Objects.equals(oldPo.getParentId(), xzProjectOrg.getParentId())) {
XzProjectOrg pOrg = xzProjectOrgMapper.selectById(xzProjectOrg.getParentId());
if (Objects.equals(xzProjectOrg.getStatus(), 0)) {
if (pOrg != null) {
if (Objects.equals(pOrg.getStatus(), 1)) {
throw new OpenAlertException("该上级部门状态为停用,无法修改");
}
}
}
// 修改子部门
boolean top = xzProjectOrg.getParentId() == null || xzProjectOrg.getParentId() == 0;
if (top) {
xzProjectOrg.setParentId(0L);
xzProjectOrg.setAncestors("0");
} else {
if (pOrg != null) {
xzProjectOrg.setAncestors(pOrg.getAncestors() + "," + pOrg.getId());
} else {
xzProjectOrg.setAncestors("0");
}
}
baseMapper.updateById(xzProjectOrg);
baseMapper.updateAncestors(oldPo.getAncestors(), xzProjectOrg.getAncestors(), xzProjectOrg.getProjectSn());
}
}
@Override