采购/委外调整
This commit is contained in:
@@ -3091,8 +3091,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
||||
MaterialTransferDDistributeToZCCInput input = new MaterialTransferDDistributeToZCCInput();
|
||||
input.source_id = _wmsMaterialTransferD.id;
|
||||
input.xf_qty = can_qty;
|
||||
input.dbConn = db_WmsMaterialkit;
|
||||
WarehouseMgr.Entities.Dto.Outputs.Result result = await _wmsMaterialTransferService.DistributeDetailToZCC(input);
|
||||
WarehouseMgr.Entities.Dto.Outputs.Result result = await _wmsMaterialTransferService.DistributeDetailToZCC(input, db_WmsMaterialkit);
|
||||
if (result.code.ToString() != "OK")
|
||||
{
|
||||
LoggerWmsMaterialkit.LogWarning($"转库单{wmsMaterialTransfer.bill_code} 明细id{_wmsMaterialTransferD.id} 物料{_wmsMaterialTransferD.material_code} 批次{_wmsMaterialTransferD.code_batch} 中储仓出库时数量不匹配!");
|
||||
|
||||
@@ -293,7 +293,7 @@ public class ModuleConsts
|
||||
/// <summary>
|
||||
/// 模块标识-委外收货
|
||||
/// </summary>
|
||||
public const string MODULE_WMSOUTSOURCE_ID = "36207808903445";
|
||||
public const string MODULE_WMSOUTSOURCE_ID = "37513122815509";
|
||||
/// <summary>
|
||||
/// 模块标识-委外收货子表
|
||||
/// </summary>
|
||||
|
||||
@@ -26,6 +26,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
||||
/// </summary>
|
||||
public decimal? xf_qty { get; set; }
|
||||
|
||||
public ISqlSugarClient dbConn { get; set; } = null;
|
||||
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
||||
public string PolicyCode { get; set; }
|
||||
|
||||
// 策略编号
|
||||
public ISqlSugarClient dbConn { get; set; } = null;
|
||||
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
||||
/// </summary>
|
||||
public List<string> qcres_list { get; set; }
|
||||
|
||||
public ISqlSugarClient dbConn { get; set; } = null;
|
||||
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,6 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
||||
/// </summary>
|
||||
public string[] endlocations { get; set; }
|
||||
|
||||
public ISqlSugarClient dbConn { get; set; } = null;
|
||||
//public ISqlSugarClient dbConn { get; set; } = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,25 +64,25 @@ namespace Tnb.WarehouseMgr.Interfaces
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input);
|
||||
Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||
/// <summary>
|
||||
/// 入库策略(包材库)
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input);
|
||||
Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||
/// <summary>
|
||||
/// 包材库2楼入库策略
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input);
|
||||
Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||
/// <summary>
|
||||
/// 出库策略
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
|
||||
Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||
/// <summary>
|
||||
/// 缓存仓出库策略
|
||||
/// </summary>
|
||||
@@ -96,14 +96,14 @@ namespace Tnb.WarehouseMgr.Interfaces
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input);
|
||||
Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input, ISqlSugarClient dbConn = null);
|
||||
|
||||
/// <summary>
|
||||
/// 出库策略-销售出库下发
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input);
|
||||
Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null);
|
||||
/// <summary>
|
||||
/// 路径算法
|
||||
/// </summary>
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SqlSugar;
|
||||
using Tnb.WarehouseMgr.Entities.Dto;
|
||||
|
||||
namespace Tnb.WarehouseMgr.Interfaces
|
||||
@@ -18,6 +19,6 @@ namespace Tnb.WarehouseMgr.Interfaces
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input);
|
||||
Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input, ISqlSugarClient dbConn = null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,13 +285,13 @@ namespace Tnb.WarehouseMgr
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input)
|
||||
public async Task<List<BasLocation>> InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
List<BasLocation> items = new();
|
||||
try
|
||||
{
|
||||
var db = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var db = dbConn;
|
||||
if (dbConn == null)
|
||||
{
|
||||
db = _db.CopyNew();
|
||||
}
|
||||
@@ -340,13 +340,13 @@ namespace Tnb.WarehouseMgr
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input)
|
||||
public async Task<List<BasLocation>> InStockStrategyBCK([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
List<BasLocation> items = new();
|
||||
try
|
||||
{
|
||||
var db = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var db = dbConn;
|
||||
if (dbConn == null)
|
||||
{
|
||||
db = _db.CopyNew();
|
||||
}
|
||||
@@ -376,13 +376,13 @@ namespace Tnb.WarehouseMgr
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input)
|
||||
public async Task<List<BasLocation>> BCKF2InStockStrategy([FromQuery] InStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
List<BasLocation> items = new();
|
||||
try
|
||||
{
|
||||
var db = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var db = dbConn;
|
||||
if (dbConn == null)
|
||||
{
|
||||
db = _db.CopyNew();
|
||||
}
|
||||
@@ -482,7 +482,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input)
|
||||
public async Task<List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>>> OutStockStrategy_saleRelease([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
Expressionable<WmsCarryH, WmsCarryCode, BasLocation> whereExprable = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
|
||||
.And((a, b, c) => a.is_lock == 0 && c.is_lock == 0)
|
||||
@@ -502,8 +502,8 @@ namespace Tnb.WarehouseMgr
|
||||
_ = whereExprable.And(carryStatusFilterExp);
|
||||
Expression<Func<WmsCarryH, WmsCarryCode, BasLocation, bool>> whereExpr = whereExprable.ToExpression();
|
||||
|
||||
var cyDb = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var cyDb = dbConn;
|
||||
if (dbConn == null)
|
||||
{
|
||||
cyDb = _db.CopyNew();
|
||||
}
|
||||
@@ -545,10 +545,10 @@ namespace Tnb.WarehouseMgr
|
||||
return items;
|
||||
}
|
||||
|
||||
public async Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input)
|
||||
public async Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
var cyDb = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var cyDb = dbConn;
|
||||
if (dbConn == null)
|
||||
{
|
||||
cyDb = _db.CopyNew();
|
||||
}
|
||||
@@ -662,10 +662,10 @@ namespace Tnb.WarehouseMgr
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
public async Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input)
|
||||
public async Task<List<Tuple<WmsCarryH, decimal, BasLocation>>> OutStockStrategyZCC2Floor2([FromQuery] OutStockStrategyZCC2Floor2Query input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
var cyDb = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var cyDb = dbConn;
|
||||
if (dbConn == null)
|
||||
{
|
||||
cyDb = _db.CopyNew();
|
||||
}
|
||||
@@ -3689,7 +3689,7 @@ namespace Tnb.WarehouseMgr
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-C-04-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-4-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-3-{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-R-03-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.point_code == $"DT-03-0{elevatorSno}").First());
|
||||
points.Add(wmsPointHs.Where(r => r.id == pEndId).First());
|
||||
}
|
||||
else
|
||||
|
||||
@@ -485,7 +485,7 @@ namespace Tnb.WarehouseMgr
|
||||
/// <param name="wmsMaterialTransfer"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<Entities.Dto.Outputs.Result> DistributeJZCToCPC(DistributeF4JXCInput input)
|
||||
public async Task<dynamic> DistributeJZCToCPC(DistributeF4JXCInput input)
|
||||
{
|
||||
SemaphoreSlim semaphoreSlim_MJC = null;
|
||||
SemaphoreSlim semaphoreSlim_CPK = null;
|
||||
@@ -512,6 +512,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
int xfCarrysCount = 0;
|
||||
foreach (WmsMaterialTransferD wmsMaterialTransferD in wmsMaterialTransferDs)
|
||||
{
|
||||
// 转库单载具子表
|
||||
@@ -526,10 +527,9 @@ namespace Tnb.WarehouseMgr
|
||||
warehouse_id = WmsWareHouseConst.WAREHOUSE_MJC_ID,
|
||||
material_id = wmsMaterialTransferD.material_id,
|
||||
code_batch = wmsMaterialTransferD.code_batch,
|
||||
qty = needOut,
|
||||
dbConn = _db
|
||||
qty = needOut
|
||||
};
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> carryitems = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput);
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> carryitems = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput, _db);
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items_pretask = carryitems.Where(r => r.Item1 == "预任务").ToList();
|
||||
|
||||
decimal canOutstockQty = items_pretask.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||
@@ -554,21 +554,18 @@ namespace Tnb.WarehouseMgr
|
||||
&& r.status == WmsWareHouseConst.BILLSTATUS_ADD_ID && r.origin == "外协调拨入库").FirstAsync();
|
||||
if (wmsSterilizationInstockH == null)
|
||||
{
|
||||
Logger.LogWarning($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}没有找到新增状态且来源是外协调拨入库的灭菌入库记录!");
|
||||
continue;
|
||||
throw new Exception($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}没有找到新增状态且来源是外协调拨入库的灭菌入库记录!");
|
||||
}
|
||||
if (wmsCarryH.location_id != wmsSterilizationInstockH.location_id)
|
||||
{
|
||||
Logger.LogWarning($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}实际位置与灭菌入库记录位置不一致");
|
||||
continue;
|
||||
throw new Exception($"【四楼静置仓到成品库】载具{wmsCarryH.carry_code}实际位置与灭菌入库记录位置不一致");
|
||||
}
|
||||
|
||||
BasLocation startlocation = await _db.Queryable<BasLocation>().Where(r => r.id == wmsCarryH.location_id).FirstAsync();
|
||||
|
||||
if (startlocation.is_lock == 1)
|
||||
{
|
||||
Logger.LogWarning($"【四楼静置仓到成品库】 起点库位{startlocation.location_code}已锁定");
|
||||
continue;
|
||||
throw new Exception($"【四楼静置仓到成品库】 起点库位{startlocation.location_code}已锁定");
|
||||
}
|
||||
|
||||
wmsSterilizationInstockH.status = WmsWareHouseConst.BILLSTATUS_ON_ID;
|
||||
@@ -633,13 +630,16 @@ namespace Tnb.WarehouseMgr
|
||||
await _db.Insertable(wmsMaterialTransferCarrys).ExecuteCommandAsync();
|
||||
Logger.LogInformation($"【DistributeF4JXC】插入转库单{wmsMaterialTransfer.bill_code}载具表的数据");
|
||||
|
||||
xfCarrysCount += wmsMaterialTransferCarrys.Count;
|
||||
Logger.LogInformation($"转库单{wmsMaterialTransfer.bill_code} 行号 {wmsMaterialTransferD.lineno}预任务{wmsMaterialTransferCarrys.Count}条全部生成成功");
|
||||
}
|
||||
|
||||
if (xfCarrysCount == 0)
|
||||
{
|
||||
throw new AppFriendlyException($"可下发数量为0", 500);
|
||||
}
|
||||
|
||||
await _db.Ado.CommitTranAsync();
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
@@ -1590,10 +1590,9 @@ namespace Tnb.WarehouseMgr
|
||||
needOut = needOut,
|
||||
material_code = wmsMaterialTransferD.material_code,
|
||||
endlocations = new string[2] { WmsWareHouseConst.ZZCSSX121009, WmsWareHouseConst.ZZCSSX121010 },
|
||||
dbConn = _db
|
||||
};
|
||||
|
||||
List<Tuple<WmsCarryH, decimal, BasLocation>>? carrys = await _wareHouseService.OutStockStrategyZCC2Floor2(OutStockStrategyInput);
|
||||
List<Tuple<WmsCarryH, decimal, BasLocation>>? carrys = await _wareHouseService.OutStockStrategyZCC2Floor2(OutStockStrategyInput, _db);
|
||||
|
||||
foreach (var item in carrys)
|
||||
{
|
||||
@@ -1682,11 +1681,11 @@ namespace Tnb.WarehouseMgr
|
||||
/// <returns></returns>
|
||||
/// <exception cref="AppFriendlyException"></exception>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> DistributeDetailToZCC(MaterialTransferDDistributeToZCCInput input, ISqlSugarClient dbConn = null)
|
||||
{
|
||||
await _s_taskExecuteSemaphore_F1ZCCOutstock.WaitAsync();
|
||||
var db = input.dbConn;
|
||||
if (input.dbConn == null)
|
||||
var db = dbConn;
|
||||
if (dbConn == null)
|
||||
db = _db;
|
||||
|
||||
Logger.LogInformation($"中储仓下发到二楼暂存仓");
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
if (qcRes != (wmsOutsourceD.qc_res ?? ""))
|
||||
{
|
||||
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.id == wmsOutsourceD.matcode_id).FirstAsync();
|
||||
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.code == wmsOutsourceD.matcode).FirstAsync();
|
||||
WmsPurchaseQcrecord wmsPurchaseQcrecord = new WmsPurchaseQcrecord();
|
||||
wmsPurchaseQcrecord.create_id = create_id;
|
||||
wmsPurchaseQcrecord.create_time = DateTime.Now;
|
||||
@@ -122,7 +122,7 @@ namespace Tnb.WarehouseMgr
|
||||
// 托盘对应入库单
|
||||
List<WmsInstockH> instock_mains = await _db.Queryable<WmsInstockH>().Where(x => x.source_id == wmsOutsourceD.fk_wms_outsource_order_id).ToListAsync();
|
||||
|
||||
List<WmsInstockD> allInstockDetails = await _db.Queryable<WmsInstockD>().Where(it => instock_mains.Select(r => r.id).Contains(it.bill_id) && it.material_id == wmsOutsourceD.matcode_id && it.code_batch == wmsOutsourceD.code_batch).OrderBy(x=>x.id).ToListAsync();
|
||||
List<WmsInstockD> allInstockDetails = await _db.Queryable<WmsInstockD>().Where(it => instock_mains.Select(r => r.id).Contains(it.bill_id) && it.material_code == wmsOutsourceD.matcode && it.code_batch == wmsOutsourceD.code_batch).OrderBy(x=>x.id).ToListAsync();
|
||||
|
||||
List<Dictionary<string, object>> requestData = new List<Dictionary<string, object>>();
|
||||
List<string> carryIds = instock_mains.Select(x => x.carry_id).ToList();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using COSXML.Model.Tag;
|
||||
using JNPF.Common.Contracts;
|
||||
using JNPF.Common.Core.Manager;
|
||||
using JNPF.Common.Dtos.VisualDev;
|
||||
@@ -11,6 +12,7 @@ using JNPF.Logging;
|
||||
using JNPF.Systems.Entitys.System;
|
||||
using JNPF.Systems.Interfaces.System;
|
||||
using JNPF.VisualDev;
|
||||
using JNPF.VisualDev.Entitys;
|
||||
using JNPF.VisualDev.Interfaces;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
@@ -64,8 +66,60 @@ namespace Tnb.WarehouseMgr
|
||||
_visualDevService = visualDevService;
|
||||
_wareHouseService = wareHouseService;
|
||||
_thirdApiRecordService = thirdApiRecordService;
|
||||
OverideFuncs.CreateAsync += Create;
|
||||
OverideFuncs.DeleteAsync = Delete;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
|
||||
{
|
||||
string outsource_order = visualDevModelDataCrInput.data["erp_bill_code"].ToString();
|
||||
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleId, true);
|
||||
await _runService.Create(templateEntity, visualDevModelDataCrInput);
|
||||
|
||||
string id = visualDevModelDataCrInput.data["ReturnIdentity"].ToString();
|
||||
string type = "";
|
||||
if (string.IsNullOrEmpty(outsource_order))
|
||||
{
|
||||
await _db.Updateable<WmsOutsourceH>().SetColumns(r => r.make_method == "自制").Where(r => r.id == id).ExecuteCommandAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
await _db.Updateable<WmsOutsourceH>().SetColumns(r => r.make_method == "同步").Where(r => r.id == id).ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
await _db.Updateable<WmsOutsourceD>().SetColumns(r => r.qc_res == "await").Where(r => r.fk_wms_outsource_order_id == id).ExecuteCommandAsync();
|
||||
|
||||
return "保存成功";
|
||||
}
|
||||
|
||||
// List<WmsDistaskH> wmsDistaskH = await _db.Queryable<WmsDistaskH>().Where(r => r.source_id == id).ToListAsync();
|
||||
private async Task Delete(string id)
|
||||
{
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
WmsOutsourceH wmsOutsourceH = await _db.Queryable<WmsOutsourceH>().Where(r => r.id == id).FirstAsync();
|
||||
if (wmsOutsourceH != null)
|
||||
{
|
||||
_ = await _db.Deleteable(wmsOutsourceH).ExecuteCommandAsync();
|
||||
List<WmsOutsourceD> wmsoutsourceDs = await _db.Queryable<WmsOutsourceD>().Where(r => r.fk_wms_outsource_order_id == id).ToListAsync();
|
||||
Logger.Information($"删除委外收货单{wmsOutsourceH.bill_code} 收货明细{wmsoutsourceDs.Count}条");
|
||||
foreach (WmsOutsourceD wmsOutsourceD in wmsoutsourceDs)
|
||||
{
|
||||
WmsOutsourceOrderD wmsOutsourceOrderD = await _db.Queryable<WmsOutsourceOrderD>().Where(r => r.erp_line_pk == wmsOutsourceD.erp_outsource_order_d_pk).FirstAsync();
|
||||
if (wmsOutsourceOrderD != null)
|
||||
{
|
||||
Logger.Information($"委外收货单{wmsOutsourceH.bill_code} 收货明细id{wmsOutsourceOrderD.id} 删除后回退委外订单明细id{wmsOutsourceOrderD.id}已到货数量 {wmsOutsourceOrderD.actual_quantity} -> {wmsOutsourceOrderD.actual_quantity - wmsOutsourceD.outsource_arriveqty}");
|
||||
wmsOutsourceOrderD.actual_quantity -= wmsOutsourceD.actual_quantity;
|
||||
await _db.Updateable(wmsOutsourceOrderD).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
_ = await _db.Deleteable(wmsoutsourceDs).ExecuteCommandAsync();
|
||||
}
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
|
||||
|
||||
public override async Task ModifyAsync(WareHouseUpInput input)
|
||||
{
|
||||
if (input == null)
|
||||
@@ -103,10 +157,10 @@ namespace Tnb.WarehouseMgr
|
||||
};
|
||||
|
||||
List<WmsTempCode> wmsTempCodes = new();
|
||||
decimal? minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.id == WmsOutsourceD.matcode_id))?.minpacking;
|
||||
decimal? minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.code == WmsOutsourceD.matcode))?.minpacking;
|
||||
if (!minPacking.HasValue || minPacking.Value <= 0)
|
||||
{
|
||||
throw new AppFriendlyException($"物料{WmsOutsourceD.matcode} {WmsOutsourceD.matcode_id} 包装数量为空或者等于0,无法打印!", 500);
|
||||
throw new AppFriendlyException($"物料{WmsOutsourceD.matcode} 包装数量为空或者等于0,无法打印!", 500);
|
||||
};
|
||||
int codeNum = 0;
|
||||
|
||||
@@ -124,7 +178,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
|
||||
|
||||
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.id == WmsOutsourceD.matcode_id).FirstAsync();
|
||||
BasMaterial basMaterial = await _db.Queryable<BasMaterial>().Where(r => r.code == WmsOutsourceD.matcode).FirstAsync();
|
||||
for (int j = 0; j < codeNum; j++)
|
||||
{
|
||||
int index = j + 1;
|
||||
@@ -140,7 +194,7 @@ namespace Tnb.WarehouseMgr
|
||||
string code = $"{WmsOutsourceD.matcode}-{WmsOutsourceD.code_batch}-{watercode}";
|
||||
WmsTempCode barCode = new()
|
||||
{
|
||||
material_id = WmsOutsourceD.matcode_id,
|
||||
material_id = basMaterial.id,
|
||||
material_code = WmsOutsourceD.matcode,
|
||||
barcode = code,
|
||||
code_batch = WmsOutsourceD.code_batch,
|
||||
|
||||
@@ -430,7 +430,7 @@ namespace Tnb.WarehouseMgr
|
||||
case WmsWareHouseConst.BILLTYPE_OUTSOURCE_ID:
|
||||
{
|
||||
bill_type = WmsWareHouseConst.BILLTYPE_OUTSOURCEINSTOCK_ID;
|
||||
biz_type = WmsWareHouseConst.BIZTYPE_OUTSOURCE_ID;
|
||||
source_main_id = (await _dbScanInStockByRedis.Queryable<WmsOutsourceD>().FirstAsync(it => it.id == source_id)).erp_outsource_order_d_pk;
|
||||
break;
|
||||
}
|
||||
case WmsWareHouseConst.BILLTYPE_RAWMATTRANSFERINSTOCK_ID:
|
||||
|
||||
@@ -79,7 +79,8 @@ namespace Tnb.WarehouseMgr
|
||||
batchno = JObject.Parse(input.queryJson).Value<string>("batchno");
|
||||
material_specification = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.material_specification));
|
||||
container_no = JObject.Parse(input.queryJson).Value<string>(nameof(WmsCarryCode.container_no));
|
||||
time = JObject.Parse(input.queryJson).Value<JArray>("time");
|
||||
if (JObject.Parse(input.queryJson).ContainsKey("time"))
|
||||
time = JObject.Parse(input.queryJson).Value<JArray>("time");
|
||||
}
|
||||
|
||||
decimal total_qty = 0;
|
||||
|
||||
@@ -41,6 +41,7 @@ using Tnb.BasicData.Interfaces;
|
||||
using JNPF.Common.Enums;
|
||||
using System.Reflection;
|
||||
using Aop.Api.Domain;
|
||||
using Tnb.EquipMgr.Entities;
|
||||
|
||||
namespace Tnb.WarehouseMgr
|
||||
{
|
||||
@@ -72,11 +73,10 @@ namespace Tnb.WarehouseMgr
|
||||
_thirdApiRecordService = thirdApiRecordService;
|
||||
_visualDevService = visualDevService;
|
||||
OverideFuncs.CreateAsync += Create;
|
||||
OverideFuncs.DeleteAsync = Delete;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存工序工位关联表
|
||||
/// </summary>
|
||||
|
||||
[HttpPost]
|
||||
public async Task<dynamic> Create(VisualDevModelDataCrInput visualDevModelDataCrInput)
|
||||
{
|
||||
@@ -100,6 +100,31 @@ namespace Tnb.WarehouseMgr
|
||||
return "保存成功";
|
||||
}
|
||||
|
||||
// List<WmsDistaskH> wmsDistaskH = await _db.Queryable<WmsDistaskH>().Where(r => r.source_id == id).ToListAsync();
|
||||
private async Task Delete(string id)
|
||||
{
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
WmsPurchaseH wmsPurchaseH = await _db.Queryable<WmsPurchaseH>().Where(r => r.id == id).FirstAsync();
|
||||
if (wmsPurchaseH != null)
|
||||
{
|
||||
_ = await _db.Deleteable(wmsPurchaseH).ExecuteCommandAsync();
|
||||
List<WmsPurchaseD> wmsPurchaseDs = await _db.Queryable<WmsPurchaseD>().Where(r => r.bill_id == id).ToListAsync();
|
||||
Logger.Information($"删除采购收货单{wmsPurchaseH.bill_code} 收货明细{wmsPurchaseDs.Count}条");
|
||||
foreach (WmsPurchaseD wmsPurchaseD in wmsPurchaseDs)
|
||||
{
|
||||
WmsPurchaseOrderD wmsPurchaseOrderD = await _db.Queryable<WmsPurchaseOrderD>().Where(r => r.erp_line_pk == wmsPurchaseD.erp_purchase_order_d_pk).FirstAsync();
|
||||
if (wmsPurchaseOrderD != null)
|
||||
{
|
||||
Logger.Information($"采购收货单{wmsPurchaseH.bill_code} 收货明细id{wmsPurchaseOrderD.id} 删除后回退采购订单明细id{wmsPurchaseOrderD.id}已到货数量 {wmsPurchaseOrderD.actual_quantity} -> {wmsPurchaseOrderD.actual_quantity - wmsPurchaseD.purchase_arriveqty}");
|
||||
wmsPurchaseOrderD.actual_quantity -= wmsPurchaseD.purchase_prqty;
|
||||
await _db.Updateable(wmsPurchaseOrderD).UpdateColumns(r => r.actual_quantity).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
_ = await _db.Deleteable(wmsPurchaseDs).ExecuteCommandAsync();
|
||||
}
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
|
||||
private async Task<dynamic> xxx(VisualDevModelDataCrInput input)
|
||||
{
|
||||
|
||||
@@ -180,8 +180,8 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
await _db.Ado.BeginTranAsync();
|
||||
//入库取终点 //出库起点
|
||||
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID, dbConn = _db };
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput);
|
||||
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.code_batch, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID };
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput, _db);
|
||||
|
||||
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||
if (canOutstockQty < input.qty)
|
||||
@@ -215,8 +215,8 @@ namespace Tnb.WarehouseMgr
|
||||
//人工发货
|
||||
else
|
||||
{
|
||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = items_pretask.Count, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID, dbConn = _db };
|
||||
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
|
||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = items_pretask.Count, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID };
|
||||
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput, _db);
|
||||
|
||||
if (endLocations.Count < items_pretask.Count)
|
||||
{
|
||||
@@ -267,8 +267,8 @@ namespace Tnb.WarehouseMgr
|
||||
//人工发货
|
||||
else
|
||||
{
|
||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = 1, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID, dbConn = _db };
|
||||
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
|
||||
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, Size = 1, Region_id = WmsWareHouseConst.REGION_CPManualOutstock_ID };
|
||||
endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput, _db);
|
||||
|
||||
if (endLocations.Count < 1)
|
||||
{
|
||||
|
||||
@@ -96,8 +96,8 @@ namespace Tnb.WarehouseMgr
|
||||
WmsTransferOutstockD wmsOutstockD = await _db.Queryable<WmsTransferOutstockD>().FirstAsync(it => it.id == input.source_id);
|
||||
await _db.Ado.BeginTranAsync();
|
||||
//入库取终点 //出库起点
|
||||
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.pi_code, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID, dbConn = _db };
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput);
|
||||
OutStockStrategyQuery outStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_CP_ID, material_id = wmsOutstockD.material_id, qty = input.qty, code_batch = wmsOutstockD.pi_code, Region_id = WmsWareHouseConst.REGION_CPOutstock_ID };
|
||||
List<Tuple<string, WmsCarryH, WmsCarryCode, BasLocation>> items = await _wareHouseService.OutStockStrategy_saleRelease(outStockStrategyInput, _db);
|
||||
|
||||
decimal canOutstockQty = items.Sum(r => r.Item3.codeqty).ParseToDecimal();
|
||||
if (canOutstockQty < input.qty)
|
||||
|
||||
Reference in New Issue
Block a user