Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom

This commit is contained in:
大米 2024-02-24 10:30:01 +08:00
commit 4ded5800f8
7 changed files with 220 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package com.nflg.product.bomnew.api.user; package com.nflg.product.bomnew.api.user;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.api.BaseApi;
import com.nflg.product.bomnew.constant.ReportConstant; 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.pojo.vo.*;
import com.nflg.product.bomnew.service.ForwardReportService; import com.nflg.product.bomnew.service.ForwardReportService;
import com.nflg.product.bomnew.service.ReverseReportService; import com.nflg.product.bomnew.service.ReverseReportService;
import com.nflg.product.bomnew.util.VUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import nflg.product.common.constant.STATE; 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 org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -93,6 +97,22 @@ public class BomReportApi extends BaseApi {
return ResultVO.success(forwardReportService.factoryBomType(query)); 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") @PostMapping("forwardChildReport")
@ApiOperation("bom-子级bom信息") @ApiOperation("bom-子级bom信息")
@ -132,4 +152,8 @@ public class BomReportApi extends BaseApi {
} }

View File

@ -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";
}
}
}

View File

@ -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.EBom.EBomForwardReport;
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomForwardReport; import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomForwardReport;
import com.nflg.product.bomnew.service.domain.PBom.PBomForwardReport; import com.nflg.product.bomnew.service.domain.PBom.PBomForwardReport;
import com.nflg.product.bomnew.util.EecExcelUtil;
import com.nflg.product.bomnew.util.VUtils; import com.nflg.product.bomnew.util.VUtils;
import org.springframework.stereotype.Service; 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.lang.reflect.Type;
import java.util.List; 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<ForwardReportVO> list,OutputStream outputStream) throws IOException {
final ListSheet<ForwardReportExcelVO> listSheet = new ListSheet<ForwardReportExcelVO>() {
Long n = 0L;
Long pages = 1L;
@Override
protected List<ForwardReportExcelVO> more() {
return n++ < pages ? Convert.convert(new TypeReference<List<ForwardReportExcelVO>>() {
}, list) : null;
}
};
EecExcelUtil.eecExcel("BOM查看列表", listSheet, outputStream);
}
List<ForwardReportVO> chilidEBomList(ChildBomReportQuery query) { List<ForwardReportVO> chilidEBomList(ChildBomReportQuery query) {
// QueryWrapper<BomNewEbomChildFormalEntity> queryWrapper = new QueryWrapper<>(); // QueryWrapper<BomNewEbomChildFormalEntity> queryWrapper = new QueryWrapper<>();
// queryWrapper.lambda().eq(BomNewEbomChildFormalEntity::getParentRowId, query.getBomRowId()); // queryWrapper.lambda().eq(BomNewEbomChildFormalEntity::getParentRowId, query.getBomRowId());
@ -166,4 +225,9 @@ public class ForwardReportService {
} }
} }

View File

