package org.springblade.modules.patrol.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.common.utils.NodeTreeUtil; import org.springblade.common.utils.SpringUtils; import org.springblade.core.tool.node.TreeNode; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.patrol.dto.PatrolGroupDTO; import org.springblade.modules.patrol.entity.PatrolGroup; import org.springblade.modules.patrol.entity.PatrolGroupItem; import org.springblade.modules.patrol.mapper.PatrolGroupMapper; import org.springblade.modules.patrol.service.IPatrolGroupItemService; import org.springblade.modules.patrol.service.IPatrolGroupService; import org.springblade.modules.patrol.vo.PatrolGroupItemVO; import org.springblade.modules.patrol.vo.PatrolGroupVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * @Description: 巡查指标组 */ @Service public class PatrolGroupServiceImpl extends ServiceImpl implements IPatrolGroupService { @Autowired private IPatrolGroupItemService patrolGroupItemService; @Override public IPage selectPatrolGroupPage(IPage page, PatrolGroupVO patrolGroup) { patrolGroup.setIsDeleted(0); List patrolGroupVOS = baseMapper.selectPatrolGroupPage(page, patrolGroup); return page.setRecords(patrolGroupVOS); } @Override public IPage selectPatrolConfig(IPage page, PatrolGroup patrolGroup) { return null; } @Override public List getPatrolGroupByProjectId(String projectId) { return baseMapper.getPatrolGroupByProjectId(projectId); } /** * 查询巡查项树数据 * * @return */ @Override public Object getPatrolGroupTree(String type, String childType) { // 查询父树目录 List patrolGroupTree = baseMapper.getPatrolGroupTree(type); // 查询孩子树目录 List patrolGroupItemTree = baseMapper.getPatrolGroupItemTree(childType); // 数据处理 return NodeTreeUtil.getNodeTree(patrolGroupTree, patrolGroupItemTree); } @Override public List getPatrolGroupByItemId(String itemIds) { return baseMapper.getPatrolGroupByItemId(itemIds); } @Override public List getAllPatrolGroupByTaskId(String taskId) { return baseMapper.getAllPatrolGroupByTaskId(taskId); } @Override public List getPatrolGroupDTO(String taskId) { return baseMapper.getPatrolGroupDTO(taskId); } @Override public List getPatrolGroupByTaskId(String taskId) { return baseMapper.getPatrolGroupByTaskId(taskId); } @Override public List getGroupDTORecord(String taskId) { return baseMapper.getGroupDTORecord(taskId); } @Override public boolean addTwo(PatrolGroupVO patrolGroup) { boolean orUpdate = saveOrUpdate(patrolGroup); if (orUpdate) { List patrolGroupItemList = patrolGroup.getPatrolGroupItemList(); for (PatrolGroupItemVO patrolGroupItemVO : patrolGroupItemList) { patrolGroupItemVO.setGroupId(patrolGroup.getId()); } List patrolGroupItems = BeanUtil.copy(patrolGroupItemList, PatrolGroupItem.class); patrolGroupItemService.saveOrUpdateBatch(patrolGroupItems); } return false; } @Override public boolean removePatrolGroupByIds(List asList) { if (asList == null || asList.isEmpty()) { return false; } // 将IPatrolGroupItemService实例化提到循环外部以避免重复实例化 IPatrolGroupItemService bean = SpringUtils.getBean(IPatrolGroupItemService.class); boolean allSuccess = true; // 记录是否有任何操作失败 for (String id : asList) { try { PatrolGroup patrolGroup = baseMapper.selectById(id); if (patrolGroup != null) { patrolGroup.setIsDeleted(1); int update = baseMapper.updateById(patrolGroup); if (update > 0) { allSuccess = bean.update(Wrappers.lambdaUpdate() .set(PatrolGroupItem::getIsDeleted, 1) .eq(PatrolGroupItem::getGroupId, id)); } } } catch (Exception e) { // 记录或处理异常,例如日志记录 // log.error("Failed to remove patrol group by id: " + id, e); allSuccess = false; } } return allSuccess; } }