物料,工厂规则匹配接口迁移
This commit is contained in:
parent
c156fc5ca8
commit
f73e7bbeb9
|
|
@ -11,6 +11,7 @@ import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO;
|
|||
import com.nflg.product.bomnew.pojo.dto.OriginalSaveBomDTO;
|
||||
import com.nflg.product.bomnew.pojo.query.OriginalBomQuery;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.MaterialMateVO;
|
||||
import com.nflg.product.bomnew.service.BomNewEbomParentService;
|
||||
import com.nflg.product.bomnew.service.BomNewOriginalParentService;
|
||||
|
|
@ -96,16 +97,16 @@ public class OriginalBomApi extends BaseApi {
|
|||
@PostMapping("pullFromCad")
|
||||
@ApiOperation("从CAD获取BOM数据") //去除参数 @RequestBody OriginalBomFromPlmQuery dto
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResultVO<Boolean> pullFromPlm() {
|
||||
public ResultVO<List<ImportOriginalBomVO>> pullFromPlm() {
|
||||
|
||||
originalParentService.pullFromPlm(SessionUtil.getUserCode());
|
||||
List<ImportOriginalBomVO> result = originalParentService.pullFromPlm(SessionUtil.getUserCode());
|
||||
|
||||
originalParentService.computeLevelNumAndRootState();
|
||||
|
||||
//更新物料使用
|
||||
originalParentService.getBaseMapper().upOriginalMaterialUse();
|
||||
|
||||
return ResultVO.success(true);
|
||||
return ResultVO.success(result);
|
||||
}
|
||||
|
||||
@GetMapping("del")
|
||||
|
|
@ -120,12 +121,12 @@ public class OriginalBomApi extends BaseApi {
|
|||
}
|
||||
|
||||
|
||||
@GetMapping("computeTreeHeight")
|
||||
@ApiOperation("计算树的高度(测试用)")
|
||||
public ResultVO<Boolean> computeTreeHeight() throws ExecutionException, InterruptedException {
|
||||
return ResultVO.success(originalParentService.compucteLevelNum());
|
||||
|
||||
}
|
||||
// @GetMapping("computeTreeHeight")
|
||||
// @ApiOperation("计算树的高度(测试用)")
|
||||
// public ResultVO<Boolean> computeTreeHeight() throws ExecutionException, InterruptedException {
|
||||
// return ResultVO.success(originalParentService.compucteLevelNum());
|
||||
//
|
||||
// }
|
||||
|
||||
/**
|
||||
* 原始BOM转EBom
|
||||
|
|
@ -162,18 +163,18 @@ public class OriginalBomApi extends BaseApi {
|
|||
@ApiOperation("导入")
|
||||
@PostMapping("importBom")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResultVO<Boolean> importBom(@RequestParam(value = "file") MultipartFile file) throws IOException {
|
||||
public ResultVO<List<ImportOriginalBomVO>> importBom(@RequestParam(value = "file") MultipartFile file) throws IOException {
|
||||
if (file != null && !file.getOriginalFilename().endsWith("xls") && !file.getOriginalFilename().endsWith("xlsx")) {
|
||||
return ResultVO.error("请上传Excel文件");
|
||||
}
|
||||
originalParentService.importBom(file);
|
||||
List<ImportOriginalBomVO> result = originalParentService.importBom(file);
|
||||
|
||||
//计算层级
|
||||
originalParentService.computeLevelNumAndRootState();
|
||||
|
||||
//更新物料使用
|
||||
originalParentService.getBaseMapper().upOriginalMaterialUse();
|
||||
return ResultVO.success(true);
|
||||
return ResultVO.success(result);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -230,5 +231,16 @@ public class OriginalBomApi extends BaseApi {
|
|||
|
||||
}
|
||||
|
||||
@ApiOperation("计算BOM物料数量")
|
||||
@PostMapping("computeBomMaterialNum")
|
||||
public ResultVO<Boolean> computeLevelNum(@RequestBody List<Long> bomRowIds){
|
||||
try {
|
||||
originalParentService.compucteLevelNum(bomRowIds);
|
||||
} catch (Exception e) {
|
||||
return ResultVO.error(STATE.Error,"计算失败:"+e.getMessage());
|
||||
}
|
||||
return ResultVO.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
package com.nflg.product.bomnew.pojo.vo;
|
||||
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
public class ImportOriginalBomVO {
|
||||
|
||||
@ApiModelProperty("图号")
|
||||
private String drawingNo;
|
||||
|
||||
@ApiModelProperty("导入时的异常信息")
|
||||
private String msg;
|
||||
}
|
||||
|
|
@ -21,6 +21,7 @@ import com.nflg.product.bomnew.pojo.query.OriginalBomQuery;
|
|||
import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
||||
import com.nflg.product.bomnew.service.domain.EBom.CheckEBomException;
|
||||
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomDetailTask;
|
||||
import com.nflg.product.bomnew.service.domain.OriginalBom.OriginalBomToEBomConvert;
|
||||
|
|
@ -332,6 +333,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
*
|
||||
* @param
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean compucteLevelNum() throws ExecutionException, InterruptedException {
|
||||
List<BomNewOriginalParentEntity> list = this.lambdaQuery().le(BomNewOriginalParentEntity::getLevelNum, 0).list();
|
||||
|
||||
|
|
@ -351,13 +353,37 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算BOM树高度
|
||||
*
|
||||
* @param
|
||||
*/
|
||||
public boolean compucteLevelNum(List<Long> bomRowIds) throws ExecutionException, InterruptedException {
|
||||
List<BomNewOriginalParentEntity> list = this.getBaseMapper().selectBatchIds(bomRowIds);
|
||||
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
for (BomNewOriginalParentEntity bom : list) {
|
||||
// bom.setRootIs(1);
|
||||
List<BomOriginalListVO> bomDetail = this.getBaseMapper().getParentChild(bom.getRowId());
|
||||
OriginalBomDetailTask detailTask = new OriginalBomDetailTask(bomDetail);
|
||||
detailTask.setLevelNum(1);
|
||||
ForkJoinTask<List<BomOriginalListVO>> submit = bomDetailPool.submit(detailTask);
|
||||
submit.get();
|
||||
bom.setLevelNum(detailTask.getLevelNum());
|
||||
}
|
||||
this.saveOrUpdateBatch(list);
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 从plm 转原始BOM
|
||||
*
|
||||
* @param
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void pullFromPlm(String userCode) {
|
||||
public List<ImportOriginalBomVO> pullFromPlm(String userCode) {
|
||||
|
||||
List<BomOriginalCadParentEntity> parents = originalCadParentService.lambdaQuery().eq(BomOriginalCadParentEntity::getStatus, 1).eq(BomOriginalCadParentEntity::getCreatedBy, userCode).list();
|
||||
VUtils.isTure(CollUtil.isEmpty(parents)).throwMessage("没有你的数据,你无需转换");
|
||||
|
|
@ -382,6 +408,8 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
originalCadParentService.getBaseMapper().delChildByParentRowIds(delRowIds);
|
||||
}
|
||||
|
||||
return convert.getImportErrorResult();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -393,7 +421,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
this.getBaseMapper().updateRootState_1();
|
||||
this.getBaseMapper().updateRootState_2();
|
||||
this.getBaseMapper().updateRootState_3();
|
||||
this.compucteLevelNum();
|
||||
// this.compucteLevelNum();
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
|
|
@ -496,7 +524,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
/**
|
||||
* 原始BOM导入
|
||||
*/
|
||||
public void importBom(MultipartFile file) throws IOException {
|
||||
public List<ImportOriginalBomVO> importBom(MultipartFile file) throws IOException {
|
||||
rowNum.set(1);
|
||||
excelContextTL.set(new ArrayList<>());
|
||||
String uuid = IdUtil.simpleUUID();
|
||||
|
|
@ -518,6 +546,7 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
List<BomNewOriginalExcelDTO> noMaterialNoList = excelContext.stream().filter(u -> StrUtil.isBlank(u.getMaterialNo())).collect(Collectors.toList());
|
||||
materialMainService.initMaterialForDrawdingNo(noMaterialNoList, BomNewOriginalExcelDTO::getChartNo, BomNewOriginalExcelDTO::setMaterialNo, BomNewOriginalExcelDTO::setMaterialName);
|
||||
|
||||
List<ImportOriginalBomVO> errResult=new ArrayList<>();
|
||||
//转换
|
||||
for (BomNewOriginalExcelDTO data : excelContext) {
|
||||
PlmBomToOriginalConvert convert = new PlmBomToOriginalConvert();
|
||||
|
|
@ -537,8 +566,12 @@ public class BomNewOriginalParentService extends ServiceImpl<BomNewOriginalParen
|
|||
originalChildService.saveOrUpdateBatch(convert.getResultChild());
|
||||
}
|
||||
}
|
||||
errResult.addAll(convert.getImportErrorResult());
|
||||
}
|
||||
excelContextTL.remove();
|
||||
|
||||
return errResult;
|
||||
|
||||
}
|
||||
|
||||
public static void handlerExcelRow(BomNewOriginalExcelDTO data) {
|
||||
|
|
|
|||
|
|
@ -13,10 +13,12 @@ import com.nflg.product.bomnew.mapper.master.MaterialMainMapper;
|
|||
import com.nflg.product.bomnew.pojo.entity.*;
|
||||
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.BomOriginalPlmBomVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.MaterialMateVO;
|
||||
import com.nflg.product.bomnew.service.BomOriginalCadChildService;
|
||||
import com.nflg.product.bomnew.service.MaterialMainService;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -34,6 +36,10 @@ public class PlmBomToOriginalConvert extends BaseConvert {
|
|||
|
||||
List<BomOriginalPlmBomVO> data = new ArrayList<>();
|
||||
|
||||
@Getter
|
||||
//有异常-bom 的图号
|
||||
List<ImportOriginalBomVO> importErrorResult=new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -112,9 +118,11 @@ public class PlmBomToOriginalConvert extends BaseConvert {
|
|||
handlerChild(originalBom,originalSourceEnum);
|
||||
} else { //用户不一致
|
||||
if (isSame(getBomChild(originalBom.getRowId()), Convert.toList(BomNewOriginalChildEntity.class, childs))) {
|
||||
VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+"的BOM数据和" + originalBom.getCreatedBy() + "导入的数据不一致,请沟通处理");
|
||||
importErrorResult.add(new ImportOriginalBomVO(parent.getChartNo(),"BOM数据和" + originalBom.getCreatedBy() + "导入的数据不一致,请沟通处理"));
|
||||
// VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+"的BOM数据和" + originalBom.getCreatedBy() + "导入的数据不一致,请沟通处理");
|
||||
} else {
|
||||
VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+" "+originalBom.getCreatedBy() + "已导入了相同的BOM,直接引用");
|
||||
importErrorResult.add(new ImportOriginalBomVO( parent.getChartNo(),originalBom.getCreatedBy() + "已导入了相同的BOM,直接引用"));
|
||||
// VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+" "+originalBom.getCreatedBy() + "已导入了相同的BOM,直接引用");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -124,10 +132,12 @@ public class PlmBomToOriginalConvert extends BaseConvert {
|
|||
if (ebom.getStatus()<EBomStatusEnum.PUBLISHED.getValue()) {
|
||||
//相同用户
|
||||
if (ebom.getCreatedBy() == parent.getCreatedBy()) {
|
||||
VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+"此数据已创建BOM,请删除BOM重新导入");
|
||||
importErrorResult.add(new ImportOriginalBomVO(parent.getChartNo(),"此数据已创建BOM,请删除BOM重新导入") );
|
||||
// VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+"此数据已创建BOM,请删除BOM重新导入");
|
||||
|
||||
} else {
|
||||
VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+"此数据已被其他用户创建,请联系其他人处理");
|
||||
importErrorResult.add(new ImportOriginalBomVO( parent.getChartNo(),"此数据已被其他用户创建,请联系其他人处理"));
|
||||
// VUtils.isTure(true).throwMessage("图号:"+parent.getChartNo()+"此数据已被其他用户创建,请联系其他人处理");
|
||||
}
|
||||
} else { //ebom为正式状态
|
||||
// BOM结构不相同
|
||||
|
|
|
|||
Loading…
Reference in New Issue