diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java index fd4efe03..8992d0a3 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewEbomParentMapper.java @@ -89,4 +89,17 @@ public interface BomNewEbomParentMapper extends BaseMapper getBom(String materialNo, String drawingNo); List getVOById(Long parentRowId); + + /** + * 移Ebom 父表到给正式表 + */ + void insertEBomFormalParent(@Param("parentRowIds") List parentRowIds); + + /** + * 转移Ebom 子表到给正式表 + * @param parentRowIds + */ + void insertEBomFormalChild(@Param("parentRowIds") List parentRowIds); + + void delEBomHistory(@Param("parentRowIds") List parentRowIds); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java index ed6c917c..c7424791 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewPbomParentMapper.java @@ -59,5 +59,11 @@ public interface BomNewPbomParentMapper extends BaseMapper materialNoList); + void insertPBomParentToFormal(@Param("bomRowIds") List bomRowIds) ; + + void insertPBomChildToFormal(@Param("bomRowIds") List bomRowIds); + + void delPBom(@Param("bomRowIds") List bomRowIds); + } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index c53c9ab4..d2a39d14 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -926,6 +926,8 @@ public class BomNewEbomParentService extends ServiceImpl bomRowIds = bomTree.stream().filter(u -> u.getBomRowId() > 0).map(u -> u.getBomRowId()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(bomRowIds)) { this.getBaseMapper().updateStateBatchByRowIds(EBomStatusEnum.PUBLISHED.getValue(), bomRowIds); + //将历史已发布版-转移到正式历史表 + eBomToFormal(bomRowIds, bomTree.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()) ); } //子级记录-bom版本 List bomChildren = new ArrayList<>(); @@ -2369,4 +2371,25 @@ public class BomNewEbomParentService extends ServiceImpl exceptRowIds, List parents){ + List materialNos = parents.stream().map(u -> u.getMaterialNo()).collect(Collectors.toList()); + List toParents = this.lambdaQuery().eq(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).notIn(BomNewEbomParentEntity::getRowId, exceptRowIds) + .in(BomNewEbomParentEntity::getMaterialNo, materialNos).select(BomNewEbomParentEntity::getRowId).list(); + if(CollUtil.isNotEmpty(toParents)) { + + List childParentRowIds = toParents.stream().map(u -> u.getRowId()).collect(Collectors.toList()); + this.getBaseMapper().insertEBomFormalParent(childParentRowIds); + this.getBaseMapper().insertEBomFormalChild(childParentRowIds); + + //转移后删除 + this.getBaseMapper().delEBomHistory(childParentRowIds); + + } + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java index 71f265f4..dbad8357 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewPbomParentService.java @@ -265,6 +265,7 @@ public class BomNewPbomParentService extends ServiceImpl parent.getStatus(), BomNewPbomParentEntity::getLastVersionIs, 1) .ge(PBomStatusEnum.PUBLISH.getValue() <= parent.getStatus(), BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) + .eq(BomNewPbomParentEntity::getFacCode,parent.getFacCode()) .list(); Map bomListMap= list.parallelStream() @@ -624,7 +625,8 @@ public class BomNewPbomParentService extends ServiceImpl getAllBom(Long rowId, Integer countLevelNum) { List bomDetail = this.getBaseMapper().getParentChild(rowId); AtomicInteger levelNum = new AtomicInteger(1); - PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum); + BomNewPbomParentEntity parent = this.getBaseMapper().selectById(rowId); + PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum,parent.getFacCode()); ForkJoinTask> submit = bomDetailPool.submit(detailTask); List result = submit.join(); @@ -635,7 +637,8 @@ public class BomNewPbomParentService extends ServiceImpl getAllBom(Long rowId, Integer countLevelNum, Boolean generateDrawingNumberFalg) throws ExecutionException, InterruptedException { List bomDetail = this.getBaseMapper().getParentChild(rowId); AtomicInteger levelNum = new AtomicInteger(1); - PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum); + BomNewPbomParentEntity parent = this.getBaseMapper().selectById(rowId); + PBomDetailTask detailTask = new PBomDetailTask(bomDetail, countLevelNum, levelNum,parent.getFacCode()); ForkJoinTask> submit = bomDetailPool.submit(detailTask); List result = submit.join(); @@ -1009,6 +1012,9 @@ public class BomNewPbomParentService extends ServiceImpl bomRowIds = allBom.stream().filter(u -> PBomStatusEnum.WAIT_PUBLISH.equalsValue(u.getStatus()) && u.getBomRowId() > 0).map(u -> u.getBomRowId()).collect(Collectors.toList()); + + List parentMaterialNos = allBom.stream().filter(u -> PBomStatusEnum.WAIT_PUBLISH.equalsValue(u.getStatus()) && u.getBomRowId() > 0).map(u->u.getMaterialNo()).collect(Collectors.toList()); + parentMaterialNos.add(parent.getMaterialNo()); Integer state = (parent.getMaterialNo().startsWith("31") && parent.getFacCode().equals(EBomConstant.MAIN_FACTORY_CODE_1010)) ? PBomStatusEnum.WAIT_FACTORY.getValue() : PBomStatusEnum.PUBLISH.getValue(); bomRowIds.add(bomRowId); this.getBaseMapper().bomRelease(state, SessionUtil.getUserName(), bomRowIds); @@ -1027,7 +1033,10 @@ public class BomNewPbomParentService extends ServiceImpl { importToSAP(bomRowId); @@ -1167,4 +1176,28 @@ public class BomNewPbomParentService extends ServiceImpl exceptRowIds, List parentMaterialNos ,String facCode){ + + List toParents = this.lambdaQuery() + .ge(BomNewPbomParentEntity::getStatus, PBomStatusEnum.PUBLISH.getValue()) + .notIn(BomNewPbomParentEntity::getRowId, exceptRowIds) + .in(BomNewPbomParentEntity::getMaterialNo, parentMaterialNos).select(BomNewPbomParentEntity::getRowId) + .eq(BomNewPbomParentEntity::getFacCode,facCode) + .list(); + if(CollUtil.isNotEmpty(toParents)) { + + List oldPBomRowIds = toParents.stream().map(u -> u.getRowId()).collect(Collectors.toList()); + this.getBaseMapper().insertPBomParentToFormal(oldPBomRowIds); + this.getBaseMapper().insertPBomChildToFormal(oldPBomRowIds); + + //转移后删除 + this.getBaseMapper().delPBom(oldPBomRowIds); + + } + } } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java index 3d4b2f13..1e79fa11 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/domain/PBom/PBomDetailTask.java @@ -36,11 +36,15 @@ public class PBomDetailTask extends RecursiveTask> { //是否统计层级数 private Integer countLevelState; + //工厂编码 + private String facCode; - public PBomDetailTask(List inBomDetail, Integer inCountLevelState, AtomicInteger inLevelNum) { + + public PBomDetailTask(List inBomDetail, Integer inCountLevelState, AtomicInteger inLevelNum,String facCode) { bomDetail = inBomDetail; levelNum=inLevelNum; countLevelState = inCountLevelState; + this.facCode=facCode; } @@ -53,7 +57,10 @@ public class PBomDetailTask extends RecursiveTask> { if (CollUtil.isNotEmpty(materialNos)) { - List childBomlist = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery().in(BomNewPbomParentEntity::getMaterialNo, materialNos).eq(BomNewPbomParentEntity::getLastVersionIs, 1).list(); + List childBomlist = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery() + .in(BomNewPbomParentEntity::getMaterialNo, materialNos) + .eq(BomNewPbomParentEntity::getLastVersionIs, 1) + .eq(BomNewPbomParentEntity::getFacCode,facCode).list(); Map parentMap = ListCommonUtil.listToMap(childBomlist, BomNewPbomParentEntity::getMaterialNo); for (BomNewPbomParentVO detailVO : bomDetail) { if (parentMap.containsKey(detailVO.getMaterialNo())) { @@ -125,7 +132,7 @@ public class PBomDetailTask extends RecursiveTask> { .list(); List bom = Convert.toList(BomNewPbomParentVO.class, children); - PBomDetailTask task = new PBomDetailTask(bom, countLevelState,levelNum); + PBomDetailTask task = new PBomDetailTask(bom, countLevelState,levelNum,facCode); task.fork(); bomDetail.addAll(task.join()); return bomDetail; diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml index c9d8a6ae..e1b8df8c 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewEbomParentMapper.xml @@ -483,4 +483,35 @@ LEFT JOIN t_bom_new_ebom_child b ON a.material_no = b.material_no WHERE a.row_id = #{parentRowId} + + + INSERT INTO `t_bom_new_ebom_parent_formal` (`row_id`, `batch_no`, `drawing_no`, `material_no`, `order_number`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_original_unit`, `unit_weight`, `total_weight`, `current_version`, `num`, `source`, `root_is`, `should_bom_exist`, `super_material_status`, `bom_exist`, `last_version_is`, `edit_status`, `status`, `user_root_is`, `virtrual_package_enum`, `exception_status`, `virtual_package_is`, `source_row_id`, `devise_user_code`, `devise_name`, `created_by`, `created_time`, `created_job`, `audit_time`, `audit_user_name`, `release_time`, `release_user_name`, `revert_time`, `revert_user_name`, `expire_end_time`, `convert_to_ebom_time`, `remark`, `dept_name`, `level_num`, `change_desc`, `notice_nums`, `modify_time`, `sap_state`, `sap_time`) + select `row_id`, `batch_no`, `drawing_no`, `material_no`, `order_number`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_original_unit`, `unit_weight`, `total_weight`, `current_version`, `num`, `source`, `root_is`, `should_bom_exist`, `super_material_status`, `bom_exist`, `last_version_is`, `edit_status`, `status`, `user_root_is`, `virtrual_package_enum`, `exception_status`, `virtual_package_is`, `source_row_id`, `devise_user_code`, `devise_name`, `created_by`, `created_time`, `created_job`, `audit_time`, `audit_user_name`, `release_time`, `release_user_name`, `revert_time`, `revert_user_name`, `expire_end_time`, `convert_to_ebom_time`, `remark`, `dept_name`, `level_num`, `change_desc`, `notice_nums`, `modify_time`, `sap_state`, `sap_time` t_bom_new_ebom_parent + where row_id in + + #{item} + + + + + INSERT INTO `t_bom_new_ebom_child_formal` (`row_id`, `parent_row_id`, `identity_no`, `order_number`, `drawing_no`, `material_no`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_category_code`, `unit_weight`, `num`, `total_weight`, `project_type`, `project_type_input_type`, `created_by`, `virtual_part_is`, `created_time`, `modify_time`, `edit_status`, `exception_status`, `source`, `source_row_id`, `remark`, `virtual_part_type`, `virtual_part_root_material_no`, `bom_version_row_id`) + select `row_id`, `parent_row_id`, `identity_no`, `order_number`, `drawing_no`, `material_no`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_category_code`, `unit_weight`, `num`, `total_weight`, `project_type`, `project_type_input_type`, `created_by`, `virtual_part_is`, `created_time`, `modify_time`, `edit_status`, `exception_status`, `source`, `source_row_id`, `remark`, `virtual_part_type`, `virtual_part_root_material_no`, `bom_version_row_id` + from t_bom_new_ebom_child + where parent_row_id in + + #{parentRowId} + + + + + delete from t_bom_new_ebom_parent where row_id in + + #{parentRowId} + + + delete from t_bom_new_ebom_child where parent_row_id in + + #{parentRowId} + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml index cdf767fd..522c2425 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewPbomParentMapper.xml @@ -260,5 +260,40 @@ + + INSERT INTO `t_bom_new_pbom_parent_formal` (`row_id`, `batch_no`, `drawing_no`, `fac_code`, `material_no`, `order_number`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `unit_weight`, `total_weight`, `current_version`, `num`, `project_type`, `root_is`, `should_bom_exist`, `super_material_status`, `bom_exist`, `last_version_is`, `edit_status`, `status`, `user_root_is`, `virtual_package_is`, `source_row_id`, `devise_user_code`, `devise_name`, `technology_user_code`, `technology_user_name`, `created_by`, `created_time`, `created_job`, `release_time`, `release_user_name`, `last_convert_mbom_user_name`, `last_convert_mbom_time`, `expire_end_time`, `remark`, `dept_name`, `level_num`, `change_desc`, `notice_nums`, `order_no`, `modify_time`, `sap_state`, `sap_time`) + + select `row_id`, `batch_no`, `drawing_no`, `fac_code`, `material_no`, `order_number`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `unit_weight`, `total_weight`, `current_version`, `num`, `project_type`, `root_is`, `should_bom_exist`, `super_material_status`, `bom_exist`, `last_version_is`, `edit_status`, `status`, `user_root_is`, `virtual_package_is`, `source_row_id`, `devise_user_code`, `devise_name`, `technology_user_code`, `technology_user_name`, `created_by`, `created_time`, `created_job`, `release_time`, `release_user_name`, `last_convert_mbom_user_name`, `last_convert_mbom_time`, `expire_end_time`, `remark`, `dept_name`, `level_num`, `change_desc`, `notice_nums`, `order_no`, `modify_time`, `sap_state`, `sap_time` + from t_bom_new_pbom_parent + where row_id in + + #{item} + + + + + INSERT INTO `t_bom_new_pbom_child_formal` (`row_id`, `parent_row_id`, `identity_no`, `fac_code`, `order_number`, `drawing_no`, `material_no`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_category_code`, `unit_weight`, `num`, `total_weight`, `project_type`, `production_factory_code`, `production_factory_code_input_type`, `set_production_factory_time`, `super_material_status`, `virtual_part_is`, `created_by`, `created_time`, `modify_time`, `source_row_id`, `remark`, `source_parent_material_no`, `virtual_part_type`, `virtual_part_root_material_no`, `bom_version_row_id`, `sap_state`, `sap_time`) + + select `row_id`, `parent_row_id`, `identity_no`, `fac_code`, `order_number`, `drawing_no`, `material_no`, `material_name`, `material_desc`, `material_texture`, `material_unit`, `material_category_code`, `unit_weight`, `num`, `total_weight`, `project_type`, `production_factory_code`, `production_factory_code_input_type`, `set_production_factory_time`, `super_material_status`, `virtual_part_is`, `created_by`, `created_time`, `modify_time`, `source_row_id`, `remark`, `source_parent_material_no`, `virtual_part_type`, `virtual_part_root_material_no`, `bom_version_row_id`, `sap_state`, `sap_time` + from t_bom_new_pbom_child + where parent_row_id in + + #{item} + + + + + delete from t_bom_new_pbom_parent where row_id in + + #{item} + + + delete from t_bom_new_pbom_child where parent_row_id in + + #{item} + + + +