mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 05:42:06 +08:00
板材、配件导入重复代码移除、代码规范修正
This commit is contained in:
+71
-45
@@ -13,7 +13,9 @@ import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsCadPage
|
|||||||
import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsImportExcelVO;
|
import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsImportExcelVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsPageReqVO;
|
import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsPageReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsSaveReqVO;
|
import com.cf.imes.module.executor.controller.admin.manage.parts.vo.PartsSaveReqVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.manage.plate.vo.plate.PlateImportExcelVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.PartsDO;
|
import com.cf.imes.module.executor.dal.dataobject.orderParts.PartsDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
|
||||||
import com.cf.imes.module.executor.dal.mysql.orderParts.PartsBatchMapper;
|
import com.cf.imes.module.executor.dal.mysql.orderParts.PartsBatchMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.orderParts.PartsMapper;
|
import com.cf.imes.module.executor.dal.mysql.orderParts.PartsMapper;
|
||||||
import com.cf.imes.module.executor.enums.manage.parts.CategoryEnum;
|
import com.cf.imes.module.executor.enums.manage.parts.CategoryEnum;
|
||||||
@@ -275,54 +277,25 @@ public class PartsServiceImpl implements PartsService {
|
|||||||
|
|
||||||
for (List<PartsImportExcelVO> batch : batches) {
|
for (List<PartsImportExcelVO> batch : batches) {
|
||||||
threadPoolTaskExecutor.submit(() -> {
|
threadPoolTaskExecutor.submit(() -> {
|
||||||
threadPoolTaskExecutor.submit(() -> {
|
try {
|
||||||
try {
|
// 子线程同步主线程的多数据源
|
||||||
// 子线程同步主线程的多数据源
|
DynamicDataSourceContextHolder.push(peek);
|
||||||
DynamicDataSourceContextHolder.push(peek);
|
|
||||||
|
|
||||||
List<String> goodsIds = batch.stream().map(PartsImportExcelVO::getGoodsId).collect(Collectors.toList());
|
List<String> goodsIds = batch.stream().map(PartsImportExcelVO::getGoodsId).collect(Collectors.toList());
|
||||||
Map<String, PartsDO> partsMap = partsMapper.selectList(
|
Map<String, PartsDO> partsMap = partsMapper.selectList(
|
||||||
new LambdaQueryWrapper<PartsDO>().in(PartsDO::getGoodsId, goodsIds).eq(PartsDO::getOrganId, organId))
|
new LambdaQueryWrapper<PartsDO>().in(PartsDO::getGoodsId, goodsIds).eq(PartsDO::getOrganId, organId))
|
||||||
.stream().collect(Collectors.toMap(PartsDO::getGoodsId, p -> p));
|
.stream().collect(Collectors.toMap(PartsDO::getGoodsId, p -> p));
|
||||||
|
|
||||||
for (PartsImportExcelVO importPart : batch) {
|
// 整理到insertLis、updateList
|
||||||
PartsDO existPlate = partsMap.get(importPart.getGoodsId());
|
doBatch(batch, partsMap, organId, isUpdateSupport, insertList, updateList);
|
||||||
if (existPlate == null) {
|
} catch (Exception e) {
|
||||||
PartsDO partsDO = BeanUtils.toBean(importPart, PartsDO.class).setOrganId(organId);
|
boolean b = hasError.get();
|
||||||
partsDO.setIsComposite(ObjectUtil.isNull(partsDO.getIsComposite()) ? false : partsDO.getIsComposite())
|
if (!b) {
|
||||||
.setCategory(getEmpty(partsDO.getCategory()))
|
hasError.set(true);
|
||||||
.setSubparts(getEmpty(partsDO.getType()))
|
|
||||||
.setColor(getEmpty(partsDO.getColor()))
|
|
||||||
.setFactory(getEmpty(partsDO.getFactory()))
|
|
||||||
.setRemark(getEmpty(partsDO.getRemark()))
|
|
||||||
.setBrand(getEmpty(partsDO.getBrand()))
|
|
||||||
.setModel(getEmpty(partsDO.getModel()))
|
|
||||||
.setSpec(getEmpty(partsDO.getSpec()))
|
|
||||||
.setMaterial(getEmpty(partsDO.getMaterial()))
|
|
||||||
.setLength(getZeroDouble(partsDO.getLength()))
|
|
||||||
.setWidth(getZeroDouble(partsDO.getWidth()))
|
|
||||||
.setThickness(getZeroDouble(partsDO.getThickness()))
|
|
||||||
.setPrice(getZeroDouble(partsDO.getPrice()))
|
|
||||||
.setUnit(getEmpty(partsDO.getUnit()))
|
|
||||||
.setOrganId(organId)
|
|
||||||
.setDeleted(false);
|
|
||||||
insertList.add(partsDO);
|
|
||||||
} else if (!isUpdateSupport) {
|
|
||||||
PartsDO partsDO = BeanUtils.toBean(importPart, PartsDO.class)
|
|
||||||
.setOrganId(organId)
|
|
||||||
.setId(existPlate.getId());
|
|
||||||
updateList.add(partsDO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
boolean b = hasError.get();
|
|
||||||
if (!b) {
|
|
||||||
hasError.set(true);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
latch.countDown(); // 任务完成,计数器减1
|
|
||||||
}
|
}
|
||||||
});
|
} finally {
|
||||||
|
latch.countDown(); // 任务完成,计数器减1
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -336,6 +309,49 @@ public class PartsServiceImpl implements PartsService {
|
|||||||
return hasError.get();
|
return hasError.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 遍历批次列表,存在更新,不存在新增
|
||||||
|
*
|
||||||
|
* @param batch
|
||||||
|
* @param partsMap 已经存在goodsId的part map
|
||||||
|
* @param organId
|
||||||
|
* @param isUpdateSupport
|
||||||
|
* @param insertList
|
||||||
|
* @param updateList
|
||||||
|
*/
|
||||||
|
private void doBatch(List<PartsImportExcelVO> batch, Map<String, PartsDO> partsMap, Long organId,
|
||||||
|
boolean isUpdateSupport, List<PartsDO> insertList, List<PartsDO> updateList) {
|
||||||
|
for (PartsImportExcelVO importPart : batch) {
|
||||||
|
PartsDO existPlate = partsMap.get(importPart.getGoodsId());
|
||||||
|
if (existPlate == null) {
|
||||||
|
PartsDO partsDO = BeanUtils.toBean(importPart, PartsDO.class).setOrganId(organId);
|
||||||
|
partsDO.setIsComposite(getDefaultFalse(partsDO.getIsComposite()))
|
||||||
|
.setCategory(getEmpty(partsDO.getCategory()))
|
||||||
|
.setSubparts(getEmpty(partsDO.getType()))
|
||||||
|
.setColor(getEmpty(partsDO.getColor()))
|
||||||
|
.setFactory(getEmpty(partsDO.getFactory()))
|
||||||
|
.setRemark(getEmpty(partsDO.getRemark()))
|
||||||
|
.setBrand(getEmpty(partsDO.getBrand()))
|
||||||
|
.setModel(getEmpty(partsDO.getModel()))
|
||||||
|
.setSpec(getEmpty(partsDO.getSpec()))
|
||||||
|
.setMaterial(getEmpty(partsDO.getMaterial()))
|
||||||
|
.setLength(getZeroDouble(partsDO.getLength()))
|
||||||
|
.setWidth(getZeroDouble(partsDO.getWidth()))
|
||||||
|
.setThickness(getZeroDouble(partsDO.getThickness()))
|
||||||
|
.setPrice(getZeroDouble(partsDO.getPrice()))
|
||||||
|
.setUnit(getEmpty(partsDO.getUnit()))
|
||||||
|
.setOrganId(organId)
|
||||||
|
.setDeleted(false);
|
||||||
|
insertList.add(partsDO);
|
||||||
|
} else if (!isUpdateSupport) {
|
||||||
|
PartsDO partsDO = BeanUtils.toBean(importPart, PartsDO.class)
|
||||||
|
.setOrganId(organId)
|
||||||
|
.setId(existPlate.getId());
|
||||||
|
updateList.add(partsDO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每batchSize条数据处理一次DO
|
* 每batchSize条数据处理一次DO
|
||||||
*
|
*
|
||||||
@@ -394,6 +410,16 @@ public class PartsServiceImpl implements PartsService {
|
|||||||
return ObjectUtil.defaultIfNull(value, 0.0);
|
return ObjectUtil.defaultIfNull(value, 0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* value为空返回false
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Boolean getDefaultFalse(Boolean value) {
|
||||||
|
return ObjectUtil.defaultIfNull(value, false);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PartsDO> getPartAll(String category) {
|
public List<PartsDO> getPartAll(String category) {
|
||||||
return partsMapper.getAllByOrganId(OrganContextHolder.getOrganId(), category);
|
return partsMapper.getAllByOrganId(OrganContextHolder.getOrganId(), category);
|
||||||
|
|||||||
+53
-38
@@ -209,44 +209,26 @@ public class PlateManageServiceImpl implements PlateManageService {
|
|||||||
|
|
||||||
for (List<PlateImportExcelVO> batch : batches) {
|
for (List<PlateImportExcelVO> batch : batches) {
|
||||||
threadPoolTaskExecutor.submit(() -> {
|
threadPoolTaskExecutor.submit(() -> {
|
||||||
threadPoolTaskExecutor.submit(() -> {
|
try {
|
||||||
try {
|
// 子线程同步主线程的多数据源
|
||||||
// 子线程同步主线程的多数据源
|
DynamicDataSourceContextHolder.push(peek);
|
||||||
DynamicDataSourceContextHolder.push(peek);
|
|
||||||
|
|
||||||
List<String> goodsIds = batch.stream().map(PlateImportExcelVO::getGoodsId).collect(Collectors.toList());
|
List<String> goodsIds = batch.stream().map(PlateImportExcelVO::getGoodsId).collect(Collectors.toList());
|
||||||
Map<String, PlateGoodDO> plateGoodMap = plateGoodMapper.selectList(
|
Map<String, PlateGoodDO> plateGoodMap = plateGoodMapper.selectList(
|
||||||
new LambdaQueryWrapper<PlateGoodDO>().in(PlateGoodDO::getGoodsId, goodsIds).eq(PlateGoodDO::getOrganId, organId))
|
new LambdaQueryWrapper<PlateGoodDO>().in(PlateGoodDO::getGoodsId, goodsIds).eq(PlateGoodDO::getOrganId, organId))
|
||||||
.stream().collect(Collectors.toMap(PlateGoodDO::getGoodsId, p -> p));
|
.stream().collect(Collectors.toMap(PlateGoodDO::getGoodsId, p -> p));
|
||||||
|
|
||||||
for (PlateImportExcelVO importPart : batch) {
|
// 整理到insertLis、updateList
|
||||||
PlateGoodDO existPlate = plateGoodMap.get(importPart.getGoodsId());
|
doBatch(batch, plateGoodMap, organId, isUpdateSupport, insertList, updateList);
|
||||||
if (existPlate == null) {
|
|
||||||
PlateGoodDO plateGoodDO = BeanUtils.toBean(importPart, PlateGoodDO.class).setOrganId(organId);
|
} catch (Exception e) {
|
||||||
plateGoodDO.setColorBlack(EMPTY_STRING)
|
boolean b = hasError.get();
|
||||||
.setBrand(EMPTY_STRING)
|
if (!b) {
|
||||||
.setSpec(getEmpty(plateGoodDO.getSpec()))
|
hasError.set(true);
|
||||||
.setRemark(getEmpty(plateGoodDO.getRemark()))
|
|
||||||
.setTexture(ObjectUtil.isNull(plateGoodDO.getTexture()) ? false : plateGoodDO.getTexture())
|
|
||||||
.setOrganId(organId)
|
|
||||||
.setDeleted(false);
|
|
||||||
insertList.add(plateGoodDO);
|
|
||||||
} else if (!isUpdateSupport) {
|
|
||||||
PlateGoodDO plateGoodDO = BeanUtils.toBean(importPart, PlateGoodDO.class)
|
|
||||||
.setOrganId(organId)
|
|
||||||
.setId(existPlate.getId());
|
|
||||||
updateList.add(plateGoodDO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
boolean b = hasError.get();
|
|
||||||
if (!b) {
|
|
||||||
hasError.set(true);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
latch.countDown(); // 任务完成,计数器减1
|
|
||||||
}
|
}
|
||||||
});
|
} finally {
|
||||||
|
latch.countDown(); // 任务完成,计数器减1
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,6 +242,39 @@ public class PlateManageServiceImpl implements PlateManageService {
|
|||||||
return hasError.get();
|
return hasError.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 遍历批次列表,存在更新,不存在新增
|
||||||
|
*
|
||||||
|
* @param batch
|
||||||
|
* @param plateGoodMap 已经存在goodsId的plate map
|
||||||
|
* @param organId
|
||||||
|
* @param isUpdateSupport
|
||||||
|
* @param insertList
|
||||||
|
* @param updateList
|
||||||
|
*/
|
||||||
|
private void doBatch(List<PlateImportExcelVO> batch, Map<String, PlateGoodDO> plateGoodMap, Long organId,
|
||||||
|
boolean isUpdateSupport, List<PlateGoodDO> insertList, List<PlateGoodDO> updateList) {
|
||||||
|
for (PlateImportExcelVO importPart : batch) {
|
||||||
|
PlateGoodDO existPlate = plateGoodMap.get(importPart.getGoodsId());
|
||||||
|
if (existPlate == null) {
|
||||||
|
PlateGoodDO plateGoodDO = BeanUtils.toBean(importPart, PlateGoodDO.class).setOrganId(organId);
|
||||||
|
plateGoodDO.setColorBlack(EMPTY_STRING)
|
||||||
|
.setBrand(EMPTY_STRING)
|
||||||
|
.setSpec(getEmpty(plateGoodDO.getSpec()))
|
||||||
|
.setRemark(getEmpty(plateGoodDO.getRemark()))
|
||||||
|
.setTexture(getDefaultFalse(plateGoodDO.getTexture()))
|
||||||
|
.setOrganId(organId)
|
||||||
|
.setDeleted(false);
|
||||||
|
insertList.add(plateGoodDO);
|
||||||
|
} else if (!isUpdateSupport) {
|
||||||
|
PlateGoodDO plateGoodDO = BeanUtils.toBean(importPart, PlateGoodDO.class)
|
||||||
|
.setOrganId(organId)
|
||||||
|
.setId(existPlate.getId());
|
||||||
|
updateList.add(plateGoodDO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 每batchSize条数据处理一次DO
|
* 每batchSize条数据处理一次DO
|
||||||
*
|
*
|
||||||
@@ -309,13 +324,13 @@ public class PlateManageServiceImpl implements PlateManageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* value为空返回0.0
|
* value为空返回false
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private double getZeroDouble(Double value) {
|
private Boolean getDefaultFalse(Boolean value) {
|
||||||
return ObjectUtil.defaultIfNull(value, 0.0);
|
return ObjectUtil.defaultIfNull(value, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user