package com.gkhy.safePlatform.equipment.service.impl; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import com.gkhy.safePlatform.commons.utils.PageUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.equipment.entity.EquipmentTypeMng; import com.gkhy.safePlatform.equipment.excepiton.EquipmentException; import com.gkhy.safePlatform.equipment.model.dto.req.EquipmentTypeMngQueryCriteria; import com.gkhy.safePlatform.equipment.model.dto.resp.EquipmentTypeMngDto; import com.gkhy.safePlatform.equipment.repository.EquipmentTypeMngRepository; import com.gkhy.safePlatform.equipment.service.EquipmentTypeMngService; import com.gkhy.safePlatform.equipment.service.baseService.EquipmentTypeMngBaseService; import com.gkhy.safePlatform.equipment.utils.QueryHelpPlus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 设备设施类型管理(EquipmentTypeMng)表服务实现类 * * @author xurui * @since 2022-07-19 08:35:02 */ @Service("equipmentTypeMngService") public class EquipmentTypeMngServiceImpl implements EquipmentTypeMngService { @Autowired private EquipmentTypeMngBaseService equipmentTypeMngBaseService; @Override public ResultVO queryAll(PageQuery pageQuery) { PageUtils.checkCheck(pageQuery); Long pageIndex = pageQuery.getPageIndex(); Long pageSize = pageQuery.getPageSize(); Page page = new Page<>(pageIndex, pageSize); page.addOrder(OrderItem.asc("sort_num")); page = equipmentTypeMngBaseService.selectPage(page, QueryHelpPlus.getPredicate(EquipmentTypeMng.class, pageQuery.getSearchParams())); List respList = BeanCopyUtils.copyBeanList(page.getRecords(), EquipmentTypeMngDto.class); return new SearchResultVO<>( true, pageIndex, pageSize,page.getPages(), page.getTotal(), respList, ResultCodes.OK ); } @Override public List queryAll(EquipmentTypeMngQueryCriteria criteria) { return equipmentTypeMngBaseService.queryAll(criteria); } @Override public List treeData(Long parentId) { EquipmentTypeMngQueryCriteria criteria = new EquipmentTypeMngQueryCriteria(); criteria.setParentId(parentId); List list = queryAll(criteria); List rsList = list.stream().map(f->{ EquipmentTypeMngDto response = new EquipmentTypeMngDto(f); return response; }).collect(Collectors.toList()); for(EquipmentTypeMngDto info: rsList){ List children = treeData(info.getId()); if(!children.isEmpty()){ info.setChildList(children); } } return rsList; } @Override public void delete(Long[] ids) { if(ids == null){ throw new EquipmentException(ResultCodes.CLIENT_PARAM_ILLEGAL); } List idList = Arrays.asList(ids); List delList = new ArrayList<>(); idList.forEach(f->{ EquipmentTypeMng info = new EquipmentTypeMng(); info.setDelFlag(1); info.setId(f); delList.add(info); }); equipmentTypeMngBaseService.updateBatchById(delList); } }