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 5159986c..5e401ea0 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 @@ -1,6 +1,7 @@ package com.nflg.product.bomnew.api.user; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.bomnew.constant.ReportConstant; @@ -9,6 +10,7 @@ import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.ForwardReportService; import com.nflg.product.bomnew.service.ReverseReportService; +import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import nflg.product.common.constant.STATE; @@ -19,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Objects; @@ -93,6 +97,22 @@ public class BomReportApi extends BaseApi { return ResultVO.success(forwardReportService.factoryBomType(query)); } + @PostMapping("forwardExport") + public void export(@RequestBody ReverseReportQuery query, HttpServletResponse response) throws IOException { + + ResultVO resultVO = checkQueryParam(query); + if (resultVO != null) { + VUtils.isTure( true ).throwMessage(resultVO.getMsg()); + } + + forwardReportService.exportBom(query,response); + + } + + + + + @PostMapping("forwardChildReport") @ApiOperation("bom-子级bom信息") @@ -132,4 +152,8 @@ public class BomReportApi extends BaseApi { + + + + } 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 new file mode 100644 index 00000000..7bf0e660 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ForwardReportExcelVO.java @@ -0,0 +1,98 @@ +package com.nflg.product.bomnew.pojo.vo; + +import cn.hutool.core.util.StrUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.ttzero.excel.annotation.ExcelColumn; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class ForwardReportExcelVO { + // @ExcelColumn("bomRowId") + private Long bomRowId=0L; + + public String getBomRowId(){ + + return bomRowId.toString(); + } + // @ExcelColumn("parentRowId") + private Long parentRowId=0L; + + public String getParentRowId(){ + return parentRowId.toString(); + } + + + @ExcelColumn("序号") + private String orderNumber; + + @ExcelColumn("层级") + private Integer levelNum; + + public String getlevelNum(){ + return StrUtil.repeat(".",levelNum)+levelNum; + + } + + + @ExcelColumn(value = "版本号") + private String currentVersion; //设计人员 + + + @ExcelColumn("物料名称") + private String materialName; + + @ExcelColumn("物料编码") + private String materialNo; + + + @ExcelColumn("图号") + private String drawingNo; + @ApiModelProperty("物料描述") + private String materialDesc; + + + @ExcelColumn(value = "项目类别") + + private String projectType; + @ExcelColumn( "数量") + private BigDecimal num; + @ExcelColumn("单重") + private BigDecimal unitWeight; + + + + @ExcelColumn("单位") + private String materialUnit; + + + @ExcelColumn("总重") + private BigDecimal totalWeight; + + + @ExcelColumn("创建时间") + private LocalDateTime createdTime; + + @ExcelColumn("版本过期时间") + private LocalDateTime expireEndTime; + + @ExcelColumn("设计人员") + private String deviseName; + + //设计维护部门名称 + @ExcelColumn("设计维护部门") + private String deptName; + @ExcelColumn("是否有BOM") + private String childBomStatus; + + public String getChildBomStatus(){ + if(bomRowId>0){ + return "有Bom"; + }else{ + return "无Bom"; + } + } + +} 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 587f6ad6..baf19aa2 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 @@ -14,9 +14,14 @@ import com.nflg.product.bomnew.pojo.vo.*; import com.nflg.product.bomnew.service.domain.EBom.EBomForwardReport; import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomForwardReport; import com.nflg.product.bomnew.service.domain.PBom.PBomForwardReport; +import com.nflg.product.bomnew.util.EecExcelUtil; import com.nflg.product.bomnew.util.VUtils; import org.springframework.stereotype.Service; +import org.ttzero.excel.entity.ListSheet; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; import java.lang.reflect.Type; import java.util.List; @@ -108,6 +113,60 @@ public class ForwardReportService { } + public void exportBom(ReverseReportQuery query,HttpServletResponse response) 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()); + } + + //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()); + } + + //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()); + } + //MBOM + if (query.getBomType().compareTo(ReportConstant.BomTypeEnum.MBOM.getValue()) == 0) { + + } + + VUtils.isTure(true).throwMessage("错误的BOM类型"); + + + } + 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; + } + }; + EecExcelUtil.eecExcel("BOM查看列表", listSheet, outputStream); + + } + + + + + List chilidEBomList(ChildBomReportQuery query) { // QueryWrapper queryWrapper = new QueryWrapper<>(); // queryWrapper.lambda().eq(BomNewEbomChildFormalEntity::getParentRowId, query.getBomRowId()); @@ -166,4 +225,9 @@ public class ForwardReportService { } + + + + + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/BaseForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/BaseForwardReport.java index d1c612d0..1627d2b8 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/BaseForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/BaseForwardReport.java @@ -83,6 +83,10 @@ public abstract class BaseForwardReport { if (dataStyle.compareTo(ReportConstant.DataTypeEnum.LIST.getValue()) == 0) { //列表 rootList = listToList(bomList, parentRowId); + + + Collections.sort(rootList, (option0, option1) -> Integer.parseInt(option0.getOrderNumber()) - Integer.parseInt(option1.getOrderNumber())); + } else if (dataStyle.compareTo(ReportConstant.DataTypeEnum.TREE.getValue()) == 0) { //转化为树结构 rootList = listToTree(bomList, parentRowId); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java index 63fda868..4ecf8a5c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomForwardReport.java @@ -110,19 +110,23 @@ public class EBomForwardReport extends BaseForwardReport { // List list = SpringUtil.getBean(BomNewEbomChildFormalService.class).list(queryWrapper); // List list = SpringUtil.getBean(BomNewEbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); - List nodeList=null; + List nodeList = null; if (CollectionUtil.isNotEmpty(list)) { - nodeList = Convert.convert(new TypeReference>() { + nodeList = Convert.convert(new TypeReference>() { }, list); + AtomicInteger orderNum = new AtomicInteger(); for (ForwardReportVO vo : nodeList) { vo.setCreatedTime(forwardReportVO.getCreatedTime()); vo.setLevelNum(1); + vo.setOrderNumber(orderNum.incrementAndGet() + ""); // vo.setOrderNumber(""); } + // Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber())); + } return buildReportBomVo(forwardReportVO,nodeList); @@ -201,6 +205,7 @@ public class EBomForwardReport extends BaseForwardReport { //转化为树结构 rootList = showDataStyle(convertBomList, parentFormal.getRowId()); + return buildReportBomVo(forwardReportVO,rootList,query.getDataType()); @@ -230,6 +235,14 @@ public class EBomForwardReport extends BaseForwardReport { //无子级的数据 List sumList =leafMergeMaterialNo(convertBomList); + AtomicInteger orderNum = new AtomicInteger(); + for (ForwardReportVO vo : + sumList) { + + vo.setLevelNum(1); + vo.setOrderNumber(orderNum.incrementAndGet() + ""); + + } return buildReportBomVo(forwardReportVO,sumList); } 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 6a62c79e..e6fe63ac 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 @@ -86,13 +86,14 @@ public class OriginalBomForwardReport extends BaseForwardReport { List nodeList=null; if (CollectionUtil.isNotEmpty(list)) { - + int noNum=1; nodeList = Convert.convert(new TypeReference>() { }, list); for (ForwardReportVO vo : nodeList) { vo.setCreatedTime(parentFormal.getConvertToEbomTime()); vo.setLevelNum(1); + vo.setOrderNumber(noNum+"");noNum++; // vo.setOrderNumber(""); } @@ -168,7 +169,12 @@ public class OriginalBomForwardReport extends BaseForwardReport { //无子级的数据 List sumList =leafMergeMaterialNo(convertBomList); + int noNum=1; + for (ForwardReportVO vo : + sumList) { + vo.setOrderNumber(noNum+"");noNum++; + } return buildReportBomVo(forwardReportVO,sumList); } 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 3460af80..5041e3ac 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 @@ -124,10 +124,14 @@ public class PBomForwardReport extends BaseForwardReport { nodeList = Convert.convert(new TypeReference>() { }, list); + int noNum=1; for (ForwardReportVO vo : nodeList) { vo.setCreatedTime(forwardReportVO.getCreatedTime()); vo.setLevelNum(1); + vo.setOrderNumber(noNum+""); + noNum++; + } } @@ -238,7 +242,10 @@ public class PBomForwardReport extends BaseForwardReport { sumLevel(convertBomList); List sumList =leafMergeMaterialNo(convertBomList); - + int noNum=1; + for(ForwardReportVO vo:sumList){ + vo.setOrderNumber(noNum+"");noNum++; + } return buildReportBomVo(forwardReportVO,sumList); }