copy正式发布数据

This commit is contained in:
jing's 2024-03-03 15:07:26 +08:00
parent 5ee6c4bf45
commit e32c469cad
2 changed files with 121 additions and 75 deletions

View File

@ -1,61 +1,80 @@
package com.nflg.product.bomnew.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Sets;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.*;
import com.nflg.product.bomnew.mapper.master.BomNewEbomParentFormalMapper;
import com.nflg.product.bomnew.mapper.master.BomNewEbomParentMapper;
import com.nflg.product.bomnew.pojo.dto.*;
import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery;
import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery;
import com.nflg.product.bomnew.pojo.vo.*;
import com.nflg.product.bomnew.service.domain.EBom.*;
import com.nflg.product.bomnew.util.*;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildFormalEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentFormalEntity;
import lombok.extern.slf4j.Slf4j;
import nflg.product.common.constant.STATE;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.ttzero.excel.entity.ListSheet;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class BomNewEbomParentFormalService extends ServiceImpl<BomNewEbomParentFormalMapper, BomNewEbomParentFormalEntity> {
public void copyEbomFormal(Long eBomRowId) {
List<Long> bomListId = new ArrayList<>();
bomListId.add(eBomRowId);
List<BomNewEbomParentFormalEntity> parentFormalList = new ArrayList<>();
List<BomNewEbomChildFormalEntity> childFormalList = new ArrayList<>();
while (!bomListId.isEmpty()) {
QueryWrapper<BomNewEbomParentEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.lambda().in(BomNewEbomParentEntity::getRowId, bomListId);
List<BomNewEbomParentEntity> parentEntityList = SpringUtil.getBean(BomNewEbomParentService.class).list(queryWrapper1);
if (CollUtil.isEmpty(parentEntityList)) {
break;
}
parentFormalList.addAll(Convert.convert(new TypeReference<List<BomNewEbomParentFormalEntity>>() {
}, parentEntityList));
//查询子级
QueryWrapper<BomNewEbomChildEntity> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.lambda().in(BomNewEbomChildEntity::getParentRowId, bomListId);
List<BomNewEbomChildEntity> childEntityList = SpringUtil.getBean(BomNewEbomChildService.class).list(queryWrapper2);
if (CollUtil.isEmpty(childEntityList)) {
break;
}
childFormalList.addAll(Convert.convert(new TypeReference<List<BomNewEbomChildFormalEntity>>() {
}, childEntityList));
bomListId.clear();
List<Long> nextBomId = childEntityList.stream().filter(u -> u.getBomVersionRowId() != null && u.getBomVersionRowId() > 0).map(BomNewEbomChildEntity::getBomVersionRowId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(nextBomId)) {
bomListId.addAll(nextBomId);
}
}
if (CollUtil.isNotEmpty(parentFormalList)) {
this.saveOrUpdateBatch(parentFormalList);
// System.out.println(JSON.toJSONString( parentFormalList));
}
if (CollUtil.isNotEmpty(childFormalList)) {
// System.out.println(JSON.toJSONString( childFormalList));
SpringUtil.getBean(BomNewEbomChildFormalService.class).saveOrUpdateBatch(childFormalList);
}
}
}

View File

@ -3,53 +3,80 @@ package com.nflg.product.bomnew.service;
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.core.lang.TypeReference;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Sets;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.*;
import com.nflg.product.bomnew.mapper.master.BomNewPbomParentFormalMapper;
import com.nflg.product.bomnew.mapper.master.BomNewPbomParentMapper;
import com.nflg.product.bomnew.pojo.dto.*;
import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO;
import com.nflg.product.bomnew.pojo.entity.*;
import com.nflg.product.bomnew.pojo.query.BomNewPbomParentQuery;
import com.nflg.product.bomnew.pojo.vo.*;
import com.nflg.product.bomnew.service.domain.PBom.*;
import com.nflg.product.bomnew.service.domain.Sap;
import com.nflg.product.bomnew.util.*;
import nflg.product.common.constant.STATE;
import nflg.product.common.vo.ResultVO;
import org.springframework.beans.factory.annotation.Qualifier;
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildFormalEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity;
import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentFormalEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.ttzero.excel.entity.Workbook;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.ForkJoinTask;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BomNewPbomParentFormalService extends ServiceImpl<BomNewPbomParentFormalMapper , BomNewPbomParentFormalEntity> {
public class BomNewPbomParentFormalService extends ServiceImpl<BomNewPbomParentFormalMapper, BomNewPbomParentFormalEntity> {
/**
* 拷贝pbom已发布数
*/
public void copyPbomFormal(Long pBomRowId) {
List<Long> bomListId = new ArrayList<>();
bomListId.add(pBomRowId);
List<BomNewPbomParentFormalEntity> parentFormalList = new ArrayList<>();
List<BomNewPbomChildFormalEntity> childFormalList = new ArrayList<>();
while (!bomListId.isEmpty()) {
QueryWrapper<BomNewPbomParentEntity> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.lambda().in(BomNewPbomParentEntity::getRowId, bomListId);
List<BomNewPbomParentEntity> parentEntityList = SpringUtil.getBean(BomNewPbomParentService.class).list(queryWrapper1);
if (CollUtil.isEmpty(parentEntityList)) {
break;
}
parentFormalList.addAll(Convert.convert(new TypeReference<List<BomNewPbomParentFormalEntity>>() {
}, parentEntityList));
//查询子级
QueryWrapper<BomNewPbomChildEntity> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.lambda().in(BomNewPbomChildEntity::getParentRowId, bomListId);
List<BomNewPbomChildEntity> childEntityList = SpringUtil.getBean(BomNewPbomChildService.class).list(queryWrapper2);
if (CollUtil.isEmpty(childEntityList)) {
break;
}
childFormalList.addAll(Convert.convert(new TypeReference<List<BomNewPbomChildFormalEntity>>() {
}, childEntityList));
bomListId.clear();
List<Long> nextBomId = childEntityList.stream().filter(u -> u.getBomVersionRowId() != null && u.getBomVersionRowId() > 0).map(BomNewPbomChildEntity::getBomVersionRowId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(nextBomId)) {
bomListId.addAll(nextBomId);
}
}
if(CollUtil.isNotEmpty(parentFormalList)){
this.saveOrUpdateBatch(parentFormalList);
// System.out.println(JSON.toJSONString( parentFormalList));
}
if(CollUtil.isNotEmpty(childFormalList)){
// System.out.println(JSON.toJSONString( childFormalList));
SpringUtil.getBean(BomNewPbomChildFormalService.class).saveOrUpdateBatch(childFormalList);
}
}
}