fix(ebom): 一些优化
This commit is contained in:
parent
b939212953
commit
31ca386f05
|
|
@ -102,10 +102,9 @@ public class EbomV2Api extends BaseApi {
|
|||
LogRecordContext.putVariable("fileNme", file.getOriginalFilename());
|
||||
List<OperationErrorMsgVO> result = eBomImportService.importBom(file);
|
||||
|
||||
ebomChildService.getBaseMapper().updateEBomMaterialUse();
|
||||
ebomChildService.updateEBomMaterialUse();
|
||||
//这个方法有问题
|
||||
// ebomParentService.compucteLevelNum();
|
||||
ebomParentService.resetAllBomExist();
|
||||
return ResultVO.success(result);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -102,4 +102,6 @@ public interface BomNewEbomParentMapper extends BaseMapper<BomNewEbomParentEntit
|
|||
void insertEBomFormalChild(@Param("parentRowIds") List<Long> parentRowIds);
|
||||
|
||||
void delEBomHistory(@Param("parentRowIds") List<Long> parentRowIds);
|
||||
|
||||
List<BomNewEbomParentEntity> getLatestByMaterialNo(Collection<String> materialNos);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,11 +27,7 @@ import com.nflg.product.bomnew.pojo.dto.*;
|
|||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO;
|
||||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO;
|
||||
import com.nflg.product.bomnew.pojo.entity.*;
|
||||
import com.nflg.product.bomnew.pojo.query.BomExceptionQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.QueryMaterialsQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.GenerateVirtualPackageQuery;
|
||||
import com.nflg.product.bomnew.pojo.query.*;
|
||||
import com.nflg.product.bomnew.pojo.vo.*;
|
||||
import com.nflg.product.bomnew.service.domain.EBom.*;
|
||||
import com.nflg.product.bomnew.util.*;
|
||||
|
|
@ -2394,10 +2390,11 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
|||
}
|
||||
|
||||
public List<BomNewEbomParentEntity> getLatestByMaterialNo(Collection<String> materialNos) {
|
||||
return this.lambdaQuery()
|
||||
.in(BomNewEbomParentEntity::getMaterialNo, materialNos)
|
||||
.eq(BomNewEbomParentEntity::getLastVersionIs, 1)
|
||||
.list();
|
||||
// return this.lambdaQuery()
|
||||
// .in(BomNewEbomParentEntity::getMaterialNo, materialNos)
|
||||
// .eq(BomNewEbomParentEntity::getLastVersionIs, 1)
|
||||
// .list();
|
||||
return this.getBaseMapper().getLatestByMaterialNo(materialNos);
|
||||
}
|
||||
|
||||
public void setLastVersionIs0(Set<String> pMaterialNos) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nflg.product.bomnew.service;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
|
@ -79,8 +78,7 @@ public class EBomImportService {
|
|||
|
||||
bomNewEbomParentService.resetAllBomExist();
|
||||
|
||||
bomNewEbomParentService.batchCheckAndSaveEBomException(pcs.getLeft().stream()
|
||||
.filter(p -> p.getRootIs() == 1)
|
||||
bomNewEbomParentService.batchCheckAndSaveEBomException(importRoots.stream()
|
||||
.map(BomNewEbomParentEntity::getRowId)
|
||||
.collect(Collectors.toList())
|
||||
);
|
||||
|
|
@ -99,6 +97,13 @@ public class EBomImportService {
|
|||
if (!Objects.equals(p.getStatus(), EBomStatusEnum.PUBLISHED.getValue())) {
|
||||
bomNewEbomParentService.getBaseMapper().deleteById(p.getRowId());
|
||||
bomNewEbomChildService.deleteAllChildren(p.getRowId());
|
||||
parents.stream().filter(it -> StrUtil.equals(it.getMaterialNo(), p.getMaterialNo())).forEach(it -> {
|
||||
it.setCurrentVersion(p.getCurrentVersion());
|
||||
});
|
||||
} else {
|
||||
parents.stream().filter(it -> StrUtil.equals(it.getMaterialNo(), p.getMaterialNo())).forEach(it -> {
|
||||
it.setCurrentVersion(VersionUtil.getNextVersion(p.getCurrentVersion()));
|
||||
});
|
||||
}
|
||||
});
|
||||
bomNewEbomParentService.setLastVersionIs0(pMaterialNos);
|
||||
|
|
@ -123,7 +128,7 @@ public class EBomImportService {
|
|||
return isSame;
|
||||
}
|
||||
isSame = Objects.equals(parent.getMaterialUnit(), oldParent.getMaterialUnit())
|
||||
&& NumberUtil.equals(parent.getNum(), oldParent.getNum())
|
||||
&& isEquals(parent.getNum(), oldParent.getNum())
|
||||
&& Objects.equals(parent.getMaterialTexture(), oldParent.getMaterialTexture());
|
||||
|
||||
if (isSame) {
|
||||
|
|
@ -173,7 +178,7 @@ public class EBomImportService {
|
|||
}
|
||||
}
|
||||
isSame = Objects.equals(child.getMaterialUnit(), oldChild.getMaterialUnit())
|
||||
&& NumberUtil.equals(child.getNum(), oldChild.getNum())
|
||||
&& isEquals(child.getNum(), oldChild.getNum())
|
||||
&& Objects.equals(child.getMaterialTexture(), oldChild.getMaterialTexture());
|
||||
|
||||
if (isSame) {
|
||||
|
|
@ -373,7 +378,7 @@ public class EBomImportService {
|
|||
BomNewEbomParentEntity parent = new BomNewEbomParentEntity();
|
||||
parent.setRowId(IdWorker.getId());
|
||||
|
||||
parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
//parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
parent.setMaterialNo(data.getParentMaterialNo());
|
||||
parent.setMaterialDesc(data.getParentMaterialDesc());
|
||||
BaseMaterialVO vo = materialBaseInfos.stream()
|
||||
|
|
@ -453,7 +458,7 @@ public class EBomImportService {
|
|||
//parent.setUnitWeight(BigDecimal.ZERO);
|
||||
parent.setNum(BigDecimal.ONE);
|
||||
//parent.setTotalWeight(BomUtil.calculateTotalWeight(data.getNum(), data.getUnitWeight()));
|
||||
parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
//parent.setCurrentVersion(OriginalConstant.DEFAULT_BOM_VERSION);
|
||||
// List<Long> cps = bomNewEbomChildService.lambdaQuery().eq(BomNewEbomChildEntity::getMaterialNo, materialNo)
|
||||
// .list()
|
||||
// .stream()
|
||||
|
|
@ -512,4 +517,10 @@ public class EBomImportService {
|
|||
child.setVirtualPartType(VirtualPackageTypeEnum.PRE_ASSEMBLY_PACKAGE.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isEquals(BigDecimal a, BigDecimal b) {
|
||||
if (a == null && b == null) return true;
|
||||
if (a == null || b == null) return false;
|
||||
return a.compareTo(b) == 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -484,6 +484,17 @@
|
|||
WHERE a.row_id = #{parentRowId}
|
||||
</select>
|
||||
|
||||
<select id="getLatestByMaterialNo" resultType="com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity">
|
||||
SELECT p1.*
|
||||
FROM t_bom_new_ebom_parent p1
|
||||
INNER JOIN (SELECT material_no,MAX(row_id) row_id FROM t_bom_new_ebom_parent GROUP BY material_no) p2 ON
|
||||
p1.row_id=p2.row_id
|
||||
WHERE p1.material_no IN
|
||||
<foreach collection="materialNos" item="materialNo" index="index" open="(" close=")" separator=",">
|
||||
#{materialNo}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<insert id="insertEBomFormalParent">
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue