From 3ad6f0c78567be17ce5816bc1cd92595864b0cac Mon Sep 17 00:00:00 2001 From: jing's Date: Mon, 11 Mar 2024 23:14:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/api/user/BomReportApi.java | 5 +- .../bomnew/pojo/vo/ForwardReportExcelVO.java | 21 ++++----- .../bomnew/pojo/vo/ForwardReportVO.java | 14 ++++++ .../bomnew/service/ForwardReportService.java | 46 ++++++++++++------- .../bomnew/service/MaterialMainService.java | 13 ++++++ .../domain/EBom/EBomFormalTreeTask.java | 2 +- .../domain/EBom/EBomForwardReport.java | 18 +++++--- .../domain/MBom/MBomForwardReport.java | 15 ++++-- .../OriginalBom/OriginalBomForwardReport.java | 14 +++++- .../domain/PBom/PBomForwardReport.java | 14 ++++-- .../master/BomNewEbomParentFormalMapper.xml | 2 +- 11 files changed, 115 insertions(+), 49 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java index ce19c106..458344e6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/BomReportApi.java @@ -156,14 +156,15 @@ public class BomReportApi extends BaseApi { @PostMapping("forwardExport") @ApiOperation("bom-正查导出") - public void export(@RequestBody ReverseReportQuery query, HttpServletResponse response) throws IOException { + public void forwardExport(@RequestBody ReverseReportQuery query, HttpServletResponse response) throws IOException { ResultVO resultVO = checkQueryParam(query); if (resultVO != null) { VUtils.isTure( true ).throwMessage(resultVO.getMsg()); } - forwardReportService.exportBom(query,response); + EecExcelUtil.setResponseExcelHeader(response, "Bom查看列表"); + forwardReportService.bomExport(query,response.getOutputStream()); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportExcelVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportExcelVO.java index 7bf0e660..80809222 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportExcelVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportExcelVO.java @@ -25,16 +25,16 @@ public class ForwardReportExcelVO { } - @ExcelColumn("序号") + // @ExcelColumn("序号") private String orderNumber; @ExcelColumn("层级") private Integer levelNum; - public String getlevelNum(){ - return StrUtil.repeat(".",levelNum)+levelNum; - - } +// public String getlevelNum(){ +// return StrUtil.repeat(".",levelNum)+levelNum; +// +// } @ExcelColumn(value = "版本号") @@ -47,6 +47,8 @@ public class ForwardReportExcelVO { @ExcelColumn("物料编码") private String materialNo; + @ExcelColumn("物料类别") + private String categoryName; @ExcelColumn("图号") private String drawingNo; @@ -55,20 +57,17 @@ public class ForwardReportExcelVO { @ExcelColumn(value = "项目类别") - private String projectType; @ExcelColumn( "数量") private BigDecimal num; @ExcelColumn("单重") private BigDecimal unitWeight; - - @ExcelColumn("单位") private String materialUnit; - @ExcelColumn("总重") + // @ExcelColumn("总重") private BigDecimal totalWeight; @@ -82,9 +81,9 @@ public class ForwardReportExcelVO { private String deviseName; //设计维护部门名称 - @ExcelColumn("设计维护部门") +// @ExcelColumn("设计维护部门") private String deptName; - @ExcelColumn("是否有BOM") + // @ExcelColumn("是否有BOM") private String childBomStatus; public String getChildBomStatus(){ diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java index 0d8ab141..aac34b9f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportVO.java @@ -54,9 +54,23 @@ public class ForwardReportVO extends BaseMaterialVO { @ApiModelProperty(value = "数量") private BigDecimal num; + /** + * 单重 + */ + @ApiModelProperty(value = "单重") + private BigDecimal unitWeight; + + /** + * 总重 + */ + @ApiModelProperty(value = "总重") + private BigDecimal totalWeight; @ApiModelProperty(value = "创建人编码") private String createdBy; + @ApiModelProperty(value = "创建人") + private String deviseName; + @ApiModelProperty(value = "创建时间-有效开始时间") private LocalDateTime createdTime; diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java index e6c280f7..d04b5393 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/ForwardReportService.java @@ -120,34 +120,43 @@ public class ForwardReportService { } - public void exportBom(ReverseReportQuery query,HttpServletResponse response) throws IOException { + public void bomExport(ReverseReportQuery query,OutputStream outputStream) throws IOException { //原始BOM if (query.getBomType().compareTo(ReportConstant.BomTypeEnum.ORIGINALBOM.getValue()) == 0) { OriginalBomForwardReport originalBomForwardReport=new OriginalBomForwardReport(query); ReportBomVO reportBomVO = originalBomForwardReport.genReport(); - EecExcelUtil.setResponseExcelHeader(response, "原始BOM查看列表"); - exportExcel(reportBomVO.getChildNodes(),response.getOutputStream()); + + exportExcel(reportBomVO.getChildNodes(),outputStream); + return; } //EBOM if (query.getBomType().compareTo(ReportConstant.BomTypeEnum.EBOM.getValue()) == 0) { EBomForwardReport eBomForwardReport = new EBomForwardReport(query); ReportBomVO reportBomVO = eBomForwardReport.genReport(); - EecExcelUtil.setResponseExcelHeader(response, "EBOM查看列表"); - exportExcel(reportBomVO.getChildNodes(),response.getOutputStream()); + + exportExcel(reportBomVO.getChildNodes(),outputStream); + return; } //PBOM if (query.getBomType().compareTo(ReportConstant.BomTypeEnum.PBOM.getValue()) == 0) { PBomForwardReport pBomForwardReport=new PBomForwardReport(query); ReportBomVO reportBomVO = pBomForwardReport.genReport(); - EecExcelUtil.setResponseExcelHeader(response, "PBOM查看列表"); - exportExcel(reportBomVO.getChildNodes(),response.getOutputStream()); + + exportExcel(reportBomVO.getChildNodes(),outputStream); + + return; } //MBOM if (query.getBomType().compareTo(ReportConstant.BomTypeEnum.MBOM.getValue()) == 0) { + MBomForwardReport mBomForwardReport=new MBomForwardReport(query); + ReportBomVO reportBomVO = mBomForwardReport.genReport(); + + exportExcel(reportBomVO.getChildNodes(),outputStream); + return; } VUtils.isTure(true).throwMessage("错误的BOM类型"); @@ -156,16 +165,19 @@ public class ForwardReportService { } public void exportExcel( List list,OutputStream outputStream) throws IOException { - final ListSheet listSheet = new ListSheet() { - Long n = 0L; - Long pages = 1L; - - @Override - protected List more() { - return n++ < pages ? Convert.convert(new TypeReference>() { - }, list) : null; - } - }; +// final ListSheet listSheet = new ListSheet() { +// Long n = 0L; +// Long pages = 1L; +// +// @Override +// protected List more() { +// return n++ < pages ? Convert.convert(new TypeReference>() { +// }, list) : null; +// } +// }; + List exportList= Convert.convert( new TypeReference>() { + }, list); + ListSheet listSheet=new ListSheet<>(exportList); EecExcelUtil.eecExcel("BOM查看列表", listSheet, outputStream); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java index f33dcded..ad1fb2ff 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialMainService.java @@ -175,6 +175,7 @@ public class MaterialMainService extends ServiceImpl void intiMaterialInfo(List data, Function getMaterialFun,String ... ignorePropertyList) { List materialNos = data.stream().filter(u -> StrUtil.isNotBlank(getMaterialFun.apply(u))).map(u -> getMaterialFun.apply(u)).collect(Collectors.toList()); if (CollUtil.isNotEmpty(materialNos)) { + List materialBaseInfos = SpringUtil.getBean(MaterialMainService.class).getMaterialBaseInfo(materialNos); Map materialMp = ListCommonUtil.listToMap(materialBaseInfos, BaseMaterialVO::getMaterialNo); for (T t : data) { @@ -184,7 +185,19 @@ public class MaterialMainService extends ServiceImpl void intiMaterialInfoDrawingNo(List data, Function getMaterialFun,String ... ignorePropertyList) { + List materialNos = data.stream().filter(u -> StrUtil.isNotBlank(getMaterialFun.apply(u))).map(u -> getMaterialFun.apply(u)).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(materialNos)) { + List materialBaseInfos = SpringUtil.getBean(MaterialMainMapper.class).getMaterialByAnyNo(materialNos); + Map materialMp = ListCommonUtil.listToMap(materialBaseInfos, BaseMaterialVO::getDrawingNo); + for (T t : data) { + if (StrUtil.isNotBlank(getMaterialFun.apply(t)) && materialMp.containsKey(getMaterialFun.apply(t))) { + BeanUtil.copyProperties(materialMp.get(getMaterialFun.apply(t)), t,ignorePropertyList); + } + } + } + } /** * 通过图号初始化BOM信息 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java index 61115d4a..65bc6d87 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalTreeTask.java @@ -58,7 +58,7 @@ public class EBomFormalTreeTask extends RecursiveTask queryWrapper = new QueryWrapper<>(); -// queryWrapper.lambda().eq(BomNewEbomChildFormalEntity::getParentRowId, parentFormal.getRowId()); -// -// List list = SpringUtil.getBean(BomNewEbomChildFormalService.class).list(queryWrapper); -// + List list = SpringUtil.getBean(BomNewEbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); + initMaterialInfo(list); List nodeList = null; if (CollectionUtil.isNotEmpty(list)) { @@ -123,7 +122,10 @@ public class EBomForwardReport extends BaseForwardReport { vo.setCreatedTime(forwardReportVO.getCreatedTime()); vo.setLevelNum(1); vo.setOrderNumber(orderNum.incrementAndGet() + ""); - // vo.setOrderNumber(""); + vo.setDeviseName(forwardReportVO.getDeviseName()); + vo.setCurrentVersion(forwardReportVO.getCurrentVersion()); + + } // Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber())); @@ -181,9 +183,13 @@ public class EBomForwardReport extends BaseForwardReport { ForkJoinTask> submit = pool.submit(task); List bomList = submit.join(); + initMaterialInfo(bomList); return bomList; } + void initMaterialInfo( List list){ + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list,BomNewEbomParentFormalVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + } /** * 多层 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/MBomForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/MBomForwardReport.java index a8678d61..e4a4ad1a 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/MBomForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/MBom/MBomForwardReport.java @@ -10,6 +10,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nflg.product.base.core.exception.NflgBusinessException; +import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.MaterialMainConstant; import com.nflg.product.bomnew.constant.ReportConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; @@ -17,13 +18,11 @@ import com.nflg.product.bomnew.pojo.entity.BomNewMbomDetailEntity; import com.nflg.product.bomnew.pojo.entity.BomNewMbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; -import com.nflg.product.bomnew.pojo.vo.BomNewMbomMiddleVO; -import com.nflg.product.bomnew.pojo.vo.ForwardReportVO; -import com.nflg.product.bomnew.pojo.vo.ReportBomVO; -import com.nflg.product.bomnew.pojo.vo.ReportBomVersionVO; +import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.BomNewMbomDetailService; import com.nflg.product.bomnew.service.BomNewMbomParentService; import com.nflg.product.bomnew.service.BomNewPbomParentFormalService; +import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.domain.BaseForwardReport; import nflg.product.common.constant.STATE; @@ -177,6 +176,7 @@ public class MBomForwardReport extends BaseForwardReport { while (!rowIdList.isEmpty()) { List childList = SpringUtil.getBean(BomNewMbomParentService.class).getBaseMapper().getParentChild(rowIdList, bomRowId); rowIdList.clear(); + initMaterialInfo(childList); if (CollUtil.isNotEmpty(childList)) { reportVOList.addAll(convertToReportData(childList, levelNum)); levelNum++; @@ -218,7 +218,9 @@ public class MBomForwardReport extends BaseForwardReport { } - + void initMaterialInfo( List list){ + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list,BomNewMbomMiddleVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + } /** * 单层 * @@ -237,6 +239,9 @@ public class MBomForwardReport extends BaseForwardReport { } + + + /** * 汇总 * @return diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomForwardReport.java index ee5ce1d7..ccbb8b19 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/OriginalBom/OriginalBomForwardReport.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nflg.product.base.core.exception.NflgBusinessException; +import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.OriginalStatusEnum; import com.nflg.product.bomnew.constant.ReportConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; @@ -15,6 +16,7 @@ import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; import com.nflg.product.bomnew.service.BomNewOriginalParentService; +import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.domain.BaseForwardReport; import com.nflg.product.bomnew.service.domain.EBom.EBomFormalTreeTask; import com.nflg.product.bomnew.util.VersionUtil; @@ -94,6 +96,7 @@ public class OriginalBomForwardReport extends BaseForwardReport { // List list = SpringUtil.getBean(BomNewEbomChildFormalService.class).list(queryWrapper); // List list = SpringUtil.getBean(BomNewOriginalParentService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); + initMaterialInfo(list); List nodeList=null; if (CollectionUtil.isNotEmpty(list)) { @@ -104,8 +107,10 @@ public class OriginalBomForwardReport extends BaseForwardReport { nodeList) { vo.setCreatedTime(parentFormal.getConvertToEbomTime()); vo.setLevelNum(1); + vo.setCurrentVersion(parentFormal.getCurrentVersion()); + vo.setDeviseName(parentFormal.getDeviseName()); vo.setOrderNumber(noNum+"");noNum++; - // vo.setOrderNumber(""); + } } @@ -115,6 +120,12 @@ public class OriginalBomForwardReport extends BaseForwardReport { +void initMaterialInfo( List list){ + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfoDrawingNo(list,BomOriginalListVO::getDrawingNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + +} + + /** * bomid下所有数据 * @@ -127,6 +138,7 @@ public class OriginalBomForwardReport extends BaseForwardReport { ForkJoinTask> submit = pool.submit(task); List bomList = submit.join(); + initMaterialInfo(bomList); return bomList; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java index 5041e3ac..00392ecd 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomForwardReport.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.nflg.product.base.core.exception.NflgBusinessException; +import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.ReportConstant; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; @@ -14,10 +15,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildFormalEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; import com.nflg.product.bomnew.pojo.vo.*; -import com.nflg.product.bomnew.service.BomNewEbomChildFormalService; -import com.nflg.product.bomnew.service.BomNewEbomParentFormalService; -import com.nflg.product.bomnew.service.BomNewPbomChildFormalService; -import com.nflg.product.bomnew.service.BomNewPbomParentFormalService; +import com.nflg.product.bomnew.service.*; import com.nflg.product.bomnew.service.domain.BaseForwardReport; import com.nflg.product.bomnew.service.domain.EBom.EBomFormalTreeTask; import com.nflg.product.bomnew.util.VersionUtil; @@ -119,6 +117,7 @@ public class PBomForwardReport extends BaseForwardReport { // List list = SpringUtil.getBean(BomNewPbomChildFormalService.class).list(queryWrapper); List list = SpringUtil.getBean(BomNewPbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); + initMaterialInfo(list); List nodeList=null; if (CollectionUtil.isNotEmpty(list)) { @@ -128,6 +127,8 @@ public class PBomForwardReport extends BaseForwardReport { for (ForwardReportVO vo : nodeList) { vo.setCreatedTime(forwardReportVO.getCreatedTime()); + vo.setDeviseName(forwardReportVO.getDeviseName()); + vo.setCurrentVersion(forwardReportVO.getCurrentVersion()); vo.setLevelNum(1); vo.setOrderNumber(noNum+""); noNum++; @@ -139,7 +140,9 @@ public class PBomForwardReport extends BaseForwardReport { return buildReportBomVo(forwardReportVO,nodeList); } - + void initMaterialInfo( List list){ + SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(list,BomNewPbomParentFormalVO::getMaterialNo, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT2); + } /** * 版本 * @@ -192,6 +195,7 @@ public class PBomForwardReport extends BaseForwardReport { ForkJoinTask> submit = pool.submit(task); List bomList = submit.join(); + initMaterialInfo(bomList); return bomList; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml index 114be8c6..e07dc1fb 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentFormalMapper.xml @@ -72,7 +72,7 @@