Merge remote-tracking branch 'origin/feature/DM/nflg-bom' into feature/DM/nflg-bom

This commit is contained in:
大米 2024-01-04 19:00:20 +08:00
commit 7b338c3879
10 changed files with 80 additions and 42 deletions

View File

@ -326,7 +326,7 @@ public class EbomApi extends BaseApi {
@PostMapping("temporary") @PostMapping("temporary")
@ApiOperation("暂存") @ApiOperation("暂存")
public ResultVO<Boolean> temporary(@RequestBody BomNewEBomParentEditDTO dto) { public ResultVO<Boolean> temporary(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
return ResultVO.success(bomNewEbomParentService.temporary(dto)); return ResultVO.success(bomNewEbomParentService.temporary(dto));
} }

View File

@ -30,7 +30,6 @@ import java.util.Objects;
/** /**
* t_bom_new_mbom_parent 表控制层 * t_bom_new_mbom_parent 表控制层
* *
*
* @author makejava * @author makejava
* @since 2024-01-01 10:53:24 * @since 2024-01-01 10:53:24
*/ */
@ -80,8 +79,6 @@ public class MBomApi extends BaseApi {
} }
@GetMapping("factoryList") @GetMapping("factoryList")
@ApiOperation("工厂列表") @ApiOperation("工厂列表")
public ResultVO<List> factoryList() { public ResultVO<List> factoryList() {
@ -92,7 +89,6 @@ public class MBomApi extends BaseApi {
} }
@PostMapping("superSaterialList") @PostMapping("superSaterialList")
@ApiOperation("设置超级物料列表") @ApiOperation("设置超级物料列表")
public ResultVO<List<BomNewMbomDetailVO>> superSaterialList(@RequestParam(value = "rowId") Long rowId) { public ResultVO<List<BomNewMbomDetailVO>> superSaterialList(@RequestParam(value = "rowId") Long rowId) {
@ -104,14 +100,6 @@ public class MBomApi extends BaseApi {
} }
@PostMapping("superSaterialStatus") @PostMapping("superSaterialStatus")
@ApiOperation("设置超级物料") @ApiOperation("设置超级物料")
public ResultVO<Boolean> superSaterialStatus(@ApiParam("超级物料 0-否 1-是") @RequestParam(value = "status") Integer status, @RequestParam(value = "rowId") Long rowId) { public ResultVO<Boolean> superSaterialStatus(@ApiParam("超级物料 0-否 1-是") @RequestParam(value = "status") Integer status, @RequestParam(value = "rowId") Long rowId) {

View File

@ -39,6 +39,10 @@ public interface MaterialMainMapper extends BaseMapper<MaterialMainEntity> {
Integer getUserMultiplantFacRoleCount(@Param("userRowId") Long userRowId); Integer getUserMultiplantFacRoleCount(@Param("userRowId") Long userRowId);
List<BaseMaterialVO> getMaterialLikeByDrawingNo(@Param("drawingNo") String drawingNo);
} }

View File

@ -472,7 +472,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
List<BomNewEbomParentVO> child = allBomDetail.stream().filter(u -> u.getRowId() > 0).collect(Collectors.toList()); List<BomNewEbomParentVO> child = allBomDetail.stream().filter(u -> u.getRowId() > 0).collect(Collectors.toList());
if (CollUtil.isNotEmpty(parents)) { if (CollUtil.isNotEmpty(parents)) {
List<BomNewEbomChildEntity> childList = new ArrayList<>(); List<BomNewEbomChildEntity> childList = new ArrayList<>();
parents.forEach(k -> { child.forEach(k -> {
BomNewEbomChildEntity pEnt = new BomNewEbomChildEntity(); BomNewEbomChildEntity pEnt = new BomNewEbomChildEntity();
pEnt.setRowId(k.getRowId()); pEnt.setRowId(k.getRowId());
pEnt.setExceptionStatus(k.getExceptionStatus()); pEnt.setExceptionStatus(k.getExceptionStatus());
@ -1191,7 +1191,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
* 用户临时处理数据数据的处理状态为待处理当用户单击暂存的时候所有的数据都不需要校验直接保存即可 * 用户临时处理数据数据的处理状态为待处理当用户单击暂存的时候所有的数据都不需要校验直接保存即可
*/ */
public Boolean temporary(BomNewEBomParentEditDTO dto) { public Boolean temporary(BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException {
EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue()); EBomEdit eBomEdit = new EBomEdit(EBomSourceEnum.FROM_MDM.getValue());
dto.setOpType(EbomEditStatusEnum.HANDLER_CREATED.getValue()); dto.setOpType(EbomEditStatusEnum.HANDLER_CREATED.getValue());
@ -1210,6 +1210,10 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
deleteBomChild(dto.getDelDatas()); deleteBomChild(dto.getDelDatas());
} }
} }
checkAndSaveEBomException(dto.getParent().getBomRowId());
ThreadUtil.execAsync(() -> computeLevelNumAndRootState()); ThreadUtil.execAsync(() -> computeLevelNumAndRootState());
@ -1268,7 +1272,7 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
deleteBomChild(dto.getDelDatas()); deleteBomChild(dto.getDelDatas());
} }
} }
checkAndSaveEBomException(dto.getParent().getBomRowId());
// ebomChildService.getBaseMapper().updateEBomMaterialUse(); // ebomChildService.getBaseMapper().updateEBomMaterialUse();
ThreadUtil.execAsync(() -> computeLevelNumAndRootState()); ThreadUtil.execAsync(() -> computeLevelNumAndRootState());
return true; return true;

View File

@ -178,9 +178,19 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
} }
} }
}
public List<BaseMaterialVO> getMaterialLikeByDrawingNo( String drawingNo ) {
List<BaseMaterialVO> materialList = SpringUtil.getBean(MaterialMainMapper.class).getMaterialLikeByDrawingNo(drawingNo);
return materialList;
} }
/** /**
* @param drawingNos 图号 物料号 * @param drawingNos 图号 物料号
* @return * @return

View File

@ -81,7 +81,11 @@ public class OptionalEbomImportChildService extends ServiceImpl<OptionalEbomImpo
optionList.add(entity); optionList.add(entity);
} else { } else {
//先统一后分割 //先统一后分割
String[] array = nos.replace("", ";").split(";"); String[] array = nos.replace("", ";")
.replace(" ",";")
.replace("",";")
.replace(",",";")
.split(";");
List<String> listNo = Arrays.stream(array).collect(Collectors.toList()); List<String> listNo = Arrays.stream(array).collect(Collectors.toList());
List<BaseMaterialVO> materialListVo = SpringUtil.getBean(MaterialMainService.class).initMaterialForAnyNo(listNo); List<BaseMaterialVO> materialListVo = SpringUtil.getBean(MaterialMainService.class).initMaterialForAnyNo(listNo);
if (CollectionUtil.isEmpty(materialListVo)) { if (CollectionUtil.isEmpty(materialListVo)) {

View File

@ -21,10 +21,12 @@ import com.nflg.product.bomnew.pojo.dto.OptionalEbomMainDTO;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildEntity; import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportChildEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity; import com.nflg.product.bomnew.pojo.entity.OptionalEbomImportEntity;
import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity; import com.nflg.product.bomnew.pojo.entity.OptionalEbomMainEntity;
import com.nflg.product.bomnew.pojo.vo.BaseMaterialVO;
import com.nflg.product.bomnew.service.MaterialMainService; import com.nflg.product.bomnew.service.MaterialMainService;
import com.nflg.product.bomnew.service.OptionalEbomImportChildService; import com.nflg.product.bomnew.service.OptionalEbomImportChildService;
import com.nflg.product.bomnew.service.OptionalEbomImportService; import com.nflg.product.bomnew.service.OptionalEbomImportService;
import com.nflg.product.bomnew.service.OptionalEbomMainService; import com.nflg.product.bomnew.service.OptionalEbomMainService;
import lombok.extern.slf4j.Slf4j;
import nflg.product.common.constant.STATE; import nflg.product.common.constant.STATE;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -40,6 +42,7 @@ import java.util.stream.Collectors;
* 导入移动破 * 导入移动破
*/ */
@Service @Service
@Slf4j
public class OptionalExcelService { public class OptionalExcelService {
@Resource @Resource
@ -294,11 +297,27 @@ public class OptionalExcelService {
for (OptionalEbomImportDTO item1 : for (OptionalEbomImportDTO item1 :
listParent) { listParent) {
List<OptionalEbomImportChildDTO> listChild = item1.getChild(); List<OptionalEbomImportChildDTO> listChild = item1.getChild();
//
SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNoImmul(listChild, OptionalEbomImportChildDTO::getDrawingNo, OptionalEbomImportChildDTO::setMaterialNo, OptionalEbomImportChildDTO::setMaterialDesc); SpringUtil.getBean(MaterialMainService.class).initMaterialForDrawdingNoImmul(listChild, OptionalEbomImportChildDTO::getDrawingNo, OptionalEbomImportChildDTO::setMaterialNo, OptionalEbomImportChildDTO::setMaterialDesc);
//构建测试数据 无物料号 用图号代替
for (OptionalEbomImportChildDTO childDTO : listChild) { for (OptionalEbomImportChildDTO childDTO : listChild) {
if (!childDTO.getTag() && StringUtils.isEmpty(childDTO.getMaterialNo())) { if (!childDTO.getTag() && StringUtils.isEmpty(childDTO.getMaterialNo())) {
//in 批量没匹配到 再模糊匹配一次
List<BaseMaterialVO> likeList= SpringUtil.getBean(MaterialMainService.class)
.getMaterialLikeByDrawingNo(StrUtil.format("{} {}",childDTO.getDrawingNo(),childDTO.getMaterialName()));
if(CollectionUtil.isNotEmpty(likeList) ) {
if (likeList.size() == 1) {
BaseMaterialVO materialVO = likeList.get(0);
childDTO.setMaterialNo(materialVO.getMaterialNo());
childDTO.setMaterialDesc(materialVO.getMaterialDesc());
continue;
} else if (likeList.size() > 1) {
throw new NflgBusinessException(STATE.BusinessError, StrUtil.format("第{}行,{} 图号匹配到多条物料数据", childDTO.getLineNo(), childDTO.getDrawingNo()));
}
}
// childDTO.setMaterialNo(childDTO.getDrawingNo()); // childDTO.setMaterialNo(childDTO.getDrawingNo());
childDTO.setError(childDTO.getError() | OptionalBomConstant.ExcelErrorTagEnum.MATERIA_NO_UNKOWN.getValue()); childDTO.setError(childDTO.getError() | OptionalBomConstant.ExcelErrorTagEnum.MATERIA_NO_UNKOWN.getValue());
item1.setError(true); item1.setError(true);
@ -308,7 +327,7 @@ public class OptionalExcelService {
} }
}); });
System.out.println(JSON.toJSON(optionalEbomInportExcelDTO));
} }
@ -318,6 +337,7 @@ public class OptionalExcelService {
throw new NflgBusinessException(STATE.Error, hintMsg); throw new NflgBusinessException(STATE.Error, hintMsg);
} }
System.out.println(JSON.toJSONString(optionalEbomInportExcelDTO));
// return true; // return true;
//保存db //保存db
return batchExcelToRepertory(optionalEbomInportExcelDTO); return batchExcelToRepertory(optionalEbomInportExcelDTO);

View File

@ -9,6 +9,7 @@ import cn.hutool.extra.spring.SpringUtil;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.base.core.exception.NflgBusinessException;
import com.nflg.product.bomnew.constant.EBomConstant;
import com.nflg.product.bomnew.constant.EBomExceptionStatusEnum; import com.nflg.product.bomnew.constant.EBomExceptionStatusEnum;
import com.nflg.product.bomnew.constant.MaterialGetEnum; import com.nflg.product.bomnew.constant.MaterialGetEnum;
import com.nflg.product.bomnew.constant.ProjectTypeInputTypeEnum; import com.nflg.product.bomnew.constant.ProjectTypeInputTypeEnum;
@ -80,7 +81,7 @@ public class CheckEBomException {
*/ */
public void initException() { public void initException() {
//初始化物料信息 //初始化物料信息
SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail,"projectType"); SpringUtil.getBean(MaterialMainService.class).intiMaterialInfo(allBomDetail, EBomConstant.EBOM_IGNORED_FIELDS_INIT_MATERIAL_DEFAULT);
checkException(); checkException();

View File

@ -23,9 +23,7 @@ public class IndexListTree {
Map<Long, List<BomNewMbomMiddleVO>> groupMap = childs.stream().collect(Collectors.groupingBy(BomNewMbomMiddleVO::getParentRowId)); Map<Long, List<BomNewMbomMiddleVO>> groupMap = childs.stream().collect(Collectors.groupingBy(BomNewMbomMiddleVO::getParentRowId));
childs.forEach(child -> { childs.forEach(child -> {
child.setChildNodes(groupMap.get(child.getRowId())); child.setChildNodes(groupMap.get(child.getRowId()));
sysnParentParam(parent,child); sysnParentParam(parent,child);
}); });

View File

@ -108,6 +108,15 @@
</select> </select>
<select id="getMaterialLikeByDrawingNo" resultType="com.nflg.product.bomnew.pojo.vo.BaseMaterialVO">
select material_no, material_name, material_desc, procure_type, project_type, material_state,drawing_no,material_category_code ,material_get_type
from t_material_main
where drawing_no like concat('', #{drawingNo},'%')
</select>