| HTML/views/ASNSetting/LabelBox.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/WMS.IBLL/IBllAsnServer/IBllBoxInfoServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Wms/Wms/Controllers/BllAsnController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HTML/views/ASNSetting/LabelBox.html
@@ -125,6 +125,14 @@ style="margin-left: 5px;" lay-event="BuDaLabel" id="BuDaLabel"> <i class="layui-icon layui-icon-print layuiadmin-button-btn"></i>补打标签 </button> <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal buDaLabelClass" style="margin-left: 5px;" lay-event="ChaiLabel" id="ChaiLabel"> <i class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>拆分标签 </button> <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal buDaLabelClass" style="margin-left: 5px;" lay-event="MergeLabel" id="MergeLabel"> <i class="layui-icon layui-icon-edit layuiadmin-button-btn"></i>合并标签 </button> <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-danger delLabelClass" style="margin-left: 5px;" lay-event="delLabel" id="delLabel"> <i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除标签 Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs
@@ -236,4 +236,10 @@ public int? userId { get; set; } } public class LabelOperVm { public string BoxNo { get; set; } public string BoxNo2 { get; set; } public decimal ChaiQty { get; set; } } } Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -15,6 +15,9 @@ using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IBLL.IBllAsnServer; using WMS.Entity.DataEntity; using Dm; using System.Reflection; namespace WMS.BLL.BllAsnServer { @@ -1745,6 +1748,178 @@ throw new Exception(e.Message); } } /// <summary> /// 拆分箱码标签 /// </summary> /// <param name="boxNo"></param> /// <param name="chaiQty"></param> /// <param name="userId"></param> /// <exception cref="Exception"></exception> public void ChaiLableBox(string boxNo,decimal chaiQty, int userId) { try { if (string.IsNullOrEmpty(boxNo)) { throw new Exception("请输入拆箱箱码"); } if (chaiQty <= 0) { throw new Exception("请输入拆分数量"); } //标签信息 var boxList = Db.Queryable<BllBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == boxNo).ToList(); if (boxList.Count != 1) { throw new Exception("该箱码信息错误,存在多个此箱码信息"); } var boxInfo = boxList.First(); if (boxInfo.Qty <= chaiQty) { throw new Exception("拆箱数量大等于当前箱内数量"); } if (boxInfo.Status != "0") { throw new Exception("该箱码不是未组托状态,不允许拆箱!"); } //开启事务 Db.BeginTran(); boxInfo.Qty -= chaiQty; boxInfo.BitBoxMark = "1"; //更新箱码库存表 Db.Updateable(boxInfo).ExecuteCommand(); var boxStr = boxInfo.BoxNo.Substring(0, boxInfo.BoxNo.Length - 6);//获取箱码前缀-除后六位流水外 var maxBoxCode1 = Db.Queryable<BllBoxInfo>().Where(m => m.BoxNo.Contains(boxStr) && m.IsDel == "0" && m.Origin == "WMS生成").Max(a => a.BoxNo); var maxBoxCode2 = Db.Queryable<DataBoxInfo>().Where(m => m.BoxNo.Contains(boxStr) && m.IsDel == "0").Max(a => a.BoxNo); //如果结果为0,则说明两个字符串相等; ABC BCE //如果结果小于0,则说明第一个字符串小于第二个字符串; //如果结果大于0,则说明第一个字符串大于第二个字符串。 var maxBoxCode = maxBoxCode1; var bol = String.CompareOrdinal(maxBoxCode1, maxBoxCode2); if (bol < 0) { maxBoxCode = maxBoxCode2; } var boxNoNew = maxBoxCode.Substring(0, maxBoxCode.Length - 6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0'); // 添加新箱码信息 var boxModel = new BllBoxInfo() { ASNNo = boxInfo.ASNNo, ASNDetailNo = boxInfo.ASNDetailNo, BoxNo = boxNoNew, BoxNo2 = "", BoxNo3 = "", Qty = chaiQty, FullQty = boxInfo.FullQty, Status = "0",//待组托 BindNo = null, PalletNo = "", SkuNo = boxInfo.SkuNo, SkuName = boxInfo.SkuName, LotNo = boxInfo.LotNo, Standard = boxInfo.Standard, PackageStandard = boxInfo.PackageStandard, SupplierLot = boxInfo.SupplierLot, InspectMark = boxInfo.InspectMark, BitBoxMark = "1", InspectStatus = "0", ProductionTime = boxInfo.ProductionTime, StoreTime = boxInfo.StoreTime, ExpirationTime = boxInfo.ExpirationTime, Origin = "WMS", CreateUser = userId, CreateTime = DateTime.Now, }; Db.Insertable(boxModel).ExecuteCommand(); //添加操作日志 new OperationASNServer().AddLogOperationAsn("入库作业", "物料标签", boxNo, "编辑", $"拆分了箱码{boxInfo}数量{chaiQty}到新箱码{boxNoNew}", userId); //提交事务 Db.CommitTran(); } catch (Exception e) { //回滚事务 Db.RollbackTran(); throw new Exception(e.Message); } } /// <summary> /// 合并箱码标签 /// </summary> /// <param name="boxNo"></param> /// <param name="boxNo2"></param> /// <param name="userId"></param> public void MergeLableBox(string boxNo,string boxNo2, int userId) { try { if (string.IsNullOrEmpty(boxNo) || string.IsNullOrEmpty(boxNo2)) { throw new Exception("请输入要合并的箱码"); } //标签信息 var boxList = Db.Queryable<BllBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == boxNo).ToList(); if (boxList.Count != 1) { throw new Exception($"{boxNo}该箱码信息错误,存在多个此箱码信息"); } var boxInfo = boxList.First(); if (boxInfo.Status != "0") { throw new Exception($"{boxNo}该箱码不是未组托状态,不允许合并!"); } var boxList2 = Db.Queryable<BllBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == boxNo2).ToList(); if (boxList2.Count != 1) { throw new Exception($"{boxNo2}该箱码信息错误,存在多个此箱码信息"); } var boxInfo2 = boxList2.First(); if (boxInfo2.Status != "0") { throw new Exception($"{boxNo2}该箱码不是未组托状态,不允许合并!"); } if (boxInfo.SkuNo != boxInfo2.SkuNo || boxInfo.LotNo != boxInfo2.LotNo) { throw new Exception($"两个箱码不是物料批次信息不一致,不允许合并!"); } if (boxInfo.ASNNo != boxInfo2.ASNNo || boxInfo.ASNDetailNo != boxInfo2.ASNDetailNo) { throw new Exception($"两个箱码不是所属入库单信息不一致,不允许合并!"); } if (boxInfo.Qty + boxInfo2.Qty > boxInfo.FullQty) { throw new Exception($"两个箱码合并后数量超过满箱数量,不允许合并!"); } //开启事务 Db.BeginTran(); boxInfo.Qty += boxInfo2.Qty; //更新箱码库存表 Db.Updateable(boxInfo).ExecuteCommand(); //删除被合并箱码信息 Db.Deleteable(boxInfo2).ExecuteCommand(); //添加操作日志 new OperationASNServer().AddLogOperationAsn("入库作业", "物料标签", boxNo, "编辑", $"将{boxNo2}箱码合并到了{boxNo}箱码中", userId); //提交事务 Db.CommitTran(); } catch (Exception e) { //回滚事务 Db.RollbackTran(); throw new Exception(e.Message); } } #endregion #region 数据归档 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -1871,13 +1871,14 @@ throw new Exception("库存托盘没有信息"); } var locate = stockDetail.First().LocatNo; var locatList = Db.Queryable<SysStorageLocat>().Where(m=>m.WareHouseNo == "W04" && (m.AreaNo == "B06" || m.AreaNo == "B07" || m.AreaNo == "B09") && m.IsDel == "0").ToList(); //var locatList = Db.Queryable<SysStorageLocat>().Where(m=>m.WareHouseNo == "W04" && (m.AreaNo == "B06" || m.AreaNo == "B07" || m.AreaNo == "B09") && m.IsDel == "0").ToList(); var locatList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0").ToList(); var locat = locatList.FirstOrDefault(m => m.LocatNo == locate); //判断托盘储位是否在车间 if (locat == null) { throw new Exception("储位信息没有在车间工位上"); } //if (locat == null) //{ // throw new Exception("储位信息没有在车间工位上"); //} locat.Status = "0"; Db.Updateable(locat).ExecuteCommand(); //判断托盘信息 Wms/WMS.IBLL/IBllAsnServer/IBllBoxInfoServer.cs
@@ -83,6 +83,22 @@ /// <param name="lotNo">批次号</param> /// <param name="userId">操作人ID</param> void DelLabelByAsnNo(string asnNo, string lotNo, int userId); /// <summary> /// 拆分箱码标签 /// </summary> /// <param name="boxNo"></param> /// <param name="chaiQty"></param> /// <param name="userId"></param> /// <exception cref="Exception"></exception> void ChaiLableBox(string boxNo, decimal chaiQty, int userId); /// <summary> /// 合并箱码标签 /// </summary> /// <param name="boxNo"></param> /// <param name="boxNo2"></param> /// <param name="userId"></param> void MergeLableBox(string boxNo, string boxNo2, int userId); #endregion #region 数据归档 Wms/Wms/Controllers/BllAsnController.cs
@@ -1047,8 +1047,66 @@ return Ok(new { code = 1, count = 0, msg = e.Message }); } } /// <summary> /// 拆分箱码标签 /// </summary> /// <param name="model"></param> /// <returns></returns> [HttpPost] public IActionResult ChaiLableBox(LabelOperVm model) { try { //获取当前登录的用户ID var claimsIdentity = this.User.Identity as ClaimsIdentity; if (claimsIdentity == null) { return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); } var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; if (string.IsNullOrWhiteSpace(userId)) { return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); } _BoxInfoSvc.ChaiLableBox(model.BoxNo, model.ChaiQty, int.Parse(userId)); return Ok(new { code = 0, msg = "操作成功", data = "" }); } catch (Exception e) { return Ok(new { code = 1, count = 0, msg = e.Message }); } } /// <summary> /// 合并箱码标签 /// </summary> /// <param name="model"></param> /// <returns></returns> [HttpPost] public IActionResult MergeLableBox(LabelOperVm model) { try { //获取当前登录的用户ID var claimsIdentity = this.User.Identity as ClaimsIdentity; if (claimsIdentity == null) { return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); } var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; if (string.IsNullOrWhiteSpace(userId)) { return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); } _BoxInfoSvc.MergeLableBox(model.BoxNo, model.BoxNo2, int.Parse(userId)); return Ok(new { code = 0, msg = "操作成功", data = "" }); } catch (Exception e) { return Ok(new { code = 1, count = 0, msg = e.Message }); } } #endregion #region 数据归档