bug修复
This commit is contained in:
parent
9f2ea46f03
commit
a57a1d58c9
@ -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);
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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);
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user