Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -13,4 +13,13 @@ namespace Tnb.BasicData.Entities.Dto
|
|||||||
public string? workhour { get; set; }
|
public string? workhour { get; set; }
|
||||||
public string? worktype { get; set; }
|
public string? worktype { get; set; }
|
||||||
}
|
}
|
||||||
|
public class CalendarBatchInput
|
||||||
|
{
|
||||||
|
public string? startday { get; set; }
|
||||||
|
public string? endday { get; set; }
|
||||||
|
public int[]? weekday { get; set; }
|
||||||
|
public string? datetype { get; set; }
|
||||||
|
public string? workhour { get; set; }
|
||||||
|
public string? worktype { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,12 @@ namespace Tnb.BasicData.Entities.Dto.BasCalendar
|
|||||||
{
|
{
|
||||||
public string? datetext { get; set; }
|
public string? datetext { get; set; }
|
||||||
public string? datetype { get; set; }
|
public string? datetype { get; set; }
|
||||||
public string? workhour { get; set; }
|
public List<WorkHour>? workhour { get; set; }
|
||||||
public string? worktype { get; set; }
|
public string? worktype { get; set; }
|
||||||
}
|
}
|
||||||
|
public class WorkHour
|
||||||
|
{
|
||||||
|
public string? start { get; set; }
|
||||||
|
public string? end { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,14 @@ namespace Tnb.BasicData.Interfaces
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取工作日历
|
/// 获取工作日历
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="CalendarInput"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<dynamic> GetWorkData();
|
public Task<dynamic> GetWorkData(CalendarInput CalendarInput);
|
||||||
|
/// <summary>
|
||||||
|
/// 批量保存工作日历
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="CalendarBatchInput"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public Task SaveBatchData(CalendarBatchInput CalendarBatchInput);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using JNPF.Common.Core.Manager;
|
|||||||
using JNPF.Common.Models.VisualDev;
|
using JNPF.Common.Models.VisualDev;
|
||||||
using JNPF.DependencyInjection;
|
using JNPF.DependencyInjection;
|
||||||
using JNPF.DynamicApiController;
|
using JNPF.DynamicApiController;
|
||||||
|
using JNPF.JsonSerialization;
|
||||||
using JNPF.Systems.Interfaces.System;
|
using JNPF.Systems.Interfaces.System;
|
||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@@ -43,6 +44,7 @@ namespace Tnb.BasicData
|
|||||||
public async Task SaveData(CalendarInput CalendarInput)
|
public async Task SaveData(CalendarInput CalendarInput)
|
||||||
{
|
{
|
||||||
var db = _repository.AsSugarClient();
|
var db = _repository.AsSugarClient();
|
||||||
|
await db.Deleteable<BasCalendar>(p=>p.datetext== CalendarInput.datetext).ExecuteCommandAsync();
|
||||||
BasCalendar BasCalendar = new BasCalendar();
|
BasCalendar BasCalendar = new BasCalendar();
|
||||||
BasCalendar.datetext = CalendarInput.datetext;
|
BasCalendar.datetext = CalendarInput.datetext;
|
||||||
BasCalendar.datetype = CalendarInput.datetype;
|
BasCalendar.datetype = CalendarInput.datetype;
|
||||||
@@ -56,22 +58,50 @@ namespace Tnb.BasicData
|
|||||||
/// 获取工作日历
|
/// 获取工作日历
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet]
|
[HttpPost]
|
||||||
public async Task<dynamic> GetWorkData()
|
public async Task<dynamic> GetWorkData(CalendarInput CalendarInput)
|
||||||
{
|
{
|
||||||
var db = _repository.AsSugarClient();
|
var db = _repository.AsSugarClient();
|
||||||
var lists = await db.Queryable<BasCalendar>().ToListAsync();
|
var lists = await db.Queryable<BasCalendar>().Where(p=>p.worktype== CalendarInput.worktype).ToListAsync();
|
||||||
List<CalendarOut> CalendarOuts = new List<CalendarOut>();
|
List<CalendarOut> CalendarOuts = new List<CalendarOut>();
|
||||||
foreach (var list in lists)
|
foreach (var list in lists)
|
||||||
{
|
{
|
||||||
CalendarOut CalendarOut = new CalendarOut();
|
CalendarOut CalendarOut = new CalendarOut();
|
||||||
CalendarOut.datetext = list.datetext;
|
CalendarOut.datetext = list.datetext;
|
||||||
CalendarOut.datetype = list.datetype;
|
CalendarOut.datetype = list.datetype;
|
||||||
CalendarOut.workhour = list.workhour;
|
CalendarOut.workhour = JSON.Deserialize<List<WorkHour>>(list.workhour);
|
||||||
CalendarOut.worktype = list.worktype;
|
CalendarOut.worktype = list.worktype;
|
||||||
CalendarOuts.Add(CalendarOut);
|
CalendarOuts.Add(CalendarOut);
|
||||||
}
|
}
|
||||||
return CalendarOuts;
|
return CalendarOuts;
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 批量保存工作日历
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="CalendarBatchInput"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task SaveBatchData(CalendarBatchInput CalendarBatchInput)
|
||||||
|
{
|
||||||
|
var db = _repository.AsSugarClient();
|
||||||
|
DateTime start = DateTime.Parse(CalendarBatchInput.startday!);
|
||||||
|
DateTime end = DateTime.Parse(CalendarBatchInput.endday!);
|
||||||
|
List<BasCalendar> BasCalendars = new List<BasCalendar>();
|
||||||
|
for (DateTime date = start; date <= end; date.AddDays(1))
|
||||||
|
{
|
||||||
|
if (CalendarBatchInput.weekday!.Contains((int)date.DayOfWeek))
|
||||||
|
{
|
||||||
|
BasCalendar BasCalendar = new BasCalendar();
|
||||||
|
BasCalendar.datetext = date.ToString("yyyy-MM-dd");
|
||||||
|
BasCalendar.datetype = CalendarBatchInput.datetype;
|
||||||
|
BasCalendar.workhour = CalendarBatchInput.workhour;
|
||||||
|
BasCalendar.worktype = CalendarBatchInput.worktype;
|
||||||
|
BasCalendar.create_id = _userManager.UserId;
|
||||||
|
BasCalendar.create_time = DateTime.Now;
|
||||||
|
BasCalendars.Add(BasCalendar);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await db.Deleteable<BasCalendar>(p => BasCalendars.Select(p => p.datetext).ToList().Contains(p.datetext)).ExecuteCommandAsync();
|
||||||
|
await db.Insertable(BasCalendars).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ namespace Tnb.WarehouseMgr.Entities.Consts
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const string WMS_PRETASK_H_ENCODE = "PreTaskGen";
|
public const string WMS_PRETASK_H_ENCODE = "PreTaskGen";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 载具移入生成Encode
|
||||||
|
/// </summary>
|
||||||
|
public const string WMS_CARRYMOINSTK_ENCODE = "CarryMoInStk";
|
||||||
|
/// <summary>
|
||||||
/// 任务执行ENCODE
|
/// 任务执行ENCODE
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string WMS_TASK_EXECUTE_ENCODE = "WmsTaskRequest";
|
public const string WMS_TASK_EXECUTE_ENCODE = "WmsTaskRequest";
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
}
|
}
|
||||||
|
|
||||||
//获取所有未下发的预任务申请
|
//获取所有未下发的预任务申请
|
||||||
var preTasks = await _db.Queryable<WmsPretaskH>().InnerJoin<WmsCarryH>((a, b) => a.startlocation_id == b.location_id)
|
var preTasks = await _db.Queryable<WmsPretaskH>().InnerJoin<WmsCarryH>((a, b) => a.startlocation_id == b.location_id && a.carry_id == b.id)
|
||||||
.InnerJoin<WmsAreaH>((a, b, c) => a.area_id == c.id)
|
.InnerJoin<WmsAreaH>((a, b, c) => a.area_id == c.id)
|
||||||
.Where(a => a.status == WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID)
|
.Where(a => a.status == WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID)
|
||||||
.OrderBy(a => new { priority = SqlFunc.Desc(a.priority), a.bill_code })
|
.OrderBy(a => new { priority = SqlFunc.Desc(a.priority), a.bill_code })
|
||||||
@@ -279,15 +279,20 @@ namespace Tnb.WarehouseMgr
|
|||||||
move_num = c.move_num
|
move_num = c.move_num
|
||||||
}, true)
|
}, true)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
var ids = preTasks.Select(x => x.id).Distinct().ToList();
|
||||||
|
var preTaskCodes = await _db.Queryable<WmsPretaskCode>().Where(it => ids.Contains(it.bill_id)).ToListAsync();
|
||||||
if (preTasks.Count > 0)
|
if (preTasks.Count > 0)
|
||||||
{
|
{
|
||||||
//根据预任务管理区分组,获取到所有分组后的预任务,遍历每个预任务 是否为任务链,通过管理区ID
|
//根据预任务管理区分组,获取到所有分组后的预任务,遍历每个预任务 是否为任务链,通过管理区ID
|
||||||
var preTaskGroups = preTasks.GroupBy(g => g.area_code).ToList();
|
var preTaskGroups = preTasks.GroupBy(g => g.area_code).ToList();
|
||||||
List<WmsDistaskH> disTasks = new();
|
List<WmsDistaskH> disTasks = new();
|
||||||
|
List<WmsDistaskCode> distaskCodes = new();
|
||||||
foreach (var itGroup in preTaskGroups)
|
foreach (var itGroup in preTaskGroups)
|
||||||
{
|
{
|
||||||
var moveNum = itGroup.First().move_num;
|
var moveNum = itGroup.First().move_num;
|
||||||
var items = itGroup.Adapt<List<WmsDistaskH>>();
|
var items = itGroup.Adapt<List<WmsDistaskH>>();
|
||||||
|
|
||||||
|
items.ForEach(x => SnowflakeIdHelper.NextId());
|
||||||
items.ForEach(x =>
|
items.ForEach(x =>
|
||||||
{
|
{
|
||||||
x.status = WmsWareHouseConst.TASK_BILL_STATUS_DZX_ID;
|
x.status = WmsWareHouseConst.TASK_BILL_STATUS_DZX_ID;
|
||||||
@@ -325,14 +330,34 @@ namespace Tnb.WarehouseMgr
|
|||||||
await _taskChainAttrHandle(items, areaPreTasks, moveNum);
|
await _taskChainAttrHandle(items, areaPreTasks, moveNum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (preTaskCodes?.Count > 0)
|
||||||
|
{
|
||||||
|
foreach (var disTask in items)
|
||||||
|
{
|
||||||
|
var curPreTaskCodes = preTaskCodes.FindAll(x => x.bill_id == disTask.pretask_id);
|
||||||
|
var curDisTaskCodes = curPreTaskCodes.Adapt<List<WmsDistaskCode>>();
|
||||||
|
curPreTaskCodes.ForEach(x =>
|
||||||
|
{
|
||||||
|
x.id = SnowflakeIdHelper.NextId();
|
||||||
|
x.bill_id = disTask.id;
|
||||||
|
x.create_time = DateTime.Now;
|
||||||
|
});
|
||||||
|
distaskCodes.AddRange(curDisTaskCodes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
disTasks.AddRange(items);
|
disTasks.AddRange(items);
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await _db.Ado.BeginTranAsync();
|
await _db.Ado.BeginTranAsync();
|
||||||
|
|
||||||
disTasks.ForEach(x => x.id = SnowflakeIdHelper.NextId());
|
//disTasks.ForEach(x => x.id = SnowflakeIdHelper.NextId());
|
||||||
var row = await _db.Insertable(disTasks).ExecuteCommandAsync();
|
var row = await _db.Insertable(disTasks).ExecuteCommandAsync();
|
||||||
|
if (preTaskCodes?.Count > 0)
|
||||||
|
{
|
||||||
|
row = await _db.Insertable(distaskCodes).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
if (row > 0)
|
if (row > 0)
|
||||||
{
|
{
|
||||||
var preTaskIds = preTasks.Select(x => x.id).ToList();
|
var preTaskIds = preTasks.Select(x => x.id).ToList();
|
||||||
@@ -462,7 +487,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
carryStatus = ((int)EnumCarryStatus.空闲).ToString();
|
carryStatus = ((int)EnumCarryStatus.空闲).ToString();
|
||||||
}
|
}
|
||||||
var cStatus =carryStatus.ParseToInt();
|
var cStatus = carryStatus.ParseToInt();
|
||||||
await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = cStatus, is_lock = 0 }).Where(it => it.id == multis[i].endlocation_id).ExecuteCommandAsync();
|
await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_use = cStatus, is_lock = 0 }).Where(it => it.id == multis[i].endlocation_id).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
//更新业务主表的单据状态
|
//更新业务主表的单据状态
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ using NPOI.SS.Formula.Functions;
|
|||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Tnb.BasicData.Entities;
|
using Tnb.BasicData.Entities;
|
||||||
using Tnb.WarehouseMgr.Entities;
|
using Tnb.WarehouseMgr.Entities;
|
||||||
|
using Tnb.WarehouseMgr.Entities.Attributes;
|
||||||
using Tnb.WarehouseMgr.Entities.Consts;
|
using Tnb.WarehouseMgr.Entities.Consts;
|
||||||
|
using Tnb.WarehouseMgr.Entities.Dto;
|
||||||
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
|
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
|
||||||
using Tnb.WarehouseMgr.Interfaces;
|
using Tnb.WarehouseMgr.Interfaces;
|
||||||
|
|
||||||
@@ -21,8 +23,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 入库申请服务
|
/// 入库申请服务
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[ServiceModule(BizTypeId)]
|
||||||
public class WmsInStockService : BaseWareHouseService, IWmsInStockService
|
public class WmsInStockService : BaseWareHouseService, IWmsInStockService
|
||||||
{
|
{
|
||||||
|
private const string BizTypeId = "26191496816421";
|
||||||
private readonly ISqlSugarClient _db;
|
private readonly ISqlSugarClient _db;
|
||||||
private readonly IDictionaryDataService _dictionaryDataService;
|
private readonly IDictionaryDataService _dictionaryDataService;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
@@ -155,5 +159,56 @@ namespace Tnb.WarehouseMgr
|
|||||||
return barCode;
|
return barCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override async Task ModifyAsync(WareHouseUpInput input)
|
||||||
|
{
|
||||||
|
if (input == null) throw new ArgumentNullException("input");
|
||||||
|
//更具distaskCode的barcode 更新 instockcode 的 is_end 为 1
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _db.Ado.BeginTranAsync();
|
||||||
|
|
||||||
|
if (input.distaskCodes?.Count > 0)
|
||||||
|
{
|
||||||
|
var barCodes = input.distaskCodes.Select(x => x.barcode);
|
||||||
|
await _db.Updateable<WmsInstockCode>().SetColumns(it => new WmsInstockCode { is_end = 1 }).Where(it => barCodes.Contains(it.barcode)).ExecuteCommandAsync();
|
||||||
|
var instockCodes = await _db.Queryable<WmsInstockCode>().Where(it => barCodes.Contains(it.barcode)).Select(it => new
|
||||||
|
{
|
||||||
|
id = it.bill_d_id,
|
||||||
|
barcode_qty = it.codeqty,
|
||||||
|
}).ToListAsync();
|
||||||
|
var dic = instockCodes.GroupBy(g => g.id).ToDictionary(x => x.Key, x => x.Select(d => d.barcode_qty).ToList());
|
||||||
|
var ids = instockCodes.Select(it => it.id).ToList();
|
||||||
|
var instockDetails = await _db.Queryable<WmsInstockD>().Where(it => ids.Contains(it.id)).ToListAsync();
|
||||||
|
|
||||||
|
foreach (var item in instockDetails)
|
||||||
|
{
|
||||||
|
if (dic.ContainsKey(item.id))
|
||||||
|
{
|
||||||
|
item.qty += dic[item.id].Sum(x => x);
|
||||||
|
if (item.qty >= item.pr_qty)
|
||||||
|
{
|
||||||
|
item.line_status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await _db.Updateable(instockDetails).ExecuteCommandAsync();
|
||||||
|
var allInstockDetails = await _db.Queryable<WmsInstockD>().Where(it => it.bill_id == input.requireId).ToListAsync();
|
||||||
|
if (allInstockDetails.All(x => x.line_status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID))
|
||||||
|
{
|
||||||
|
await _db.Updateable<WmsInstockH>().SetColumns(it => new WmsInstockH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync();
|
||||||
|
//如果是自动单据,需要回更上层系统
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await _db.Ado.CommitTranAsync();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
await _db.Ado.RollbackTranAsync();
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -286,17 +286,21 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
|
await _db.Ado.BeginTranAsync();
|
||||||
|
|
||||||
var carryId = input.carryIds[^input.carryIds.Count];
|
var carryId = input.carryIds[^input.carryIds.Count];
|
||||||
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
|
||||||
if (carry != null)
|
if (carry != null)
|
||||||
{
|
{
|
||||||
|
var otds = await _db.Queryable<WmsOutstockD>().Where(it => it.bill_id == input.requireId).ToListAsync();
|
||||||
var outStatus = carry.out_status.ToEnum<EnumOutStatus>();
|
var outStatus = carry.out_status.ToEnum<EnumOutStatus>();
|
||||||
if (outStatus == EnumOutStatus.全部出)
|
if (outStatus == EnumOutStatus.全部出)
|
||||||
{
|
{
|
||||||
//当前载具对应的所有条码插入
|
//当前载具对应的所有条码插入
|
||||||
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == carryId).ToListAsync();
|
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == carryId).ToListAsync();
|
||||||
var outStockCodes = carryCodes.Adapt<List<WmsOutstockCode>>();
|
var outStockCodes = carryCodes.Adapt<List<WmsOutstockCode>>();
|
||||||
var otds = await _db.Queryable<WmsOutstockD>().Where(it => it.bill_id == input.requireId).ToListAsync();
|
|
||||||
outStockCodes.ForEach(x =>
|
outStockCodes.ForEach(x =>
|
||||||
{
|
{
|
||||||
var billDId = otds?.Find(xx => xx.material_id == x.material_id && xx.code_batch == x.code_batch)?.id;
|
var billDId = otds?.Find(xx => xx.material_id == x.material_id && xx.code_batch == x.code_batch)?.id;
|
||||||
@@ -340,7 +344,20 @@ namespace Tnb.WarehouseMgr
|
|||||||
if (input.distaskCodes?.Count > 0)
|
if (input.distaskCodes?.Count > 0)
|
||||||
{
|
{
|
||||||
var osCodes = input.distaskCodes.Adapt<List<WmsOutstockCode>>();
|
var osCodes = input.distaskCodes.Adapt<List<WmsOutstockCode>>();
|
||||||
osCodes.ForEach(x => x.id = SnowflakeIdHelper.NextId());
|
osCodes.ForEach(x =>
|
||||||
|
{
|
||||||
|
var billDId = otds?.Find(xx => xx.material_id == x.material_id && xx.code_batch == x.code_batch)?.id;
|
||||||
|
if (billDId.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
billDId = otds?.Find(xx => xx.material_id == x.material_id)?.id;
|
||||||
|
}
|
||||||
|
x.id = SnowflakeIdHelper.NextId();
|
||||||
|
x.bill_id = input.requireId;
|
||||||
|
x.bill_d_id = billDId;
|
||||||
|
x.org_id = _userManager.User.OrganizeId;
|
||||||
|
x.create_id = _userManager.UserId;
|
||||||
|
x.create_time = DateTime.Now;
|
||||||
|
});
|
||||||
await _db.Insertable(osCodes).ExecuteCommandAsync();
|
await _db.Insertable(osCodes).ExecuteCommandAsync();
|
||||||
|
|
||||||
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => input.carryIds.Contains(it.carry_id)).ToListAsync();
|
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => input.carryIds.Contains(it.carry_id)).ToListAsync();
|
||||||
@@ -386,17 +403,19 @@ namespace Tnb.WarehouseMgr
|
|||||||
[nameof(WmsPointH.location_id)] = outStockH.location_id,
|
[nameof(WmsPointH.location_id)] = outStockH.location_id,
|
||||||
[nameof(WmsCarryD.carry_id)] = input.carryIds.First(),
|
[nameof(WmsCarryD.carry_id)] = input.carryIds.First(),
|
||||||
[nameof(WmsHandleH.biz_type)] = input.bizTypeId,
|
[nameof(WmsHandleH.biz_type)] = input.bizTypeId,
|
||||||
[nameof(WmsHandleH.bill_code)] = outStockH.bill_code,
|
[nameof(WmsHandleH.bill_code)] = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_CARRYMOINSTK_ENCODE).GetAwaiter().GetResult(),
|
||||||
};
|
};
|
||||||
await _wmsCarryMoveInStockService.CarryMoveIn(visulDevInput);
|
await _wmsCarryMoveInStockService.CarryMoveIn(visulDevInput);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await _db.Ado.CommitTranAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
await _db.Ado.RollbackTranAsync();
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,6 +150,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//生成预任务,同时如果包含条码信息同时插入条码记录
|
//生成预任务,同时如果包含条码信息同时插入条码记录
|
||||||
var isOk = await _wareHouseService.GenPreTask(preTasks, pretaskCodes);
|
var isOk = await _wareHouseService.GenPreTask(preTasks, pretaskCodes);
|
||||||
if (isOk)
|
if (isOk)
|
||||||
|
|||||||
Reference in New Issue
Block a user