Merge branch 'refs/heads/feature/DM/nflg-bom' into feature/DM/nflg-bom-transition
# Conflicts: # nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomV2Api.java
This commit is contained in:
commit
fb62f92f05
|
|
@ -1,5 +1,6 @@
|
||||||
package com.nflg.product.bomnew.api.user;
|
package com.nflg.product.bomnew.api.user;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.mzt.logapi.context.LogRecordContext;
|
import com.mzt.logapi.context.LogRecordContext;
|
||||||
import com.mzt.logapi.starter.annotation.LogRecord;
|
import com.mzt.logapi.starter.annotation.LogRecord;
|
||||||
|
|
@ -7,12 +8,14 @@ import com.nflg.product.base.core.api.BaseApi;
|
||||||
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||||
import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper;
|
import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper;
|
||||||
import com.nflg.product.bomnew.pojo.dto.EbomExcelDTO;
|
import com.nflg.product.bomnew.pojo.dto.EbomExcelDTO;
|
||||||
|
import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity;
|
||||||
import com.nflg.product.bomnew.pojo.query.GenerateVirtualPackageQuery;
|
import com.nflg.product.bomnew.pojo.query.GenerateVirtualPackageQuery;
|
||||||
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.ListForGenerateVirtualPackageVO;
|
import com.nflg.product.bomnew.pojo.vo.ListForGenerateVirtualPackageVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
||||||
import com.nflg.product.bomnew.service.*;
|
import com.nflg.product.bomnew.service.*;
|
||||||
import com.nflg.product.bomnew.util.EecExcelUtil;
|
import com.nflg.product.bomnew.util.EecExcelUtil;
|
||||||
|
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.vo.ResultVO;
|
import nflg.product.common.vo.ResultVO;
|
||||||
|
|
@ -25,8 +28,10 @@ import org.ttzero.excel.entity.Workbook;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -44,8 +49,7 @@ public class EbomV2Api extends BaseApi {
|
||||||
BomNewOriginalParentV2Service originalParentV2Service;
|
BomNewOriginalParentV2Service originalParentV2Service;
|
||||||
@Resource
|
@Resource
|
||||||
BomNewEbomChildMapper bomNewEbomChildMapper;
|
BomNewEbomChildMapper bomNewEbomChildMapper;
|
||||||
@Resource
|
|
||||||
BomNewOriginalParentService originalParentService;
|
|
||||||
@Resource
|
@Resource
|
||||||
BomNewEbomParentService ebomParentService;
|
BomNewEbomParentService ebomParentService;
|
||||||
@Resource
|
@Resource
|
||||||
|
|
@ -53,14 +57,18 @@ public class EbomV2Api extends BaseApi {
|
||||||
@Resource
|
@Resource
|
||||||
EBomImportService eBomImportService;
|
EBomImportService eBomImportService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
BomOriginalCadParentService originalCadParentService;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("pullFromCadAndToEBom")
|
@GetMapping("pullFromCadAndToEBom")
|
||||||
@ApiOperation("从CAD获取BOM数据并转为EBom")
|
@ApiOperation("从CAD获取BOM数据并转为EBom")
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public ResultVO<List<ImportOriginalBomVO>> pullFromCadAndToEBom() throws ExecutionException, InterruptedException {
|
public ResultVO<List<ImportOriginalBomVO>> pullFromCadAndToEBom() throws ExecutionException, InterruptedException {
|
||||||
|
List<BomOriginalCadParentEntity> parents = originalCadParentService.lambdaQuery().eq(BomOriginalCadParentEntity::getStatus, 1).eq(BomOriginalCadParentEntity::getCreatedBy, SessionUtil.getUserCode()).list();
|
||||||
|
List<ImportOriginalBomVO> result=new ArrayList<>();
|
||||||
|
try {
|
||||||
|
|
||||||
List<ImportOriginalBomVO> result = originalParentV2Service.pullFromCadAndToEBom(SessionUtil.getUserCode());
|
result = originalParentV2Service.pullFromCadAndToEBom(parents);
|
||||||
|
|
||||||
//更新物料使用
|
//更新物料使用
|
||||||
bomNewEbomChildMapper.updateEBomMaterialUse();
|
bomNewEbomChildMapper.updateEBomMaterialUse();
|
||||||
|
|
||||||
|
|
@ -69,6 +77,16 @@ public class EbomV2Api extends BaseApi {
|
||||||
ebomParentService.getBaseMapper().updateRootForWaitReview();
|
ebomParentService.getBaseMapper().updateRootForWaitReview();
|
||||||
|
|
||||||
ebomParentService.resetAllBomExist();
|
ebomParentService.resetAllBomExist();
|
||||||
|
}
|
||||||
|
catch (Exception e){
|
||||||
|
VUtils.isTure(true).throwMessage("转换失败:"+e.getMessage());
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
List<Integer> delRowIds = parents.stream().map(BomOriginalCadParentEntity::getRowId).collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(delRowIds)) {
|
||||||
|
originalParentV2Service.delCadData(delRowIds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ResultVO.success(result);
|
return ResultVO.success(result);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,12 @@ import cn.hutool.extra.spring.SpringUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.nflg.product.bomnew.constant.OriginalEditStatusEnum;
|
import com.nflg.product.bomnew.constant.OriginalEditStatusEnum;
|
||||||
import com.nflg.product.bomnew.constant.OriginalStatusEnum;
|
import com.nflg.product.bomnew.constant.OriginalStatusEnum;
|
||||||
import com.nflg.product.bomnew.mapper.master.BomNewOriginalParentMapper;
|
import com.nflg.product.bomnew.mapper.master.BomNewOriginalParentMapper;
|
||||||
import com.nflg.product.bomnew.pojo.dto.BaseImportExcelDTO;
|
import com.nflg.product.bomnew.pojo.dto.BaseImportExcelDTO;
|
||||||
import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO;
|
import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO;
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalChildEntity;
|
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity;
|
import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity;
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomOriginalCadChildEntity;
|
import com.nflg.product.bomnew.pojo.entity.BomOriginalCadChildEntity;
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity;
|
import com.nflg.product.bomnew.pojo.entity.BomOriginalCadParentEntity;
|
||||||
|
|
@ -23,7 +21,6 @@ import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
|
import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO;
|
import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO;
|
||||||
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
||||||
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomToEBomConvert;
|
|
||||||
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomToEBomV2Convert;
|
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomToEBomV2Convert;
|
||||||
import com.nflg.product.bomnew.service.domain.OriginalBom.PlmBomToOriginalConvert;
|
import com.nflg.product.bomnew.service.domain.OriginalBom.PlmBomToOriginalConvert;
|
||||||
import com.nflg.product.bomnew.service.domain.OriginalBom.PlmBomToOriginalConvertV2;
|
import com.nflg.product.bomnew.service.domain.OriginalBom.PlmBomToOriginalConvertV2;
|
||||||
|
|
@ -91,6 +88,7 @@ public class BomNewOriginalParentV2Service extends ServiceImpl<BomNewOriginalPar
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查物料编码在主数据中是否存在
|
* 检查物料编码在主数据中是否存在
|
||||||
|
*
|
||||||
* @param materialNos
|
* @param materialNos
|
||||||
* @param <T>
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
|
|
@ -106,15 +104,14 @@ public class BomNewOriginalParentV2Service extends ServiceImpl<BomNewOriginalPar
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从CAD获取数据并转EBom
|
* 从CAD获取数据并转EBom
|
||||||
* @param userCode
|
*
|
||||||
|
* @param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public List<ImportOriginalBomVO> pullFromCadAndToEBom(String userCode) throws ExecutionException, InterruptedException {
|
public List<ImportOriginalBomVO> pullFromCadAndToEBom(List<BomOriginalCadParentEntity> parents) throws ExecutionException, InterruptedException {
|
||||||
List<BomOriginalCadParentEntity> parents = originalCadParentService.lambdaQuery().eq(BomOriginalCadParentEntity::getStatus, 1).eq(BomOriginalCadParentEntity::getCreatedBy, userCode).list();
|
|
||||||
List<ImportOriginalBomVO> toEBomResult = new ArrayList();
|
|
||||||
try {
|
|
||||||
|
|
||||||
|
List<ImportOriginalBomVO> toEBomResult = new ArrayList();
|
||||||
VUtils.isTure(CollUtil.isEmpty(parents)).throwMessage("没有你的数据,你无需转换");
|
VUtils.isTure(CollUtil.isEmpty(parents)).throwMessage("没有你的数据,你无需转换");
|
||||||
//检查物料编码在主数据中是否存在
|
//检查物料编码在主数据中是否存在
|
||||||
List<BomOriginalCadChildEntity> childs = originalCadChildService.lambdaQuery().in(BomOriginalCadChildEntity::getParentRowId, parents.stream().map(u -> u.getRowId()).collect(Collectors.toList())).list();
|
List<BomOriginalCadChildEntity> childs = originalCadChildService.lambdaQuery().in(BomOriginalCadChildEntity::getParentRowId, parents.stream().map(u -> u.getRowId()).collect(Collectors.toList())).list();
|
||||||
|
|
@ -123,7 +120,7 @@ public class BomNewOriginalParentV2Service extends ServiceImpl<BomNewOriginalPar
|
||||||
|
|
||||||
//父级物料编码不能为空
|
//父级物料编码不能为空
|
||||||
materialMainService.initMaterialForDrawdingNo(parents, BomOriginalCadParentEntity::getChartNo, BomOriginalCadParentEntity::setMaterialNo, BomOriginalCadParentEntity::setMaterialName);
|
materialMainService.initMaterialForDrawdingNo(parents, BomOriginalCadParentEntity::getChartNo, BomOriginalCadParentEntity::setMaterialNo, BomOriginalCadParentEntity::setMaterialName);
|
||||||
List<String> noMaterialNoChartNos = parents.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).map(u -> u.getChartNo()).collect(Collectors.toList());
|
Set<String> noMaterialNoChartNos = parents.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).map(u -> u.getChartNo()).collect(Collectors.toSet());
|
||||||
VUtils.isTure(CollUtil.isNotEmpty(noMaterialNoChartNos)).throwMessage(StrUtil.join(",", noMaterialNoChartNos) + "物料编码为空,请检查(父级物料编码不能为空)");
|
VUtils.isTure(CollUtil.isNotEmpty(noMaterialNoChartNos)).throwMessage(StrUtil.join(",", noMaterialNoChartNos) + "物料编码为空,请检查(父级物料编码不能为空)");
|
||||||
|
|
||||||
PlmBomToOriginalConvertV2 convert = new PlmBomToOriginalConvertV2();
|
PlmBomToOriginalConvertV2 convert = new PlmBomToOriginalConvertV2();
|
||||||
|
|
@ -143,25 +140,22 @@ public class BomNewOriginalParentV2Service extends ServiceImpl<BomNewOriginalPar
|
||||||
if (CollUtil.isNotEmpty(convert.getResultParent())) {
|
if (CollUtil.isNotEmpty(convert.getResultParent())) {
|
||||||
toEBomResult = convertToEBomV2(convert.getResultParent().stream().map(u -> u.getRowId()).collect(Collectors.toList()));
|
toEBomResult = convertToEBomV2(convert.getResultParent().stream().map(u -> u.getRowId()).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (Exception ex){
|
|
||||||
VUtils.isTure(true).throwMessage("转换失败:"+ex.getMessage());
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
//删除cad临时表数据
|
|
||||||
List<Integer> delRowIds = parents.stream().map(BomOriginalCadParentEntity::getRowId).collect(Collectors.toList());
|
|
||||||
if (CollUtil.isNotEmpty(delRowIds)) {
|
|
||||||
originalCadParentService.getBaseMapper().deleteBatchIds(delRowIds);
|
|
||||||
originalCadParentService.getBaseMapper().delChildByParentRowIds(delRowIds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return toEBomResult;
|
return toEBomResult;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional()
|
||||||
|
public void delCadData(List<Integer> rowIds) {
|
||||||
|
if (CollUtil.isNotEmpty(rowIds)) {
|
||||||
|
originalCadParentService.getBaseMapper().deleteBatchIds(rowIds);
|
||||||
|
originalCadParentService.getBaseMapper().delChildByParentRowIds(rowIds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原始BOM-转EBOM-v2
|
* 原始BOM-转EBOM-v2
|
||||||
|
*
|
||||||
* @param bomRowIds
|
* @param bomRowIds
|
||||||
* @return
|
* @return
|
||||||
* @throws ExecutionException
|
* @throws ExecutionException
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue