diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java index 6909e0d9..236e6578 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java @@ -4,7 +4,6 @@ package com.nflg.mobilebroken.admin.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import com.nflg.mobilebroken.admin.annotation.ApiMark; @@ -17,17 +16,18 @@ import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.dto.DevComponentExcel; import com.nflg.mobilebroken.common.pojo.dto.DevComponentImportExcel; import com.nflg.mobilebroken.common.pojo.query.DeviceComponentQuery; -import com.nflg.mobilebroken.common.pojo.vo.DeviceComponentDetailVO; -import com.nflg.mobilebroken.common.pojo.vo.DeviceComponentPartGroupVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceComponentVO; +import com.nflg.mobilebroken.common.pojo.vo.DeviceTypeVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.EecExcelUtil; import com.nflg.mobilebroken.common.util.VUtils; +import com.nflg.mobilebroken.repository.entity.Device; import com.nflg.mobilebroken.repository.entity.DeviceComponent; import com.nflg.mobilebroken.repository.entity.DeviceComponentDetail; import com.nflg.mobilebroken.repository.entity.TBasePart; import com.nflg.mobilebroken.repository.service.IDeviceComponentDetailService; import com.nflg.mobilebroken.repository.service.IDeviceComponentService; +import com.nflg.mobilebroken.repository.service.IDeviceService; import com.nflg.mobilebroken.repository.service.ITBasePartService; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +42,7 @@ import javax.validation.Valid; import java.io.IOException; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -60,6 +61,9 @@ public class DeviceComponentController extends ControllerBase { @Resource ITBasePartService basePartService; + @Resource + private IDeviceService deviceService; + /** * 获取机型部件列表 * @param query @@ -67,18 +71,31 @@ public class DeviceComponentController extends ControllerBase { */ @PostMapping("getList") @ApiMark(moduleName = "机型部件管理", apiName = "获取设备机型列表") - public ApiResult> getList(@RequestBody DeviceComponentQuery query){ - Page result = deviceComponentService.selectListByPage(query); - result.getRecords().forEach(u->{ - List detail = deviceComponentDetailService.getDevicePartDetail(u.getId()); - Map> collect=detail.stream().collect(Collectors.groupingBy(DeviceComponentDetailVO::getTypeAttr)); - List vos=new ArrayList<>(); - collect.forEach((k,v)->{ - vos.add(new DeviceComponentPartGroupVO().setTypeAttr(k).setItems(v)); - }); - u.setPartList(vos); + public ApiResult> getList(@RequestBody DeviceComponentQuery query){ + List devices=deviceService.lambdaQuery().select(Device::getDeviceType,Device::getModelNo).eq(Device::getDataValidState,true).list(); + Map> mps=devices.stream().collect(Collectors.groupingBy(Device::getDeviceType)); + AtomicInteger index= new AtomicInteger(); + int first=(query.getPage()-1)*query.getPageSize(); + int last=query.getPage()*query.getPageSize(); + PageData pageData=new PageData<>(); + List items=new ArrayList<>(); + mps.forEach((k,v)->{ + if (index.get() >= first && index.get() < last) { + DeviceTypeVO vo=new DeviceTypeVO(); + vo.setDeviceType(k); + vo.setItems(v.stream().map(d -> new DeviceComponentVO() + .setModelNo(d.getModelNo()) + .setPartList(deviceComponentDetailService.getByModelNo(d.getModelNo()))).collect(Collectors.toList()) + ); + items.add(vo); + } + index.getAndIncrement(); }); - return ApiResult.success(result.getRecords(),query,result.getTotal()); + pageData.setItems(items); + pageData.setPage(query.getPage()); + pageData.setPageSize(query.getPageSize()); + pageData.setTotal(mps.size()); + return ApiResult.success(pageData); } /** diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentVO.java index f1e80c64..d6cc7b36 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentVO.java @@ -4,11 +4,13 @@ package com.nflg.mobilebroken.common.pojo.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; +import lombok.experimental.Accessors; import java.time.LocalDateTime; import java.util.List; @Data +@Accessors(chain = true) public class DeviceComponentVO { @TableId(value = "id", type = IdType.AUTO) @@ -49,5 +51,5 @@ public class DeviceComponentVO { */ private LocalDateTime updateTime; - private List partList; + private List partList; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentPartGroupVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceTypeVO.java similarity index 55% rename from nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentPartGroupVO.java rename to nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceTypeVO.java index f65eaff5..9395c3e7 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceComponentPartGroupVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceTypeVO.java @@ -7,15 +7,15 @@ import java.util.List; @Data @Accessors(chain = true) -public class DeviceComponentPartGroupVO { +public class DeviceTypeVO { /** - * 类别属性 + * 设备类型 */ - private String typeAttr; + private String deviceType; /** - * 部件列表 + * 机型列表 */ - private List items; + private List items; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceComponentDetailMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceComponentDetailMapper.java index fc3b1fbb..997dc36d 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceComponentDetailMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceComponentDetailMapper.java @@ -1,8 +1,8 @@ package com.nflg.mobilebroken.repository.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.mobilebroken.common.pojo.vo.DeviceComponentDetailVO; import com.nflg.mobilebroken.repository.entity.DeviceComponentDetail; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -22,4 +22,6 @@ public interface DeviceComponentDetailMapper extends BaseMapper componentIds); List getDevicePartDetail(@Param("deviceComponentId") Integer deviceComponentId); + + List getByModelNo(String modelNo); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceComponentDetailService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceComponentDetailService.java index 876eedf7..74d2e372 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceComponentDetailService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceComponentDetailService.java @@ -1,8 +1,8 @@ package com.nflg.mobilebroken.repository.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.vo.DeviceComponentDetailVO; import com.nflg.mobilebroken.repository.entity.DeviceComponentDetail; -import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,4 +23,6 @@ public interface IDeviceComponentDetailService extends IService componentIds); List getDevicePartDetail(@Param("deviceComponentId") Integer deviceComponentId); + + List getByModelNo(String modelNo); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceComponentDetailServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceComponentDetailServiceImpl.java index 05251b7c..f8a5c313 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceComponentDetailServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceComponentDetailServiceImpl.java @@ -1,10 +1,10 @@ package com.nflg.mobilebroken.repository.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.vo.DeviceComponentDetailVO; import com.nflg.mobilebroken.repository.entity.DeviceComponentDetail; import com.nflg.mobilebroken.repository.mapper.DeviceComponentDetailMapper; import com.nflg.mobilebroken.repository.service.IDeviceComponentDetailService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; @@ -32,4 +32,9 @@ public class DeviceComponentDetailServiceImpl extends ServiceImpl getDevicePartDetail(@Param("deviceComponentId") Integer deviceComponentId){ return this.getBaseMapper().getDevicePartDetail(deviceComponentId); } + + @Override + public List getByModelNo(String modelNo) { + return baseMapper.getByModelNo(modelNo); + } } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceComponentDetailMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceComponentDetailMapper.xml index 209d3f86..f65c9162 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceComponentDetailMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceComponentDetailMapper.xml @@ -19,4 +19,11 @@ join t_base_part b on a.model_part_id=b.id where a.device_component_id=#{deviceComponentId} + +