Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
2024-05-21 17:22:18 +08:00
13 changed files with 528 additions and 53 deletions

View File

@@ -216,7 +216,7 @@ namespace Tnb.ProductionMgr
if (DistaskH != null)
{
Logger.LogInformation($@"【定时任务CheckGet】 {JsonConvert.SerializeObject(DistaskH)}");
Logger.LogInformation($@"【定时任务CheckGet】 DistaskH != null");
dynamic reqBody = new ExpandoObject();
reqBody.taskCode = DistaskH.bill_code;
reqBody.slotCode = key;
@@ -245,7 +245,9 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
}
}
else {
else
{
Logger.LogInformation($@"【定时任务CheckGet】 DistaskH == null");
var DistaskH = _repository.AsSugarClient().Queryable<WmsDistaskH>().Where(p => p.startlocation_code == key && p.status == WmsWareHouseConst.TASK_BILL_STATUS_YXD_ID && string.IsNullOrEmpty(p.extras)).First();
if (DistaskH != null)
{
@@ -1697,7 +1699,7 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
// 供料叠盘机空托盘自动入库
YCLGLDPJInstocktimer = new Timer(YCLGLDPJInstock, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
//// 外协叠盘机空托盘自动入库
// 外协叠盘机空托盘自动入库
//YCLWXDPJInstocktimer = new Timer(YCLWXDPJInstock, null, TimeSpan.Zero, TimeSpan.FromSeconds(100000));
// 二楼上升降机

View File

@@ -221,5 +221,9 @@ public class ModuleConsts
/// 模块标识-成品调拨入库单
/// </summary>
public const string MODULE_WMSTRANSFERINSTOCKH_ID = "34154749548053";
/// <summary>
/// 模块标识-原材料转库单 TODO
/// </summary>
public const string MODULE_WMSMATERIALTRANSFER_ID = "123";
}

View File

@@ -203,9 +203,13 @@
/// </summary>
public const string BIZTYPE_WMSDELIVERY_ID = "26585291847957";
/// <summary>
/// 预任务生成业务类型-销售出库下发(未定) TODO
/// 预任务生成业务类型-销售出库下发
/// </summary>
public const string BIZTYPE_WMSSALERELEASE_ID = "BIZTYPE_WMSSALERELEASE_ID";
public const string BIZTYPE_WMSSALERELEASE_ID = "25104446664213";
/// <summary>
/// 预任务生成业务类型-原材料转库单下发 todo
/// </summary>
public const string BIZTYPE_WMSMATERIALTRANSFER_ID = "BIZTYPE_WMSMATERIALTRANSFER_ID";
/// <summary>
/// 预任务生成业务类型-载具绑定
/// </summary>
@@ -311,6 +315,18 @@
/// </summary>
public const string FinishproductOutstockStation3 = "30018217822229";
/// <summary>
/// 一楼三工位库位
/// </summary>
public const string Floor1SGWOutstockStation1 = "30773146852476";
/// <summary>
/// 一楼三工位库位
/// </summary>
public const string Floor1SGWOutstockStation2 = "30773146852477";
/// <summary>
/// 一楼三工位库位
/// </summary>
public const string Floor1SGWOutstockStation3 = "30773146852478";
/// <summary>
/// 分拣任务生成Encode
/// </summary>
public const string WMS_SORTINGTASK_ENCODE = "Sortingtask";

View File

@@ -20,6 +20,9 @@ namespace Tnb.WarehouseMgr.Entities.Dto.Inputs
public string biz_type { get; set; }
public string task_type { get; set; }
public string require_id { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
namespace Tnb.WarehouseMgr.Entities.Dto
{
/// <summary>
/// 库房业务更新输入参数
/// </summary>
public class MaterialTransferDistributeInput
{
/// <summary>
/// 组织ID
/// </summary>
public string org_id { get; set; }
/// <summary>
/// 创建用户
/// </summary>
public string create_id { get; set; }
///// <summary>
///// 物料数量
///// </summary>
//public decimal qty { get; set; }
/// <summary>
/// 来源单据id
/// </summary>
public string? source_id { get; set; }
}
}

View File

@@ -0,0 +1,117 @@
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
namespace Tnb.WarehouseMgr.Entities.Entity;
/// <summary>
/// 原材料转库单
/// </summary>
[SugarTable("wms_material_transfer")]
public partial class WmsMaterialTransfer : BaseEntity<string>
{
public WmsMaterialTransfer()
{
id = SnowflakeIdHelper.NextId();
}
/// <summary>
/// 创建用户
/// </summary>
public string? create_id { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? create_time { get; set; }
/// <summary>
/// 修改用户
/// </summary>
public string? modify_id { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? modify_time { get; set; }
/// <summary>
/// 所属组织
/// </summary>
public string? org_id { get; set; }
/// <summary>
/// 租户ID
/// </summary>
public string? tenant_id { get; set; }
/// <summary>
/// 时间戳(用于并发控制)
/// </summary>
public DateTime? timestamp { get; set; }
/// <summary>
/// 单号
/// </summary>
public string? bill_code { get; set; }
/// <summary>
/// 单据状态
/// </summary>
public string? status { get; set; }
/// <summary>
/// 入库单创建日期
/// </summary>
public DateTime? bill_date { get; set; }
/// <summary>
/// 出库仓库
/// </summary>
public string? warehouse_outstock { get; set; }
/// <summary>
/// 入库仓库
/// </summary>
public string? warehouse_instock { get; set; }
/// <summary>
/// 转库类型
/// </summary>
public string? type { get; set; }
/// <summary>
/// 出库业务员
/// </summary>
public string? biller_out { get; set; }
/// <summary>
/// 出库部门
/// </summary>
public string? depart_out { get; set; }
/// <summary>
/// 入库业务员
/// </summary>
public string? biller_in { get; set; }
/// <summary>
/// 入库部门
/// </summary>
public string? depart_in { get; set; }
/// <summary>
/// 应发货日期
/// </summary>
public DateTime? deliver_date { get; set; }
/// <summary>
/// 应到货日期
/// </summary>
public DateTime? arrival_date { get; set; }
/// <summary>
/// 生产订单号
/// </summary>
public string? order_code { get; set; }
}

View File

@@ -0,0 +1,89 @@
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
namespace Tnb.WarehouseMgr.Entities.Entity;
/// <summary>
/// 原材料转库单子表
/// </summary>
[SugarTable("wms_material_transfer_d")]
public partial class WmsMaterialTransferD : BaseEntity<string>
{
public WmsMaterialTransferD()
{
id = SnowflakeIdHelper.NextId();
}
/// <summary>
/// 流程任务Id
/// </summary>
public string? f_flowtaskid { get; set; }
/// <summary>
/// 流程引擎Id
/// </summary>
public string? f_flowid { get; set; }
/// <summary>
/// 行号
/// </summary>
public string? lineno { get; set; }
/// <summary>
/// 物品ID
/// </summary>
public string? material_id { get; set; }
/// <summary>
/// 物品代码
/// </summary>
public string? material_code { get; set; }
/// <summary>
/// 规格型号
/// </summary>
public string? material_specification { get; set; }
/// <summary>
/// 单位ID
/// </summary>
public string? unit_id { get; set; }
/// <summary>
/// 单位代码
/// </summary>
public string? unit_code { get; set; }
/// <summary>
/// 批号
/// </summary>
public string? code_batch { get; set; }
/// <summary>
/// 工位编码
/// </summary>
public string? station_code { get; set; }
/// <summary>
/// 应转主数量
/// </summary>
public decimal? qty { get; set; }
/// <summary>
/// 已下发数量
/// </summary>
public decimal? yxfqty { get; set; }
/// <summary>
/// 已转数量
/// </summary>
public decimal? yzqty { get; set; }
/// <summary>
/// 主表ID
/// </summary>
public string? bill_id { get; set; }
}

View File

@@ -1,4 +1,5 @@
using System.Linq.Expressions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
@@ -46,6 +47,13 @@ namespace Tnb.WarehouseMgr.Interfaces
/// <returns></returns>
string[] GetFloor1OutstockLocation();
/// <summary>
/// 是否为三工位库位
/// </summary>
/// <param name="location_id"></param>
/// <returns></returns>
string[] GetFloor1SGWOutstockLocation();
/// <summary>
/// 生成预任务
/// </summary>
@@ -104,5 +112,13 @@ namespace Tnb.WarehouseMgr.Interfaces
/// <param name="rackid">料架id</param>
/// <returns></returns>
Task<bool> Floor2EmptyCarryCreateZZCPretask(string rackid);
/// <summary>
/// 生成预任务接口 CTU需要传task_type
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost, NonUnify, AllowAnonymous]
Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> CommonCreatePretask(CommonCreatePretaskInput input);
}
}

View File

@@ -227,6 +227,18 @@ namespace Tnb.WarehouseMgr
, WmsWareHouseConst.FinishproductOutstockStation3 };
}
/// <summary>
/// 是否为三工位库位
/// </summary>
/// <param name="location_id"></param>
/// <returns></returns>
public string[] GetFloor1SGWOutstockLocation()
{
return new string[3] { WmsWareHouseConst.Floor1SGWOutstockStation1 , WmsWareHouseConst.Floor1SGWOutstockStation2
, WmsWareHouseConst.Floor1SGWOutstockStation3 };
}
/// <summary>
/// 出库策略-销售出库下发
/// </summary>
@@ -1633,8 +1645,8 @@ namespace Tnb.WarehouseMgr
//更新电梯任务数量
_ = await _db.Updateable<WmsElevatorH>().SetColumns(it => new WmsElevatorH { task_nums = it.task_nums - 1}).Where(it => disTasks.Select(x => x.area_code).Contains(it.area_code)).ExecuteCommandAsync();
// 更新中储仓任务数量
_ = await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { task_nums = it.task_nums - 1 }).Where(it => disTasks.Where(r => r.startlocation_code.Contains("SSX-111-011") || r.startlocation_code.Contains("SSX-111-012")).Select(x => x.startlocation_code).Contains(it.location_code)).ExecuteCommandAsync();
// 更新任务数量
_ = await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { task_nums = it.task_nums - 1 }).Where(it => disTasks.Select(x => x.endlocation_code).Contains(it.location_code)).ExecuteCommandAsync();
//更新载具,锁定状态为未锁定,更新载具的库位当前任务的目标库位
@@ -1712,6 +1724,12 @@ namespace Tnb.WarehouseMgr
await _db.Updateable<WmsTransferInstockD>().SetColumns(r => r.qty == r.qty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync();
}
}
// 原材料转库单
else if (dt.biz_type == WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID)
{
WmsCarryCode wmsCarryCode = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == dt.carry_id).FirstAsync();
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yzqty == r.yzqty + wmsCarryCode.codeqty).Where(r => r.id == dt.require_id).ExecuteCommandAsync();
}
List<WmsDistaskCode> disTaskCodes = await _db.Queryable<WmsDistaskCode>().Where(it => it.bill_id == dt.id).ToListAsync();
@@ -2312,7 +2330,7 @@ namespace Tnb.WarehouseMgr
bill_code = bill_code,
status = WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID,
biz_type = WmsWareHouseConst.BIZTYPE_WMSEMPTYINSTOCK_ID,
task_type = "",
task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID,
carry_id = wmsCarryD.membercarry_id,
carry_code = wmsCarryD.membercarry_code,
area_id = sPoint?.area_id!,
@@ -2402,46 +2420,51 @@ namespace Tnb.WarehouseMgr
//根据获取的路径点生成预任务,生成顺序必须预路径算法返回的起终点的顺序一致(预任务顺序)
WmsPretaskH preTask = null;
string bill_code = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_PRETASK_H_ENCODE).GetAwaiter().GetResult();
string carry_id = "";
string carry_code = "";
WmsCarryH wmsCarryH = null;
if (!string.IsNullOrEmpty(input.carry_id) && !string.IsNullOrEmpty(input.carry_code))
{
carry_id = input.carry_id;
carry_code = input.carry_code;
}
// 如果指定了carry_id
else if (!string.IsNullOrEmpty(input.carry_id))
{
wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.id == input.carry_id).First();
}
// carry_code
else if (!string.IsNullOrEmpty(input.carry_code))
{
wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.carry_code == input.carry_code).First();
}
// 如果carry_id和carry_code都没有指定随机取库位上载具记录的一条
else
{
wmsCarryH = _db.Queryable<BasLocation>().InnerJoin<WmsCarryH>((a, b) => a.id == b.location_id)
.Where((a, b) => a.id == sPoint.location_id).Select((a, b) => b).First();
}
if (wmsCarryH != null)
{
carry_id = wmsCarryH.id;
carry_code = wmsCarryH.carry_code;
}
if (string.IsNullOrEmpty(carry_id))
{
throw new AppFriendlyException("起点库位上没有载具", 500);
}
List<WmsPretaskH> preTasks = points.Where(it => !it.location_id.IsNullOrEmpty()).GroupBy(g => g.area_code).Select(it =>
{
WmsPointH? sPoint = it.FirstOrDefault();
WmsPointH? ePoint = it.LastOrDefault();
string carry_id = "";
string carry_code = "";
WmsCarryH wmsCarryH = null;
if (!string.IsNullOrEmpty(input.carry_id) && !string.IsNullOrEmpty(input.carry_code))
{
carry_id = input.carry_id;
carry_code = input.carry_code;
}
// 如果指定了carry_id
else if (!string.IsNullOrEmpty(input.carry_id))
{
wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.id == input.carry_id).First();
}
// carry_code
else if (!string.IsNullOrEmpty(input.carry_code))
{
wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.carry_code == input.carry_code).First();
}
// 如果carry_id和carry_code都没有指定随机取库位上载具记录的一条
else
{
wmsCarryH = _db.Queryable<BasLocation>().InnerJoin<WmsCarryH>((a, b) => a.id == b.location_id)
.Where((a, b) => a.id == sPoint.location_id).Select((a, b) => b).First();
}
if (wmsCarryH != null)
{
carry_id = wmsCarryH.id;
carry_code = wmsCarryH.carry_code;
}
if (string.IsNullOrEmpty(carry_id))
{
throw new AppFriendlyException("起点库位上没有载具", 500);
}
preTask = new()
{
@@ -2464,7 +2487,7 @@ namespace Tnb.WarehouseMgr
carry_code = carry_code,
area_id = sPoint?.area_id!,
area_code = it.Key,
require_id = "",
require_id = input.require_id,
require_code = "",
create_id = _userManager.UserId,
create_time = DateTime.Now
@@ -2491,7 +2514,7 @@ namespace Tnb.WarehouseMgr
}
finally
{
await GenTaskExecute();
GenTaskExecute();
}
}

