合并配件导入问题

This commit is contained in:
sxu 2024-08-12 18:25:11 +08:00
parent ff5db6cbc5
commit 5f45a1eb87
1 changed files with 13 additions and 40 deletions

View File

@ -161,74 +161,47 @@ public class ExcelServiceImpl implements ExcelService {
}
}
private void printLevel3Relation(Map<String, Map<String, List<MapType>>> level3Relation) {
for (Map.Entry<String, Map<String, List<MapType>>> firstLevel : level3Relation.entrySet()) {
boolean outExist = true;
System.out.println("level_1: " + firstLevel.getKey());
//TODO, sql查询是否有此名字 + parentId=0, select * from ma_part_type where name=? and parent_id=0;
MaPartType maPartType_level1 = excelMapper.selectMa(firstLevel.getKey(),0);
//TODO, 以上返回 maPartType_level1
if (Objects.nonNull(maPartType_level1)) {
loopInner(firstLevel, outExist,maPartType_level1.getPaId());
loopInner(firstLevel, maPartType_level1.getPaId());
} else {
//TODO, insert firstLevel, get id
MaPartType maPartType = new MaPartType();
maPartType.setPaName(firstLevel.getKey());
maPartType.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
maPartType.setParentId(0L);
maPartType.setLevel("1");
excelMapper.insertPaName(maPartType);//如果第一层在数据库中查询不到则插入数据并且读取到parent_id
outExist = outExist && false;
loopInner(firstLevel, outExist, maPartType.getPaId());
loopInner(firstLevel, maPartType.getPaId());
}
}
}
private void loopInner(Map.Entry<String, Map<String, List<MapType>>> firstLevel, boolean outExist, long firstLevelId) {
private void loopInner(Map.Entry<String, Map<String, List<MapType>>> firstLevel, long firstLevelId) {
for (Map.Entry<String, List<MapType>> secondLevel : firstLevel.getValue().entrySet()) {
System.out.println("\tlevel_2: " + secondLevel.getKey());
//TODO, sql查询是否有此名字 + parentId=firstLevelId, select * from ma_part_type where name=? and parent_id = firstLevelId;
MaPartType maPartType_level2 = excelMapper.selectMa(secondLevel.getKey(),firstLevelId);
//TODO, 以上返回 maPartType_level2
if (Objects.nonNull(maPartType_level2)) {
looplevel3(secondLevel, outExist, maPartType_level2.getPaId());
looplevel3(secondLevel, maPartType_level2.getPaId());
} else {
//TODO, insert firstLevel, get id
if (!outExist) {
MaPartType maPartType = new MaPartType();
maPartType.setPaName(secondLevel.getKey());
maPartType.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
maPartType.setParentId(firstLevelId);
maPartType.setLevel("2");
excelMapper.insertPaName(maPartType);//如果第一层在数据库中查询不到则插入数据并且读取到parent_id
outExist = outExist && false;
looplevel3(secondLevel, outExist, maPartType.getPaId());
}
MaPartType maPartType = new MaPartType();
maPartType.setPaName(secondLevel.getKey());
maPartType.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
maPartType.setParentId(firstLevelId);
maPartType.setLevel("2");
excelMapper.insertPaName(maPartType);//如果第一层在数据库中查询不到则插入数据并且读取到parent_id
looplevel3(secondLevel, maPartType.getPaId());
}
}
}
private void looplevel3(Map.Entry<String, List<MapType>> secondLevel, boolean outExist, long secondLevelId) {
private void looplevel3(Map.Entry<String, List<MapType>> secondLevel, long secondLevelId) {
for (MapType thirdLevel : secondLevel.getValue()) {
System.out.println("\t\tlevel_3: " + thirdLevel);
//TODO, sql查询是否有此名字 + parentId=secondLevelId, select * from ma_part_type where name=? and parent_id = secondLevelId;
MaPartType maPartType_level3 = excelMapper.selectMa(thirdLevel.getPaName(),secondLevelId);
//TODO, 以上返回 maPartType_level3
if (Objects.nonNull(maPartType_level3)) {
if (!outExist) {
//TODO insert
MaPartType maPartType = new MaPartType();
maPartType.setPaName(thirdLevel.getPaName());
maPartType.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
maPartType.setUnitId(thirdLevel.getUnitId());
maPartType.setBuyPrice(thirdLevel.getBuyPrice());
maPartType.setParentId(secondLevelId);
maPartType.setLevel("3");
excelMapper.insertPaName(maPartType);//如果第一层在数据库中查询不到则插入数据并且读取到parent_id
}
} else {
//TODO insert
if (Objects.isNull(maPartType_level3)) {
MaPartType maPartType = new MaPartType();
maPartType.setPaName(thirdLevel.getPaName());
maPartType.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());