From 5a7aef140731310220f2137be710383ca7a3341f Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Sun, 13 Oct 2024 21:29:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=A5=E5=8E=82=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=9F=E8=AE=A1=E6=9F=A5=E8=AF=A2=E5=92=8C=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 扩展查询条件,增加数据类型筛选 - 优化数据损坏数量的计算逻辑,处理空值情况 - 保证统计服务的准确性和健壮性 --- .../dal/mysql/factorydata/FactoryDataMapper.java | 5 +++-- .../service/factorydata/FactoryDataServiceImpl.java | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorydata/FactoryDataMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorydata/FactoryDataMapper.java index 2cbce43d..a1f68b2f 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorydata/FactoryDataMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factorydata/FactoryDataMapper.java @@ -31,11 +31,12 @@ public interface FactoryDataMapper extends BaseMapperX { .eqIfPresent(FactoryDataDO::getDataType, type)); } - default List selectListByFactoryAndDate(Long factoryId, String date) { + default List selectListByFactoryAndDate(Long factoryId, String date, Integer type) { return selectList(new LambdaQueryWrapperX() .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); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorydata/FactoryDataServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorydata/FactoryDataServiceImpl.java index d53f9342..5667cdc9 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorydata/FactoryDataServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factorydata/FactoryDataServiceImpl.java @@ -76,7 +76,9 @@ public class FactoryDataServiceImpl implements FactoryDataService { dataSizeService.updateData(updateReqVO); //校验 出入库统计数据是否存在 - List factoryDataDOS = dataMapper.selectListByFactoryAndDate(updateReqVO.getFactoryId(), updateReqVO.getDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + List 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()); } });