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.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.FactoryDataSizeSaveReqVO;
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.factoryinfo.FactoryInfoDO;
@ -73,13 +72,13 @@ public class FactoryDataServiceImpl implements FactoryDataService {
public void updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception {
// 修改 规格明细数据
dataSizeService.updateData(updateReqVO);
List<FactoryDataSizeDO> updateSizeDOS = dataSizeService.updateData(updateReqVO);
//校验 出入库统计数据是否存在
List<FactoryDataDO> factoryDataDOS = dataMapper.selectListByFactoryAndDate(updateReqVO.getFactoryId(),
updateReqVO.getDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),
updateReqVO.getType());
if (factoryDataDOS != null && !factoryDataDOS.isEmpty()) {
if (CollUtil.isNotEmpty(factoryDataDOS) && CollUtil.isNotEmpty(updateReqVO.getItems())) {
// 更新
factoryDataDOS.forEach(data -> {
@ -88,14 +87,14 @@ public class FactoryDataServiceImpl implements FactoryDataService {
//出库数据
case 1:
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getOutNum).sum());
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(date -> Optional.ofNullable(date.getOutDamageNum()).orElse(0)).sum());
data.setTotalNum(updateSizeDOS.stream().filter(date -> date.getType() == 2).mapToInt(FactoryDataSizeDO::getNum).sum());
data.setDamageNum(updateSizeDOS.stream().filter(date -> date.getType() == 3).mapToInt(date -> Optional.ofNullable(date.getNum()).orElse(0)).sum());
break;
//入库数据
case 2:
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getInNum).sum());
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(date -> Optional.ofNullable(date.getInDamageNum()).orElse(0)).sum());
data.setTotalNum(updateSizeDOS.stream().filter(date -> date.getType() == 4).mapToInt(FactoryDataSizeDO::getNum).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 更新信息
*/
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
public void updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception {
public List<FactoryDataSizeDO> updateData(FactoryDataSizeCreateReqVO updateReqVO) throws Exception {
// 更新
List<FactoryDataSizeDO> createSizeDos = new ArrayList<>();
@ -193,6 +193,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(4);
createSizeDos.add(dataSizeDO);
}else {
dataSizeDO.setType(4);
factoryDataSizeDOs.add(dataSizeDO);
}
}
@ -214,6 +215,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(1);
createSizeDos.add(dataSizeDO);
}else {
dataSizeDO.setType(1);
factoryDataSizeDOs.add(dataSizeDO);
}
}
@ -235,6 +237,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(2);
createSizeDos.add(dataSizeDO);
}else {
dataSizeDO.setType(2);
factoryDataSizeDOs.add(dataSizeDO);
}
}
@ -256,6 +259,7 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
dataSizeDO.setType(3);
createSizeDos.add(dataSizeDO);
}else {
dataSizeDO.setType(3);
factoryDataSizeDOs.add(dataSizeDO);
}
}
@ -267,18 +271,21 @@ public class FactoryDataSizeServiceImpl implements FactoryDataSizeService{
.filter(ObjectUtil::isNotNull)
.collect(Collectors.toList());
List<FactoryDataSizeDO> respVOs = new ArrayList<>();
if (!factoryDataSizeDOs.isEmpty()) {
factoryDataSizeMapper.updateBatch(factoryDataSizeDOs);
respVOs.addAll(factoryDataSizeDOs);
}
if (!createSizeDos.isEmpty()) {
factoryDataSizeMapper.insertBatch(createSizeDos);
respVOs.addAll(createSizeDos);
}
if (CollectionUtil.isNotEmpty(deleteIds)) {
factoryDataSizeMapper.deleteBatchIds(deleteIds);
}
return respVOs;
}
@Override