生成PBOM时,bom没有子项的话,仅生成EBOM正式表,不生成PBOM任务(优化)
This commit is contained in:
parent
43356a7228
commit
cb40340257
|
|
@ -40,6 +40,7 @@ import nflg.product.common.constant.STATE;
|
|||
import nflg.product.common.vo.ResultVO;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.checkerframework.checker.nullness.Opt;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -1026,6 +1027,24 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
.filter(p -> !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) )
|
||||
.collect(Collectors.toList());
|
||||
if(!emptyChildParentList.isEmpty()){
|
||||
List<BomNewPbomParentEntity> fList = emptyChildParentList.stream().filter(p -> {
|
||||
Optional<BomNewEbomParentVO> opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst();
|
||||
if(opt.isPresent()){
|
||||
List<BomNewEbomParentVO> cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList());
|
||||
if(cList.size() > 0){
|
||||
Map<String,List<BomNewEbomParentVO>> ptMap = cList.stream().collect(Collectors.groupingBy(BaseMaterialVO::getProjectType));
|
||||
return ptMap.getOrDefault("F",Lists.newArrayList()).size() == cList.size();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}).collect(Collectors.toList());
|
||||
if(!fList.isEmpty()){
|
||||
String m = fList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct().collect(Collectors.joining(","));
|
||||
OperationErrorMsgVO oem = new OperationErrorMsgVO();
|
||||
oem.setPrimaryKey(m);
|
||||
oem.msg = String.format("物料%s因下级全部是F项,仅保存EBOM,未生成PBOM数据",m);
|
||||
rList.add(oem);
|
||||
}
|
||||
// rList = emptyChildParentList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct()
|
||||
// .map(m -> {
|
||||
// OperationErrorMsgVO oem = new OperationErrorMsgVO();
|
||||
|
|
@ -1200,6 +1219,25 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
.filter(p -> !p.getMaterialDesc().contains("电控系统") && !eBomToPBom.getPBomChildResult().stream().map(BomNewPbomChildEntity::getParentRowId).collect(Collectors.toList()).contains(p.getRowId()) )
|
||||
.collect(Collectors.toList());
|
||||
if(!emptyChildParentList.isEmpty()){
|
||||
List<BomNewPbomParentEntity> fList = emptyChildParentList.stream().filter(p -> {
|
||||
Optional<BomNewEbomParentVO> opt = bomTree.stream().filter(t -> p.getMaterialNo().equals(t.getMaterialNo())).findFirst();
|
||||
if(opt.isPresent()){
|
||||
List<BomNewEbomParentVO> cList = bomTree.stream().filter(t -> t.getParentRowId().equals(opt.get().getRowId())).collect(Collectors.toList());
|
||||
if(cList.size() > 0){
|
||||
Map<String,List<BomNewEbomParentVO>> ptMap = cList.stream().collect(Collectors.groupingBy(BaseMaterialVO::getProjectType));
|
||||
return ptMap.getOrDefault("F",Lists.newArrayList()).size() == cList.size();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}).collect(Collectors.toList());
|
||||
if(!fList.isEmpty()){
|
||||
String m = fList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct().collect(Collectors.joining(","));
|
||||
OperationErrorMsgVO oem = new OperationErrorMsgVO();
|
||||
oem.setPrimaryKey(m);
|
||||
oem.msg = String.format("物料%s因下级全部是F项,仅保存EBOM,未生成PBOM数据",m);
|
||||
rList.add(oem);
|
||||
}
|
||||
|
||||
// rList = emptyChildParentList.stream().map(BomNewPbomParentEntity::getMaterialNo).distinct()
|
||||
// .map(m -> {
|
||||
// OperationErrorMsgVO oem = new OperationErrorMsgVO();
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package com.nflg.product.bomnew.service.domain.PBom;
|
|||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
|
|
@ -19,12 +21,14 @@ import com.nflg.product.bomnew.service.MaterialMainService;
|
|||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import com.nflg.product.bomnew.util.VersionUtil;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 工艺包构建
|
||||
|
|
@ -219,7 +223,11 @@ public class TechnologyPackageParamBuilder {
|
|||
child.setRowId(IdWorker.getId());
|
||||
child.setParentRowId(parent.getRowId());
|
||||
child.setFacCode(parent.getFacCode());
|
||||
child.setOrderNumber(StrUtil.padPre (String.valueOf(parentChildren.size()+1),3,"0"));
|
||||
//虚拟包作为下级时,序号按照已有的子级取出最大的序号值+1 by 10002327 0925
|
||||
int orderNumber = parentChildren.stream().max((p1,p2) -> p1.getOrderNumber().compareTo(p2.getOrderNumber()))
|
||||
.map(m -> Convert.toInt(m.getOrderNumber())).orElse(0);
|
||||
|
||||
child.setOrderNumber(StrUtil.padPre (String.valueOf(orderNumber+1),3,"0"));
|
||||
child.setDrawingNo(packageMaterial.getDrawingNo());
|
||||
child.setMaterialNo(packageMaterial.getMaterialNo());
|
||||
child.setMaterialName(packageMaterial.getMaterialName());
|
||||
|
|
|
|||
|
|
@ -35,6 +35,28 @@
|
|||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- error日志 -->
|
||||
<appender name="ErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>error</level>
|
||||
</filter>
|
||||
<file>${logDir}/error/nflg-bom-new-error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!-- 按日期滚动,每天生成一个文件 -->
|
||||
<fileNamePattern>${logDir}/error/%d{yyyy-MM-dd}.%i.error.log</fileNamePattern>
|
||||
<!-- 保留15天的日志 -->
|
||||
<maxHistory>30</maxHistory>
|
||||
<!-- 启动时,是否删除旧的日志文件 -->
|
||||
<cleanHistoryOnStart>true</cleanHistoryOnStart>
|
||||
<!-- 单天单个日志最大size -->
|
||||
<maxFileSize>${splitSize}</maxFileSize>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%logger:显示类名 %msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 忽略Nacos服务器的INFO日志 -->
|
||||
<logger name="com.alibaba.nacos" level="WARN" />
|
||||
|
||||
|
|
@ -43,4 +65,7 @@
|
|||
<appender-ref ref="Console" />
|
||||
<appender-ref ref="RollingFileAll" />
|
||||
</root>
|
||||
<root level="ERROR">
|
||||
<appender-ref ref="ErrorFile" />
|
||||
</root>
|
||||
</configuration>
|
||||
|
|
@ -35,6 +35,28 @@
|
|||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- error日志 -->
|
||||
<appender name="ErrorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>error</level>
|
||||
</filter>
|
||||
<file>${logDir}/error/nflg-bom-new-error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!-- 按日期滚动,每天生成一个文件 -->
|
||||
<fileNamePattern>${logDir}/error/%d{yyyy-MM-dd}.%i.error.log</fileNamePattern>
|
||||
<!-- 保留15天的日志 -->
|
||||
<maxHistory>30</maxHistory>
|
||||
<!-- 启动时,是否删除旧的日志文件 -->
|
||||
<cleanHistoryOnStart>true</cleanHistoryOnStart>
|
||||
<!-- 单天单个日志最大size -->
|
||||
<maxFileSize>${splitSize}</maxFileSize>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder" charset="UTF-8">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%logger:显示类名 %msg:日志消息,%n是换行符-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{traceId} [%thread] %-5level %logger{50} %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<logger name="com.alibaba.nacos" level="WARN" />
|
||||
<logger name="org.mybatis.spring" level="WARN"/>
|
||||
<logger name="org.springframework.web" level="WARN"/>
|
||||
|
|
@ -46,4 +68,7 @@
|
|||
<appender-ref ref="Console" />
|
||||
<appender-ref ref="RollingFileAll" />
|
||||
</root>
|
||||
<root level="ERROR">
|
||||
<appender-ref ref="ErrorFile" />
|
||||
</root>
|
||||
</configuration>
|
||||
Loading…
Reference in New Issue