From 8ef746fbfce46e31729bf7b89cbd0e597eee3eac Mon Sep 17 00:00:00 2001 From: Ledo Date: Sat, 5 Jul 2025 01:31:45 +0800 Subject: [PATCH] panku --- .../admin/storage/StorageController.java | 63 +---------------- .../storagecheck/StorageCheckServiceImpl.java | 66 ++++++++++++++++-- .../StorageCheckMatServiceImpl.java | 68 +++++++++---------- 3 files changed, 97 insertions(+), 100 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java index 295cdce..764d978 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/storage/StorageController.java @@ -144,53 +144,7 @@ public class StorageController { storageService.updateStorage(updateReqVO); int status = targetDo.getStatus(); -// if (updateReqVO.getStockType()==1&&updateReqVO.getStockInType()==1){ -// if (status==2){ -// List matList = storageMatMapper.selectMatByStorckID(targetDo.getId()); -// for (StorageMatDO storageMatDO : matList) { -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(StorageLogNowDO::getMatCode, storageMatDO.getMatCode()); -// wrapper.eq(StorageLogNowDO::getMatName,storageMatDO.getMatName()); -// BigDecimal totalStorageOkQty = storageLogNowMapper.selectList(wrapper).stream() -// .map(StorageLogNowDO::getStorageOkQty) -// .filter(Objects::nonNull) // 确保过滤掉 null 值 -// .reduce(BigDecimal.ZERO, BigDecimal::add); -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// queryWrapper.eq(MaterialDO::getCode, storageMatDO.getMatCode()); -// queryWrapper.eq(MaterialDO::getName,storageMatDO.getMatName()); -// MaterialDO materialDO = materialMapper.selectOne(queryWrapper); -// if (ObjectUtil.isEmpty(materialDO.getPrice())){ -// materialDO.setPrice(BigDecimal.ZERO); -// } -// BigDecimal add = totalStorageOkQty.multiply(materialDO.getPrice()).add(storageMatDO.getPrice().multiply(storageMatDO.getStorageOkQty())); -// BigDecimal divide = add.divide(totalStorageOkQty.add(storageMatDO.getStorageOkQty()),2,RoundingMode.HALF_UP); -// materialDO.setPrice(divide); -// materialMapper.updateById(materialDO); -// } -// }else if (status==3){ -// List matList = storageMatMapper.selectMatByStorckID(targetDo.getId()); -// for (StorageMatDO storageMatDO : matList) { -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(StorageLogNowDO::getMatCode, storageMatDO.getMatCode()); -// wrapper.eq(StorageLogNowDO::getMatName,storageMatDO.getMatName()); -// BigDecimal totalStorageOkQty = storageLogNowMapper.selectList(wrapper).stream() -// .map(StorageLogNowDO::getStorageOkQty) -// .filter(Objects::nonNull) // 确保过滤掉 null 值 -// .reduce(BigDecimal.ZERO, BigDecimal::add); -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// queryWrapper.eq(MaterialDO::getCode, storageMatDO.getMatCode()); -// queryWrapper.eq(MaterialDO::getName,storageMatDO.getMatName()); -// MaterialDO materialDO = materialMapper.selectOne(queryWrapper); -// if (ObjectUtil.isEmpty(materialDO.getPrice())){ -// materialDO.setPrice(BigDecimal.ZERO); -// } -// BigDecimal add = totalStorageOkQty.multiply(materialDO.getPrice()).subtract(storageMatDO.getPrice().multiply(storageMatDO.getStorageOkQty())); -// BigDecimal divide = add.divide(totalStorageOkQty.subtract(storageMatDO.getStorageOkQty()),2,RoundingMode.HALF_UP); -// materialDO.setPrice(divide); -// materialMapper.updateById(materialDO); -// } -// } -// } + List matList = storageMatMapper.selectMatByStorckID(targetDo.getId()); if (updateReqVO.getStockType()==1){ if (status==2){ @@ -223,21 +177,6 @@ public class StorageController { storageInventoryMapper.insertOrUpdate(storageInventoryDO); } } -// else if (status==3){ -// for (StorageMatDO storageMatDO : matList) { -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(StorageInventoryDO::getWhId,storageMatDO.getWhId()); -// wrapper.eq(StorageInventoryDO::getMaterialId,storageMatDO.getMatId()); -// wrapper.eq(StorageInventoryDO::getRgId,storageMatDO.getRgId()); -// wrapper.eq(StorageInventoryDO::getPnId,storageMatDO.getPnId()); -// wrapper.eq(StorageInventoryDO::getDeleted,0); -// StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper); -// if (ObjectUtil.isNotEmpty(storageInventoryDO)){ -// storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().subtract(storageMatDO.getStorageOkQty())); -// } -// storageInventoryMapper.insertOrUpdate(storageInventoryDO); -// } -// } }else if (updateReqVO.getStockType()==2){ if (updateReqVO.getStatus() == 4){ for (StorageMatDO storageMatDO : matList) { diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheck/StorageCheckServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheck/StorageCheckServiceImpl.java index cba1d04..6f1d915 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheck/StorageCheckServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheck/StorageCheckServiceImpl.java @@ -1,13 +1,19 @@ package com.chanko.yunxi.mes.module.heli.service.storagecheck; import cn.hutool.core.lang.UUID; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagecheckmat.StorageCheckMatDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; +import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagecheckmat.StorageCheckMatMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storageinventory.StorageInventoryMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper; import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; @@ -56,7 +62,10 @@ public class StorageCheckServiceImpl implements StorageCheckService { @Resource private StorageCheckMatMapper storageCheckMatMapper; - + @Resource + private MaterialMapper materialMapper; + @Resource + private StorageInventoryMapper storageInventoryMapper; @Resource private StorageCheckMapper storageCheckMapper; @@ -148,7 +157,7 @@ public class StorageCheckServiceImpl implements StorageCheckService { storageDO.setStockInType(stockInType); storageDO.setStockNo(UUID.fastUUID().toString(true)); storageDO.setHeaderNo(storageCheckDO.getStockNo()); - storageDO.setStatus(2); + storageDO.setStatus(1); storageDO.setDescription(storageCheckDO.getDescription()); storageDO.setWhId(storageCheckDO.getWhId()); storageDO.setKeeper(storageCheckDO.getKeeper()); @@ -163,6 +172,56 @@ public class StorageCheckServiceImpl implements StorageCheckService { storageMapper.updateById(storageDO); saveStorageMat(storageCheckDO,storageDO.getId(),stockType); + List matList = storageMatMapper.selectMatByStorckID(storageDO.getId()); + if (storageDO.getStockType()==1){ + if (storageDO.getStatus() ==2){ + for (StorageMatDO storageMatDO : matList) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StorageInventoryDO::getWhId,storageMatDO.getWhId()); + wrapper.eq(StorageInventoryDO::getMaterialId,storageMatDO.getMatId()); + wrapper.eq(StorageInventoryDO::getRgId,storageMatDO.getRgId()); + wrapper.eq(StorageInventoryDO::getPnId,storageMatDO.getPnId()); + wrapper.eq(StorageInventoryDO::getDeleted,0); + StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper); + if (ObjectUtil.isEmpty(storageInventoryDO)){ + storageInventoryDO = new StorageInventoryDO(); + storageInventoryDO.setMaterialId(storageMatDO.getMatId()); + storageInventoryDO.setWhId(storageMatDO.getWhId()); + storageInventoryDO.setRgId(storageMatDO.getRgId()); + storageInventoryDO.setPnId(storageMatDO.getPnId()); + storageInventoryDO.setYardAmount(storageMatDO.getStorageOkQty() ); + MaterialDO materialDO = materialMapper.selectById(storageMatDO.getMatId()); + if (ObjectUtil.isNotEmpty(materialDO)){ + storageInventoryDO.setBoomUnit(materialDO.getUnit()); + storageInventoryDO.setBoomName(materialDO.getName()); + storageInventoryDO.setBoomSpec(materialDO.getSpec()); + storageInventoryDO.setShortName(materialDO.getShortName()); + storageInventoryDO.setBoomCode(materialDO.getCode()); + } + }else { + storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().add(storageMatDO.getStorageOkQty())); + } + storageInventoryMapper.insertOrUpdate(storageInventoryDO); + } + } + }else if (storageDO.getStockType()==2){ + if (storageDO.getStatus() == 4){ + for (StorageMatDO storageMatDO : matList) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StorageInventoryDO::getWhId,storageMatDO.getWhId()); + wrapper.eq(StorageInventoryDO::getMaterialId,storageMatDO.getMatId()); + wrapper.eq(StorageInventoryDO::getRgId,storageMatDO.getRgId()); + wrapper.eq(StorageInventoryDO::getPnId,storageMatDO.getPnId()); + wrapper.eq(StorageInventoryDO::getDeleted,0); + StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper); + if (ObjectUtil.isNotEmpty(storageInventoryDO)){ + storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().subtract(storageMatDO.getStorageOkQty())); + } + storageInventoryMapper.insertOrUpdate(storageInventoryDO); + } + } + } + } private void saveStorageMat(StorageCheckDO storageCheckDO, Long stockId, Integer stockType){ @@ -179,11 +238,10 @@ public class StorageCheckServiceImpl implements StorageCheckService { storageMatDO.setPnId(item.getPnId()); storageMatDO.setStorageOkQty(item.getStorageOkQty().subtract(item.getMatRest()).abs()); storageMatDO.setLotNo(item.getLotNo()); - // 插入出入库物料表 if(stockType == 1 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()>0){ storageMatMapper.insert(storageMatDO); - saveStorageLog(storageMatDO); +// saveStorageLog(storageMatDO); } if(stockType == 2 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()<0){ storageMatMapper.insert(storageMatDO); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheckmat/StorageCheckMatServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheckmat/StorageCheckMatServiceImpl.java index 93d86cc..29c309b 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheckmat/StorageCheckMatServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagecheckmat/StorageCheckMatServiceImpl.java @@ -63,40 +63,40 @@ public class StorageCheckMatServiceImpl implements StorageCheckMatService { insertList.add(storageCheckMat); } // - if (CollUtil.isNotEmpty(updateStorageList)){ - List uupdateDetailList = new ArrayList<>(); - StorageInventoryPageReqVO reqVO = new StorageInventoryPageReqVO(); - //更新库存表数据 - for (StorageCheckMatSaveReqVO savo : updateStorageList) { - reqVO.setPnId(savo.getPnId() == null ? null : savo.getPnId()) - .setWhId(savo.getWhId() == null ? null : savo.getWhId()) - .setRgId(savo.getRgId() == null ? null : savo.getRgId()) - .setMaterialId(savo.getMaterialId() == null ? null : savo.getMaterialId()); - StorageInventoryDO inventoryDO = storageInventoryMapper.selectByWhRgPn(reqVO); - inventoryDO.setYardAmount(savo.getStorageOkQty()); - uupdateDetailList.add(inventoryDO); - } - storageInventoryMapper.updateBatch(uupdateDetailList); - } - if (CollUtil.isNotEmpty(inserStorageList)){ - //插入库存表 - List insertDetailList = new ArrayList<>(); - for (StorageCheckMatSaveReqVO savo : inserStorageList) { - StorageInventoryDO ido = new StorageInventoryDO(); - ido.setPnId(savo.getPnId() == null ? null: savo.getPnId()) - .setWhId(savo.getWhId() == null ? null: savo.getWhId()) - .setRgId(savo.getRgId() == null ? null: savo.getRgId()) - .setBoomName(savo.getMatName() == null ? null:savo.getMatName()) - .setBoomUnit(savo.getBoomUnit() == null ? null:savo.getBoomUnit()) - .setMaterialId(savo.getMaterialId() == null ? null: savo.getMaterialId()) - .setBoomSpec(savo.getBoomSpec() == null ? null: savo.getBoomSpec()) - .setYardAmount(savo.getStorageOkQty() == null ? null: savo.getStorageOkQty()) - .setShortName(savo.getShortName() == null ? null: savo.getShortName()) - .setBoomCode(savo.getMatCode() == null ? null: savo.getMatCode()); - insertDetailList.add(ido); - } - storageInventoryMapper.insertBatch(insertDetailList); - } +// if (CollUtil.isNotEmpty(updateStorageList)){ +// List uupdateDetailList = new ArrayList<>(); +// StorageInventoryPageReqVO reqVO = new StorageInventoryPageReqVO(); +// //更新库存表数据 +// for (StorageCheckMatSaveReqVO savo : updateStorageList) { +// reqVO.setPnId(savo.getPnId() == null ? null : savo.getPnId()) +// .setWhId(savo.getWhId() == null ? null : savo.getWhId()) +// .setRgId(savo.getRgId() == null ? null : savo.getRgId()) +// .setMaterialId(savo.getMaterialId() == null ? null : savo.getMaterialId()); +// StorageInventoryDO inventoryDO = storageInventoryMapper.selectByWhRgPn(reqVO); +// inventoryDO.setYardAmount(savo.getStorageOkQty()); +// uupdateDetailList.add(inventoryDO); +// } +// storageInventoryMapper.updateBatch(uupdateDetailList); +// } +// if (CollUtil.isNotEmpty(inserStorageList)){ +// //插入库存表 +// List insertDetailList = new ArrayList<>(); +// for (StorageCheckMatSaveReqVO savo : inserStorageList) { +// StorageInventoryDO ido = new StorageInventoryDO(); +// ido.setPnId(savo.getPnId() == null ? null: savo.getPnId()) +// .setWhId(savo.getWhId() == null ? null: savo.getWhId()) +// .setRgId(savo.getRgId() == null ? null: savo.getRgId()) +// .setBoomName(savo.getMatName() == null ? null:savo.getMatName()) +// .setBoomUnit(savo.getBoomUnit() == null ? null:savo.getBoomUnit()) +// .setMaterialId(savo.getMaterialId() == null ? null: savo.getMaterialId()) +// .setBoomSpec(savo.getBoomSpec() == null ? null: savo.getBoomSpec()) +// .setYardAmount(savo.getStorageOkQty() == null ? null: savo.getStorageOkQty()) +// .setShortName(savo.getShortName() == null ? null: savo.getShortName()) +// .setBoomCode(savo.getMatCode() == null ? null: savo.getMatCode()); +// insertDetailList.add(ido); +// } +// storageInventoryMapper.insertBatch(insertDetailList); +// } return storageCheckMatMapper.insertBatch(insertList); }