diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs index cb6c0fc4..21d327bf 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WMExitwarehouseController.cs @@ -42,7 +42,7 @@ namespace ZR.Admin.WebApi.Controllers.mes.wms /// /// 7 判断箱子是否存在成品库仓库里 /// - /// + /// /// [HttpGet("is_existed_warehouse")] public IActionResult IsExistedWarehouse(string originalCode = "") diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs index f71bebb7..12136ec7 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs @@ -38,7 +38,6 @@ namespace ZR.Admin.WebApi.Controllers return SUCCESS(response); } - /// /// 查询毛坯库存库存变动记录表详情 /// @@ -71,15 +70,22 @@ namespace ZR.Admin.WebApi.Controllers } /// - /// 1.增加库存 + /// 1.增加库存(入库) /// /// 库存id /// 毛坯号 /// 变动量 + /// 入库/出库时间 /// 备注 /// [HttpGet("add_inventory")] - public IActionResult AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string remark) + public IActionResult AddInventory( + string fkBlankInventoryId, + string blankNum, + int changeQuantity, + string remark, + DateTime? actionTime + ) { try { @@ -91,26 +97,39 @@ namespace ZR.Admin.WebApi.Controllers { return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!")); } - var response = _WmBlankRecordService.AddInventory(fkBlankInventoryId, blankNum, changeQuantity, HttpContext.GetName(), remark); + var response = _WmBlankRecordService.AddInventory( + fkBlankInventoryId, + blankNum, + changeQuantity, + HttpContext.GetName(), + remark, + actionTime + ); return SUCCESS(response); } catch (Exception ex) { return ToResponse(new ApiResult(500, ex.Message, "添加记录失败")); } - } /// - /// 2.减少库存 + /// 2.减少库存(出库) /// /// 库存id /// 毛坯号 /// 变动量 + /// 操作时间(出库时间) /// 备注 /// [HttpGet("delete_inventory")] - public IActionResult DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string remark) + public IActionResult DeleteInventory( + string fkBlankInventoryId, + string blankNum, + int changeQuantity, + string remark, + DateTime? actionTime + ) { try { @@ -122,16 +141,22 @@ namespace ZR.Admin.WebApi.Controllers { return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!")); } - var response = _WmBlankRecordService.DeleteInventory(fkBlankInventoryId, blankNum, changeQuantity, HttpContext.GetName(), remark); + var response = _WmBlankRecordService.DeleteInventory( + fkBlankInventoryId, + blankNum, + changeQuantity, + HttpContext.GetName(), + remark, + actionTime + ); return SUCCESS(response); } catch (Exception ex) { return ToResponse(new ApiResult(500, ex.Message, "添加记录失败")); } - - } + /// /// 更新毛坯库存库存变动记录表 /// @@ -157,15 +182,14 @@ namespace ZR.Admin.WebApi.Controllers public IActionResult DeleteWmBlankRecord(string ids) { string[] idsArr = ids.Split(','); - if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + if (idsArr.Length <= 0) + { + return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); + } var response = _WmBlankRecordService.Delete(idsArr); return ToResponse(response); } - - - - } -} \ No newline at end of file +} diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsBatchSearchController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsBatchSearchController.cs index 20cea4b6..34ed2a1c 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsBatchSearchController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsBatchSearchController.cs @@ -28,7 +28,7 @@ namespace ZR.Admin.WebApi.Controllers /// /// [HttpPost("getBatchTreeTableData")] - [Log(Title = "根据查询条件聚合批量查询出库数据,并生成树列表数据", BusinessType = BusinessType.QUERY)] + // [Log(Title = "根据查询条件聚合批量查询出库数据,并生成树列表数据", BusinessType = BusinessType.QUERY)] public IActionResult GetBatchTreeTableData([FromBody] WmGoodsBatchSearchDto parm) { if (parm is null) diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsNowProductionController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsNowProductionController.cs index 97c28fed..41d8d7cb 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsNowProductionController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsNowProductionController.cs @@ -111,7 +111,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpPost] [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:add")] - [Log(Title = "成品库当前货物表", BusinessType = BusinessType.INSERT)] + [Log(Title = "添加成品库当前货物表", BusinessType = BusinessType.INSERT)] public IActionResult AddWmGoodsNowProduction([FromBody] WmGoodsNowProductionDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); @@ -127,7 +127,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpPut] [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:edit")] - [Log(Title = "成品库当前货物表", BusinessType = BusinessType.UPDATE)] + [Log(Title = "更新成品库当前货物表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateWmGoodsNowProduction([FromBody] WmGoodsNowProductionDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); @@ -142,7 +142,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:delete")] - [Log(Title = "成品库当前货物表", BusinessType = BusinessType.DELETE)] + [Log(Title = "删除成品库当前货物表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteWmGoodsNowProduction(string ids) { long[] idsArr = Tools.SpitLongArrary(ids); @@ -160,6 +160,7 @@ namespace ZR.Admin.WebApi.Controllers /// /// [HttpGet("modifyInventoryQuantity")] + [Log(Title = "修改库存数量", BusinessType = BusinessType.UPDATE)] public IActionResult ModifyInventoryQuantity(string id, int stack_num) { if (string.IsNullOrEmpty(id)) @@ -170,6 +171,21 @@ namespace ZR.Admin.WebApi.Controllers return SUCCESS(response); } + /// + /// 批量修改成品库仓库编码 + /// + /// + [HttpPost("batchUpdateGoodsNowProductionLocationCode")] + [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsnowproduction:edit")] + [Log(Title = "批量修改成品库仓库编码(移入呆滞品)", BusinessType = BusinessType.UPDATE)] + public IActionResult BatchUpdateGoodsNowProductionLocationCode([FromBody] BatchUpdateLocationCodeDto parm) + { + parm.UpdatedBy = HttpContext.GetName(); + parm.UpdatedTime = DateTime.Now; + var response = _WmGoodsNowProductionService.BatchUpdateLocationCode(parm); + return SUCCESS(response); + } + } } \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs index 6503a15b..8fb3076b 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmGoodsOutProductionController.cs @@ -62,7 +62,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpPost] [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsoutproduction:add")] - [Log(Title = "出库货物记录表", BusinessType = BusinessType.INSERT)] + [Log(Title = "添加出库货物记录表", BusinessType = BusinessType.INSERT)] public IActionResult AddWmGoodsOutProduction([FromBody] WmGoodsOutProductionDto parm) { try @@ -86,7 +86,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpPut] [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsoutproduction:edit")] - [Log(Title = "出库货物记录表", BusinessType = BusinessType.UPDATE)] + [Log(Title = "更新出库货物记录表", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateWmGoodsOutProduction([FromBody] WmGoodsOutProductionDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); @@ -101,7 +101,7 @@ namespace ZR.Admin.WebApi.Controllers /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "wmsManagement:wmgoodsoutproduction:delete")] - [Log(Title = "出库货物记录表", BusinessType = BusinessType.DELETE)] + [Log(Title = "删除出库货物记录表", BusinessType = BusinessType.DELETE)] public IActionResult DeleteWmGoodsOutProduction(string ids) { long[] idsArr = Tools.SpitLongArrary(ids); diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs index 3080d0cf..9a2514ff 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmMaterialController.cs @@ -108,7 +108,6 @@ namespace ZR.Admin.WebApi.Controllers [HttpGet("getInfoByPatchCode")] - [Log(Title = "物料记录表", BusinessType = BusinessType.QUERY)] public IActionResult GetInfoByPatchCode(string patchCode) { if (string.IsNullOrEmpty(patchCode)) diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs index 4bf87f5a..14ab2c85 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs @@ -248,7 +248,7 @@ namespace ZR.Admin.WebApi.Controllers /// /// [HttpPost("doMaterialOut")] - [Log(Title = "出库", BusinessType = BusinessType.INSERT)] + [Log(Title = "成品出库", BusinessType = BusinessType.INSERT)] public IActionResult DoMaterialOut([FromBody] WmDoMaterialOut_Dto doMaterialOut) { if (doMaterialOut == null || doMaterialOut.ShipmentNum == null) diff --git a/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs b/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs index d5f1462f..d0833acb 100644 --- a/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs +++ b/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs @@ -60,6 +60,8 @@ namespace ZR.Model.MES.wms.Dto public int Status { get; set; } + public DateTime? ActionTime { get; set; } + public string Remark { get; set; } public string CreatedBy { get; set; } diff --git a/ZR.Model/MES/wms/Dto/WmGoodsNowProductionDto.cs b/ZR.Model/MES/wms/Dto/WmGoodsNowProductionDto.cs index a1e9d5d1..57a2cdc4 100644 --- a/ZR.Model/MES/wms/Dto/WmGoodsNowProductionDto.cs +++ b/ZR.Model/MES/wms/Dto/WmGoodsNowProductionDto.cs @@ -131,4 +131,18 @@ namespace ZR.Model.MES.wms.Dto /// public object Value { get; set; } } + + /// + /// 批量修改成品库库存 + /// + public class BatchUpdateLocationCodeDto + { + public List Ids { get; set; } + + public string LocationCode { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + } } diff --git a/ZR.Model/MES/wms/WmBlankRecord.cs b/ZR.Model/MES/wms/WmBlankRecord.cs index d8ce2c62..af8d27bc 100644 --- a/ZR.Model/MES/wms/WmBlankRecord.cs +++ b/ZR.Model/MES/wms/WmBlankRecord.cs @@ -31,6 +31,13 @@ namespace ZR.Model.MES.wms [SugarColumn(ColumnName = "change_quantity")] public int? ChangeQuantity { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "action_time")] + public DateTime? ActionTime { get; set; } + /// /// 类别 /// diff --git a/ZR.Service/mes/mm/MaterialInputService.cs b/ZR.Service/mes/mm/MaterialInputService.cs index d198d1a6..01f4bd2f 100644 --- a/ZR.Service/mes/mm/MaterialInputService.cs +++ b/ZR.Service/mes/mm/MaterialInputService.cs @@ -1,10 +1,11 @@ -using Infrastructure; -using Infrastructure.Attribute; -using SqlSugar; -using System; +using System; using System.Globalization; using System.Linq; using System.Text.Json; +using Infrastructure; +using Infrastructure.Attribute; +using JinianNet.JNTemplate; +using SqlSugar; using ZR.Model.MES.mm; using ZR.Model.MES.mm.Dto; using ZR.Model.MES.pro; @@ -21,44 +22,46 @@ namespace ZR.Service.mes.mm public MaterialInputService() { logger = NLog.LogManager.GetCurrentClassLogger(); - } + /// /// 获取AGV上料起点 /// /// public string[] Getstart_AGV_points() { - List positions = Context.Queryable() + List positions = Context + .Queryable() .Where(it => it.AreaCode == 2) .Where(it => it.Type == 0) .ToList(); string[] cors = new string[positions.Count]; - for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + for (int i = 0; i < positions.Count; i++) + cors[i] = positions[i].Coordinate.ToString(); return cors; } - /// /// 获取AGV上料终点 /// /// public string[] Getend_AGV_points() { - List positions = Context.Queryable() - .Where(it => it.AreaCode == 2) - .Where(it => it.Type == 1) - .ToList(); + List positions = Context + .Queryable() + .Where(it => it.AreaCode == 2) + .Where(it => it.Type == 1) + .ToList(); string[] cors = new string[positions.Count]; - for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + for (int i = 0; i < positions.Count; i++) + cors[i] = positions[i].Coordinate.ToString(); return cors; } - /// /// 获取工单列表 /// @@ -66,27 +69,40 @@ namespace ZR.Service.mes.mm /// public (List, int) Getworkorderlist(WorkorderqueryDto query) { - - DateTime datetimespan = new DateTime(query.datetimespan.Year, query.datetimespan.Month, query.datetimespan.Day, 0, 0, 0); + DateTime datetimespan = new DateTime( + query.datetimespan.Year, + query.datetimespan.Month, + query.datetimespan.Day, + 0, + 0, + 0 + ); // 获取年份和周数 Calendar calendar = new GregorianCalendar(); int year = calendar.GetYear(datetimespan); - int week = calendar.GetWeekOfYear(datetimespan, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday); + int week = calendar.GetWeekOfYear( + datetimespan, + CalendarWeekRule.FirstFourDayWeek, + DayOfWeek.Sunday + ); // 获取这一周中的第几天 DayOfWeek dayOfWeek = datetimespan.DayOfWeek; int dayOfWeekNumber = (int)dayOfWeek; // 将 DayOfWeek 枚举转换为从 1 开始的数字 - Console.WriteLine("<-获取工单列表-> " + year + "年" + week + "周" + dayOfWeekNumber + "日"); + Console.WriteLine( + "<-获取工单列表-> " + year + "年" + week + "周" + dayOfWeekNumber + "日" + ); logger.Error("<-获取工单列表-> " + year + "年" + week + "周" + dayOfWeekNumber + "日"); - //todo 已经和正在配料的工单号和毛坯号不能变?????? + //todo 已经和正在配料的工单号和毛坯号不能变?????? int total = 0; - List WorkorderList = Context.Queryable() - .Where(it => it.Year == year) - .Where(it => it.Week == week) - .Where(it => it.Date == dayOfWeekNumber) - .Where(it => it.Remark3 == "是" || it.Remark1 == "调试") - .ToList(); + List WorkorderList = Context + .Queryable() + .Where(it => it.Year == year) + .Where(it => it.Week == week) + .Where(it => it.Date == dayOfWeekNumber) + .Where(it => it.Remark3 == "是" || it.Remark1 == "调试") + .ToList(); // .ToPageList(query.pageNum??1, query.pageSize??10, ref total); foreach (ProWorkorder_v2 workorder in WorkorderList) @@ -96,7 +112,8 @@ namespace ZR.Service.mes.mm workorder.ClientWorkorder = "调试:" + workorder.Id; } // 配料任务 - bool isExist = Context.Queryable() + bool isExist = Context + .Queryable() .Where(it => it.FkWorkorder == workorder.ClientWorkorder) .Where(it => it.FkBlanknumber == workorder.BlankNumber) .Any(); @@ -115,17 +132,17 @@ namespace ZR.Service.mes.mm else { // todo 有个漏洞 如果计划单 修改数量 remian 就不对 - var ingredient = Context.Queryable() - .Where(it => it.FkWorkorder == workorder.ClientWorkorder) - .Where(it => it.FkBlanknumber == workorder.BlankNumber) - .First(); + var ingredient = Context + .Queryable() + .Where(it => it.FkWorkorder == workorder.ClientWorkorder) + .Where(it => it.FkBlanknumber == workorder.BlankNumber) + .First(); if (ingredient != null) { - workorder.PreviousNumber = workorder.PreviousNumber - (ingredient.Previous_numbered ?? 0); + workorder.PreviousNumber = + workorder.PreviousNumber - (ingredient.Previous_numbered ?? 0); } - - } } WorkorderList.RemoveAll(num => num.PreviousNumber <= 0); @@ -157,29 +174,28 @@ namespace ZR.Service.mes.mm if (remian == 0) { //更改配料进度为完成 - int result = Context.Updateable() - .Where(it => it.FkWorkorder == item.workorder) - .Where(it => it.FkBlanknumber == item.blanknumber) - .SetColumns(it => it.Previous_numbered == item.previousNumbered) + int result = Context + .Updateable() + .Where(it => it.FkWorkorder == item.workorder) + .Where(it => it.FkBlanknumber == item.blanknumber) + .SetColumns(it => it.Previous_numbered == item.previousNumbered) .SetColumns(it => it.Isingredient == 1) .SetColumns(it => it.UpdatedTime == DateTime.Now) - .ExecuteCommand(); - + .ExecuteCommand(); } else { //更改配料进度 修改配料进度 - Context.Updateable() - .Where(it => it.FkWorkorder == item.workorder) - .Where(it => it.FkBlanknumber == item.blanknumber) - .SetColumns(it => it.Previous_numbered == item.previousNumbered) - .SetColumns(it => it.UpdatedTime == DateTime.Now) - .SetColumns(it => it.Isingredient == 0) - .ExecuteCommand(); - + Context + .Updateable() + .Where(it => it.FkWorkorder == item.workorder) + .Where(it => it.FkBlanknumber == item.blanknumber) + .SetColumns(it => it.Previous_numbered == item.previousNumbered) + .SetColumns(it => it.UpdatedTime == DateTime.Now) + .SetColumns(it => it.Isingredient == 0) + .ExecuteCommand(); } - MmIngredientTask ingredientTask = new MmIngredientTask(); ingredientTask.AgvPosition = task.agv_position; ingredientTask.TaskId = taskid.ToString(); @@ -191,17 +207,12 @@ namespace ZR.Service.mes.mm ingredientTask.CreatedBy = name; ingredientTask.CreatedTime = DateTime.Now; - ingredientTasks.Add(ingredientTask); - } return Context.Insertable(ingredientTasks).ExecuteCommand(); - - } - /// /// 获取配料任务 /// @@ -213,19 +224,18 @@ namespace ZR.Service.mes.mm DateTime startOfDay = queryParams.datetimespan.Date; // 获取当天的结束时间 DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1); - return Context.Queryable() - .Where(it => it.CreatedTime > startOfDay && it.CreatedTime < endOfDay) - .Where(it => it.Isfinal == 0) - .GroupBy(it => it.TaskId) - .Select(it => new MmIngredientTask() - { - TaskId = it.TaskId, - AgvPosition = SqlFunc.AggregateMax(it.AgvPosition), - CreatedTime = SqlFunc.AggregateMax(it.CreatedTime) - }) - .ToList(); - - + return Context + .Queryable() + .Where(it => it.CreatedTime > startOfDay && it.CreatedTime < endOfDay) + .Where(it => it.Isfinal == 0) + .GroupBy(it => it.TaskId) + .Select(it => new MmIngredientTask() + { + TaskId = it.TaskId, + AgvPosition = SqlFunc.AggregateMax(it.AgvPosition), + CreatedTime = SqlFunc.AggregateMax(it.CreatedTime) + }) + .ToList(); } /// @@ -244,13 +254,13 @@ namespace ZR.Service.mes.mm /// public string[] Getfabgopoints() { - return Context.Queryable().Where(it => it.AreaCode == 3) - .Select(it => it.Coordinate).ToArray(); - + return Context + .Queryable() + .Where(it => it.AreaCode == 3) + .Select(it => it.Coordinate) + .ToArray(); } - - /// /// agv从仓库到车间 进料 /// @@ -262,7 +272,8 @@ namespace ZR.Service.mes.mm // Context.Updateable().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand(); // Context.Updateable().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand(); - string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/genAgvSchedulingTask"; + string url = + "https://192.168.60.1:443/rcms/services/rest/hikRpcService/genAgvSchedulingTask"; logger.Info(" 1.任务调度请求url " + url); AGVtask_third task = new AGVtask_third(); task.reqCode = SnowFlakeSingle.Instance.NextId().ToString(); @@ -274,23 +285,12 @@ namespace ZR.Service.mes.mm if (end_point == "R1" || start_point == "R1") { task.taskTyp = "KLC"; - } task.positionCodePath = new List { - new AGV_location_third() - { - positionCode=start_point, - type="00" - - }, - new AGV_location_third() - { - positionCode=end_point, - type="00" - - } + new AGV_location_third() { positionCode = start_point, type = "00" }, + new AGV_location_third() { positionCode = end_point, type = "00" } }; task.podDir = "0"; task.priority = "1"; @@ -302,10 +302,8 @@ namespace ZR.Service.mes.mm logger.Info(" 3.任务调度请求响应 " + response); return response; - } - /// /// 紧急终止AGV /// @@ -324,17 +322,13 @@ namespace ZR.Service.mes.mm logger.Info(" 2.紧急终止AGV请求数据 " + postData); - string response = HttpHelper.HttpPost(url, postData); logger.Info(" 3.紧急终止AGV响应数据 " + response); return response; - - } - /// /// 完成配料任务 /// 1.更改站点托盘 @@ -348,33 +342,63 @@ namespace ZR.Service.mes.mm { // Context.Updateable().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand(); // Context.Updateable().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand(); - result = Context.Updateable().Where(it => it.TaskId.Equals(taskId)).SetColumns(it => it.Isfinal == 1).ExecuteCommand(); - List tasks = Context.Queryable().Where(it => it.TaskId.Equals(taskId)).ToList(); + result = Context + .Updateable() + .Where(it => it.TaskId.Equals(taskId)) + .SetColumns(it => it.Isfinal == 1) + .ExecuteCommand(); + List tasks = Context + .Queryable() + .Where(it => it.TaskId.Equals(taskId)) + .ToList(); for (int i = 0; i < tasks.Count; i++) { if (!string.IsNullOrEmpty(tasks[i].Workorder)) { - Context.Updateable().Where(it => it.ClientWorkorder == tasks[i].Workorder).SetColumns(it => it.Status == 1).ExecuteCommand(); + Context + .Updateable() + .Where(it => it.ClientWorkorder == tasks[i].Workorder) + .SetColumns(it => it.Status == 1) + .ExecuteCommand(); } } //查询毛坯号 - List TO_blankList = Context.Queryable().Where(it => it.TaskId == taskId).ToList(); + List TO_blankList = Context + .Queryable() + .Where(it => it.TaskId == taskId) + .ToList(); foreach (var task in TO_blankList) { if (!string.IsNullOrEmpty(task.Blanknumber)) { + WmBlankInventory blankInventory = Context + .Queryable() + .Where(it => it.BlankNum == task.Blanknumber) + // 默认毛坯扣除 + .Where(it => it.Type == 1) + .Where(it => it.Status == 1) + .First(); + if (blankInventory == null) + { + continue; + } //1 扣除库存 - Context.Updateable().SetColumns(it => it.Quantity == it.Quantity - task.PreviousNumbered) - .Where(it => it.BlankNum == task.Blanknumber).ExecuteCommand(); + Context + .Updateable() + .SetColumns(it => it.Quantity == it.Quantity - task.PreviousNumbered) + .Where(it => it.Id == blankInventory.Id) + .ExecuteCommand(); //2 增加库存记录 WmBlankRecord res = new WmBlankRecord(); res.Id = SnowFlakeSingle.Instance.NextId().ToString(); - res.FkBlankInventoryId = task.Blanknumber; + res.FkBlankInventoryId = blankInventory.Id; + res.BlankNum = task.Blanknumber; res.ChangeQuantity = task.PreviousNumbered; res.Type = 3; res.Status = 1; - res.CreatedBy = "仓库人员"; + res.ActionTime = DateTime.Now; + res.CreatedBy = "PDA上料"; res.CreatedTime = DateTime.Now; //填写库存记录 @@ -383,27 +407,25 @@ namespace ZR.Service.mes.mm } }); - return result; } - /// /// 车间返程起点 /// /// public string[] Emptycarreturn_start() { - List positions = Context.Queryable() - .Where(it => it.AreaCode == 3) - - .ToList(); + List positions = Context + .Queryable() + .Where(it => it.AreaCode == 3) + .ToList(); string[] cors = new string[positions.Count]; - for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + for (int i = 0; i < positions.Count; i++) + cors[i] = positions[i].Coordinate.ToString(); return cors; - } /// @@ -412,17 +434,16 @@ namespace ZR.Service.mes.mm /// public string[] Emptycarreturn_end() { - List positions = Context.Queryable() - .Where(it => it.AreaCode == 2) - - .ToList(); + List positions = Context + .Queryable() + .Where(it => it.AreaCode == 2) + .ToList(); string[] cors = new string[positions.Count]; - for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + for (int i = 0; i < positions.Count; i++) + cors[i] = positions[i].Coordinate.ToString(); return cors; - } } } - diff --git a/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs b/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs index 53447178..06cda91c 100644 --- a/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs +++ b/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs @@ -1,3 +1,4 @@ +using System; using ZR.Model; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; @@ -16,9 +17,41 @@ namespace ZR.Service.mes.wms.IService WmBlankRecord AddWmBlankRecord(WmBlankRecord parm); int UpdateWmBlankRecord(WmBlankRecord parm); - - int AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark); - int DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark); - + /// + /// 入库 + /// + /// + /// + /// + /// + /// + /// + /// + int AddInventory( + string fkBlankInventoryId, + string blankNum, + int changeQuantity, + string username, + string remark, + DateTime? actionTime + ); + /// + /// 出库 + /// + /// + /// 毛坯号 + /// 操作数量 + /// 操作人 + /// 备注 + /// 操作时间 + /// + int DeleteInventory( + string fkBlankInventoryId, + string blankNum, + int changeQuantity, + string username, + string remark, + DateTime? actionTime + ); } } diff --git a/ZR.Service/mes/wms/IService/IWmGoodsNowProductionService.cs b/ZR.Service/mes/wms/IService/IWmGoodsNowProductionService.cs index 75fad20b..788d0d22 100644 --- a/ZR.Service/mes/wms/IService/IWmGoodsNowProductionService.cs +++ b/ZR.Service/mes/wms/IService/IWmGoodsNowProductionService.cs @@ -37,6 +37,14 @@ namespace ZR.Service.mes.wms.IService int UpdateWmGoodsNowProduction(WmGoodsNowProduction parm); + /// + /// 批量移库(批量转移进呆滞品库等使用) + /// + /// 箱主键列表 + /// 转入库存编号 + /// + int BatchUpdateLocationCode(BatchUpdateLocationCodeDto parm); + int ModifyInventoryQuantity(string id, int stack_num); PagedInfo GetDictData(WmGoodsNowProductionDictDto parm); diff --git a/ZR.Service/mes/wms/WmBlankRecordService.cs b/ZR.Service/mes/wms/WmBlankRecordService.cs index b60ff70e..cc8976fd 100644 --- a/ZR.Service/mes/wms/WmBlankRecordService.cs +++ b/ZR.Service/mes/wms/WmBlankRecordService.cs @@ -1,6 +1,6 @@ +using System; using Infrastructure.Attribute; using SqlSugar; -using System; using ZR.Model; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; @@ -24,14 +24,26 @@ namespace ZR.Service.mes.wms { DateTime startTime = parm.CreatedTimeStart ?? new DateTime(1999, 1, 1, 0, 0, 0); DateTime endTime = parm.CreatedTimeEnd ?? new DateTime(1999, 1, 1, 0, 0, 0); - var predicate = Expressionable.Create() - .AndIF(!string.IsNullOrEmpty(parm.FkBlankInventoryId), it => it.FkBlankInventoryId == parm.FkBlankInventoryId) - .AndIF(!string.IsNullOrEmpty(parm.BlankNum), it => it.BlankNum.Contains(parm.BlankNum)) + var predicate = Expressionable + .Create() + .AndIF( + !string.IsNullOrEmpty(parm.FkBlankInventoryId), + it => it.FkBlankInventoryId == parm.FkBlankInventoryId + ) + .AndIF( + !string.IsNullOrEmpty(parm.BlankNum), + it => it.BlankNum.Contains(parm.BlankNum) + ) // .AndIF(parm.Status > -1, it => it.Status == parm.Status) .AndIF(parm.Type > 0, it => it.Type == parm.Type) - .AndIF(parm.CreatedTimeStart > new DateTime(1999, 1, 1, 0, 0, 0), it => it.CreatedTime >= startTime.ToLocalTime()) - .AndIF(parm.CreatedTimeEnd > new DateTime(1999, 1, 1, 0, 0, 0), it => it.CreatedTime <= endTime.ToLocalTime()) - ; + .AndIF( + parm.CreatedTimeStart > new DateTime(1999, 1, 1, 0, 0, 0), + it => it.CreatedTime >= startTime.ToLocalTime() + ) + .AndIF( + parm.CreatedTimeEnd > new DateTime(1999, 1, 1, 0, 0, 0), + it => it.CreatedTime <= endTime.ToLocalTime() + ); var response = Queryable() .Where(predicate.ToExpression()) @@ -41,10 +53,11 @@ namespace ZR.Service.mes.wms { foreach (WmBlankRecordDto item in response.Result) { - WmMaterial material = Context.Queryable() - .Where(it => it.BlankNum == item.BlankNum) - .Where(it => it.Remarks == "毛坯") - .First(); + WmMaterial material = Context + .Queryable() + .Where(it => it.BlankNum == item.BlankNum) + .Where(it => it.Remarks == "毛坯") + .First(); if (material == null) { item.Description = "此毛坯号不在物料清单内!"; @@ -54,13 +67,14 @@ namespace ZR.Service.mes.wms item.Unit = material.Unit; item.Version = material.Version; item.Specification = material.Specification; - item.Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + item.Description = !string.IsNullOrEmpty(material.Description) + ? material.Description + : material.ProductName; } } return response; } - /// /// 获取详情 /// @@ -68,9 +82,7 @@ namespace ZR.Service.mes.wms /// public WmBlankRecord GetInfo(string Id) { - var response = Queryable() - .Where(x => x.Id == Id) - .First(); + var response = Queryable().Where(x => x.Id == Id).First(); return response; } @@ -116,19 +128,29 @@ namespace ZR.Service.mes.wms /// /// /// - public int AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark) + public int AddInventory( + string fkBlankInventoryId, + string blankNum, + int changeQuantity, + string username, + string remark, + DateTime? actionTime + ) { - bool hasRecord = Context.Queryable() - .Where(it => it.Id == fkBlankInventoryId).Any(); + bool hasRecord = Context + .Queryable() + .Where(it => it.Id == fkBlankInventoryId) + .Any(); if (!hasRecord) { throw new Exception("无此毛坯号记录!"); } // 增加库存 - int result = Context.Updateable() - .SetColumns(it => it.Quantity == it.Quantity + changeQuantity) - .Where(it => it.Id == fkBlankInventoryId) - .ExecuteCommand(); + int result = Context + .Updateable() + .SetColumns(it => it.Quantity == it.Quantity + changeQuantity) + .Where(it => it.Id == fkBlankInventoryId) + .ExecuteCommand(); if (result == 1) { WmBlankRecord res = new WmBlankRecord(); @@ -138,16 +160,15 @@ namespace ZR.Service.mes.wms res.ChangeQuantity = changeQuantity; res.Type = 1; res.Status = 1; + res.ActionTime = actionTime; res.Remark = remark; res.CreatedBy = username; res.CreatedTime = DateTime.Now; //填写库存记录 Context.Insertable(res).ExecuteCommand(); - } - return result; } @@ -158,14 +179,23 @@ namespace ZR.Service.mes.wms /// /// /// - public int DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark) + public int DeleteInventory( + string fkBlankInventoryId, + string blankNum, + int changeQuantity, + string username, + string remark, + DateTime? actionTime + ) { int resut = 0; bool tranReuslt = UseTran2(() => { - WmBlankInventory record = Context.Queryable() - .Where(it => it.Id == fkBlankInventoryId) - .Where(it => it.BlankNum == blankNum).First(); + WmBlankInventory record = Context + .Queryable() + .Where(it => it.Id == fkBlankInventoryId) + .Where(it => it.BlankNum == blankNum) + .First(); if (record != null && record.Quantity < changeQuantity) { resut = 0 - changeQuantity; @@ -178,10 +208,11 @@ namespace ZR.Service.mes.wms } else { - resut = Context.Updateable() - .SetColumns(it => it.Quantity == it.Quantity - changeQuantity) - .Where(it => it.Id == fkBlankInventoryId) - .ExecuteCommand(); + resut = Context + .Updateable() + .SetColumns(it => it.Quantity == it.Quantity - changeQuantity) + .Where(it => it.Id == fkBlankInventoryId) + .ExecuteCommand(); if (resut == 1) { @@ -193,17 +224,14 @@ namespace ZR.Service.mes.wms res.Type = 2; res.Status = 1; res.Remark = remark; + res.ActionTime = actionTime; res.CreatedBy = username; res.CreatedTime = DateTime.Now; //填写库存记录 Context.Insertable(res).ExecuteCommand(); - } - - } - }); if (!tranReuslt) { @@ -211,6 +239,5 @@ namespace ZR.Service.mes.wms } return resut; } - } -} \ No newline at end of file +} diff --git a/ZR.Service/mes/wms/WmGoodsNowProductionService.cs b/ZR.Service/mes/wms/WmGoodsNowProductionService.cs index 8a4df90b..832b6b11 100644 --- a/ZR.Service/mes/wms/WmGoodsNowProductionService.cs +++ b/ZR.Service/mes/wms/WmGoodsNowProductionService.cs @@ -404,5 +404,29 @@ namespace ZR.Service.mes.wms } return response; } + + public int BatchUpdateLocationCode(BatchUpdateLocationCodeDto parm) + { + try + { + List updateList = new List(); + foreach (string id in parm.Ids) + { + WmGoodsNowProduction nowProduction = new() + { + Id = id, + LocationCode = parm.LocationCode, + UpdatedBy = parm.UpdatedBy, + UpdatedTime = parm.UpdatedTime, + }; + updateList.Add(nowProduction); + } + return Context.Updateable(updateList).IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand(); + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } } } diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs index 1680a543..df43f13c 100644 --- a/ZR.Service/mes/wms/WmOutOrderService.cs +++ b/ZR.Service/mes/wms/WmOutOrderService.cs @@ -365,6 +365,7 @@ namespace ZR.Service.mes.wms // 该物料下 ,现有货物列表,零件号相同,根据批次号从小到大排序 List wmGoodsNowsList = Context.Queryable() .Where(it => it.Partnumber == partnumber) + .Where(it => it.LocationCode != "Z1-01") .OrderBy(it => it.PackageCodeClient) .ToList();