bklLiudl
2024-09-02 9885a8a2f98104f5ee63dd5ab8023095a1d8b9f6
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -71,19 +71,34 @@
                }
                // 验证是否重复 支/袋码
                sqlString += $@"select count(id) from BllBoxInfo where BoxNo3 = '{model.BoxNo3}' and IsDel = 0 ";
                int rowCount = Db.Ado.GetInt(sqlString);
                if (rowCount > 0)
                //sqlString += $@"select count(id) from BllBoxInfo where BoxNo3 = '{model.BoxNo3}' and IsDel = 0 ";
                //int rowCount = Db.Ado.GetInt(sqlString);
                var box1 = Db.Queryable<BllBoxInfo>().First(m => m.BoxNo3 == model.BoxNo3 && m.IsDel == "0");
                if (box1 != null)
                {
                    strMessage = "-1:重复数据!";
                    return strMessage;
                }
                // 获取物料信息
                sqlString = "select tb1.SkuNo,tb1.SkuName,tb1.Warranty, ";
                sqlString += "case tb2.level when 5 then tb2.L4Num when 4 then tb2.L3Num when 3 then tb2.L2Num else 0 end as FullQty ";
                sqlString += "from SysMaterials as tb1 left join SysPackag as tb2 on tb1.PackagNo = tb2.PackagNo ";
                sqlString += $"where SkuNo = '{model.SkuNo}' and tb1.IsDel = '0';";
                var materialModel = Db.Ado.SqlQuery<BoxInfoVm>(sqlString);
                //sqlString = "select tb1.SkuNo,tb1.SkuName,tb1.Warranty, ";
                //sqlString += "case tb2.level when 5 then tb2.L4Num when 4 then tb2.L3Num when 3 then tb2.L2Num else 0 end as FullQty ";
                //sqlString += "from SysMaterials as tb1 left join SysPackag as tb2 on tb1.PackagNo = tb2.PackagNo ";
                //sqlString += $"where SkuNo = '{model.SkuNo}' and tb1.IsDel = '0';";
                //var materialModel = Db.Ado.SqlQuery<BoxInfoVm>(sqlString);
                var materialModel = Db.Queryable<SysMaterials>()
                    .LeftJoin<SysPackag>((tb1, tb2) => tb1.PackagNo == tb2.PackagNo)
                    .Where(tb1 => tb1.SkuNo == model.SkuNo && tb1.IsDel == "0")
                    .Select((tb1, tb2) => new BoxInfoVm
                    {
                        SkuNo = tb1.SkuNo,
                        SkuName = tb1.SkuName,
                        Warranty = tb1.Warranty,
                        FullQty = SqlFunc.IF(tb2.Level == 5).Return(tb2.L4Num)
                                    .ElseIF(tb2.Level == 4).Return(tb2.L3Num)
                                    .ElseIF(tb2.Level == 3).Return(tb2.L2Num).End(0)
                    }).ToList();
                if (materialModel.Count <= 0)
                {
                    strMessage = "-1:该物料信息不存在!";
@@ -108,9 +123,16 @@
                }
                #region 包装信息
                string str = $"select SUM(Qty) Qty from BllBoxInfo where IsDel = '0' and BoxNo = '{model.BoxNo}'";
                //获取箱码信息
                var box = Db.Ado.SqlQuerySingle<BoxInfoVm>(str);
                //string str = $"select SUM(Qty) Qty from BllBoxInfo where IsDel = '0' and BoxNo = '{model.BoxNo}'";
                ////获取箱码信息
                //var box = Db.Ado.SqlQuerySingle<BoxInfoVm>(str);
                var boxs = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).Select(m => new BoxInfoVm
                {
                    Qty = SqlFunc.AggregateSum(m.Qty)
                });
                var box = boxs.First();
                if (box.Qty == null)
                {
                    box.Qty = 0;
@@ -162,13 +184,37 @@
                #endregion
                // 插入信息
                sqlString = "Insert into BllBoxInfo (BoxNo,BoxNo2,BoxNo3,SkuNo,SkuName,LotNo,LotText,";
                sqlString += "Qty,FullQty,ProductionTime,ExpirationTime,InspectMark,InspectStatus,BitBoxMark,Origin,Status,CreateUser) values ( ";
                sqlString += $"'{model.BoxNo}','{model.BoxNo2}','{model.BoxNo3}','{model.SkuNo}', ";
                sqlString += $"'{materialModel[0].SkuName}','{model.LotNo}','{model.LotText}','{model.Qty}','{materialModel[0].FullQty}',";
                sqlString += $"'{model.ProductionTime}','{model.ExpirationTime}','{model.InspectMark}','{sku.IsInspect}','{model.BitBoxMark}','{model.Origin}','0','{model.CreateUser}');";
                //sqlString = "Insert into BllBoxInfo (BoxNo,BoxNo2,BoxNo3,SkuNo,SkuName,LotNo,LotText,";
                //sqlString += "Qty,FullQty,ProductionTime,ExpirationTime,InspectMark,InspectStatus,BitBoxMark,Origin,Status,CreateUser) values ( ";
                //sqlString += $"'{model.BoxNo}','{model.BoxNo2}','{model.BoxNo3}','{model.SkuNo}', ";
                //sqlString += $"'{materialModel[0].SkuName}','{model.LotNo}','{model.LotText}','{model.Qty}','{materialModel[0].FullQty}',";
                //sqlString += $"'{model.ProductionTime}','{model.ExpirationTime}','{model.InspectMark}','{sku.IsInspect}','{model.BitBoxMark}" +
                //    $"','{model.Origin}','0','{model.CreateUser}');";
                //rowCount = Db.Ado.ExecuteCommand(sqlString);
                rowCount = Db.Ado.ExecuteCommand(sqlString);
                BllBoxInfo newboxModel = new BllBoxInfo()
                {
                    BoxNo=model.BoxNo,
                    BoxNo2 = model.BoxNo2,
                    BoxNo3 = model.BoxNo3,
                    SkuNo = model.SkuNo,
                    SkuName = materialModel[0].SkuName,
                    LotNo = model.LotNo,
                    LotText = model.LotText,
                    Qty = (decimal)model.Qty,
                    FullQty = materialModel[0].FullQty,
                    ProductionTime = DateTime.Parse(model.ProductionTime),
                    ExpirationTime = model.ExpirationTime,
                    InspectMark = model.InspectMark,
                    InspectStatus = sku.IsInspect,
                    BitBoxMark = model.BitBoxMark,
                    Origin = model.Origin,
                    Status = "0",
                    CreateUser = (int)model.CreateUser
                };
                var rowCount = Db.Insertable(newboxModel).ExecuteCommand();
                if (rowCount <= 0)
                {
                    strMessage = "-1:添加失败!";
@@ -203,15 +249,23 @@
                //开启事务
                Db.Ado.BeginTran();
                // 删除明细单
                sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
                sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
                sqlString += $"WHERE Id = '{model.Id}' and Status = '0';";
                //sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
                //sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
                //sqlString += $"WHERE Id = '{model.Id}' and Status = '0';";
                int rowCount = Db.Ado.ExecuteCommand(sqlString);
                if (rowCount <= 0)
                //int rowCount = Db.Ado.ExecuteCommand(sqlString);
                var boxModel = Db.Queryable<BllBoxInfo>().First(m => m.Id == model.Id && m.Status == "0");
                if (boxInfo.Status != "0")
                {
                    return "-1:状态已变更无法删除!";
                }
                boxInfo.IsDel = "1";
                boxInfo.UpdateTime = DateTime.Now;
                boxInfo.UpdateUser = model.CreateUser;
                var boxInfoList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxInfo.BoxNo && m.Id != model.Id).ToList();
                if (boxInfoList.Count != 0)
                {
@@ -221,15 +275,11 @@
                        {
                            continue;
                        }
                        var sql = $"update BllBoxInfo SET BitBoxMark = '1' Where id = {item.Id}";
                        int rowCount2 = Db.Ado.ExecuteCommand(sql);
                        if (rowCount2 <= 0)
                        {
                            throw new Exception("-1:状态已变更无法删除!");
                        }
                        item.BitBoxMark = "1";
                    }
                }
                Db.Updateable(boxInfo).ExecuteCommand();
                Db.Updateable(boxInfoList).ExecuteCommand();
                Db.Ado.CommitTran();
                new OperationASNServer().AddLogOperationAsn("入库作业", "箱支录入", boxInfo.BoxNo3, "删除", $"删除了箱码:{boxInfo.BoxNo}、追溯码:{boxInfo.BoxNo3}的箱支物料信息", Convert.ToInt32(model.CreateUser));
@@ -455,8 +505,8 @@
                        InspectStatus = a.InspectStatus,
                        Origin = a.Origin,
                        QtyCount = a.QtyCount,
                        QtyOrd = a.QtyOrd,
                        QtyCount = (int)a.QtyCount,
                        QtyOrd = (int)a.QtyOrd,
                        CreateUserName = b.RealName,