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 f52cd407..6be5f364 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 @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.chanko.yunxi.mes.module.heli.controller.admin.outsourcestockboom.vo.OutsourceStockBoomSaveReqVO; import com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageLogPageReqVO; +import com.chanko.yunxi.mes.module.heli.controller.admin.storagemat.vo.StorageMatSaveReqVO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; @@ -134,7 +135,7 @@ public class StorageController { @Transactional @PreAuthorize("@ss.hasPermission('heli:storage:update')") public CommonResult updateStorageStatus(@Valid @RequestBody StorageSaveReqVO updateReqVO) { - + // if updateReqVO.getInOutFlag() ==true 不更新库存,但是保留出入库记录。根据入库记录直径保存出库记录 // 获取最新的出入库信息 StorageDO targetDo = storageService.getStorage(updateReqVO.getId()); int beforeStatus=0; @@ -197,7 +198,23 @@ public class StorageController { } storageInventoryDO.setYardAmount(totalNumber); } - storageInventoryMapper.insertOrUpdate(storageInventoryDO); + // 如果不是即入即出,不需要入库,但是需要出库记录,根据入库记录生成出库记录 + if (!updateReqVO.getInOutFlag()) { + storageInventoryMapper.insertOrUpdate(storageInventoryDO); + } else { + // 入库已经根据原有入库记录生成 此处是出库记录 + StorageSaveReqVO saveReqVO; + saveReqVO = BeanUtils.toBean(targetDo, StorageSaveReqVO.class); + saveReqVO.setStockType(2); + saveReqVO.setStockInType(5); + saveReqVO.setMaterialReceiver(String.valueOf(updateReqVO.getKeeper())); + saveReqVO.setId(0L); + saveReqVO.setOutbound(updateReqVO.getKeeper()); + saveReqVO.setOutboundTime(currTime); + List storageMatDOList = storageMatService.getStorageMatListByStockId(updateReqVO.getId()); + Long storageId = storageService.createStorage(saveReqVO); + storageMatService.createStorageMat(storageMatDOList, storageId); + } PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = purchaseOrderNoDetailMapper.selectById(storageMatDO.getPurchaseOrderNoDetailId()); if (ObjectUtil.isNotEmpty(purchaseOrderNoDetailDO)){ purchaseOrderNoDetailDO.setPurchaseRemAmount(purchaseOrderNoDetailDO.getPurchaseRemAmount().subtract(storageMatDO.getStorageOkQty())); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java index 6c97788a..9589a033 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatService.java @@ -22,6 +22,8 @@ public interface StorageMatService { */ Long createStorageMat(@Valid StorageMatSaveReqVO createReqVO); + void createStorageMat(List createReqVO, Long stockid); + Long createFBStorageMat(@Valid StorageMatDO createReqVO); /** diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java index 846780ef..ee248ba3 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagemat/StorageMatServiceImpl.java @@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; 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.storagelogNow.StorageLogNowDO; @@ -21,6 +22,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; 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.storagelog.StorageLogNowMapper; +import com.chanko.yunxi.mes.module.heli.service.bdgzsomthing.bdgzsomthingService; import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -74,6 +76,12 @@ public class StorageMatServiceImpl implements StorageMatService { private ProjectOrderSubMapper projectOrderSubMapper; @Resource private StorageInventoryMapper storageInventoryMapper; + + @Resource + private StorageMapper storageMapper; + + @Resource + private com.chanko.yunxi.mes.module.heli.service.bdgzsomthing.bdgzsomthingService bdgzsomthingService; @Override public Long createStorageMat(StorageMatSaveReqVO createReqVO) { // 插入 @@ -82,6 +90,18 @@ public class StorageMatServiceImpl implements StorageMatService { // 返回 return storageMat.getId(); } + + @Override + public void createStorageMat(List storageMatDOS, Long stockid) { + deleteStorageMatList(stockid); + for (StorageMatDO item : storageMatDOS) { + StorageMatDO storageMat = BeanUtils.toBean(item, StorageMatDO.class); + storageMat.setId(0L); + storageMat.setStockId(stockid); + storageMatMapper.insert(storageMat); + } + } + @Override public Long createFBStorageMat(StorageMatDO storageMat) { // 插入