From cb02100e89daab0e472a9d1f6c579516f1e34bb7 Mon Sep 17 00:00:00 2001 From: hehaibing-1996 Date: Wed, 16 Apr 2025 20:39:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=90=E5=93=81=E5=BA=93=E5=BA=93=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WCS.WebApi/Controllers/HomeController.cs | 100 ++++++++++++++++++++++- 1 file changed, 97 insertions(+), 3 deletions(-) diff --git a/WCS.WebApi/Controllers/HomeController.cs b/WCS.WebApi/Controllers/HomeController.cs index 3994b82..64016e1 100644 --- a/WCS.WebApi/Controllers/HomeController.cs +++ b/WCS.WebApi/Controllers/HomeController.cs @@ -305,7 +305,7 @@ namespace WCS.WebApi.Controllers { //获取液晶的货架 var shelfInfos = DbHelp.db.Queryable() - .Where(t => t.ShelfTypeName.Contains("液晶")) + .Where(t => t.ShelfTypeName.Contains("液晶") && !t.ShelfCode.Contains("CP")) .ToList(); var moduleInfos = new List(); @@ -382,6 +382,100 @@ namespace WCS.WebApi.Controllers } + [Route("generateCPModuleInfo")] + [HttpPost(Name = "generateCPModuleInfo")] + public async Task generateCPModuleInfo(RequestBase request) + { + try + { + //获取液晶的货架 + var shelfInfos = DbHelp.db.Queryable() + .Where(t => t.ShelfTypeName.Contains("液晶") && t.ShelfCode.Contains("CP")) + .ToList(); + var moduleInfos = new List(); + + int boardId = 1; + var lastClientCode = string.Empty; + + foreach (var shelfInfo in shelfInfos) + { + if (lastClientCode != shelfInfo.ClientIp) + { + lastClientCode = shelfInfo.ClientIp; + boardId = 1; + } + + //先拆分shelfCode + var input = shelfInfo.ShelfCode.Split("-")[1]; + List numbers = new List(); + for (int i = 0; i < input.Length; i += 2) + { + // 提取两位字符 + string numberStr = input.Substring(i, 2); + // 转换为整数并添加到列表中 + int number = int.Parse(numberStr); + numbers.Add(number); + } + // 将列表转换为数组(如果需要) + int[] shelfNumbers = numbers.ToArray(); + foreach (var shelfNumber in shelfNumbers) + { + int floorNumber = 1; + int moduleNumber = 0; + while (floorNumber <= 4) + { + moduleNumber++; + if (moduleNumber > 7) + { + moduleNumber = 1; + floorNumber++; + } + if (floorNumber == 5) + { + continue; + } + var moduleCode = $"CP-{shelfNumber}-L{floorNumber}-{moduleNumber}"; + var module = new ModuleInfo() + { + ModuleCode = moduleCode, + ShelfTypeId = 3, + ShelfId = shelfInfo.Id, + ShelfCode = shelfInfo.ShelfCode, + BoardId = boardId++, + LightCount = 1, + CleintIp = shelfInfo.ClientIp, + GroupName = shelfInfo.GroupName, + R = floorNumber.ToString(), + C = moduleNumber.ToString(), + IsEnable = true, + }; + moduleInfos.Add(module); + } + + } + } + + DbHelp.db.Insertable(moduleInfos).ExecuteCommand(); + + return new ResponseBase() + { + Code = 200, + Message = "生成成功!", + Data = null + }; + } + catch (Exception ex) + { + return new ResponseBase() + { + Code = 300, + Message = "生成失败" + ex.Message, + Data = null + }; + } + } + + /// /// 进入调试模式 /// @@ -606,7 +700,7 @@ namespace WCS.WebApi.Controllers } var boardId = request.StartId; - for (;boardId <= 224;boardId++) + for (; boardId <= 224; boardId++) { var boardIdData = BitConverter.GetBytes(unchecked((short)boardId)); // 检查是否需要交换字节 @@ -617,7 +711,7 @@ namespace WCS.WebApi.Controllers boardIdData[0] = boardIdData[1]; boardIdData[1] = temp; } - + //发送入库亮灯 byte[] data1 = { 0x08, 0x00, 0x00, 0x07, 0xFF, 0xA1, 0x01, 0x02, 0x02, 0x0A, 0x00, 0x00, 0x00 }; data1[7] = boardIdData[0];