@ -83,6 +83,10 @@ public abstract class BaseForwardReport {
if (dataStyle.compareTo(ReportConstant.DataTypeEnum.LIST.getValue()) == 0) { if (dataStyle.compareTo(ReportConstant.DataTypeEnum.LIST.getValue()) == 0) {
//列表 //列表
rootList = listToList(bomList, parentRowId); 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) { } else if (dataStyle.compareTo(ReportConstant.DataTypeEnum.TREE.getValue()) == 0) {
//转化为树结构 //转化为树结构
rootList = listToTree(bomList, parentRowId); rootList = listToTree(bomList, parentRowId);

View File

@ -110,19 +110,23 @@ public class EBomForwardReport extends BaseForwardReport {
// List<BomNewEbomChildFormalEntity> list = SpringUtil.getBean(BomNewEbomChildFormalService.class).list(queryWrapper); // List<BomNewEbomChildFormalEntity> list = SpringUtil.getBean(BomNewEbomChildFormalService.class).list(queryWrapper);
// //
List<BomNewEbomParentFormalVO> list = SpringUtil.getBean(BomNewEbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId()); List<BomNewEbomParentFormalVO> list = SpringUtil.getBean(BomNewEbomParentFormalService.class).getBaseMapper().getParentChild(parentFormal.getRowId());
List<ForwardReportVO> nodeList=null; List<ForwardReportVO> nodeList = null;
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() { nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, list); }, list);
AtomicInteger orderNum = new AtomicInteger();
for (ForwardReportVO vo : for (ForwardReportVO vo :
nodeList) { nodeList) {
vo.setCreatedTime(forwardReportVO.getCreatedTime()); vo.setCreatedTime(forwardReportVO.getCreatedTime());
vo.setLevelNum(1); vo.setLevelNum(1);
vo.setOrderNumber(orderNum.incrementAndGet() + "");
// vo.setOrderNumber(""); // vo.setOrderNumber("");
} }
// Collections.sort(nodeList, (option0, option1) -> option0.getOrderNumber().compareTo(option1.getOrderNumber()));
} }
return buildReportBomVo(forwardReportVO,nodeList); return buildReportBomVo(forwardReportVO,nodeList);
@ -201,6 +205,7 @@ public class EBomForwardReport extends BaseForwardReport {
//转化为树结构 //转化为树结构
rootList = showDataStyle(convertBomList, parentFormal.getRowId()); rootList = showDataStyle(convertBomList, parentFormal.getRowId());
return buildReportBomVo(forwardReportVO,rootList,query.getDataType()); return buildReportBomVo(forwardReportVO,rootList,query.getDataType());
@ -230,6 +235,14 @@ public class EBomForwardReport extends BaseForwardReport {
//无子级的数据 //无子级的数据
List<ForwardReportVO> sumList =leafMergeMaterialNo(convertBomList); List<ForwardReportVO> sumList =leafMergeMaterialNo(convertBomList);
AtomicInteger orderNum = new AtomicInteger();
for (ForwardReportVO vo :
sumList) {
vo.setLevelNum(1);
vo.setOrderNumber(orderNum.incrementAndGet() + "");
}
return buildReportBomVo(forwardReportVO,sumList); return buildReportBomVo(forwardReportVO,sumList);
} }

View File

@ -86,13 +86,14 @@ public class OriginalBomForwardReport extends BaseForwardReport {
List<ForwardReportVO> nodeList=null; List<ForwardReportVO> nodeList=null;
if (CollectionUtil.isNotEmpty(list)) { if (CollectionUtil.isNotEmpty(list)) {
int noNum=1;
nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() { nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, list); }, list);
for (ForwardReportVO vo : for (ForwardReportVO vo :
nodeList) { nodeList) {
vo.setCreatedTime(parentFormal.getConvertToEbomTime()); vo.setCreatedTime(parentFormal.getConvertToEbomTime());
vo.setLevelNum(1); vo.setLevelNum(1);
vo.setOrderNumber(noNum+"");noNum++;
// vo.setOrderNumber(""); // vo.setOrderNumber("");
} }
@ -168,7 +169,12 @@ public class OriginalBomForwardReport extends BaseForwardReport {
//无子级的数据 //无子级的数据
List<ForwardReportVO> sumList =leafMergeMaterialNo(convertBomList); List<ForwardReportVO> sumList =leafMergeMaterialNo(convertBomList);
int noNum=1;
for (ForwardReportVO vo :
sumList) {
vo.setOrderNumber(noNum+"");noNum++;
}
return buildReportBomVo(forwardReportVO,sumList); return buildReportBomVo(forwardReportVO,sumList);
} }

View File

@ -124,10 +124,14 @@ public class PBomForwardReport extends BaseForwardReport {
nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() { nodeList = Convert.convert(new TypeReference<List<ForwardReportVO>>() {
}, list); }, list);
int noNum=1;
for (ForwardReportVO vo : for (ForwardReportVO vo :
nodeList) { nodeList) {
vo.setCreatedTime(forwardReportVO.getCreatedTime()); vo.setCreatedTime(forwardReportVO.getCreatedTime());
vo.setLevelNum(1); vo.setLevelNum(1);
vo.setOrderNumber(noNum+"");
noNum++;
} }
} }
@ -238,7 +242,10 @@ public class PBomForwardReport extends BaseForwardReport {
sumLevel(convertBomList); sumLevel(convertBomList);
List<ForwardReportVO> sumList =leafMergeMaterialNo(convertBomList); List<ForwardReportVO> sumList =leafMergeMaterialNo(convertBomList);
int noNum=1;
for(ForwardReportVO vo:sumList){
vo.setOrderNumber(noNum+"");noNum++;
}
return buildReportBomVo(forwardReportVO,sumList); return buildReportBomVo(forwardReportVO,sumList);
} }