修复工厂数据统计查询和计算问题
- 扩展查询条件,增加数据类型筛选 - 优化数据损坏数量的计算逻辑,处理空值情况 - 保证统计服务的准确性和健壮性
This commit is contained in:
parent
3aa9fec844
commit
7e70308c23
@ -31,11 +31,12 @@ public interface FactoryDataMapper extends BaseMapperX<FactoryDataDO> {
|
||||
.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>()
|
||||
.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);
|
||||
|
@ -76,7 +76,9 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
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()) {
|
||||
|
||||
// 更新
|
||||
@ -87,13 +89,13 @@ public class FactoryDataServiceImpl implements FactoryDataService {
|
||||
//出库数据
|
||||
case 1:
|
||||
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;
|
||||
//入库数据
|
||||
case 2:
|
||||
|
||||
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