refactor(smartfactory): 重构更新工厂数据逻辑

- 修改 FactoryDataSizeService 接口,将 updateData 方法返回类型改为 List<FactoryDataSizeDO>
- 重构 FactoryDataServiceImpl 中的 updateData 方法,使用新的返回值
-优化数据更新逻辑,减少重复代码
- 改进数据统计方式,提高代码可读性和性能
This commit is contained in:
furongxin 2024-12-24 16:51:37 +08:00
parent 3932fc9030
commit 15a5044334
3 changed files with 16 additions and 10 deletions

View File

@ -10,7 +10,6 @@ import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.*; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.*;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeCreateReqVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeDetailRespVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorydata.vo.sizeData.FactoryDataSizeSaveReqVO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataDO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorydata.FactoryDataSizeDO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO;
@ -73,13 +72,13 @@ public class FactoryDataServiceImpl implements FactoryDataService {
public void updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception { public void updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception {
// 修改 规格明细数据 // 修改 规格明细数据
dataSizeService.updateData(updateReqVO); List<FactoryDataSizeDO> updateSizeDOS = dataSizeService.updateData(updateReqVO);
//校验 出入库统计数据是否存在 //校验 出入库统计数据是否存在
List<FactoryDataDO> factoryDataDOS = dataMapper.selectListByFactoryAndDate(updateReqVO.getFactoryId(), List<FactoryDataDO> factoryDataDOS = dataMapper.selectListByFactoryAndDate(updateReqVO.getFactoryId(),
updateReqVO.getDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), updateReqVO.getDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),
updateReqVO.getType()); updateReqVO.getType());
if (factoryDataDOS != null && !factoryDataDOS.isEmpty()) { if (CollUtil.isNotEmpty(factoryDataDOS) && CollUtil.isNotEmpty(updateReqVO.getItems())) {
// 更新 // 更新
factoryDataDOS.forEach(data -> { factoryDataDOS.forEach(data -> {
@ -88,14 +87,14 @@ public class FactoryDataServiceImpl implements FactoryDataService {
//出库数据 //出库数据
case 1: case 1:
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getOutNum).sum()); data.setTotalNum(updateSizeDOS.stream().filter(date -> date.getType() == 2).mapToInt(FactoryDataSizeDO::getNum).sum());
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(date -> Optional.ofNullable(date.getOutDamageNum()).orElse(0)).sum()); data.setDamageNum(updateSizeDOS.stream().filter(date -> date.getType() == 3).mapToInt(date -> Optional.ofNullable(date.getNum()).orElse(0)).sum());
break; break;
//入库数据 //入库数据
case 2: case 2:
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getInNum).sum()); data.setTotalNum(updateSizeDOS.stream().filter(date -> date.getType() == 4).mapToInt(FactoryDataSizeDO::getNum).sum());
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(date -> Optional.ofNullable(date.getInDamageNum()).orElse(0)).sum()); data.setDamageNum(updateSizeDOS.stream().filter(date -> date.getType() == 1).mapToInt(date -> Optional.ofNullable(date.getNum()).orElse(0)).sum());
} }
}); });

View File

@ -30,7 +30,7 @@ public interface FactoryDataSizeService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updateData(@Valid FactoryDataSizeCreateReqVO updateReqVO) throws Exception; List<FactoryDataSizeDO> updateData(@Valid FactoryDataSizeCreateReqVO updateReqVO) throws Exception;
/** /**
* 删除工厂规格数据 * 删除工厂规格数据

View File

@ -154,7 +154,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
} }
@Override @Override
public void updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception { public List<FactoryDataSizeDO> updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception {
// 更新 // 更新
List<FactoryDataSizeDO> createSizeDos = new ArrayList<>(); List<FactoryDataSizeDO> createSizeDos = new ArrayList<>();
@ -193,6 +193,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(4); dataSizeDO.setType(4);
createSizeDos.add(dataSizeDO); createSizeDos.add(dataSizeDO);
}else { }else {
dataSizeDO.setType(4);
factoryDataSizeDOs.add(dataSizeDO); factoryDataSizeDOs.add(dataSizeDO);
} }
} }
@ -214,6 +215,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(1); dataSizeDO.setType(1);
createSizeDos.add(dataSizeDO); createSizeDos.add(dataSizeDO);
}else { }else {
dataSizeDO.setType(1);
factoryDataSizeDOs.add(dataSizeDO); factoryDataSizeDOs.add(dataSizeDO);
} }
} }
@ -235,6 +237,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(2); dataSizeDO.setType(2);
createSizeDos.add(dataSizeDO); createSizeDos.add(dataSizeDO);
}else { }else {
dataSizeDO.setType(2);
factoryDataSizeDOs.add(dataSizeDO); factoryDataSizeDOs.add(dataSizeDO);
} }
} }
@ -256,6 +259,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(3); dataSizeDO.setType(3);
createSizeDos.add(dataSizeDO); createSizeDos.add(dataSizeDO);
}else { }else {
dataSizeDO.setType(3);
factoryDataSizeDOs.add(dataSizeDO); factoryDataSizeDOs.add(dataSizeDO);
} }
} }
@ -267,18 +271,21 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
.filter(ObjectUtil::isNotNull) .filter(ObjectUtil::isNotNull)
.collect(Collectors.toList()); .collect(Collectors.toList());
List<FactoryDataSizeDO> respVOs = new ArrayList<>();
if (!factoryDataSizeDOs.isEmpty()) { if (!factoryDataSizeDOs.isEmpty()) {
factoryDataSizeMapper.updateBatch(factoryDataSizeDOs); factoryDataSizeMapper.updateBatch(factoryDataSizeDOs);
respVOs.addAll(factoryDataSizeDOs);
} }
if (!createSizeDos.isEmpty()) { if (!createSizeDos.isEmpty()) {
factoryDataSizeMapper.insertBatch(createSizeDos); factoryDataSizeMapper.insertBatch(createSizeDos);
respVOs.addAll(createSizeDos);
} }
if (CollectionUtil.isNotEmpty(deleteIds)) { if (CollectionUtil.isNotEmpty(deleteIds)) {
factoryDataSizeMapper.deleteBatchIds(deleteIds); factoryDataSizeMapper.deleteBatchIds(deleteIds);
} }
return respVOs;
} }
@Override @Override