diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java index 5f4242fc..00f92d90 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvOutYlServiceImpl.java @@ -16,6 +16,8 @@ import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.pcs_manage.service.purchase.IPcsIfPurchaseorderService; @@ -74,6 +76,9 @@ public class StIvtIostorinvOutYlServiceImpl extends ServiceImpl { + double need_qty = dtl.getPlan_qty().doubleValue(); + List list = structivtYlService.list(new QueryWrapper() + .eq("material_id", dtl.getMaterial_id()) + .eq("stor_id", mst.getStor_id()) + .eq("workshop_id", mst.getWorkshop_id())); + + MdMeMaterialbase mater = materialbaseService.getOne(new QueryWrapper().eq("material_id", dtl.getMaterial_id())); + + if (ObjectUtil.isEmpty(list)) { + throw new BadRequestException("当前仓库内不存在物料:" + mater.getMaterial_name()); + } + + for (StIvtStructivtYl ivt : list) { + //判断是否需要继续分配库存,不大于0时跳出循环 + if (need_qty > 0){ + double canuse_qty = ivt.getCanuse_qty().doubleValue(); + if (canuse_qty >= need_qty){ + //插入分配表 + + + //维护库存 + } + }else { + break; + } + } + if (need_qty > 0){ + throw new BadRequestException("物料:"+mater.getMaterial_name()+"库存不足,缺少:"+need_qty+"KG"); + } + }); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java index 357e6fa5..1e8bd5f4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/rawmanage/service/iostorInv/impl/StIvtIostorinvYlServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.storage_manage.rawmanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -74,7 +75,6 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); @@ -156,7 +156,36 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl().eq("struct_code", dis.getSect_code()).eq("material_id", dis.getMaterial_id())); + if (ObjectUtil.isNotEmpty(structivtYl)) { + structivtYl.setCanuse_qty(NumberUtil.add(structivtYl.getCanuse_qty(), dis.getPlan_qty())); + structivtYl.setIvt_qty(structivtYl.getCanuse_qty()); + structivtYlService.updateById(structivtYl); + } else { + structivtYlService.save(StIvtStructivtYl.builder() + .stockrecord_id(IdUtil.getStringId()) + .struct_id(dis.getStruct_id()) + .struct_code(dis.getStruct_code()) + .struct_name(dis.getStruct_name()) + .material_id(dis.getMaterial_id()) + .quality_scode(dis.getQuality_scode()) + .pcsn(dis.getPcsn()) + .ivt_level(dis.getIvt_level()) + .is_active(dis.getIs_active()) + .canuse_qty(dis.getReal_qty()) + .ivt_qty(dis.getReal_qty()) + .qty_unit_id(dis.getQty_unit_id()) + .instorage_time(DateUtil.now()) + .stor_id(mst.getStor_id()) + .workshop_id(mst.getWorkshop_id()) + .build() + ); + } + + /*//插入库存变动记录表 structivtflowService.recordStructivtFlow( StIvtStructivtflowDto.builder() .bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp") @@ -165,7 +194,7 @@ public class StIvtIostorinvYlServiceImpl extends ServiceImpl - + @@ -132,19 +132,19 @@ - + - + - + @@ -163,7 +163,7 @@ - + @@ -189,12 +189,12 @@ - + - + @@ -202,13 +202,13 @@ - + - + @@ -216,7 +216,7 @@ - + @@ -248,7 +248,7 @@ - + @@ -270,29 +270,29 @@ @select="handleSelectionChange" @select-all="onSelectAll" > - - - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + - +