diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs index 4877863b..a2ec44c1 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankInventoryController.cs @@ -132,7 +132,7 @@ namespace ZR.Admin.WebApi.Controllers } catch(Exception ex) { - return ToResponse(new ApiResult(200, ex.Message, "同步失败")); + return ToResponse(new ApiResult(500, ex.Message, "同步失败")); } diff --git a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs index 6fb054ed..cc5a8d01 100644 --- a/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/wms/WmBlankRecordController.cs @@ -75,54 +75,63 @@ namespace ZR.Admin.WebApi.Controllers /// /// 1.增加库存 /// - /// - /// - /// + /// 库存id + /// 毛坯号 + /// 变动量 + /// 备注 /// [HttpGet("add_inventory")] - public IActionResult AddInventory(string id,string blank,int change_quantity) + public IActionResult AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity,string remark) { - if(string.IsNullOrEmpty(blank)) + try { - return SUCCESS(null); + if (string.IsNullOrEmpty(fkBlankInventoryId)) + { + return ToResponse(new ApiResult(500, "库存id为空!", "库存id为空!")); + } + if (string.IsNullOrEmpty(blankNum)) + { + return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!")); + } + var response = _WmBlankRecordService.AddInventory(fkBlankInventoryId, blankNum, changeQuantity, HttpContext.GetName(),remark); + return SUCCESS(response); } - if (string.IsNullOrEmpty(id)) + catch (Exception ex) { - return SUCCESS(null); + return ToResponse(new ApiResult(500, ex.Message, "添加记录失败")); } - if (string.IsNullOrEmpty(blank)) - { - return SUCCESS(null); - } - - var response = _WmBlankRecordService.AddInventory(id, blank, change_quantity, HttpContext.GetName()); - return SUCCESS(response); + } /// /// 2.减少库存 /// - /// - /// - /// + /// 库存id + /// 毛坯号 + /// 变动量 + /// 备注 /// [HttpGet("delete_inventory")] - public IActionResult DeleteInventory(string id, string blank, int change_quantity) + public IActionResult DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string remark) { - if (string.IsNullOrEmpty(blank)) + try { - return SUCCESS(null); + if (string.IsNullOrEmpty(fkBlankInventoryId)) + { + return ToResponse(new ApiResult(500, "库存id为空!", "库存id为空!")); + } + if (string.IsNullOrEmpty(blankNum)) + { + return ToResponse(new ApiResult(500, "毛坯号为空!", "毛坯号为空!")); + } + var response = _WmBlankRecordService.DeleteInventory(fkBlankInventoryId, blankNum, changeQuantity, HttpContext.GetName(), remark); + return SUCCESS(response); } - if (string.IsNullOrEmpty(id)) + catch (Exception ex) { - return SUCCESS(null); + return ToResponse(new ApiResult(500, ex.Message, "添加记录失败")); } - if (string.IsNullOrEmpty(blank)) - { - return SUCCESS(null); - } - var response = _WmBlankRecordService.DeleteInventory(id, blank, change_quantity, HttpContext.GetName()); - return SUCCESS(response); + } /// diff --git a/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs b/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs index 33a96ab8..382ca55f 100644 --- a/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs +++ b/ZR.Model/MES/wms/Dto/WmBlankRecordDto.cs @@ -7,6 +7,17 @@ namespace ZR.Model.MES.wms.Dto /// public class WmBlankRecordQueryDto : PagerInfo { + public string Id { get; set; } + public string FkBlankInventoryId { get; set; } + public string BlankNum { get; set; } + + public int Type { get; set; } + + public int Status { get; set; } + + public DateTime? CreatedTimeStart { get; set; } + + public DateTime? CreatedTimeEnd { get; set; } } /// @@ -21,6 +32,28 @@ namespace ZR.Model.MES.wms.Dto public string BlankNum { get; set; } + + /// + /// 单位 + /// + public string Unit { get; set; } + /// + /// 颜色 + /// + public string Color { get; set; } + /// + /// 规格 + /// + public string Specification { get; set; } + /// + /// 描述 + /// + public string Description { get; set; } + /// + /// 版本号 + /// + public string Version { get; set; } + public int? ChangeQuantity { get; set; } public int Type { get; set; } diff --git a/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs b/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs index d7a7cc9b..f9b6b764 100644 --- a/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs +++ b/ZR.Service/mes/wms/IService/IWmBlankRecordService.cs @@ -20,8 +20,8 @@ namespace ZR.Service.mes.wms.IService int UpdateWmBlankRecord(WmBlankRecord parm); - int AddInventory(string id, string fk_blank_inventory_id, int change_quantity,string username); - int DeleteInventory(string id, string fk_blank_inventory_id, int change_quantity, string username); + int AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark); + int DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark); } } diff --git a/ZR.Service/mes/wms/WmBlankRecordService.cs b/ZR.Service/mes/wms/WmBlankRecordService.cs index 9d96b1ee..db6321db 100644 --- a/ZR.Service/mes/wms/WmBlankRecordService.cs +++ b/ZR.Service/mes/wms/WmBlankRecordService.cs @@ -26,12 +26,41 @@ namespace ZR.Service.mes.wms /// public PagedInfo GetList(WmBlankRecordQueryDto parm) { - var predicate = Expressionable.Create(); + 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)) + // .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()) + ; var response = Queryable() .Where(predicate.ToExpression()) + .OrderByDescending(it=>it.CreatedTime) .ToPage(parm); - + if (response.Result.Count > 0) + { + foreach (WmBlankRecordDto item in response.Result) + { + WmMaterial material = Context.Queryable() + .Where(it => it.BlankNum == item.BlankNum) + .Where(it => it.Remarks == "毛坯") + .First(); + if (material == null) + { + item.Description = "此毛坯号不在物料清单内!"; + continue; + } + item.Color = material.Color; + item.Unit = material.Unit; + item.Version = material.Version; + item.Specification = material.Specification; + item.Description = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName; + } + } return response; } @@ -57,6 +86,7 @@ namespace ZR.Service.mes.wms /// public WmBlankRecord AddWmBlankRecord(WmBlankRecord model) { + model.Id = SnowFlakeSingle.Instance.NextId().ToString(); return Context.Insertable(model).ExecuteReturnEntity(); } @@ -90,22 +120,29 @@ namespace ZR.Service.mes.wms /// /// /// - public int AddInventory(string id, string fk_blank_inventory_id, int change_quantity,string username) + public int AddInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark) { + 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 + change_quantity) - .Where(it => it.Id == id) - .Where(it => it.BlankNum == fk_blank_inventory_id) + int result = Context.Updateable() + .SetColumns(it => it.Quantity == it.Quantity + changeQuantity) + .Where(it => it.Id == fkBlankInventoryId) .ExecuteCommand(); - if(result==1) + if (result == 1) { WmBlankRecord res = new WmBlankRecord(); - res.Id= SnowFlakeSingle.Instance.NextId().ToString(); - res.FkBlankInventoryId=fk_blank_inventory_id; - res.ChangeQuantity = change_quantity; + res.Id = SnowFlakeSingle.Instance.NextId().ToString(); + res.FkBlankInventoryId = fkBlankInventoryId; + res.BlankNum = blankNum; + res.ChangeQuantity = changeQuantity; res.Type = 1; res.Status = 1; + res.Remark = remark; res.CreatedBy = username; res.CreatedTime = DateTime.Now; @@ -113,7 +150,7 @@ namespace ZR.Service.mes.wms Context.Insertable(res).ExecuteCommand(); } - + return result; } @@ -125,40 +162,41 @@ namespace ZR.Service.mes.wms /// /// /// - public int DeleteInventory(string id, string fk_blank_inventory_id, int change_quantity, string username) + public int DeleteInventory(string fkBlankInventoryId, string blankNum, int changeQuantity, string username, string remark) { int resut = 0; - UseTran2(() => + bool tranReuslt = UseTran2(() => { WmBlankInventory record = Context.Queryable() - .Where(it => it.Id == id) - .Where(it => it.BlankNum == fk_blank_inventory_id).First(); - - - if (record != null && record.Quantity < change_quantity) + .Where(it => it.Id == fkBlankInventoryId) + .Where(it => it.BlankNum == blankNum).First(); + if (record != null && record.Quantity < changeQuantity) { - resut = 0 - change_quantity; + resut = 0 - changeQuantity; + throw new Exception("所填变动数字大于库存,无法减少!"); } else if (record == null) { resut = -1; + throw new Exception("无此毛坯号记录!"); } else { resut = Context.Updateable() - .SetColumns(it => it.Quantity == it.Quantity - change_quantity) - .Where(it => it.Id == id) - .Where(it => it.FkPaintId == fk_blank_inventory_id) + .SetColumns(it => it.Quantity == it.Quantity - changeQuantity) + .Where(it => it.Id == fkBlankInventoryId) .ExecuteCommand(); if (resut == 1) { WmBlankRecord res = new WmBlankRecord(); res.Id = SnowFlakeSingle.Instance.NextId().ToString(); - res.FkBlankInventoryId = fk_blank_inventory_id; - res.ChangeQuantity = change_quantity; + res.FkBlankInventoryId = fkBlankInventoryId; + res.BlankNum = blankNum; + res.ChangeQuantity = changeQuantity; res.Type = 2; res.Status = 1; + res.Remark = remark; res.CreatedBy = username; res.CreatedTime = DateTime.Now; @@ -171,6 +209,10 @@ namespace ZR.Service.mes.wms } }); + if (!tranReuslt) + { + throw new Exception("操作执行失败,事务失败!"); + } return resut; }