From daf22902173abb97bd3abbde15d397fdbaaac4a9 Mon Sep 17 00:00:00 2001 From: jing's Date: Fri, 15 Dec 2023 22:00:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=89=A9=E6=96=99Id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/api/user/OptionalMbomApi.java | 11 +-- .../master/OptionalMbomMaterialMapper.java | 5 +- .../pojo/dto/OptionalMbomMaterialDTO.java | 2 +- .../pojo/vo/OptionalMbomMaterialListVO.java | 98 +++++++++++++++++++ .../pojo/vo/OptionalMbomMaterialVO.java | 2 +- .../service/OptionalMbomMaterialService.java | 18 +++- .../aggreg/AggregOptionConfigService.java | 7 +- .../master/OptionalMbomMaterialMapper.xml | 4 +- 8 files changed, 125 insertions(+), 22 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialListVO.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalMbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalMbomApi.java index 68327148..1adb8ad1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalMbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalMbomApi.java @@ -14,10 +14,7 @@ import com.nflg.product.bomnew.pojo.dto.OptionalEbomSubmitEditDTO; import com.nflg.product.bomnew.pojo.query.OptionalEbomConfigListQuery; import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery; import com.nflg.product.bomnew.pojo.query.OptionalMbomMaterialListQuery; -import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigAggregVO; -import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigVO; -import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO; -import com.nflg.product.bomnew.pojo.vo.OptionalMbomMaterialVO; +import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.OptionalEbomConfigService; import com.nflg.product.bomnew.service.OptionalEbomImportChildService; import com.nflg.product.bomnew.service.OptionalEbomMainService; @@ -73,9 +70,7 @@ public class OptionalMbomApi extends BaseApi { @PostMapping("getMaterialParentList") @ApiOperation("物料分页数据") - public ResultVO> getMaterialParentList(@RequestBody OptionalMbomMaterialListQuery query) { - - + public ResultVO> getMaterialParentList(@RequestBody OptionalMbomMaterialListQuery query) { query.setCreatedBy(SessionUtil.getUserCode()); return ResultVO.success(this.optionalMbomMaterialService.getListPage(query)); } @@ -84,7 +79,7 @@ public class OptionalMbomApi extends BaseApi { @GetMapping("getMaterialChildList") @ApiOperation("物料子数据") - public ResultVO> getMaterialChildList(@ApiParam("父id") @RequestParam("rowId") Long rowId) { + public ResultVO> getMaterialChildList(@ApiParam("父id") @RequestParam("rowId") Long rowId) { return ResultVO.success(this.optionalMbomMaterialService.getChild(rowId)); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalMbomMaterialMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalMbomMaterialMapper.java index 87aa2da1..6db7dd3c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalMbomMaterialMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/OptionalMbomMaterialMapper.java @@ -13,6 +13,7 @@ package com.nflg.product.bomnew.mapper.master; import com.nflg.product.bomnew.pojo.query.OptionalEbomMainListQuery; import com.nflg.product.bomnew.pojo.query.OptionalMbomMaterialListQuery; import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO; + import com.nflg.product.bomnew.pojo.vo.OptionalMbomMaterialListVO; import com.nflg.product.bomnew.pojo.vo.OptionalMbomMaterialVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -28,8 +29,8 @@ import java.util.List; public interface OptionalMbomMaterialMapper extends BaseMapper { - IPage getListPage(Page page, @Param("query") OptionalMbomMaterialListQuery query); - public List getChild(@Param("rowId") Long rowId); + Page getListPage(Page page, @Param("query") OptionalMbomMaterialListQuery query); + public List getChild(@Param("rowId") Long rowId); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalMbomMaterialDTO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalMbomMaterialDTO.java index a6be5b71..fe0987ce 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalMbomMaterialDTO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/dto/OptionalMbomMaterialDTO.java @@ -63,7 +63,7 @@ public class OptionalMbomMaterialDTO implements Serializable { * 创建时间 */ @ApiModelProperty(value = "创建时间") - private Date createdTime; + private String createdTime; /** * 操作人编码 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialListVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialListVO.java new file mode 100644 index 00000000..7b00c3c2 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialListVO.java @@ -0,0 +1,98 @@ +package com.nflg.product.bomnew.pojo.vo; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.Date; + +@Data +@ApiModel("mbom发布生成的物料信息") +@Accessors(chain = true) +public class OptionalMbomMaterialListVO extends BaseMaterialVO { + /** + * 主键 + */ + @ApiModelProperty(value = "主键") + private Long rowId; + /** + * 父表Id (t_optional_ebom_config ) + */ + @ApiModelProperty(value = "上层id") + private Long parentRowId; + /** + * 上层id + */ + @ApiModelProperty(value = "根id") + private Long rootRowId;; + /** + * 物料编码 + */ +// @ApiModelProperty(value = "物料编码") +// private String materialNo; + /** + * 物料名 + */ +// @ApiModelProperty(value = "物料名") +// private String materialName; + /** + * 物料描述 + */ +// @ApiModelProperty(value = "物料描述") +// private String materialDesc; + /** + * 图号 + */ +// @ApiModelProperty(value = "图号") +// private String drawingNo; + /** + * 备注 + */ + @ApiModelProperty(value = "备注") + private String remak; + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") + private String createdTime; + /** + * 操作人编码 + */ + @ApiModelProperty(value = "操作人编码") + private String createdBy; + + /** + * 机型编号 + */ + @ApiModelProperty(value = "机型编号") + private String deviceNo; + /** + * 机型名称 + */ + @ApiModelProperty(value = "机型名称") + private String deviceName; + + /** + * 是否导入sap(0 :否 1: 是) + */ + @ApiModelProperty(value = "是否导入sap(0 :否 1: 是)") + private Integer uploadSapStatus; + + /** + * 部门名称 + */ + @ApiModelProperty(value = "部门名称") + private String deptName; + /** + * 部门id + */ + @ApiModelProperty(value = "部门id") + private Long deptRowId; + /** + * 操作人姓名 + */ + @ApiModelProperty(value = "操作人姓名") + private String realName; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialVO.java index c26ff225..e864107e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/OptionalMbomMaterialVO.java @@ -20,7 +20,7 @@ import java.util.Date; @Data @ApiModel("mbom发布生成的物料信息") @Accessors(chain = true) -public class OptionalMbomMaterialVO implements Serializable { +public class OptionalMbomMaterialVO { /** * 主键 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java index caaa97d3..6173745d 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/OptionalMbomMaterialService.java @@ -11,10 +11,12 @@ import com.nflg.product.bomnew.pojo.entity.OptionalMbomMaterialEntity; import com.nflg.product.bomnew.pojo.query.OptionalMbomMaterialListQuery; +import com.nflg.product.bomnew.pojo.vo.OptionalMbomMaterialListVO; import com.nflg.product.bomnew.pojo.vo.OptionalMbomMaterialVO; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; /** @@ -24,13 +26,21 @@ import java.util.List; public class OptionalMbomMaterialService extends ServiceImpl { - public IPage getListPage(OptionalMbomMaterialListQuery query) { - IPage list = this.getBaseMapper().getListPage(new Page<>(query.getPage(), query.getPageSize()), query); + + + @Resource + MaterialMainService materialMainService; + public Page getListPage(OptionalMbomMaterialListQuery query) { + Page list = this.getBaseMapper().getListPage(new Page<>(query.getPage(), query.getPageSize()), query); + materialMainService.intiMaterialInfo(list.getRecords()); return list; } - public List getChild(Long rowId) { - return this.getBaseMapper().getChild(rowId); + public List getChild(Long rowId) { + List list= this.getBaseMapper().getChild(rowId); + + materialMainService.intiMaterialInfo(list); + return list; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/AggregOptionConfigService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/AggregOptionConfigService.java index 05c70e3e..f4176bd5 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/AggregOptionConfigService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/aggreg/AggregOptionConfigService.java @@ -16,10 +16,7 @@ import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildEntity; import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity; import com.nflg.product.bomnew.pojo.query.OptionalEbomImportChildQuery; import com.nflg.product.bomnew.pojo.vo.*; -import com.nflg.product.bomnew.service.OptionalEbomConfigService; -import com.nflg.product.bomnew.service.OptionalEbomImportChildService; -import com.nflg.product.bomnew.service.OptionalEbomImportService; -import com.nflg.product.bomnew.service.OptionalEbomMainService; +import com.nflg.product.bomnew.service.*; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -41,6 +38,8 @@ public class AggregOptionConfigService { @Resource private OptionalEbomConfigService optionalEbomConfigService; + @Resource + MaterialMainService materialMainService; /** * 递归方法转换成树形结构 diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalMbomMaterialMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalMbomMaterialMapper.xml index 0bee0ff1..d8f469d7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalMbomMaterialMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalMbomMaterialMapper.xml @@ -47,7 +47,7 @@ row_id,parent_row_id,level_row_id,material_no,material_name,material_desc,drawin - select t1.*,t2.device_name, t2.device_no, @@ -82,7 +82,7 @@ row_id,parent_row_id,level_row_id,material_no,material_name,material_desc,drawin - select t1.*,t2.device_name, t2.device_no, From 5cc3e2d6e2708ca3f3bfd3a0812a1ebef9d46f03 Mon Sep 17 00:00:00 2001 From: luoliming Date: Sat, 16 Dec 2023 13:15:17 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=99=9A=E6=8B=9F?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/VirtualPackageTypeEnum.java | 5 +++ .../pojo/entity/BomNewEbomParentEntity.java | 4 ++ .../domain/EBom/VirtualPackageBase.java | 22 +++++++++++ .../domain/EBom/VirtualPackageFor21.java | 37 ++++++++++++------- .../domain/EBom/VirtualPackageFor31.java | 7 ++++ .../OriginalBom/OriginalBomToEBomConvert.java | 14 ++----- .../mapper/master/BomNewEbomParentMapper.xml | 3 +- 7 files changed, 67 insertions(+), 25 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/VirtualPackageTypeEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/VirtualPackageTypeEnum.java index b853d1b6..7cd0ebcb 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/VirtualPackageTypeEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/VirtualPackageTypeEnum.java @@ -17,4 +17,9 @@ public enum VirtualPackageTypeEnum implements ValueEnum{ private final String description; private final String conMaterialName; private final String materialCategoryCode; + + + public static Integer getAll(){ + return 1|2|4; + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomParentEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomParentEntity.java index 21235665..c6e642b7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomParentEntity.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomParentEntity.java @@ -144,6 +144,10 @@ public class BomNewEbomParentEntity implements Serializable { @ApiModelProperty(value = "是否跟节点 0-否 1-是") private Integer rootIs; + @TableField(value = "virtrual_package_enum") + @ApiModelProperty("已生成的虚拟包 0-无 1-发货包 2-制作包 4-直发包 8-发货前装配包") + private Integer virtrualPackageEnum; + /** * 是否应该有BOM 0-否 1-是 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java index 1309bac7..89c4ddc9 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageBase.java @@ -1,6 +1,7 @@ package com.nflg.product.bomnew.service.domain.EBom; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -12,6 +13,7 @@ import com.nflg.product.bomnew.constant.VirtualPackageTypeEnum; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.service.BomNewEbomChildService; import com.nflg.product.bomnew.service.BomNewEbomParentService; import com.nflg.product.bomnew.service.MaterialService; import com.nflg.product.bomnew.util.VersionUtil; @@ -23,6 +25,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 生成虚拟包基类 @@ -100,6 +103,25 @@ public abstract class VirtualPackageBase { return SpringUtil.getBean(BomNewEbomParentService.class).getChild(bomRowId); } + protected BomNewEbomParentEntity getParentZhiZuo(){ + List list = SpringUtil.getBean(BomNewEbomChildService.class).lambdaQuery().eq(BomNewEbomChildEntity::getParentRowId, bomRowId).list(); + List zhiZuo = list.stream().filter(u -> u.getMaterialName().contains("制作")).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(zhiZuo)){ + String materialNo=zhiZuo.get(0).getMaterialNo(); + return SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo,materialNo) + .eq(BomNewEbomParentEntity::getLastVersionIs,1).one(); + } + return null; + } + + /** + * 获取父节点 + * @return + */ + protected BomNewEbomParentEntity getParentByRowId(Long rowId){ + return SpringUtil.getBean(BomNewEbomParentService.class).getById(rowId); + } + /** * 生成虚拟包 */ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java index 583ab7d2..ad43451e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor21.java @@ -11,6 +11,8 @@ import nflg.product.common.constant.STATE; import java.io.IOException; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; /** * 31物料生成虚拟包 @@ -33,22 +35,27 @@ public class VirtualPackageFor21 extends VirtualPackageBase { @Override public void generateVirtualPackage() throws IOException { - BomNewEbomParentEntity parent = SpringUtil.getBean(BomNewEbomParentService.class).lambdaQuery().eq(BomNewEbomParentEntity::getRowId, bomRowId).one(); - //构建构建发货包下制作包 - BomNewEbomParentEntity makingPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.MAKING_PACKAGE); - //构建构建发货包下直发 - BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + BomNewEbomParentEntity parent = getParentByRowId(bomRowId); + BomNewEbomParentEntity makingPackage=null; + if((parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.MAKING_PACKAGE.getValue())!=VirtualPackageTypeEnum.MAKING_PACKAGE.getValue()) { + //构建构建发货包下制作包 + makingPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.MAKING_PACKAGE); + //构建构建发货包下直发 + BomNewEbomParentEntity directDeliveryPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + //构建产品-子级为制作包合直发包 + buildChild(makingPackage, bomRowId, "001", VirtualPackageTypeEnum.MAKING_PACKAGE); + buildChild(directDeliveryPackage, bomRowId, "002", VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); + } + if(virtualPackageValue.contains(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) && (parent.getVirtrualPackageEnum()| VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue())!=VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue()) { + //构建构建发货前装配包 + if(Objects.isNull(makingPackage)){ + makingPackage=getParentZhiZuo(); + } + BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); - //构建产品-子级为制作包合直发包 - buildChild(makingPackage, bomRowId, "001", VirtualPackageTypeEnum.MAKING_PACKAGE); - buildChild(directDeliveryPackage, bomRowId, "002", VirtualPackageTypeEnum.DIRECT_DELIVERY_PACKAGE); - - //构建构建发货前装配包 - BomNewEbomParentEntity preAssemblyPackage = buildParentVirtualPackage(parent.getDrawingNo(), parent.getMaterialName(), VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); - - buildChild(preAssemblyPackage, makingPackage.getRowId(), "001", VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); - + buildChild(preAssemblyPackage, makingPackage.getRowId(), "001", VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE); + } List child = getChild(); //将产品子级放制作包下 for (BomNewEbomParentVO item : child) { @@ -59,6 +66,8 @@ public class VirtualPackageFor21 extends VirtualPackageBase { this.childResult.add(itemUp); } + parent.setVirtrualPackageEnum(virtualPackageValue.stream().collect(Collectors.summingInt(u->u))); + parentResult.add(parent); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java index bca1ed26..69c682fe 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/VirtualPackageFor31.java @@ -6,6 +6,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.util.EnumUtils; +import com.nflg.product.bomnew.util.VUtils; import nflg.product.common.constant.STATE; import java.util.List; @@ -31,7 +32,10 @@ public class VirtualPackageFor31 extends VirtualPackageBase { */ @Override public void generateVirtualPackage() { + List child = getChild(); + BomNewEbomParentEntity parent = getParentByRowId(bomRowId); + VUtils.isTure(parent.getVirtrualPackageEnum()>0).throwMessage("已生成虚拟包无需重复生成"); try { for (BomNewEbomParentVO item : child) { //构建发货包 @@ -55,6 +59,9 @@ public class VirtualPackageFor31 extends VirtualPackageBase { this.childResult.add(itemUp); } + parent.setVirtrualPackageEnum(VirtualPackageTypeEnum.getAll()); + this.parentResult.add(parent); + }catch (Exception ex) { throw new NflgBusinessException(STATE.BusinessError, ex.getMessage()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java index 2c7b95ca..33fbb369 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java @@ -83,8 +83,6 @@ public class OriginalBomToEBomConvert extends BaseConvert { hanlerDo(childParent); this.hasHandlerParentIds.add(childParent.getBomRowId()); } - - } @@ -151,12 +149,9 @@ public class OriginalBomToEBomConvert extends BaseConvert { newChild.setParentRowId(parentRowId); this.eBomChildResult.add(newChild); } - } - - } - - } else { - buildEBomParent(parentEnt); + }} + } else { + buildEBomParent(parentEnt); } } else { buildEBomParent(parentEnt); @@ -222,7 +217,6 @@ public class OriginalBomToEBomConvert extends BaseConvert { } - /** * 构建EBom父级 */ @@ -281,7 +275,7 @@ public class OriginalBomToEBomConvert extends BaseConvert { Integer numResult=0; BigDecimal totalWeightResult=BigDecimal.ZERO; for (BomOriginalListVO item : list1) { - numResult+= Objects.nonNull(item.getNum()) ? item.getNum() : 0; + numResult =Objects.nonNull(item.getNum()) ? item.getNum() : 0; totalWeightResult=NumberUtil.add(totalWeightResult, item.getTotalWeight()); } one.setNum(numResult); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index edd663f8..5d3e67af 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -22,6 +22,7 @@ + @@ -55,7 +56,7 @@ - row_id, batch_no, drawing_no, material_no, order_number, material_name, material_desc, material_texture, material_unit, unit_weight, total_weight, current_version, num, source, project_type, project_type_input_type, root_is, should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is, exception_status,virtual_package_is, source_row_id, devise_user_code, devise_name, created_by, created_time, created_job, audit_time, audit_user_name, release_time, release_user_name, revert_time, revert_user_name, expire_end_time, convert_to_ebom_time, remark, dept_name, level_num, change_desc, notice_nums, modify_time + row_id, batch_no, drawing_no, material_no, order_number, material_name, material_desc, material_texture, material_unit, unit_weight, total_weight, current_version, num, source, project_type, project_type_input_type, root_is,virtrual_package_enum, should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is, exception_status,virtual_package_is, source_row_id, devise_user_code, devise_name, created_by, created_time, created_job, audit_time, audit_user_name, release_time, release_user_name, revert_time, revert_user_name, expire_end_time, convert_to_ebom_time, remark, dept_name, level_num, change_desc, notice_nums, modify_time From 915c983e0e560512935221395893e20ddc42ec23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=B1=B3?= <470431449@qq.com> Date: Sun, 17 Dec 2023 15:23:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.ebom-=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nflg/product/bomnew/api/user/EbomApi.java | 21 +- .../product/bomnew/constant/EBomConstant.java | 13 + .../bomnew/constant/EBomStatusEnum.java | 6 +- .../bomnew/constant/OriginalStatusEnum.java | 2 + .../product/bomnew/constant/UserJobEnum.java | 19 ++ .../mapper/master/BomNewEbomChildMapper.java | 5 + .../master/BomNewEbomMaterialUseMapper.java | 14 + .../mapper/master/BomNewEbomParentMapper.java | 17 +- .../mapper/master/MaterialMainMapper.java | 2 + .../entity/BomNewEbomMaterialUseEntity.java | 48 ++++ .../pojo/query/BomNewEbomParentQuery.java | 3 +- .../bomnew/pojo/vo/BaseMaterialVO.java | 3 + .../service/BomNewEbomMaterialUseService.java | 19 ++ .../service/BomNewEbomParentService.java | 131 +++++++++- .../bomnew/service/UserRoleService.java | 54 ++++ .../OriginalBom/OriginalBomToEBomConvert.java | 13 +- .../mapper/master/BomNewEbomChildMapper.xml | 11 + .../master/BomNewEbomMaterialUseMapper.xml | 17 ++ .../mapper/master/BomNewEbomParentMapper.xml | 244 +++++++++++------- .../mapper/master/MaterialMainMapper.xml | 12 +- 20 files changed, 529 insertions(+), 125 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/UserJobEnum.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomMaterialUseMapper.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomMaterialUseEntity.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomMaterialUseService.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/UserRoleService.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomMaterialUseMapper.xml diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index 02c44510..d8cd68b8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -21,6 +21,7 @@ import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageBase; import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageFor31; import com.nflg.product.bomnew.util.EecExcelUtil; +import com.nflg.product.bomnew.util.TreeNode; import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -61,10 +62,22 @@ public class EbomApi extends BaseApi { private MaterialMainService materialMainService; - @PostMapping("bomPage") - @ApiOperation("Ebom-列表") - public ResultVO> bomPage(@RequestBody BomNewEbomParentQuery query) { - return ResultVO.success(bomNewEbomParentService.getListPage(query)); + @PostMapping("workDetailsListByPage") + @ApiOperation("Ebom-工作明细列表") + public ResultVO>> workDetailsListByPage(@RequestBody BomNewEbomParentQuery query) { + return ResultVO.success(bomNewEbomParentService.workDetailsListByPage(query)); + } + + @PostMapping("formalWorksheet") + @ApiOperation("Ebom-正式工作表") + public ResultVO> formalWorksheet(@RequestBody BomNewEbomParentQuery query) { + return ResultVO.success(bomNewEbomParentService.formalWorksheet(query)); + } + + @PostMapping("changeImpact") + @ApiOperation("Ebom-变更影响") + public ResultVO> changeImpact(@RequestBody BomNewEbomParentQuery query) { + return ResultVO.success(bomNewEbomParentService.formalWorksheet(query)); } @GetMapping("getChild") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java new file mode 100644 index 00000000..82040572 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomConstant.java @@ -0,0 +1,13 @@ +package com.nflg.product.bomnew.constant; + +/** + * @author 大米 + * @date 2023/11/11 20:09 + */ +public class EBomConstant { + + //设计人员 + public static final String DESIGNER = "设计人员"; + //工艺人员 + public static final String TECHNICIAN = "工艺人员"; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomStatusEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomStatusEnum.java index fdba2413..da0e0c6e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomStatusEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/EBomStatusEnum.java @@ -11,7 +11,11 @@ public enum EBomStatusEnum implements ValueEnum { WAIT_CHECK(1,"待复核"), CHECKED(2,"已复核"), RETURNED(3,"已退回"), - PUBLISHED(4,"定版(已发布PBOM)"); + PUBLISHED(4,"定版(已发布PBOM)"), + BORROWED_PARTS(99, "借用件"), + + //非自己创建的 + REFERENCE(100, "引用件"); private final Integer value; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OriginalStatusEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OriginalStatusEnum.java index a6742b2a..3d193dac 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OriginalStatusEnum.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/OriginalStatusEnum.java @@ -14,8 +14,10 @@ public enum OriginalStatusEnum implements ValueEnum { OVER_CONVERT(2, "已转换"), + //已发布的 BORROWED_PARTS(3, "借用件"), + //非自己创建的 REFERENCE(4, "引用件"); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/UserJobEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/UserJobEnum.java new file mode 100644 index 00000000..9cad24ef --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/UserJobEnum.java @@ -0,0 +1,19 @@ +package com.nflg.product.bomnew.constant; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public enum UserJobEnum implements ValueEnum { + + // 0-设计人员 1-工艺人员 2-其他 + DESIGNER(0 ,"设计人员"), + ENGINEER(1,"工艺人员"), + OTHER(2,"其他"); + + private final Integer value; + + private final String description; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java index 75f78c2d..e583d490 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomChildMapper.java @@ -16,4 +16,9 @@ import java.util.List; public interface BomNewEbomChildMapper extends BaseMapper { List getChildByMaterialNo(@Param("materialNo") String materialNo); + + /** + * 全量更新-EBOM物料use + */ + void updateEBomMaterialUse(); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomMaterialUseMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomMaterialUseMapper.java new file mode 100644 index 00000000..bda6df5a --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomMaterialUseMapper.java @@ -0,0 +1,14 @@ +package com.nflg.product.bomnew.mapper.master; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomMaterialUseEntity; + +/** + * t_bom_new_ebom_material_use 表数据库访问层 + * + * + * @author makejava + * @since 2023-12-17 11:27:05 + */ +public interface BomNewEbomMaterialUseMapper extends BaseMapper { +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java index 18442a1b..8e70d701 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java @@ -11,6 +11,7 @@ import com.nflg.product.bomnew.pojo.vo.MaterialHistoryProjectTypeVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * t_bom_new_ebom_parent 表数据库访问层 @@ -27,8 +28,16 @@ public interface BomNewEbomParentMapper extends BaseMapper getEBomListPage(Page page, @Param("query") BomNewEbomParentQuery query); + Page getEBomListPage(Page page, @Param("query") BomNewEbomParentQuery query ,@Param("job") Integer job, @Param("createdBy") String createdBy); + + /** + * 正式工作表 + * @param page + * @param query + * @return + */ + Page formalWorksheet(Page page, @Param("query") BomNewEbomParentQuery query); /** * 获取子级 * @param rowId @@ -39,4 +48,10 @@ public interface BomNewEbomParentMapper extends BaseMapper getParentChildBatch(@Param("rowIds") List rowIds); MaterialHistoryProjectTypeVO getMaterialHistoryProjectType(@Param("materialNo")String materialNo); + + Set getSelfParentMaterialNo(@Param("createdBy") String createdBy ,@Param("list") Set list); + + List getParentForMaterialNoSeach(@Param("materialNoList") List materialNoList); + + List getChildForMaterialNoSeach(@Param("materialNoList") List materialNoList); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/MaterialMainMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/MaterialMainMapper.java index 6eea165a..64de7536 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/MaterialMainMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/MaterialMainMapper.java @@ -33,6 +33,8 @@ public interface MaterialMainMapper extends BaseMapper { List getMaterialByAnyNo(@Param("drawingNos") List drawingNos); + List getUserPost(@Param("userRowId") Long userRowId); + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomMaterialUseEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomMaterialUseEntity.java new file mode 100644 index 00000000..6ff9add9 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewEbomMaterialUseEntity.java @@ -0,0 +1,48 @@ +package com.nflg.product.bomnew.pojo.entity; + +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import lombok.Data; +import lombok.experimental.Accessors; +import java.time.LocalDateTime; +import java.time.LocalDate; + +/** + * t_bom_new_ebom_material_use + * + * + * @author makejava + * @since 2023-12-17 11:27:05 + */ +@Data +@Accessors(chain = true) +@ApiModel(value="com-nflg-product-bomnew-pojo-new-entity-BomNewEbomMaterialUseEntity") +@TableName(value = "t_bom_new_ebom_material_use") +public class BomNewEbomMaterialUseEntity implements Serializable { + + /** + * 主键-雪花 + */ + @TableId(value = "row_id", type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键-雪花") + private Long rowId; + + /** + * 物料编码 + */ + @TableField(value = "material_no") + @ApiModelProperty(value = "物料编码") + private String materialNo; + + /** + * 父级物料编码,多个用逗号隔开 + */ + @TableField(value = "parent_material_no") + @ApiModelProperty(value = "父级物料编码,多个用逗号隔开") + private String parentMaterialNo; + + private static final long serialVersionUID = 344881455840528407L; + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewEbomParentQuery.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewEbomParentQuery.java index 34fb8c26..5aaa042f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewEbomParentQuery.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/query/BomNewEbomParentQuery.java @@ -47,9 +47,10 @@ public class BomNewEbomParentQuery extends BasePageQuery implements Serializabl @ApiModelProperty(value = "结束时间") private String endDate; - @ApiModelProperty("数据类型 0-EBOM工作列表数据 1-EBOM的变更页面数据 ") + @ApiModelProperty("数据类型 0-EBOM工作列表数据 1-EBOM正式工作表明细 2-变更影响") private Integer dataType=0; + diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BaseMaterialVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BaseMaterialVO.java index 6c6f3079..dc6eb24e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BaseMaterialVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/BaseMaterialVO.java @@ -52,4 +52,7 @@ public class BaseMaterialVO { @ApiModelProperty("材质") private String materialTexture; + + @ApiModelProperty("物料大类别") + private String relCategoryCode; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomMaterialUseService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomMaterialUseService.java new file mode 100644 index 00000000..a1749528 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomMaterialUseService.java @@ -0,0 +1,19 @@ +package com.nflg.product.bomnew.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.product.bomnew.mapper.master.BomNewEbomMaterialUseMapper; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomMaterialUseEntity; +import org.springframework.stereotype.Service; + + +/** + * t_bom_new_ebom_material_use 表服务实现类 + * + * + * @author makejava + * @since 2023-12-17 11:27:05 + */ +@Service +public class BomNewEbomMaterialUseService extends ServiceImpl { + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 7513fa03..32154d32 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -18,9 +18,7 @@ import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper; import com.nflg.product.bomnew.pojo.dto.BomNewEBomCreateDTO; import com.nflg.product.bomnew.pojo.dto.VirtualPackageParamDto; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; +import com.nflg.product.bomnew.pojo.entity.*; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; @@ -32,10 +30,7 @@ import com.nflg.product.bomnew.service.domain.EBom.EbomInitProjectType; import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageBase; import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageFor31; import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomDetailTask; -import com.nflg.product.bomnew.util.EecExcelUtil; -import com.nflg.product.bomnew.util.ListCommonUtil; -import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; -import com.nflg.product.bomnew.util.VUtils; +import com.nflg.product.bomnew.util.*; import nflg.product.common.constant.STATE; import nflg.product.common.vo.ResultVO; import org.apache.ibatis.annotations.Param; @@ -77,20 +72,133 @@ public class BomNewEbomParentService extends ServiceImpl getListPage(BomNewEbomParentQuery query) { - Page result = this.getBaseMapper().getEBomListPage(new Page<>(query.getPage(), query.getPageSize()), query); + public Page> workDetailsListByPage(BomNewEbomParentQuery query) { + + Page> returnResult = new Page<>(); + //物料编码搜索或图号搜索 + if(StrUtil.isNotBlank(query.getMaterialNo()) || StrUtil.isNotBlank(query.getDrawingNo())) { + String materialNo=query.getMaterialNo(); + if(StrUtil.isBlank(materialNo)){ + List materialList = materialMainService.lambdaQuery().eq(MaterialMainEntity::getDrawingNo, query.getDrawingNo()).list(); + if(CollUtil.isNotEmpty(materialList)){ + materialNo=materialList.get(0).getMaterialNo(); + } + } + if(StrUtil.isNotBlank(materialNo)){ + List parentMaterialByMaterialNo = getParentMaterialByMaterialNo(materialNo, !userRoleService.technician()); + List parents = this.getBaseMapper().getParentForMaterialNoSeach(parentMaterialByMaterialNo); + List childs = this.getBaseMapper().getChildForMaterialNoSeach(parentMaterialByMaterialNo); + + returnResult= handSeachToTree(parents,childs); + } + }else { + Page result = this.getBaseMapper().getEBomListPage(new Page<>(query.getPage(), query.getPageSize()), query, userRoleService.getUserJob(), SessionUtil.getUserCode()); + + materialMainService.intiMaterialInfo(result.getRecords()); + Page> resutlData = new Page<>(); + BeanUtil.copyProperties(result, resutlData); + resutlData.setRecords(handNodeToTree(result.getRecords())); + returnResult= resutlData; + } + return returnResult; + } + private Page> handSeachToTree(List parents, List childs){ + Page> resutlData = new Page<>(); + Set parentSet = parents.stream().map(u -> u.getMaterialNo()).collect(Collectors.toSet()); + Set childSet = childs.stream().map(u -> u.getMaterialNo()).collect(Collectors.toSet()); + Set difference = Sets.difference(parentSet, childSet); + List resultParents = parents.stream().filter(u -> difference.contains(u.getMaterialNo())).collect(Collectors.toList()); + resutlData.setTotal(difference.size()); + resutlData.setSize(difference.size()); + resutlData.setPages(1); + resutlData.setCurrent(1L); + List all=new ArrayList<>(); + all.addAll(parents); + all.addAll(childs); + List> result=new ArrayList<>(); + for (BomNewEbomParentVO vo : resultParents) { + result.addAll( TreeUtils.toTree(vo.getRowId(), all, BomNewEbomParentVO::getParentRowId, BomNewEbomParentVO::getBomRowId)); + } + resutlData.setRecords(result); + return resutlData; + } + + private List> handNodeToTree(List list){ + List> result=new ArrayList<>(); + for (BomNewEbomParentVO vo : list) { + TreeNode treeData= new TreeNode<>(); + treeData.setData(vo); + result.add(treeData); + } + return result; + } + + + /** + * 获取物料所有父节点 + * @param materialNo + * @return + */ + private List getParentMaterialByMaterialNo(String materialNo , Boolean selfIs) { + BomNewEbomMaterialUseEntity materialBom = bomNewEbomMaterialUseService.lambdaQuery().eq(BomNewEbomMaterialUseEntity::getMaterialNo, materialNo).one(); + List result = new ArrayList<>(); + if (Objects.nonNull(materialBom) && StrUtil.isNotBlank(materialBom.getParentMaterialNo())) { + Set relSkuNo = Sets.newHashSet(StrUtil.split(materialBom.getParentMaterialNo(), ",")); + if(selfIs && CollUtil.isNotEmpty(relSkuNo)){ + relSkuNo=getSelfMaterialNo(relSkuNo); + } + while (CollUtil.isNotEmpty(relSkuNo)) { + result.addAll(relSkuNo); + List relSkuList = bomNewEbomMaterialUseService.lambdaQuery().in(BomNewEbomMaterialUseEntity::getMaterialNo, relSkuNo).list(); + relSkuNo.clear(); + Set finalRelSkuNo = relSkuNo; + relSkuList.forEach(k -> { + if (StrUtil.isNotBlank(k.getParentMaterialNo())) { + finalRelSkuNo.addAll(Sets.newHashSet(StrUtil.split(k.getParentMaterialNo(), ",")) ); + } + }); + relSkuNo=finalRelSkuNo; + if(CollUtil.isNotEmpty(relSkuNo) && selfIs){ + relSkuNo=getSelfMaterialNo(relSkuNo); + } + } + } + return result; + } + + private Set getSelfMaterialNo(Set relSkuNo){ + Set selfParentMaterialNo = this.getBaseMapper().getSelfParentMaterialNo(SessionUtil.getUserCode(), relSkuNo); + return selfParentMaterialNo; + } + + + /** + * 正式工作表 + * @param query + * @return + */ + public Page formalWorksheet(BomNewEbomParentQuery query) { + Page result = this.getBaseMapper().formalWorksheet(new Page<>(query.getPage(), query.getPageSize()), query); materialMainService.intiMaterialInfo(result.getRecords()); return result; } + + /** * 获取子级 * @@ -113,12 +221,15 @@ public class BomNewEbomParentService extends ServiceImpl getUserPost(){ + + return materialMainService.getBaseMapper().getUserPost(SessionUtil.getRowId()); + } + + /** + * 是否设计人员 + * @return + */ + public Boolean designer(){ + return getUserPost().contains(EBomConstant.DESIGNER); + } + + /** + * 是否工艺 + * @return + */ + public Boolean technician(){ + return getUserPost().contains(EBomConstant.TECHNICIAN); + } + + /** + * 获取用户岗位 + * @return + */ + public Integer getUserJob(){ + return 1; +// return technician()? UserJobEnum.ENGINEER.getValue():UserJobEnum.DESIGNER.getValue(); + } +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java index 33fbb369..89aa5cce 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomToEBomConvert.java @@ -10,10 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; import com.nflg.product.base.core.conmon.util.SessionUtil; -import com.nflg.product.bomnew.constant.EBomSourceEnum; -import com.nflg.product.bomnew.constant.OriginalConstant; -import com.nflg.product.bomnew.constant.OriginalSourceEnum; -import com.nflg.product.bomnew.constant.OriginalStatusEnum; +import com.nflg.product.bomnew.constant.*; import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper; import com.nflg.product.bomnew.mapper.master.MaterialMainMapper; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; @@ -25,6 +22,7 @@ import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO; import com.nflg.product.bomnew.pojo.vo.MaterialMateVO; import com.nflg.product.bomnew.service.BomNewEbomParentService; import com.nflg.product.bomnew.service.MaterialMainService; +import com.nflg.product.bomnew.service.UserRoleService; import com.nflg.product.bomnew.util.ListCommonUtil; import com.nflg.product.bomnew.util.VUtils; import com.nflg.product.bomnew.util.VersionUtil; @@ -92,7 +90,7 @@ public class OriginalBomToEBomConvert extends BaseConvert { } //子节点 List parentChild = bomDetail.stream().filter(u -> Objects.nonNull(u.getParentRowId()) && u.getParentRowId().equals(parentEnt.getBomRowId())).collect(Collectors.toList()); - //List parentChildNoMaterilaNoList = parentChild.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); + List parentChildNoMaterilaNoList = parentChild.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList()); //无编码 if (StrUtil.isBlank(parentEnt.getMaterialNo())) { @@ -101,7 +99,7 @@ public class OriginalBomToEBomConvert extends BaseConvert { if(StrUtil.isNotBlank(parentEnt.getDrawingNo())) { SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(ImmutableList.of(parentEnt), BomOriginalListVO::getDrawingNo, BomOriginalListVO::setMaterialNo, BomOriginalListVO::setMaterialName); //子级初始化物料编码 - // SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(parentChildNoMaterilaNoList, BomOriginalListVO::getDrawingNo, BomOriginalListVO::setMaterialNo, BomOriginalListVO::setMaterialName); + SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNo(parentChildNoMaterilaNoList, BomOriginalListVO::getDrawingNo, BomOriginalListVO::setMaterialNo, BomOriginalListVO::setMaterialName); } //合并相同编码的物料 List mergeResult = mergeBOM(parentChild); @@ -233,6 +231,9 @@ public class OriginalBomToEBomConvert extends BaseConvert { eBomParent.setLastVersionIs(1); eBomParent.setModifyTime(LocalDateTime.now()); eBomParent.setBomExist(parentEnt.getBomRowId()>0?1:0); + //工艺岗直接到已复核 + eBomParent.setStatus(SpringUtil.getBean(UserRoleService.class).technician()? EBomStatusEnum.CHECKED.getValue():EBomStatusEnum.WAIT_CHECK.getValue()); + eBomParent.setCreatedJob(SpringUtil.getBean(UserRoleService.class).technician()?UserJobEnum.ENGINEER.getValue():UserJobEnum.DESIGNER.getValue()); if (Objects.nonNull(ebom)) { ebom.setLastVersionIs(0); this.eBomParentResult.add(ebom); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildMapper.xml index 1cb1bf34..1ba9b004 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomChildMapper.xml @@ -47,4 +47,15 @@ join t_bom_new_ebom_child b on a.row_id = b.parent_row_id and a.material_no = #{materialNo} and a.last_version_is = 1 + + + SET @@global.group_concat_max_len=804800; + delete from t_bom_new_ebom_material_use; + INSERT INTO `t_bom_new_ebom_material_use` (`row_id`, `material_no`, `parent_material_no`) + + select min(b.row_id) rowId, b.material_no, GROUP_CONCAt( distinct a.material_no) as value_list + from t_bom_new_ebom_parent a + join t_bom_new_ebom_child b on a.row_id=b.parent_row_id and a.last_version_is=1 + group by b.material_no ; + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomMaterialUseMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomMaterialUseMapper.xml new file mode 100644 index 00000000..db8d0c9b --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomMaterialUseMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + row_id, material_no, parent_material_no + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index 5d3e67af..08f68070 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -1,112 +1,158 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - row_id, batch_no, drawing_no, material_no, order_number, material_name, material_desc, material_texture, material_unit, unit_weight, total_weight, current_version, num, source, project_type, project_type_input_type, root_is,virtrual_package_enum, should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, status, user_root_is, exception_status,virtual_package_is, source_row_id, devise_user_code, devise_name, created_by, created_time, created_job, audit_time, audit_user_name, release_time, release_user_name, revert_time, revert_user_name, expire_end_time, convert_to_ebom_time, remark, dept_name, level_num, change_desc, notice_nums, modify_time + row_id, batch_no, drawing_no, material_no, order_number, material_name, material_desc, material_texture, + material_unit, unit_weight, total_weight, current_version, num, source, project_type, project_type_input_type, + root_is,virtrual_package_enum, should_bom_exist, super_material_status, bom_exist, last_version_is, edit_status, + status, user_root_is, exception_status,virtual_package_is, source_row_id, devise_user_code, devise_name, + created_by, created_time, created_job, audit_time, audit_user_name, release_time, release_user_name, + revert_time, revert_user_name, expire_end_time, convert_to_ebom_time, remark, dept_name, level_num, change_desc, + notice_nums, modify_time + - - - and drawing_no=#{query.drawingNo} - - - and material_no=#{query.materialNo} - - - and devise_name=#{query.deviseName} - - - and created_time between #{query.startDate} and #{query.endDate} - - - and status=1 or status=3 - - - and status=2 or status=4 - - + + + and drawing_no=#{query.drawingNo} + + + and material_no=#{query.materialNo} + + + and devise_name=#{query.deviseName} + + + and created_time between #{query.startDate} and #{query.endDate} + + - + + - - - - - - + + + + + + + + + + + + + + + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/MaterialMainMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/MaterialMainMapper.xml index 09325a1e..ab14af09 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/MaterialMainMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/MaterialMainMapper.xml @@ -70,9 +70,9 @@ + + +