From 4355b3f7a52be008e25e8fbb76d20ad397c98883 Mon Sep 17 00:00:00 2001 From: majian <780924089@qq.com> Date: Fri, 20 Sep 2024 16:48:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E5=B1=82=E4=B8=8E=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E9=80=80=E8=B4=A7=E5=85=B6=E4=BB=96=E5=87=BA=E5=BA=93=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.ProductionMgr/RedisBackGround.cs | 6 ++- .../Tnb.WarehouseMgr/ErpToWmsService.cs | 15 +++--- .../WmsMaterialTransferService.cs | 48 +++++++++++++------ .../Tnb.WarehouseMgr/WmsStockReportService.cs | 4 ++ 4 files changed, 51 insertions(+), 22 deletions(-) diff --git a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs index ed3235f9..5e5810c8 100644 --- a/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs +++ b/ProductionMgr/Tnb.ProductionMgr/RedisBackGround.cs @@ -2396,7 +2396,11 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA LoggerFloor4MJX2MJC.LogInformation($"【四楼待灭菌线到灭菌仓】 下料点 {key} {strs[2]}采集到 {carry_code}"); LoggerFloor4MJX2MJC.LogInformation($"【四楼待灭菌线到灭菌仓】 下料点 {key} {strs[2]}采集到长度 {carry_code.Length}"); WmsCarryH wmsCarryH = await db_Floor4MJX2MJC.Queryable().Where(r => r.carry_code == carry_code).FirstAsync(); - + if (wmsCarryH == null) + { + LoggerFloor4MJX2MJC.LogWarning($"【四楼待灭菌线到灭菌仓】 托盘号{carry_code}在系统中不存在"); + continue; + } //锁定起点库位 await db_Floor4MJX2MJC.Updateable().SetColumns(r => new BasLocation { is_lock = 1 }).Where(r => r.id == startlocation.id).ExecuteCommandAsync(); //锁定终点库位 diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs index a1a7581d..e7953cd6 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ErpToWmsService.cs @@ -386,7 +386,7 @@ namespace Tnb.WarehouseMgr wmsPurchaseOrderH.contact_person = input.contact_person; wmsPurchaseOrderH.tel = input.tel; wmsPurchaseOrderH.supplier_code = input.supplier_code; - wmsPurchaseOrderH.certificate_date = input.certificate_date.Value.ToString("yyyy-MM-dd HH:mm:ss"); + //wmsPurchaseOrderH.certificate_date = input.certificate_date.Value.ToString("yyyy-MM-dd HH:mm:ss"); wmsPurchaseOrderH.ship_date = input.ship_date; wmsPurchaseOrderH.erp_pk = input.erp_pk; wmsPurchaseOrderH.create_id = WmsWareHouseConst.ErpUserId; @@ -732,12 +732,12 @@ namespace Tnb.WarehouseMgr if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_ZC_ID && (warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_ZCC_ID || warehouse_instock.id == WmsWareHouseConst.WAREHOUSE_HCC_ID)) { - int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count(); - if (count > 0) - { - _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在未填写工位的明细!"); - throw new AppFriendlyException($@"表体存在未填写工位的明细!", 500); - } + //int count = input.details.Where(r => string.IsNullOrEmpty(r.station_code)).Count(); + //if (count > 0) + //{ + // _LoggerErp2Mes.LogWarning($@"【MaterialTransfer】表体存在未填写工位的明细!"); + // throw new AppFriendlyException($@"表体存在未填写工位的明细!", 500); + //} transfer_type = WmsWareHouseConst.MATERIALTRANSFER_QTCRK_CODE; } // 外协调拨入库 @@ -2006,6 +2006,7 @@ namespace Tnb.WarehouseMgr wmsRawmatTransferoutstockH.org_id = WmsWareHouseConst.AdministratorOrgId; wmsRawmatTransferoutstockH.instockorg_id = org_erpExtendField.pk_org_v; wmsRawmatTransferoutstockH.instockorg_code = org_erpExtendField.pk_org; + wmsRawmatTransferoutstockH.warehouse_code = WmsWareHouseConst.WAREHOUSE_YCL_CODE; List wmsRawmatTransferoutstockDs = new List (); foreach (var detail in details_WAREHOUSE_YCL_ID) { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs index 2de53a5a..c58c44a2 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs @@ -119,6 +119,7 @@ namespace Tnb.WarehouseMgr //.Where(a => a.status != "25065149810453") .WhereIF(queryJson != null && queryJson["type"] != null, a => a.type == queryJson["type"].ToString()) .WhereIF(queryJson != null && queryJson["bill_code"] != null, a => a.bill_code.Contains(queryJson["bill_code"].ToString())) + .WhereIF(queryJson != null && queryJson["status"] != null, a => a.status == queryJson["status"].ToString()) .Select((a, b, c, d, e, f) => new WmsMaterialTransfer { id = a.id, @@ -144,7 +145,7 @@ namespace Tnb.WarehouseMgr order_code = a.order_code, erp_bill_code = a.erp_bill_code, }) - .OrderBy("a.bill_code desc") + .OrderBy("a.create_time desc") .ToPagedListAsync(input.currentPage, input.pageSize); var _data = PageResult.SqlSugarPageResult(result); @@ -468,6 +469,7 @@ namespace Tnb.WarehouseMgr code_batch = c.code_batch, remainqty = d.actual_outstock_qty - d.rk_qty }).ToList(); + return await ToApiResult(HttpStatusCode.OK, "成功", res); } @@ -491,7 +493,7 @@ namespace Tnb.WarehouseMgr { throw new AppFriendlyException("来源其它出库单中的转库单明细id为空!", 500); } - string materialtransferid = otherOutstockH.source_detail_id; + string materialtransferdid = otherOutstockH.source_detail_id; OtherOutstockD otherOutstockD_first = await _db.Queryable().Where(r => r.fk_id == input.source_id).FirstAsync(); if (input.details.Count == 0) @@ -512,7 +514,7 @@ namespace Tnb.WarehouseMgr }); await _s_taskExecuteSemaphore_F1ZCCInstock.WaitAsync(); - WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == materialtransferid); + WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == materialtransferdid); WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable().FirstAsync(it => it.id == wmsMaterialTransferD.bill_id); if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.qty) @@ -556,7 +558,7 @@ namespace Tnb.WarehouseMgr commonCreatePretaskInput.endlocation_id = endLocation.id; commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID; commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID; - commonCreatePretaskInput.source_id = materialtransferid; + commonCreatePretaskInput.source_id = materialtransferdid; commonCreatePretaskInput.carry_id = wmsCarryHs[index].id; commonCreatePretaskInput.carry_code = wmsCarryHs[index].carry_code; commonCreatePretaskInput.isExcuteMission = false; @@ -593,7 +595,7 @@ namespace Tnb.WarehouseMgr } // 更新子表已下发数量 - await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == materialtransferid).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + qty).Where(r => r.id == materialtransferdid).ExecuteCommandAsync(); await _db.Ado.CommitTranAsync(); } @@ -1570,6 +1572,13 @@ namespace Tnb.WarehouseMgr { throw new AppFriendlyException("来源单据id不可为空", 500); } + OtherOutstockH otherOutstockH = await _db.Queryable().Where(r => r.id == input.source_id).FirstAsync(); + if (string.IsNullOrEmpty(otherOutstockH.source_detail_id)) + { + throw new AppFriendlyException("来源其它出库单中的转库单明细id为空!", 500); + } + string materialtransferdid = otherOutstockH.source_detail_id; + OtherOutstockD otherOutstockD_first = await _db.Queryable().Where(r => r.fk_id == input.source_id).FirstAsync(); if (string.IsNullOrEmpty(input.carry_code)) { @@ -1581,11 +1590,11 @@ namespace Tnb.WarehouseMgr throw new AppFriendlyException("数量必须大于0", 500); } - WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == input.source_id); + WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == materialtransferdid); if (wmsMaterialTransferD == null) { - Logger.LogWarning($"不存在id为{input.source_id}的转库单明细!"); - throw new AppFriendlyException($"不存在id为{input.source_id}的转库单明细!", 500); + Logger.LogWarning($"不存在id为{materialtransferdid}的转库单明细!"); + throw new AppFriendlyException($"不存在id为{materialtransferdid}的转库单明细!", 500); } if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.yzqty) @@ -1648,7 +1657,7 @@ namespace Tnb.WarehouseMgr commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID; commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID; // 转库单id - commonCreatePretaskInput.source_id = input.source_id; + commonCreatePretaskInput.source_id = materialtransferdid; commonCreatePretaskInput.carry_id = wmsCarryH.id; commonCreatePretaskInput.carry_code = wmsCarryH.carry_code; commonCreatePretaskInput.isExcuteMission = false; @@ -1673,13 +1682,15 @@ namespace Tnb.WarehouseMgr carryMaterialDetail.code_batch = wmsMaterialTransferD.code_batch; carryMaterialDetail.barcode = wmsCarryH.carry_code; carryMaterialDetail.unit_id = wmsMaterialTransferD.unit_id; + carryMaterialDetail.auxprop_gys = otherOutstockD_first.auxprop_gys; + carryMaterialDetail.auxprop_xph = otherOutstockD_first.auxprop_xph; carryMaterialDetails.Add(carryMaterialDetail); carryMaterialBindInput.details = carryMaterialDetails; await _wmsCarryBindService.CarryMaterialBind(carryMaterialBindInput, _db); await _db.Updateable().SetColumns(r => r.carry_status == "1").Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync(); // 更新子表已下发数量 - await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == input.source_id).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == materialtransferdid).ExecuteCommandAsync(); await _db.Ado.CommitTranAsync(); } @@ -2254,6 +2265,13 @@ namespace Tnb.WarehouseMgr { throw new AppFriendlyException("来源单据id不可为空", 500); } + OtherOutstockH otherOutstockH = await _db.Queryable().Where(r => r.id == input.source_id).FirstAsync(); + if (string.IsNullOrEmpty(otherOutstockH.source_detail_id)) + { + throw new AppFriendlyException("来源其它出库单中的转库单明细id为空!", 500); + } + string materialtransferdid = otherOutstockH.source_detail_id; + OtherOutstockD otherOutstockD_first = await _db.Queryable().Where(r => r.fk_id == input.source_id).FirstAsync(); if (string.IsNullOrEmpty(input.carry_code)) { @@ -2265,10 +2283,10 @@ namespace Tnb.WarehouseMgr throw new AppFriendlyException("数量必须大于0", 500); } - WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == input.source_id); + WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable().FirstAsync(it => it.id == materialtransferdid); if (wmsMaterialTransferD == null) { - throw new AppFriendlyException($"不存在id为{input.source_id}的转库单明细!", 500); + throw new AppFriendlyException($"不存在id为{materialtransferdid}的转库单明细!", 500); } if (wmsMaterialTransferD.yxfqty_rk >= wmsMaterialTransferD.yzqty) @@ -2334,7 +2352,7 @@ namespace Tnb.WarehouseMgr commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID; commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID; // 转库单id - commonCreatePretaskInput.source_id = input.source_id; + commonCreatePretaskInput.source_id = materialtransferdid; commonCreatePretaskInput.carry_id = wmsCarryH.id; commonCreatePretaskInput.carry_code = wmsCarryH.carry_code; commonCreatePretaskInput.isExcuteMission = false; @@ -2358,13 +2376,15 @@ namespace Tnb.WarehouseMgr carryMaterialDetail.code_batch = wmsMaterialTransferD.code_batch; carryMaterialDetail.barcode = wmsCarryH.carry_code; carryMaterialDetail.unit_id = wmsMaterialTransferD.unit_id; + carryMaterialDetail.auxprop_gys = otherOutstockD_first.auxprop_gys; + carryMaterialDetail.auxprop_xph = otherOutstockD_first.auxprop_xph; carryMaterialDetails.Add(carryMaterialDetail); carryMaterialBindInput.details = carryMaterialDetails; await _wmsCarryBindService.CarryMaterialBind(carryMaterialBindInput, _db); await _db.Updateable().SetColumns(r => r.carry_status == "3").Where(r => r.id == wmsCarryH.id).ExecuteCommandAsync(); // 更新子表已下发数量 - await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == input.source_id).ExecuteCommandAsync(); + await _db.Updateable().SetColumns(r => r.yxfqty_rk == r.yxfqty_rk + input.qty).Where(r => r.id == materialtransferdid).ExecuteCommandAsync(); await _db.Ado.CommitTranAsync(); } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs index 1c000cad..28c6b0e9 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsStockReportService.cs @@ -36,6 +36,7 @@ namespace Tnb.WarehouseMgr [HttpPost, AllowAnonymous] public async Task MaterialStock(VisualDevModelListQueryInput input) { + var warehouse_id = ""; var supplier_code = ""; var code_batch = ""; var material_specification = ""; @@ -43,6 +44,7 @@ namespace Tnb.WarehouseMgr var material_code = ""; if (!input.queryJson.IsNullOrWhiteSpace()) { + warehouse_id = JObject.Parse(input.queryJson).Value("warehouse_id"); supplier_code = JObject.Parse(input.queryJson).Value("supplier_code"); code_batch = JObject.Parse(input.queryJson).Value(nameof(WmsCarryCode.code_batch)); material_specification = JObject.Parse(input.queryJson).Value(nameof(WmsCarryCode.material_specification)); @@ -63,6 +65,7 @@ namespace Tnb.WarehouseMgr .WhereIF(!string.IsNullOrEmpty(code_batch), (a, b, c, d, e, f) => a.code_batch.Contains(code_batch)) .WhereIF(!string.IsNullOrEmpty(container_no), (a, b, c, d, e, f) => f.container_no.Contains(container_no)) .WhereIF(!string.IsNullOrEmpty(material_code), (a, b, c, d, e, f) => f.code.Contains(material_code)) + .WhereIF(!string.IsNullOrEmpty(warehouse_id), (a, b, c, d, e, f) => c.wh_id == warehouse_id) .Select((a, b, c, d, e, f, g, h) => new WmsStockReportH { org_id = e.org_id, @@ -127,6 +130,7 @@ namespace Tnb.WarehouseMgr .WhereIF(!string.IsNullOrEmpty(supplier_code), (a, b, c, d, e, f, g, h) => h.supplier_code.Contains(supplier_code)) .WhereIF(!string.IsNullOrEmpty(container_no), (a, b, c, d, e, f, g, h) => f.container_no.Contains(container_no)) .WhereIF(!string.IsNullOrEmpty(material_code), (a, b, c, d, e, f) => f.code.Contains(material_code)) + .WhereIF(!string.IsNullOrEmpty(warehouse_id), (a, b, c, d, e, f) => c.wh_id == warehouse_id) .Select((a, b, c, d, e, f, g, h) => new WmsStockReportH { org_id = e.org_id,