View File

@@ -268,7 +268,7 @@ namespace Tnb.WarehouseMgr
}
/// <summary>
/// 二楼机械手解绑定
///
/// </summary>
/// <param name="input"></param>
/// <returns></returns>

View File

@@ -0,0 +1,170 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JNPF.Common.Core.Manager;
using JNPF.Common.Filter;
using JNPF.EventBus;
using JNPF.Systems.Interfaces.System;
using JNPF.VisualDev;
using JNPF.VisualDev.Entitys.Dto.VisualDevModelData;
using JNPF.VisualDev.Interfaces;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using SqlSugar;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Attributes;
using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Interfaces;
using JNPF.Common.Dtos.VisualDev;
using JNPF.Common.Extension;
using JNPF.Common.Security;
using JNPF.FriendlyException;
using JNPF.VisualDev.Entitys;
using Microsoft.AspNetCore.Authorization;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto;
using Tnb.WarehouseMgr.Entities.Enums;
using JNPF.Common.Enums;
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
namespace Tnb.WarehouseMgr
{
/// <summary>
/// 原材料转库单
/// </summary>
[OverideVisualDev(ModuleConsts.MODULE_WMSMATERIALTRANSFER_ID)]
[ServiceModule(BizTypeId)]
public class WmsMaterialTransferService : BaseWareHouseService
{
private const string BizTypeId = "";
private readonly ISqlSugarClient _db;
private readonly IRunService _runService;
private readonly IVisualDevService _visualDevService;
private readonly IWareHouseService _wareHouseService;
private readonly IBillRullService _billRullService;
private readonly IUserManager _userManager;
public WmsMaterialTransferService(
ISqlSugarRepository<WmsCarryH> repository,
IRunService runService,
IVisualDevService visualDevService,
IWareHouseService wareHouseService,
IUserManager userManager,
IBillRullService billRullService,
IEventPublisher eventPublisher)
{
_db = repository.AsSugarClient();
_runService = runService;
_visualDevService = visualDevService;
_wareHouseService = wareHouseService;
_userManager = userManager;
_billRullService = billRullService;
//OverideFuncs.GetListAsync = GetList;
}
[NonAction]
private async Task<dynamic> GetList(VisualDevModelListQueryInput input)
{
try
{
SqlSugarPagedList<WmsMaterialTransfer> result = await _db.Queryable<WmsMaterialTransfer>()
.ToPagedListAsync(input.currentPage, input.pageSize);
var _data = PageResult<WmsMaterialTransfer>.SqlSugarPageResult(result);
var json = JsonConvert.SerializeObject(_data);
var data = JsonConvert.DeserializeObject<dynamic>(json);
JArray mainTable = data.list;
ISugarQueryable<WmsMaterialTransferD> wmsTransferInstockDs = _db.Queryable<WmsMaterialTransferD>().Where(r => mainTable.Select(r => r["id"].ToString()).ToList().Contains(r.bill_id));
foreach (JObject wmsTransferInstockH in mainTable)
{
// todo 改tablefield105
wmsTransferInstockH["tablefield105"] = JArray.Parse(JsonConvert.SerializeObject(wmsTransferInstockDs.Where(r => r.bill_id == wmsTransferInstockH["id"].ToString()).ToList()));
}
return data;
}
catch (Exception ex)
{
return Task.FromResult(ex);
}
}
/// <summary>
/// 下发
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="AppFriendlyException"></exception>
[HttpPost, NonUnify, AllowAnonymous]
public async Task<Tnb.WarehouseMgr.Entities.Dto.Outputs.Result> Distribute(MaterialTransferDistributeInput input)
{
try
{
//if (input.qty <= 0)
//{
// throw new AppFriendlyException("数量必须大于0", 500);
//}
if (string.IsNullOrEmpty(input.source_id))
{
throw new AppFriendlyException("来源单据id不可为空", 500);
}
WmsMaterialTransferD wmsMaterialTransferD = await _db.Queryable<WmsMaterialTransferD>().FirstAsync(it => it.id == input.source_id);
await s_taskExecuteSemaphore.WaitAsync();
await _db.Ado.BeginTranAsync();
//入库取终点 //出库起点
OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_YCL_ID, material_id = wmsMaterialTransferD.material_id, code_batch = wmsMaterialTransferD.code_batch, Size = 1 };
List<WmsCarryH> items = await _wareHouseService.OutStockStrategy(inStockStrategyInput);
if (items.Count == 0)
{
throw new AppFriendlyException($@"没有可以出库的载具", 500);
}
WmsCarryCode wmsCarryCode = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == items[0].id).FirstAsync();
BasLocation startLocation = await _db.Queryable<BasLocation>().Where(r => r.location_code == items[0].location_code).FirstAsync();
// 根据三工位任务数平均分配任务
BasLocation endLocation = await _db.Queryable<BasLocation>().Where(r => _wareHouseService.GetFloor1SGWOutstockLocation().Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
CommonCreatePretaskInput commonCreatePretaskInput = new CommonCreatePretaskInput();
commonCreatePretaskInput.startlocation_id = startLocation.id;
commonCreatePretaskInput.endlocation_id = endLocation.id;
commonCreatePretaskInput.task_type = WmsWareHouseConst.WMS_PRETASK_OUTSTOCK_TYPE_ID;
commonCreatePretaskInput.biz_type = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
commonCreatePretaskInput.require_id = input.source_id;
Tnb.WarehouseMgr.Entities.Dto.Outputs.Result res = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput);
if (res.code == HttpStatusCode.OK)
{
// 更新子表已下发数量
await _db.Updateable<WmsMaterialTransferD>().SetColumns(r => r.yxfqty == r.yxfqty + wmsCarryCode.codeqty).Where(r => r.id == input.source_id).ExecuteCommandAsync();
await _db.Ado.CommitTranAsync();
}
else
{
throw new AppFriendlyException($@"生成预任务失败", 500);
}
}
catch (Exception ex)
{
await _db.Ado.RollbackTranAsync();
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
}
finally
{
_ = s_taskExecuteSemaphore.Release();
await InvokeGenPretaskExcute();
}
return await ToApiResult(HttpStatusCode.OK, "成功");
}
}
}

