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