修复工厂数据统计查询和计算问题
- 扩展查询条件,增加数据类型筛选 - 优化数据损坏数量的计算逻辑,处理空值情况 - 保证统计服务的准确性和健壮性
This commit is contained in:
parent
3aa9fec844
commit
7e70308c23
@ -31,11 +31,12 @@ public interface FactoryDataMapper extends BaseMapperX<FactoryDataDO> {
|
|||||||
.eqIfPresent(FactoryDataDO::getDataType, type));
|
.eqIfPresent(FactoryDataDO::getDataType, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<FactoryDataDO> selectListByFactoryAndDate(Long factoryId, String date) {
|
default List<FactoryDataDO> selectListByFactoryAndDate(Long factoryId, String date, Integer type) {
|
||||||
|
|
||||||
return selectList(new LambdaQueryWrapperX<FactoryDataDO>()
|
return selectList(new LambdaQueryWrapperX<FactoryDataDO>()
|
||||||
.eq(FactoryDataDO::getFactoryId, factoryId)
|
.eq(FactoryDataDO::getFactoryId, factoryId)
|
||||||
.eq(FactoryDataDO::getDate, date));
|
.eq(FactoryDataDO::getDate, date)
|
||||||
|
.eq(FactoryDataDO::getDataType, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
FactoryDataTotalVO selectDataSum(@Param("factoryId") Long factoryId, @Param("date") LocalDate[] date);
|
FactoryDataTotalVO selectDataSum(@Param("factoryId") Long factoryId, @Param("date") LocalDate[] date);
|
||||||
|
@ -76,7 +76,9 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
|||||||
dataSizeService.updateData(updateReqVO);
|
dataSizeService.updateData(updateReqVO);
|
||||||
|
|
||||||
//校验 出入库统计数据是否存在
|
//校验 出入库统计数据是否存在
|
||||||
List<FactoryDataDO> factoryDataDOS = dataMapper.selectListByFactoryAndDate(updateReqVO.getFactoryId(), updateReqVO.getDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
|
List<FactoryDataDO> factoryDataDOS = dataMapper.selectListByFactoryAndDate(updateReqVO.getFactoryId(),
|
||||||
|
updateReqVO.getDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),
|
||||||
|
updateReqVO.getType());
|
||||||
if (factoryDataDOS != null && !factoryDataDOS.isEmpty()) {
|
if (factoryDataDOS != null && !factoryDataDOS.isEmpty()) {
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
@ -87,13 +89,13 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
|||||||
//出库数据
|
//出库数据
|
||||||
case 1:
|
case 1:
|
||||||
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getOutNum).sum());
|
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getOutNum).sum());
|
||||||
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getOutDamageNum).sum());
|
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(date -> Optional.ofNullable(date.getOutDamageNum()).orElse(0)).sum());
|
||||||
break;
|
break;
|
||||||
//入库数据
|
//入库数据
|
||||||
case 2:
|
case 2:
|
||||||
|
|
||||||
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getInNum).sum());
|
data.setTotalNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getInNum).sum());
|
||||||
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(FactoryDataSizeSaveReqVO::getInDamageNum).sum());
|
data.setDamageNum(updateReqVO.getItems().stream().mapToInt(date -> Optional.ofNullable(date.getInDamageNum()).orElse(0)).sum());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user