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 aeeb8401..0d90b10c 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,10 +1,10 @@ package com.nflg.product.bomnew.api.user; -import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.ImmutableList; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.exception.NflgBusinessException; @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.ttzero.excel.entity.ListSheet; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -219,5 +220,28 @@ public class BomReportApi extends BaseApi { return ResultVO.success(forwardReportService.factoryVersion(query)); } - + /** + * 反查导出 + */ + @PostMapping("reverseExport") + @ApiOperation("反查导出") + public void reverseExport(@RequestBody ReverseReportQuery query, HttpServletResponse response) throws IOException { + ResultVO resultVO = checkQueryParam(query); + if (resultVO != null) { + VUtils.isTure(true).throwMessage(resultVO.getMsg()); + } + if (query.getBomType().equals(1)) { + EecExcelUtil.setResponseExcelHeader(response, "eBom反查列表"); + List exportList = Convert.convert(new TypeReference>() { + }, reverseReportService.queryEBom(query)); + ListSheet listSheet = new ListSheet<>(exportList); + EecExcelUtil.eecExcel("eBom反查列表", listSheet, response); + } else if (query.getBomType().equals(2)) { + EecExcelUtil.setResponseExcelHeader(response, "pBom反查列表"); + List exportList = Convert.convert(new TypeReference>() { + }, reverseReportService.queryPBom(query)); + ListSheet listSheet = new ListSheet<>(exportList); + EecExcelUtil.eecExcel("pBom反查列表", listSheet, response); + } + } } 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 15cc1529..53b6d8da 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 @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.mapper.master; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import com.nflg.product.bomnew.pojo.vo.ChildMaxExceptionStateVO; import org.apache.ibatis.annotations.Param; @@ -34,4 +35,6 @@ public interface BomNewEbomChildMapper extends BaseMapper void deleteAllChildren(Long rowId); void delBomChild(@Param("bomRowIds") List bomRowIds); + + List getBomByMaterialNo(String materialNo); } 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 801174e9..90f8ab7f 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 @@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; -import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; -import com.nflg.product.bomnew.pojo.vo.BomNewEbomUpgradeChangeVO; -import com.nflg.product.bomnew.pojo.vo.MaterialHistoryProjectTypeVO; -import com.nflg.product.bomnew.pojo.vo.ReverseReportVO; +import com.nflg.product.bomnew.pojo.vo.*; import org.apache.ibatis.annotations.Param; import java.util.Collection; @@ -110,4 +107,6 @@ public interface BomNewEbomParentMapper extends BaseMapper getLatestByMaterialNo(Collection materialNos); void updateLastVersionIs(); + + List getReverseBoms(Long parentRowId); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomChildMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomChildMapper.java index 91a3e5ea..a13961e7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomChildMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomChildMapper.java @@ -3,6 +3,7 @@ package com.nflg.product.bomnew.mapper.master; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -27,4 +28,6 @@ public interface BomNewPbomChildMapper extends BaseMapper List getChildrenByChildRowId(Long rowId); void setParentRowId(List rowIds, Long parentRowId); + + List getBomByMaterialNo(String materialNo, String facCode); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentFormalMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentFormalMapper.java index e7f7c7dd..4f48e505 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentFormalMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentFormalMapper.java @@ -2,11 +2,9 @@ package com.nflg.product.bomnew.mapper.master; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; -import com.nflg.product.bomnew.pojo.query.BomNewPbomParentQuery; -import com.nflg.product.bomnew.pojo.vo.*; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentFormalVO; +import com.nflg.product.bomnew.pojo.vo.ReverseReportVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -25,6 +23,6 @@ public interface BomNewPbomParentFormalMapper extends BaseMapper pBomSingleReverseReport(@Param("bomVersionRowId")Long bomVersionRowId,@Param("startDate") String startDate, @Param("endDate")String endDate, @Param("materialNos")List materialNos); + List pBomSingleReverseReport(@Param("bomVersionRowId") Long bomVersionRowId, @Param("startDate") String startDate, @Param("endDate") String endDate, String materialNo, String faCode); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java index fdc82130..b823bf83 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java @@ -71,4 +71,6 @@ public interface BomNewPbomParentMapper extends BaseMapper getSapErrorWorksheet(Page page, String userCode); Integer getSapErrorNum(String userCode); + + List getReverseBoms(Long parentRowId); } 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 7ab95606..f85a8f44 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 @@ -1,7 +1,5 @@ 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; @@ -41,8 +39,11 @@ public class ForwardReportExcelVO { private String currentVersion; //设计人员 + // @ExcelColumn("物料名称") + // private String materialName; + @ExcelColumn("物料名称") - private String materialName; + private String materialDesc; @ExcelColumn("物料编码") private String materialNo; @@ -52,8 +53,6 @@ public class ForwardReportExcelVO { @ExcelColumn("图号") private String drawingNo; - @ApiModelProperty("物料描述") - private String materialDesc; @ExcelColumn(value = "项目类别") diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java index 7fcdf4db..9db39f46 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/vo/ReverseReportVO.java @@ -75,6 +75,12 @@ public class ReverseReportVO { @ApiModelProperty("物料行id") private Long materialRowId; + @ApiModelProperty("单重") + private BigDecimal unitWeight; + + @ApiModelProperty("设计人员") + private String deviseName; + public LocalDateTime getExpireEndTime(){ return Objects.isNull(expireEndTime)? LocalDateTime.parse("9999-12-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")):expireEndTime; } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java index e6b11352..0f76ff7f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomChildService.java @@ -4,11 +4,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper; import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import org.springframework.stereotype.Service; import java.util.Collection; -import java.util.concurrent.CompletableFuture; import java.util.List; +import java.util.concurrent.CompletableFuture; /** @@ -34,4 +35,8 @@ public class BomNewEbomChildService extends ServiceImpl getBomByMaterialNo(String materialNo) { + return baseMapper.getBomByMaterialNo(materialNo); + } } 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 d5cf37e8..94d5819c 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 @@ -48,7 +48,6 @@ import java.io.OutputStream; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; @@ -1398,6 +1397,7 @@ public class BomNewEbomParentService extends ServiceImpl materailNos = new HashSet<>(); + delete(parent, materailNos); - CompletableFuture.runAsync(this::updateLastVersionIs); + updateLastVersionIs1(materailNos); return true; } - private void delete(BomNewEbomParentEntity parent) { + private void delete(BomNewEbomParentEntity parent, Set materailNos) { VUtils.isTure(!(StrUtil.equals(parent.getCreatedBy(), SessionUtil.getUserCode()) || Objects.equals(parent.getVirtualPackageIs(), 1))) .throwMessage("只能删除虚拟包和自己创建的数据"); this.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewEbomParentEntity.class) .eq(BomNewEbomParentEntity::getRowId, parent.getRowId())); + materailNos.add(parent.getMaterialNo()); Set materialNos = ebomChildService.lambdaQuery() .select(BomNewEbomChildEntity::getMaterialNo) @@ -2742,11 +2747,14 @@ public class BomNewEbomParentService extends ServiceImpl deleteParents = parents.stream() .filter(p -> StrUtil.equals(p.getCreatedBy(), SessionUtil.getUserCode()) || Objects.equals(p.getVirtualPackageIs(), 1)) .collect(Collectors.toList()); - deleteParents.forEach(this::delete); + deleteParents.forEach(it -> delete(it, materailNos)); } - private void updateLastVersionIs() { - this.getBaseMapper().updateLastVersionIs(); + private void updateLastVersionIs1(Collection materialNos) { + lambdaUpdate() + .in(BomNewEbomParentEntity::getMaterialNo, materialNos) + .set(BomNewEbomParentEntity::getLastVersionIs, 1) + .update(); } @Transactional(rollbackFor = Exception.class) @@ -2785,6 +2793,7 @@ public class BomNewEbomParentService extends ServiceImpl getReverseBoms(Long parentRowId) { + return baseMapper.getReverseBoms(parentRowId); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomChildService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomChildService.java index f1d0d324..8a060869 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomChildService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomChildService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.mapper.master.BomNewPbomChildMapper; import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import org.springframework.stereotype.Service; import java.util.List; @@ -35,4 +36,8 @@ public class BomNewPbomChildService extends ServiceImpl getBomByMaterialNo(String materialNo, String facCode) { + return this.getBaseMapper().getBomByMaterialNo(materialNo, facCode); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 7052e60c..d2a6733f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -1055,6 +1055,7 @@ public class BomNewPbomParentService extends ServiceImpl getReverseBoms(Long parentRowId) { + return this.getBaseMapper().getReverseBoms(parentRowId); + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java index a6e197d3..335a2ee1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomDetailTask.java @@ -4,12 +4,8 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; -import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import com.nflg.product.bomnew.service.BomNewEbomParentService; -import com.nflg.product.bomnew.service.BomNewOriginalParentService; -import com.nflg.product.bomnew.util.ListCommonUtil; import lombok.Getter; import lombok.Setter; @@ -70,6 +66,7 @@ public class EBomDetailTask extends RecursiveTask> { detailVO.setCurrentVersion(ebomParentEntity.getCurrentVersion()); detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); detailVO.setDeptName(ebomParentEntity.getDeptName()); + detailVO.setDeptRowId(ebomParentEntity.getDeptRowId()); detailVO.setDeviseName(ebomParentEntity.getDeviseName()); detailVO.setBomExist(ebomParentEntity.getBomExist()); detailVO.setStatus(ebomParentEntity.getStatus()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java index 705137d2..feefc62e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/EBom/EBomFormalDetailTask.java @@ -7,7 +7,6 @@ import com.nflg.product.bomnew.constant.EBomStatusEnum; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; import com.nflg.product.bomnew.service.BomNewEbomParentService; -import com.nflg.product.bomnew.util.ListCommonUtil; import lombok.Getter; import lombok.Setter; @@ -72,6 +71,7 @@ public class EBomFormalDetailTask extends RecursiveTask detailVO.setCurrentVersion(ebomParentEntity.getCurrentVersion()); detailVO.setDeviseUserCode(ebomParentEntity.getDeviseUserCode()); detailVO.setDeptName(ebomParentEntity.getDeptName()); + detailVO.setDeptRowId(ebomParentEntity.getDeptRowId()); detailVO.setDeviseName(ebomParentEntity.getDeviseName()); detailVO.setBomExist(ebomParentEntity.getBomExist()); detailVO.setStatus(ebomParentEntity.getStatus()); 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 4ec507f4..ceda3d48 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 @@ -238,6 +238,7 @@ public abstract class VirtualPackageBase { parent.setDeviseName(SessionUtil.getRealName()); parent.setCreatedBy(SessionUtil.getUserCode()); parent.setDeptName(SessionUtil.getDepartName()); + parent.setDeptRowId(SessionUtil.getDepartRowId()); parent.setSource(EBomSourceEnum.FROM_MDM.getValue()); //parent.setModifyTime(LocalDateTime.now()); parent.setStatus(p.getStatus()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java index ad9b2a21..192a8240 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java @@ -85,6 +85,7 @@ public class PBomDetailTask extends RecursiveTask> { detailVO.setCreatedBy(ebomParentEntity.getCreatedBy()); detailVO.setLevelNum(ebomParentEntity.getLevelNum()); detailVO.setDeptName(ebomParentEntity.getDeptName()); + detailVO.setDeptRowId(ebomParentEntity.getDeptRowId()); detailVO.setChangeDesc(ebomParentEntity.getChangeDesc()); detailVO.setOrderNo(ebomParentEntity.getOrderNo()); @@ -96,6 +97,7 @@ public class PBomDetailTask extends RecursiveTask> { detailVO.setDeviseUserCode(parent.getDeviseUserCode()); detailVO.setDeviseName(parent.getDeviseName()); detailVO.setDeptName(parent.getDeptName()); + detailVO.setDeptRowId(parent.getDeptRowId()); detailVO.setStatus(parent.getStatus()); detailVO.setEditStatus(parent.getEditStatus()); detailVO.setVirtualPackageIs(parent.getVirtualPackageIs()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java index 7695b9ef..a19c8c17 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomUpgrade.java @@ -85,7 +85,7 @@ public class PBomUpgrade { BeanUtil.copyProperties(parentVO, pbomParent); pbomParent.setRowId(IdWorker.getId()); pbomParent.setCreatedTime(LocalDateTime.now()); - pbomParent.setCreatedBy(SessionUtil.getRealName()); + pbomParent.setCreatedBy(SessionUtil.getUserCode()); pbomParent.setModifyTime(LocalDateTime.now()); pbomParent.setStatus(PBomStatusEnum.WAIT_PUBLISH.getValue()); pbomParent.setCurrentVersion(VersionUtil.getNextVersion(parentVO.getCurrentVersion())); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java index d7e0da44..a5c0b29f 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/TechnologyPackageParamBuilder.java @@ -80,7 +80,11 @@ public class TechnologyPackageParamBuilder { //通过子级构建父级 private BomNewPbomParentEntity buildParentByChild(BomNewPbomChildEntity child){ - BomNewPbomParentEntity oldBom =SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, child.getMaterialNo()).eq(BomNewPbomParentEntity::getLastVersionIs, 1).one(); + BomNewPbomParentEntity oldBom = SpringUtil.getBean(BomNewPbomParentService.class) + .lambdaQuery() + .eq(BomNewPbomParentEntity::getMaterialNo, child.getMaterialNo()) + .eq(BomNewPbomParentEntity::getLastVersionIs, 1) + .one(); if(Objects.nonNull(oldBom)){ return oldBom; } @@ -101,21 +105,23 @@ public class TechnologyPackageParamBuilder { newBom.setDeviseUserCode(SessionUtil.getUserCode()); newBom.setDeviseName(SessionUtil.getRealName()); newBom.setDeptName(SessionUtil.getDepartName()); + newBom.setDeptRowId(SessionUtil.getDepartRowId()); newBom.setCreatedBy(SessionUtil.getUserCode()); newBom.setCreatedTime(LocalDateTime.now()); return newBom; } + private BomNewPbomParentEntity buildParentForTechnologyPackage() { - private BomNewPbomParentEntity buildParentForTechnologyPackage(){ - - BomNewPbomParentEntity oldBom =SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, packageParam.getTechnologyPackageMaterialNo()) - .eq(BomNewPbomParentEntity::getLastVersionIs, 1) + BomNewPbomParentEntity oldBom = SpringUtil.getBean(BomNewPbomParentService.class) + .lambdaQuery().eq(BomNewPbomParentEntity::getMaterialNo, packageParam.getTechnologyPackageMaterialNo()) .eq(BomNewPbomParentEntity::getFacCode,parent.getFacCode()) + .orderByDesc(BomNewPbomParentEntity::getCurrentVersion) + .last(" limit 1") .one(); - VUtils.isTure(Objects.nonNull(oldBom) && oldBom.getStatus()< PBomStatusEnum.PUBLISH.getValue()).throwMessage("该工艺包存在未发布的BOM版本"); - + VUtils.isTure(Objects.nonNull(oldBom) && oldBom.getStatus() < PBomStatusEnum.PUBLISH.getValue()) + .throwMessage("该工艺包存在未发布的BOM版本"); BomNewPbomParentEntity newBom=new BomNewPbomParentEntity(); newBom.setRowId(IdWorker.getId()); @@ -134,6 +140,7 @@ public class TechnologyPackageParamBuilder { newBom.setDeviseUserCode(SessionUtil.getUserCode()); newBom.setDeviseName(SessionUtil.getRealName()); newBom.setDeptName(SessionUtil.getDepartName()); + newBom.setDeptRowId(SessionUtil.getDepartRowId()); newBom.setCreatedBy(SessionUtil.getUserCode()); newBom.setCreatedTime(LocalDateTime.now()); newBom.setTechnologyUserCode(SessionUtil.getUserCode()); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java index 485f31af..b0088281 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/EBomQueryService.java @@ -3,7 +3,9 @@ package com.nflg.product.bomnew.service.domain.ReverseReport; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; +import com.nflg.product.bomnew.constant.EBomStatusEnum; import com.nflg.product.bomnew.constant.OriginalConstant; +import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; @@ -11,7 +13,6 @@ import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import com.nflg.product.bomnew.pojo.vo.ReverseReportVO; import com.nflg.product.bomnew.service.*; import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; -import com.nflg.product.bomnew.util.VUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -36,6 +37,9 @@ public class EBomQueryService { @Resource BomNewEbomParentService ebomParentService; + @Resource + BomNewEbomChildService ebomChildService; + @Resource BomNewEbomParentFormalService ebomParentFormalService; @@ -45,18 +49,11 @@ public class EBomQueryService { @Resource MaterialMainService materialMainService; - private static final ThreadLocal ADD = new ThreadLocal<>(); - public void report(ReverseReportQuery queryParam , List result) { if(queryParam.getQueryType().equals(0)) { result.addAll(singleLevelReport(queryParam)); }else { - try { - ADD.set(true); - result.addAll(multipleLevelReport(queryParam)); - } finally { - ADD.remove(); - } + result.addAll(multipleLevelReport(queryParam)); } } @@ -79,8 +76,23 @@ public class EBomQueryService { bomVersionRowId=one.getRowId(); } } - return ebomParentService.getBaseMapper().eBomReverseReport(bomVersionRowId,queryParam.getStartDate(),queryParam.getEndDate(), queryParam.getMaterialNo()); - + List vos = ebomParentService.getBaseMapper().eBomReverseReport(bomVersionRowId, queryParam.getStartDate(), queryParam.getEndDate(), queryParam.getMaterialNo()); + if (CollUtil.isNotEmpty(vos)) { + List materialVOS = materialMainService.getMaterialBaseInfo(vos.stream().map(ReverseReportVO::getMaterialNo).collect(Collectors.toList())); + vos.forEach(it -> { + it.setLevelNum("1"); + BaseMaterialVO materialVO = materialVOS.stream() + .filter(f -> StrUtil.equals(f.getMaterialNo(), it.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.nonNull(materialVO)) { + it.setCategoryName(materialVO.getCategoryName()); + it.setRelCategoryCode(materialVO.getRelCategoryCode()); + it.setMaterialRowId(materialVO.getMaterialRowId()); + } + }); + } + return vos; } @@ -91,53 +103,38 @@ public class EBomQueryService { */ public List multipleLevelReport(ReverseReportQuery queryParam) { List vos = new ArrayList<>(); - String version = ""; - if (queryParam.getVersionStrategy() == 0) { - BomNewEbomParentFormalEntity parent = ebomParentFormalService.lambdaQuery() - .select(BomNewEbomParentFormalEntity::getCurrentVersion) - .eq(BomNewEbomParentFormalEntity::getMaterialNo, queryParam.getMaterialNo()) - .orderByDesc(BomNewEbomParentFormalEntity::getCurrentVersion) - .last(" limit 1") - .one(); - if (Objects.nonNull(parent)) { - version = parent.getCurrentVersion(); - } - } else if (queryParam.getVersionStrategy() == 1 || queryParam.getVersionStrategy() == 2) { - VUtils.isTure(StrUtil.isBlank(queryParam.getBomVersion())).throwMessage("版本号不能为空"); - version = queryParam.getBomVersion(); - } - if (StrUtil.isBlank(version)) { - List pVOs = ebomChildFormalService.getSuperiorByMaterialNo(queryParam.getMaterialNo()); - List materialNos = pVOs.stream().map(BomNewPbomParentVO::getMaterialNo).collect(Collectors.toList()); - List materialVOS = materialMainService.getMaterialBaseInfo(materialNos); + + BomNewEbomParentEntity parent = ebomParentService.lambdaQuery() + .select(BomNewEbomParentEntity::getRowId) + .eq(BomNewEbomParentEntity::getMaterialNo, queryParam.getMaterialNo()) + .eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()) + .one(); + if (Objects.nonNull(parent)) { + List pVOs = getReverseBoms(parent.getRowId()); pVOs.forEach(p -> { - if (!ADD.get()) return; - BaseMaterialVO materialMainEntity = materialVOS.stream() - .filter(m -> StrUtil.equals(m.getMaterialNo(), p.getMaterialNo())) - .findFirst() - .orElse(null); - if (Objects.nonNull(materialMainEntity)) { - if (MaterialshouldBomExistUtil.checkShouldBomExist(materialMainEntity.getMaterialCategoryCode() - , materialMainEntity.getMaterialGetType())) { - p.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); - } - } vos.add(createVO(p, 1)); bindData(p, 1, vos); }); } else { - BomNewEbomParentFormalEntity parent = ebomParentFormalService.lambdaQuery() - .eq(BomNewEbomParentFormalEntity::getMaterialNo, queryParam.getMaterialNo()) - .eq(BomNewEbomParentFormalEntity::getCurrentVersion, version) - .one(); - VUtils.isTure(Objects.isNull(parent)).throwMessage(StrUtil.format("版本{}不存在", version)); - - List pVOs = getSuperiors(parent.getRowId()); - pVOs.forEach(p -> { - if (!ADD.get()) return; - vos.add(createVO(p, 1)); - bindData(p, 1, vos); - }); + List pVOs = ebomChildService.getBomByMaterialNo(queryParam.getMaterialNo()); + if (CollUtil.isNotEmpty(pVOs)) { + List materialNos = pVOs.stream().map(BomNewPbomParentVO::getMaterialNo).collect(Collectors.toList()); + List materialVOS = materialMainService.getMaterialBaseInfo(materialNos); + pVOs.forEach(p -> { + BaseMaterialVO materialMainEntity = materialVOS.stream() + .filter(m -> StrUtil.equals(m.getMaterialNo(), p.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.nonNull(materialMainEntity)) { + if (MaterialshouldBomExistUtil.checkShouldBomExist(materialMainEntity.getMaterialCategoryCode() + , materialMainEntity.getMaterialGetType())) { + p.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } + } + vos.add(createVO(p, 1)); + bindData(p, 1, vos); + }); + } } if (CollUtil.isNotEmpty(vos)) { @@ -158,25 +155,19 @@ public class EBomQueryService { } private void bindData(BomNewPbomParentVO pVO, Integer level, List vos) { - if (!ADD.get()) return; if (Objects.nonNull(pVO.getParentRowId())) { - List parents = getSuperiors(pVO.getParentRowId()); + List parents = getReverseBoms(pVO.getParentRowId()); level++; Integer finalLevel = level; for (BomNewPbomParentVO it : parents) { - if (!ADD.get()) return; vos.add(createVO(it, finalLevel)); - if (vos.size() >= 1000) { - ADD.set(false); - return; - } bindData(it, finalLevel, vos); } } } - private List getSuperiors(Long parentRowId) { - return ebomParentFormalService.getSuperiors(parentRowId); + private List getReverseBoms(Long parentRowId) { + return ebomParentService.getReverseBoms(parentRowId); } private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java index 7fd43ee0..f27f2567 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/ReverseReport/PBomQueryService.java @@ -1,19 +1,28 @@ package com.nflg.product.bomnew.service.domain.ReverseReport; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.ImmutableList; -import com.nflg.product.bomnew.mapper.master.BomNewPbomParentFormalMapper; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity; +import com.nflg.product.bomnew.constant.OriginalConstant; +import com.nflg.product.bomnew.constant.PBomStatusEnum; +import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity; import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity; import com.nflg.product.bomnew.pojo.query.ReverseReportQuery; +import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO; +import com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO; import com.nflg.product.bomnew.pojo.vo.ReverseReportVO; +import com.nflg.product.bomnew.service.BomNewPbomChildService; import com.nflg.product.bomnew.service.BomNewPbomParentFormalService; +import com.nflg.product.bomnew.service.BomNewPbomParentService; +import com.nflg.product.bomnew.service.MaterialMainService; +import com.nflg.product.bomnew.util.MaterialshouldBomExistUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * PBom-反查 @@ -24,11 +33,21 @@ public class PBomQueryService { @Resource BomNewPbomParentFormalService pbomParentFormalService; + + @Resource + BomNewPbomParentService pbomParentService; + + @Resource + BomNewPbomChildService pbomChildService; + + @Resource + MaterialMainService materialMainService; + public void report(ReverseReportQuery queryParam , List result) { if(queryParam.getQueryType().equals(0)) { result.addAll(singleLevelReport(queryParam)); }else { - // multipleLevelReport(queryParam); + result.addAll(multipleLevelReport(queryParam)); } } @@ -44,7 +63,99 @@ public class PBomQueryService { bomVersionRowId= Objects.nonNull(one)? one.getRowId():0L; } - return pbomParentFormalService.getBaseMapper().pBomSingleReverseReport(bomVersionRowId,queryParam.getStartDate(),queryParam.getEndDate(), ImmutableList.of(queryParam.getMaterialNo())); + List vos = pbomParentFormalService.getBaseMapper().pBomSingleReverseReport(bomVersionRowId, queryParam.getStartDate() + , queryParam.getEndDate(), queryParam.getMaterialNo(), queryParam.getFacCode()); + if (CollUtil.isNotEmpty(vos)) { + List materialVOS = materialMainService.getMaterialBaseInfo(vos.stream().map(ReverseReportVO::getMaterialNo).collect(Collectors.toList())); + vos.forEach(it -> { + it.setLevelNum("1"); + BaseMaterialVO materialVO = materialVOS.stream() + .filter(f -> StrUtil.equals(f.getMaterialNo(), it.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.nonNull(materialVO)) { + it.setCategoryName(materialVO.getCategoryName()); + it.setRelCategoryCode(materialVO.getRelCategoryCode()); + it.setMaterialRowId(materialVO.getMaterialRowId()); + } + }); + } + return vos; + } + public List multipleLevelReport(ReverseReportQuery queryParam) { + List vos = new ArrayList<>(); + + BomNewPbomParentEntity parent = pbomParentService.lambdaQuery() + .select(BomNewPbomParentEntity::getRowId) + .eq(BomNewPbomParentEntity::getMaterialNo, queryParam.getMaterialNo()) + .eq(BomNewPbomParentEntity::getFacCode, queryParam.getFacCode()) + .ge(BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) + .one(); + if (Objects.nonNull(parent)) { + List pVOs = getReverseBoms(parent.getRowId()); + pVOs.forEach(p -> { + vos.add(createVO(p, 1)); + bindData(p, 1, vos); + }); + } else { + List pVOs = pbomChildService.getBomByMaterialNo(queryParam.getMaterialNo(), queryParam.getFacCode()); + if (CollUtil.isNotEmpty(pVOs)) { + List materialNos = pVOs.stream().map(BomNewPbomParentVO::getMaterialNo).collect(Collectors.toList()); + List materialVOS = materialMainService.getMaterialBaseInfo(materialNos); + pVOs.forEach(p -> { + BaseMaterialVO materialMainEntity = materialVOS.stream() + .filter(m -> StrUtil.equals(m.getMaterialNo(), p.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.nonNull(materialMainEntity)) { + if (MaterialshouldBomExistUtil.checkShouldBomExist(materialMainEntity.getMaterialCategoryCode() + , materialMainEntity.getMaterialGetType())) { + p.setCurrentVersion(OriginalConstant.NO_BOM_VERSION); + } + } + vos.add(createVO(p, 1)); + bindData(p, 1, vos); + }); + } + } + + if (CollUtil.isNotEmpty(vos)) { + List materialVOS = materialMainService.getMaterialBaseInfo(vos.stream().map(ReverseReportVO::getMaterialNo).collect(Collectors.toList())); + vos.forEach(it -> { + BaseMaterialVO materialVO = materialVOS.stream() + .filter(f -> StrUtil.equals(f.getMaterialNo(), it.getMaterialNo())) + .findFirst() + .orElse(null); + if (Objects.nonNull(materialVO)) { + it.setCategoryName(materialVO.getCategoryName()); + it.setRelCategoryCode(materialVO.getRelCategoryCode()); + it.setMaterialRowId(materialVO.getMaterialRowId()); + } + }); + } + return vos; + } + + private void bindData(BomNewPbomParentVO pVO, Integer level, List vos) { + if (Objects.nonNull(pVO.getParentRowId())) { + List parents = getReverseBoms(pVO.getParentRowId()); + level++; + Integer finalLevel = level; + for (BomNewPbomParentVO it : parents) { + vos.add(createVO(it, finalLevel)); + bindData(it, finalLevel, vos); + } + } + } + + private List getReverseBoms(Long parentRowId) { + return pbomParentService.getReverseBoms(parentRowId); + } + + private ReverseReportVO createVO(BomNewPbomParentVO parentVO, Integer level) { + ReverseReportVO vo = Convert.convert(ReverseReportVO.class, parentVO); + vo.setLevelNum(String.valueOf(level)); + return vo; } } 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 3e60d616..dfe022d9 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 @@ -102,6 +102,12 @@ WHERE c.parent_row_id = #{parentRowId} AND c.material_no = #{materialNo} + DELETE 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 4295008a..d8e22573 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 @@ -541,6 +541,13 @@ #{materialNo} ; + INSERT INTO `t_bom_new_ebom_parent_formal` (`row_id`, `batch_no`, `drawing_no`, `material_no`, `order_number`, diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml index 0fa4e758..41b485ee 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomChildMapper.xml @@ -86,4 +86,12 @@ #{item} + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml index b01fff0c..1f499bce 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentFormalMapper.xml @@ -78,7 +78,8 @@ diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml index 483edff8..522a8605 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml @@ -272,7 +272,7 @@ +