View File

@@ -15,6 +15,7 @@ using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Consts;
using Tnb.WarehouseMgr.Entities.Dto;
using Tnb.WarehouseMgr.Entities.Dto.Inputs;
using Tnb.WarehouseMgr.Entities.Entity;
using Tnb.WarehouseMgr.Entities.Enums;
using Tnb.WarehouseMgr.Interfaces;
@@ -33,13 +34,16 @@ namespace Tnb.WarehouseMgr
private readonly IUserManager _userManager;
private readonly IBillRullService _billRullService;
private readonly IWareHouseService _wareHouseService;
private readonly IWmsCarryBindService _wmsCarryBindService;
public WmsPDACarryBindService(
ISqlSugarRepository<WmsCarryH> repository,
IRunService runService,
IVisualDevService visualDevService,
IUserManager userManager,
IWareHouseService wareHouseService,
IBillRullService billRullService)
IBillRullService billRullService,
IWmsCarryBindService wmsCarryBindService)
{
_db = repository.AsSugarClient();
_runService = runService;
@@ -47,6 +51,7 @@ namespace Tnb.WarehouseMgr
_userManager = userManager;
_billRullService = billRullService;
_wareHouseService = wareHouseService;
_wmsCarryBindService = wmsCarryBindService;
OverideFuncs.CreateAsync = PDACarryBind;
}
@@ -365,10 +370,10 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException("起点id不可为空", 500);
}
if (!_wareHouseService.GetFloor1OutstockLocation().Contains(input.location_id))
{
throw new AppFriendlyException("非一楼出库库位不允许通过此功能解锁", 500);
}
//if (!_wareHouseService.GetFloor1OutstockLocation().Contains(input.location_id))
//{
// throw new AppFriendlyException("非一楼出库库位不允许通过此功能解锁", 500);
//}
await _db.Ado.BeginTranAsync();
try
@@ -384,6 +389,11 @@ namespace Tnb.WarehouseMgr
is_lock = 0
}).Where(r => r.location_id == input.location_id).ExecuteCommandAsync();
WmsCarryH wmsCarryH = _db.Queryable<WmsCarryH>().Where(r => r.location_id == input.location_id).First();
CarryCodeUnbindInput carryCodeUnbindInput = new CarryCodeUnbindInput();
carryCodeUnbindInput.carry_id = wmsCarryH.id;
await _wmsCarryBindService.CarryCodeUnbind(carryCodeUnbindInput);
await _db.Ado.CommitTranAsync();
}
catch (Exception ex)

View File

@@ -2,8 +2,8 @@
"ConnectionStrings": {
"ConfigId": "default",
"DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite;
//"Host": "192.168.11.109",
"Host": "127.0.0.1",
"Host": "192.168.11.109",
//"Host": "127.0.0.1",
"Port": "5432",
//"DBName": "tianyi_db",
//"UserName": "postgres",