refactor(smartfactory): 重构更新工厂数据逻辑
- 修改 FactoryDataSizeService 接口,将 updateData 方法返回类型改为 List<FactoryDataSizeDO> - 重构 FactoryDataServiceImpl 中的 updateData 方法,使用新的返回值 -优化数据更新逻辑,减少重复代码 - 改进数据统计方式,提高代码可读性和性能
This commit is contained in:
parent
3932fc9030
commit
15a5044334
@ -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());
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -30,7 +30,7 @@ public interface FactoryDataSizeService {
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateData(@Valid FactoryDataSizeCreateReqVO updateReqVO) throws Exception;
|
||||
List<FactoryDataSizeDO> updateData(@Valid FactoryDataSizeCreateReqVO updateReqVO) throws Exception;
|
||||
|
||||
/**
|
||||
* 删除工厂规格数据
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user