diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java index e508337e..3ff1317e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/MBomApi.java @@ -2,13 +2,16 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.FactoryCodeEnum; import com.nflg.product.bomnew.constant.MBomConstantEnum; import com.nflg.product.bomnew.constant.ValueEnum; +import com.nflg.product.bomnew.pojo.dto.BomNewMBomChildDTO; import com.nflg.product.bomnew.pojo.query.BomNewMbomParentQuery; import com.nflg.product.bomnew.pojo.vo.BomNewMbomDetailVO; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomMiddleVO; import com.nflg.product.bomnew.pojo.vo.BomNewMbomParentVO; import com.nflg.product.bomnew.service.BomNewMbomDetailService; import com.nflg.product.bomnew.service.BomNewMbomParentService; @@ -52,12 +55,32 @@ public class MBomApi extends BaseApi { * @param query Query 查询实体 * @return 所有数据 */ - @PostMapping("selectBomNewMbomParentEntityPageByCondition") - @ApiOperation("auto-按字段条件分页查询") - public ResultVO> selectBomNewMbomParentEntityPageByCondition(@RequestBody BomNewMbomParentQuery query) { - return ResultVO.success(); + @PostMapping("workListPage") + @ApiOperation("工作明细表") + public ResultVO> workListPage(@RequestBody BomNewMbomParentQuery query) { + return ResultVO.success(bomNewMbomParentService.workListPage(query)); } + @PostMapping("sapFormalListPage") + @ApiOperation("Sap明细表") + public ResultVO> sapFormalListPage(@RequestBody BomNewMbomParentQuery query) { + return ResultVO.success(bomNewMbomParentService.formalListPage(query)); + } + + @PostMapping("getChild") + @ApiOperation("获取下级") + public ResultVO> getChild(@RequestBody BomNewMBomChildDTO dto) { + if(Objects.isNull(dto.getBomRowId())){ + throw new NflgBusinessException(STATE.ParamErr,"bomRowId 不能为空"); + } + if(Objects.isNull(dto.getRowId())){ + throw new NflgBusinessException(STATE.ParamErr,"rowId 不能为空"); + } + return ResultVO.success(bomNewMbomParentService.getChild(dto)); + } + + + @GetMapping("factoryList") @ApiOperation("工厂列表") @@ -81,6 +104,14 @@ public class MBomApi extends BaseApi { } + + + + + + + + @PostMapping("superSaterialStatus") @ApiOperation("设置超级物料") public ResultVO superSaterialStatus(@ApiParam("超级物料 0-否 1-是") @RequestParam(value = "status") Integer status, @RequestParam(value = "rowId") Long rowId ) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomParentMapper.java index 9ec04ca8..a688f008 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewMbomParentMapper.java @@ -39,6 +39,15 @@ public interface BomNewMbomParentMapper extends BaseMapper searchList(@Param("rowId") Long rowId ); + /** + * 下级 + * @param rowId + * @return + */ + List getParentChild(@Param("rowId") Long rowId ); + + BomNewMbomMiddleVO getParentById(@Param("rowId") Long rowId ); + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMBomChildDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMBomChildDTO.java new file mode 100644 index 00000000..3e6208d0 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/BomNewMBomChildDTO.java @@ -0,0 +1,22 @@ +package com.nflg.product.bomnew.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +@ApiModel(value="com-nflg-product-bomnew-pojo-new-dto-BomNewMBomChildDTO") +public class BomNewMBomChildDTO { + /** + * 主键行ID-雪花 + */ + @ApiModelProperty(value = "主键行ID") + private Long rowId; + + @ApiModelProperty(value = "bomRowId") + private Long bomRowId; + + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java index b018f890..e1ee162f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BomNewMbomMiddleVO.java @@ -215,9 +215,6 @@ public class BomNewMbomMiddleVO extends BaseMaterialVO implements Serializable { } - - - private List childNodes = Collections.emptyList(); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java index abe55bd2..991e142d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewMbomParentService.java @@ -1,14 +1,25 @@ package com.nflg.product.bomnew.service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.product.bomnew.constant.MBomConstantEnum; import com.nflg.product.bomnew.mapper.master.BomNewMbomParentMapper; +import com.nflg.product.bomnew.pojo.dto.BomNewMBomChildDTO; import com.nflg.product.bomnew.pojo.entity.BomNewMbomParentEntity; +import com.nflg.product.bomnew.pojo.query.BomNewMbomParentQuery; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomMiddleVO; +import com.nflg.product.bomnew.service.domain.MBom.IndexListTree; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + /** * t_bom_new_mbom_parent 表服务实现类 - * * * @author makejava * @since 2024-01-01 10:53:24 @@ -16,4 +27,79 @@ import org.springframework.stereotype.Service; @Service public class BomNewMbomParentService extends ServiceImpl { + + /** + * 工作明细 + * + * @param query + * @return + */ + public Page workListPage(BomNewMbomParentQuery query) { + + query.setStatus(MBomConstantEnum.MBomStatusEnum.UNPUB_SAP.getValue()); + + return listPage(query); + } + + + private Page listPage(BomNewMbomParentQuery query) { + Page page = null; + if (StrUtil.isNotBlank(query.getMaterialNo()) || StrUtil.isNotBlank(query.getDrawingNo())) { + page = this.getBaseMapper().indexListPage(new Page<>(query.getPage(), query.getPageSize()), query); + if (CollectionUtil.isNotEmpty(page.getRecords())) { + List indexList = page.getRecords().stream().collect(Collectors.toList()); + ; + page.getRecords().clear(); + for (BomNewMbomMiddleVO item : + indexList) { + BomNewMbomMiddleVO parent = this.getBaseMapper().getParentById(item.getBomRowId()); + parent.setParentRowId(0l); + parent.setBomRowId(parent.getRowId()); + + List childList = this.getBaseMapper().searchList(item.getRowId()); + IndexListTree.listToTree(parent, childList); + page.getRecords().add(parent); + } + + return page; + } + } + + + //不是通过物料或图号搜索 + page = this.getBaseMapper().getMBomListPage(new Page<>(query.getPage(), query.getPageSize()), query); + return page; + } + + + public Page formalListPage(BomNewMbomParentQuery query) { + query.setStatus(MBomConstantEnum.MBomStatusEnum.PUB_SAP.getValue()); + return listPage(query); + + } + + + public List getChild(BomNewMBomChildDTO dto) { + BomNewMbomMiddleVO parent = this.getBaseMapper().getParentById(dto.getBomRowId() ); + if (parent != null) { + parent.setParentRowId(0l); + parent.setBomRowId(parent.getRowId()); + + } + Long _rowId = dto.getRowId(); + if (Objects.equals(dto.getRowId(), dto.getBomRowId())) { + _rowId = 0l; + } + List listChild = this.getBaseMapper().getParentChild(_rowId); + if (CollectionUtil.isNotEmpty(listChild)) { + listChild.forEach(child -> { + IndexListTree.sysnParentParam(parent, child); + }); + } + + + return listChild; + } + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/IndexListTree.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/IndexListTree.java new file mode 100644 index 00000000..facb4180 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/IndexListTree.java @@ -0,0 +1,47 @@ +package com.nflg.product.bomnew.service.domain.MBom; + +import cn.hutool.core.collection.CollectionUtil; +import com.nflg.product.bomnew.pojo.vo.BomNewMbomMiddleVO; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +public class IndexListTree { + + /** + * Stream分组 + */ + + public static List listToTree(BomNewMbomMiddleVO parent,List childs) { + + if(CollectionUtil.isEmpty(childs)){ + return Collections.emptyList(); + } + + Map> groupMap = childs.stream().collect(Collectors.groupingBy(BomNewMbomMiddleVO::getParentRowId)); + childs.forEach(child -> { + + child.setChildNodes(groupMap.get(child.getRowId())); + + sysnParentParam(parent,child); + }); + + + //筛选出根 + List collect = childs.stream().filter(item -> Objects.isNull(item.getParentRowId()) || item.getParentRowId().equals(0L)).collect(Collectors.toList()); + parent.setChildNodes(collect); + return collect; + } + + + public static void sysnParentParam(BomNewMbomMiddleVO parent,BomNewMbomMiddleVO child){ + child.setOrderNo(parent.getOrderNo()); + child.setStatus(parent.getStatus()); + child.setSysnSapTime(parent.getSysnSapTime()); + child.setSysnSapUserName(parent.getSysnSapUserName()) ; + } + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml index 24793bbe..62126583 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewMbomParentMapper.xml @@ -94,27 +94,47 @@ - + select t1.*,(SELECT count(1) from t_bom_new_mbom_detail where parent_row_id=t1.row_id) as bom_exist + from t_bom_new_mbom_detail as t1 + where t1.parent_row_id = #{rowId} + order by t1.order_number + + +