diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CarryBarCodeInput.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CarryBarCodeInput.cs new file mode 100644 index 00000000..667cc688 --- /dev/null +++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Dto/Inputs/CarryBarCodeInput.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tnb.WarehouseMgr.Entities.Dto.Inputs +{ + public class CarryBarCodeInput + { + /// + /// 打印条码集合 + /// + public List barCodes { get; set; } + /// + /// 打印份数 + /// + public int copies { get; set; } = 2; + } +} diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 2154f966..a51c8936 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -213,9 +213,10 @@ namespace Tnb.WarehouseMgr /// 条码打印 /// /// 条码 + /// 打印份数 /// [NonAction] - protected void BarCodePrint(List barCodes) + protected void BarCodePrint(List barCodes,int copies) { TaskCompletionSource tcs = new(); // open port. @@ -308,18 +309,21 @@ namespace Tnb.WarehouseMgr foreach (string code in barCodes) { - //print text, true type text. - _ = PPLBUtility.B_Prn_Text(200, 50, 0, 2, 2, 2, 'N', code); - //barcode. - _ = PPLBUtility.B_Prn_Barcode(50, 100, 0, "1", 3, 5, 70, 'B', code);//have a counter - // output. - _ = PPLBUtility.B_Print_Out(1);// copy 2. + for (int i = 0; i < copies; i++) + { + //print text, true type text. + _ = PPLBUtility.B_Prn_Text(150, 50, 0, 2, 2, 2, 'N', code); + //barcode. + _ = PPLBUtility.B_Prn_Barcode(50, 100, 0, "1", 3, 5, 70, 'N', code);//have a counter + // output. + _ = PPLBUtility.B_Print_Out(1);// copy 2. + } } } catch (Exception ex) { tcs.SetException(ex); - JNPF.Logging.Log.Error("条码打印时出现错误", ex); + Logger.Error("条码打印时出现错误", ex); } finally { diff --git a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs index 86a60422..d1e943df 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/DeviceProviderService.cs @@ -307,13 +307,15 @@ namespace Tnb.WarehouseMgr [HttpPost, NonUnify, AllowAnonymous] public async Task TaskCallback(TaskCallBackInput input) { - Log.Information($"接收参数:{JsonConvert.SerializeObject(input)}"); + Log.Information($"任务状态上报->接收参数:{JsonConvert.SerializeObject(input)}"); try { List disTasks = await _db.Queryable().Where(it => it.bill_code.Contains(input.taskCode)).ToListAsync(); if (input.action == "LOAD") { + Logger.Information("----------Load Begin----------"); + TaskExecuteAfterUpInput taskExecuteAfterUpInput = new() { disTaskIds = disTasks.Select(x => x.id).ToList() @@ -333,9 +335,13 @@ namespace Tnb.WarehouseMgr } } + Logger.Information("----------Load End----------"); + } else if (input.action == "UNLOAD") { + Logger.Information("----------UnLoad Begin----------"); + TaskCompleUpInput taskCompleUpInput = new() { disTaskIds = disTasks.Select(x => x.id).ToList() @@ -343,6 +349,7 @@ namespace Tnb.WarehouseMgr Logger.Information($"taskCompleUpInput json parameter:{JsonConvert.SerializeObject(taskCompleUpInput)}"); await _wareHouseService.TaskComplate(taskCompleUpInput); + Logger.Information("----------UnLoad end----------"); } } catch (Exception ex) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs b/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs index 7a54fecc..9aefd605 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/ElevatorControlService.cs @@ -39,7 +39,8 @@ namespace Tnb.WarehouseMgr public async Task CallLiftTest(string devName, int floor) { bool isSuccefuly = false; - (int sysStatus, int runStatus, _, int doorStatus, int agvStatus) = await GetElevatorStatus(devName, CancellationToken.None); + var tags = new[] { "SysStatus", "RunStatus", "FloorNo", "DoorStatus", "AGVStatus" }; + (int sysStatus, int runStatus, _, int doorStatus, int agvStatus) = await GetElevatorStatus(devName, tags, CancellationToken.None); //判断当前楼层是否是放货楼层,如不是则呼叫电梯到当前楼层 if (sysStatus.ToEnum() == EnumSysStatus.正常状态 && runStatus.ToEnum() == EnumRunStatus.停梯 && agvStatus.ToEnum() != EnumAgvStatus.AGV运行状态) @@ -364,7 +365,7 @@ namespace Tnb.WarehouseMgr { dynamic result = await WriteTagAsync(devName, ElevatorConsts.AGVControl, 1); JObject jo = JObject.Parse(result); - if (jo != null && jo.Value("Result").Equals("Ok", StringComparison.OrdinalIgnoreCase)) + if (jo != null && jo!.Value("Result")!.Equals("Ok", StringComparison.OrdinalIgnoreCase)) { isInAgvStatus = true; } @@ -402,10 +403,4 @@ namespace Tnb.WarehouseMgr return isSuccefuly; } } - - public class ElevatorData - { - public string? name { get; set; } - public string? value { get; set; } - } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs index 6718c9fd..8288169b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs @@ -236,8 +236,9 @@ namespace Tnb.WarehouseMgr [HttpPost, AllowAnonymous] public async Task BatchAdd(CarryBatchAddInput input) { - int i = 0, r = 0, num = 0; - var nonZeroPattern = @"[1-9]+"; + int r = 0, num = 0; + //var nonZeroPattern = @"[1-9]+"; + var nonZeroPattern = @"\d+"; var code = input.carry_code.Match(@"\D+"); if (input.carry_code.IsMatch(@"\d+")) { @@ -246,26 +247,33 @@ namespace Tnb.WarehouseMgr var carrys = await _db.Queryable().Where(it => it.carry_code.Contains(code)).ToListAsync(); if (carrys?.Count < 1) { - i = Math.Max(num, 1); + num = Math.Max(num, 1); } else { var lastCarry = carrys?.OrderByDescending(o => o.carry_code).FirstOrDefault() ?? default; num = lastCarry?.carry_code.Match(nonZeroPattern).ParseToInt() ?? -1; - i = num + 1; + num = num + 1; } - var batchCarrys = new List(); - for (; i <= input.quantity; i++) + var batchCarrys = new List(input.quantity); + + for (var i = 1; i <= input.quantity; i++) { + if (i != 1) + { + num += 1; + } var sb = new StringBuilder(); sb.Append(code); - sb.Append(i.ToString().PadLeft(4, '0')); + sb.Append(num.ToString().PadLeft(5, '0')); var carryCode = sb.ToString(); WmsCarryH carry = input.Adapt(); carry.id = SnowflakeIdHelper.NextId(); carry.carry_name = carryCode; carry.carry_code = carryCode; + carry.is_check = 1; + carry.status = 1; carry.create_id = "25398501929509"; carry.create_time = DateTime.Now; batchCarrys.Add(carry); @@ -280,10 +288,11 @@ namespace Tnb.WarehouseMgr /// /// [HttpPost] - public new void BarCodePrint(List barCodes) + public new void BarCodePrint(CarryBarCodeInput input) { - base.BarCodePrint(barCodes); - + if (input.barCodes == null || input.barCodes.Count < 1) throw new ArgumentNullException(nameof(input.barCodes)); + input.barCodes = input.barCodes.OrderBy(o => o).ToList(); + base.BarCodePrint(input.barCodes, input.copies); } } } \ No newline at end of file diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsFeedingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsFeedingService.cs index 098f8871..e773e92b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsFeedingService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsFeedingService.cs @@ -46,7 +46,7 @@ namespace Tnb.WarehouseMgr .Mapper(it => it.material_name = (it.material_id != null && dicMaterial.ContainsKey(it.material_id)) ? dicMaterial[it.material_id].ToString() : "") .ToListAsync(); - return items ?? Enumerable.Empty(); + return items ?? Enumerable.Empty(); } } } diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseAndSaleCommonService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseAndSaleCommonService.cs index eaef030d..a558483d 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseAndSaleCommonService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPurchaseAndSaleCommonService.cs @@ -47,8 +47,8 @@ namespace Tnb.WarehouseMgr if (input == null) throw new ArgumentNullException("input"); if (input.details == null) throw new ArgumentNullException(nameof(input.details)); - var materialIds = input.details.Select(x => x.material_id).ToList(); - var purchaseDs = await _db.Queryable().Where(it => materialIds.Contains(it.material_id)).ToListAsync(); + var ids = input.details.Select(x => x.id).ToList(); + var purchaseDs = await _db.Queryable().Where(it => ids.Contains(it.id)).ToListAsync(); if (purchaseDs?.Count > 0) { @@ -56,7 +56,7 @@ namespace Tnb.WarehouseMgr foreach (var pd in purchaseDs) { - var pdInput = input.details.Find(x => x.material_id == pd.material_id); + var pdInput = input.details.Find(x => x.id == pd.id); if (pdInput != null) { pd.purchase_prqty += pdInput.purchase_arriveqty; @@ -112,7 +112,7 @@ namespace Tnb.WarehouseMgr if (s_materialMap.Count == 0) { //物料+规格型号+批次+箱号 - //s_materialMap = await _db.Queryable().ToDictionaryAsync(x => $"{}{}{}{}", x => x.name); + ////s_materialMap = await _db.Queryable().ToDictionaryAsync(x => x.id, x => x.name); } var list = await _db.Queryable().Where(it => it.bill_id == pkId) .Mapper(it => it.material_name = s_materialMap.ContainsKey(it.material_id) ? s_materialMap[it.material_id]?.ToString() ?? "" : "") diff --git a/apihost/Tnb.API.Entry/Startup.cs b/apihost/Tnb.API.Entry/Startup.cs index 2196fe41..049b470c 100644 --- a/apihost/Tnb.API.Entry/Startup.cs +++ b/apihost/Tnb.API.Entry/Startup.cs @@ -59,7 +59,7 @@ public class Startup : AppStartup services.AddHostedService(); //services.AddHostedService(); - + }