package com.ard.inspection.service.impl;
|
|
import java.util.List;
|
|
import com.ard.common.annotation.DataScope;
|
import com.ard.common.constant.UserConstants;
|
import com.ard.common.core.domain.entity.SysUser;
|
import com.ard.common.exception.ServiceException;
|
import com.ard.common.utils.DateUtils;
|
import com.ard.common.utils.SecurityUtils;
|
import com.ard.common.utils.StringUtils;
|
import com.ard.common.utils.spring.SpringUtils;
|
import com.ard.inspection.domain.ArdInspectionGroup;
|
import com.ard.inspection.mapper.ArdInspectionGroupMapper;
|
import com.ard.inspection.service.IArdInspectionGroupService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* 精细化巡检分组Service业务层处理
|
*
|
* @author xia
|
* @date 2026-01-15
|
*/
|
@Service
|
public class ArdInspectionGroupServiceImpl implements IArdInspectionGroupService {
|
|
@Autowired
|
private ArdInspectionGroupMapper ardInspectionGroupMapper;
|
|
/**
|
* 查询精细化巡检分组
|
*
|
* @param groupId 精细化巡检分组主键
|
* @return 精细化巡检分组
|
*/
|
@Override
|
public ArdInspectionGroup selectArdInspectionGroupByGroupId(Long groupId) {
|
return ardInspectionGroupMapper.selectArdInspectionGroupByGroupId(groupId);
|
}
|
|
/**
|
* 查询精细化巡检分组列表
|
*
|
* @param ardInspectionGroup 精细化巡检分组
|
* @return 精细化巡检分组
|
*/
|
@Override
|
public List<ArdInspectionGroup> selectArdInspectionGroupList(ArdInspectionGroup ardInspectionGroup) {
|
return ardInspectionGroupMapper.selectArdInspectionGroupList(ardInspectionGroup);
|
}
|
|
/**
|
* 新增精细化巡检分组
|
*
|
* @param ardInspectionGroup 精细化巡检分组
|
* @return 结果
|
*/
|
@Override
|
public int insertArdInspectionGroup(ArdInspectionGroup ardInspectionGroup) {
|
ArdInspectionGroup inspectionGroup = ardInspectionGroupMapper.selectArdInspectionGroupByGroupId(ardInspectionGroup.getGroupParentId());
|
ardInspectionGroup.setAncestors(inspectionGroup.getAncestors() + "," + ardInspectionGroup.getGroupParentId());
|
ardInspectionGroup.setCreateTime(DateUtils.getNowDate());
|
return ardInspectionGroupMapper.insertArdInspectionGroup(ardInspectionGroup);
|
}
|
|
/**
|
* 修改精细化巡检分组
|
*
|
* @param ardInspectionGroup 精细化巡检分组
|
* @return 结果
|
*/
|
@Override
|
public int updateArdInspectionGroup(ArdInspectionGroup ardInspectionGroup) {
|
ArdInspectionGroup newGroup = ardInspectionGroupMapper.selectArdInspectionGroupByGroupId(ardInspectionGroup.getGroupParentId());
|
ArdInspectionGroup oldGroup = ardInspectionGroupMapper.selectArdInspectionGroupByGroupId(ardInspectionGroup.getGroupId());
|
if(StringUtils.isNotNull(newGroup) && StringUtils.isNotNull(oldGroup)){
|
String newAncestors = newGroup.getAncestors() + "," + newGroup.getGroupId();
|
String oldAncestors = oldGroup.getAncestors();
|
ardInspectionGroup.setAncestors(newAncestors);
|
updateInspectionGroupChildren(ardInspectionGroup.getGroupId(), newAncestors, oldAncestors);
|
}
|
ardInspectionGroup.setUpdateTime(DateUtils.getNowDate());
|
return ardInspectionGroupMapper.updateArdInspectionGroup(ardInspectionGroup);
|
}
|
|
/**
|
* 修改子元素关系
|
*
|
* @param groupId 被修改的分组ID
|
* @param newAncestors 新的父ID集合
|
* @param oldAncestors 旧的父ID集合
|
*/
|
public void updateInspectionGroupChildren(Long groupId, String newAncestors, String oldAncestors){
|
List<ArdInspectionGroup> children = ardInspectionGroupMapper.selectChildrenInspectionGroupById(groupId);
|
for (ArdInspectionGroup child : children) {
|
child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
|
}
|
if (!children.isEmpty()){
|
ardInspectionGroupMapper.updateInspectionGroupChildren(children);
|
}
|
}
|
|
/**
|
* 删除精细化巡检分组信息
|
*
|
* @param groupId 精细化巡检分组主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteArdInspectionGroupByGroupId(Long groupId) {
|
return ardInspectionGroupMapper.deleteArdInspectionGroupByGroupId(groupId);
|
}
|
|
/**
|
* 校验分组名称是否唯一
|
*
|
* @param ardInspectionGroup 精细化巡检分组
|
* @return 结果
|
*/
|
@Override
|
public boolean checkInspectionGroupNameUnique(ArdInspectionGroup ardInspectionGroup) {
|
Long groupId = StringUtils.isNull(ardInspectionGroup.getGroupId()) ? -1L : ardInspectionGroup.getGroupId();
|
ArdInspectionGroup info = ardInspectionGroupMapper.checkInspectionGroupNameUnique(ardInspectionGroup.getGroupName(),ardInspectionGroup.getGroupParentId());
|
if (StringUtils.isNotNull(info) && info.getGroupId().longValue() != groupId.longValue())
|
{
|
return UserConstants.NOT_UNIQUE;
|
}
|
return UserConstants.UNIQUE;
|
}
|
|
/**
|
* 校验分组是否有数据权限
|
*
|
* @param groupId 精细化巡检分组主键
|
*/
|
@Override
|
public void checkInspectionGroupDataScope(Long groupId) {
|
if (!SysUser.isAdmin(SecurityUtils.getUserId()) && StringUtils.isNotNull(groupId)){
|
ArdInspectionGroup group = new ArdInspectionGroup();
|
group.setGroupId(groupId);
|
List<ArdInspectionGroup> groups = SpringUtils.getAopProxy(this).selectArdInspectionGroupList(group);
|
if (StringUtils.isEmpty(groups)){
|
throw new ServiceException("没有权限访问分组数据!");
|
}
|
}
|
}
|
|
/**
|
* 是否存在分组子节点
|
*
|
* @param groupId 分组ID
|
* @return 结果
|
*/
|
@Override
|
public boolean hasChildByInspectionGroupId(Long groupId) {
|
int result = ardInspectionGroupMapper.hasChildByInspectionGroupId(groupId);
|
return result > 0;
|
}
|
|
/**
|
* 查询分组是否存在用户
|
*
|
* @param groupId 分组ID
|
* @return 结果 true 存在 false 不存在
|
*/
|
@Override
|
public boolean checkInspectionGroupExistUser(Long groupId) {
|
int result = ardInspectionGroupMapper.checkInspectionGroupExistUser(groupId);
|
return result > 0;
|
}
|
|
}
|