Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom
This commit is contained in:
commit
4ded5800f8
|
|
@ -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 {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue