| | |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto.service; |
| | | using NewPdaSqlServer.entity; |
| | | using NewPdaSqlServer.entity.Base; |
| | | using SqlSugar; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory; |
| | | |
| | | namespace NewPdaSqlServer.service.Warehouse; |
| | | |
| | |
| | | { |
| | | return Db.Queryable<MesCgthSq>() |
| | | .Where(s => s.Status == true) |
| | | .OrderByDescending(s => s.CreateDate) |
| | | .ToList(); |
| | | } |
| | | |
| | | public OutItemDto GetSumItem(WarehouseQuery query) |
| | | public ProductionPickDto GetSumItem(WarehouseQuery query) |
| | | { |
| | | var mesInvItemOuts = base.GetSingle(it => it.BillNo == query.billNo); |
| | | if (mesInvItemOuts == null) throw new Exception("采购退货申请单不存在"); |
| | | if (string.IsNullOrEmpty(query.billNo)) throw new Exception("申请单号为空"); |
| | | |
| | | var dto = new OutItemDto(); |
| | | dto.SumItem = GetItems(query); |
| | | var mesInvItemOuts = base.GetSingle(it => it.BillNo == query.billNo && it.Status == true); |
| | | if (mesInvItemOuts == null) throw new Exception("采购退货申请单不存在或未审核"); |
| | | |
| | | var mesInvItemStocks = Db.Queryable<MesInvItemStocks>() |
| | | .Where(a => a.ItemBarcode == query.barcode).Single(); |
| | | var sql = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.SQ_NUM FQty,A.YS_NUM SQty,A.SQ_NUM - A.YS_NUM DSQty, |
| | | dbo.F_QX_GETRECODEPOTSE(A.ITEM_ID,A.depot_id,'','') as RecoKw |
| | | fROM MES_CGTH_SQ_DETAIL A |
| | | LEFT JOIN MES_CGTH_SQ B ON A.MID = B.ID |
| | | LEFT JOIN MES_ITEMS C ON A.ITEM_ID = C.item_id |
| | | WHERE B.BILL_NO = '{0}'", query.billNo); |
| | | |
| | | if (mesInvItemStocks == null) return dto; |
| | | var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql); |
| | | |
| | | var mesItems = Db.Queryable<MesItems>() |
| | | .Where(s => s.Id == mesInvItemStocks.ItemId).Single(); |
| | | if(womdabs.Count < 1) |
| | | { |
| | | throw new Exception("该采购退货申请单明细不存在"); |
| | | } |
| | | |
| | | dto.ItemNo = mesItems.ItemNo; |
| | | dto.Quantity = mesInvItemStocks.Quantity; |
| | | |
| | | var DS_list = womdabs.Where(s => s.DSQty > 0).ToList(); |
| | | |
| | | var YS_list = womdabs.Where(s => s.SQty > 0).ToList(); |
| | | |
| | | var dto = new ProductionPickDto |
| | | { |
| | | //daa001 = womdaa.Daa001, |
| | | //PlanNo = womcaa.Caa020, |
| | | items = DS_list, |
| | | Ysitems = YS_list |
| | | }; |
| | | |
| | | return dto; |
| | | } |
| | |
| | | ItemNo = s.ItemNo, // 从MesItems表中获取ItemNo |
| | | ItemName = s.ItemName, // 从MesItems表中获取ItemName |
| | | ItemModel = s.ItemModel, // 从MesItems表中获取ItemModel |
| | | ItemId = c.ItemId, |
| | | ItemId = c.ItemId |
| | | }).ToList(); // 将查询结果转换为列表 |
| | | |
| | | return mesInvItemOutItemsList; // 返回处理后的列表 |
| | |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | { |
| | | if (query.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空"); |
| | | if (query.billNo.IsNullOrEmpty()) throw new Exception("领料单号不允许为空"); |
| | | if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空"); |
| | | if (query.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空"); if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空"); |
| | | |
| | | using (var cmd = new SqlCommand("[prc_pda_CGTH]", conn)) |
| | | { |
| | |
| | | |
| | | var dto = new ProductionPickDto |
| | | { |
| | | daa001 = query.daa001, |
| | | daa001 = query.billNo, |
| | | barcodeNum = barcodeNum, |
| | | splitNum = splitNum, |
| | | barcode = query.barcode |
| | | barcode = query.barcode, |
| | | result = result.ToString() |
| | | }; |
| | | |
| | | return dto; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | public ProductionPickDto ScanCodeCF(WarehouseQuery query) |
| | | { |
| | | if (query.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空"); |
| | | if (query.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空"); |
| | | if (query.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空"); |
| | | |
| | | if (query.Num is null or 0) throw new Exception("条码拆分数不允许为空或者为0"); |
| | | |
| | | var _strMsg = ""; |
| | | var _intSum = ""; |
| | | var _cfBar = "";//拆分后条码 |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | { |
| | | using (var cmd = new SqlCommand("[prc_pda_CGTH_CF]", conn)) |
| | | { |
| | | try |
| | | { |
| | | conn.Open(); |
| | | cmd.CommandType = CommandType.StoredProcedure; |
| | | SqlParameter[] parameters = |
| | | { |
| | | new("@outMsg", SqlDbType.NVarChar, 2000), |
| | | new("@outSum", SqlDbType.NVarChar, 300), |
| | | new("@outCfBar", SqlDbType.NVarChar, 300), |
| | | new("@c_User", query.userName), |
| | | new("@p_biLL_no", query.billNo), |
| | | new("@p_item_barcode", query.barcode), |
| | | new("@num", query.Num) |
| | | }; |
| | | parameters[0].Direction = ParameterDirection.Output; |
| | | parameters[1].Direction = ParameterDirection.Output; |
| | | parameters[2].Direction = ParameterDirection.Output; |
| | | foreach (var parameter in parameters) |
| | | cmd.Parameters.Add(parameter); |
| | | cmd.ExecuteNonQuery(); |
| | | _strMsg = parameters[0].Value.ToString(); |
| | | _intSum = parameters[1].Value.ToString(); |
| | | _cfBar = parameters[2].Value.ToString(); |
| | | |
| | | |
| | | var result = Convert.ToInt32(_intSum); |
| | | if (result <= 0) throw new Exception(_strMsg); |
| | | |
| | | var dto = new ProductionPickDto |
| | | { |
| | | daa001 = query.billNo, |
| | | barcode = query.barcode,//原条码 |
| | | cfBarcode = _cfBar//拆分后条码 |
| | | }; |
| | | |
| | | return dto; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | conn.Close(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 采购扫码验退 |
| | | /// </summary> |
| | | /// <param name="query"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentNullException"></exception> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | /// <exception cref="Exception"></exception> |
| | | public dynamic ScanCgyt(dynamic query) |
| | | { |
| | | if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为 null"); |
| | | |
| | | // 2. 使用 string.IsNullOrEmpty 直接判断字符串属性(避免 NullReferenceException) |
| | | if (string.IsNullOrEmpty(query.userName?.ToString())) |
| | | throw new ArgumentException("用户名不允许为空", nameof(query.userName)); |
| | | |
| | | if (string.IsNullOrEmpty(query.barcode?.ToString())) |
| | | throw new ArgumentException("采购物料条码不允许为空", nameof(query.barcode)); |
| | | |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | { |
| | | using (var cmd = new SqlCommand("prc_pda_scan_CGYT", conn)) |
| | | { |
| | | cmd.CommandType = CommandType.StoredProcedure; |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName }, |
| | | new("@pi_barcode", SqlDbType.NVarChar, 100) { Value = query.barcode }, |
| | | new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output }, |
| | | new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }, |
| | | new("@po_ygdh", SqlDbType.NVarChar, 200) { Direction = ParameterDirection.Output } |
| | | }; |
| | | |
| | | cmd.Parameters.AddRange(parameters); |
| | | conn.Open(); |
| | | cmd.ExecuteNonQuery(); |
| | | |
| | | var result = new |
| | | { |
| | | result = parameters[3].Value.ToString(), |
| | | barcode = query.barcode, |
| | | ytdh = parameters[4].Value.ToString(), |
| | | msg = parameters[2].Value.ToString() |
| | | }; |
| | | |
| | | if (result.result == "-1") |
| | | throw new Exception(parameters[2].Value.ToString()); |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除验退单 |
| | | /// </summary> |
| | | /// <param name="query"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentNullException"></exception> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | /// <exception cref="Exception"></exception> |
| | | public dynamic deleteCgyt(dynamic query) |
| | | { |
| | | if (query == null) throw new ArgumentNullException(nameof(query), "参数对象不能为 null"); |
| | | |
| | | // 2. 使用 string.IsNullOrEmpty 直接判断字符串属性(避免 NullReferenceException) |
| | | if (string.IsNullOrEmpty(query.userName?.ToString())) |
| | | throw new ArgumentException("用户名不允许为空", nameof(query.userName)); |
| | | |
| | | if (string.IsNullOrEmpty(query.ytdh?.ToString())) |
| | | throw new ArgumentException("追溯码不允许为空", nameof(query.ytdh)); |
| | | |
| | | using (var conn = new SqlConnection(DbHelperSQL.strConn)) |
| | | { |
| | | using (var cmd = new SqlCommand("prc_pda_delete_CGYT", conn)) |
| | | { |
| | | cmd.CommandType = CommandType.StoredProcedure; |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new("@pi_user", SqlDbType.NVarChar, 100) { Value = query.userName }, |
| | | new("@pi_ytdh", SqlDbType.NVarChar, 100) { Value = query.ytdh }, |
| | | new("@po_outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output }, |
| | | new("@po_outSum", SqlDbType.Int) { Direction = ParameterDirection.Output } |
| | | }; |
| | | |
| | | cmd.Parameters.AddRange(parameters); |
| | | conn.Open(); |
| | | cmd.ExecuteNonQuery(); |
| | | |
| | | var result = new |
| | | { |
| | | result = parameters[3].Value.ToString(), |
| | | msg = parameters[2].Value.ToString(), |
| | | }; |
| | | |
| | | if (result.result == "-1") |
| | | throw new Exception(parameters[2].Value.ToString()); |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取验退单已扫物料信息 |
| | | /// </summary> |
| | | /// <param name="query"></param> |
| | | /// <returns></returns> |
| | | public dynamic getYtItem(string ytdh) |
| | | { |
| | | if (string.IsNullOrEmpty(ytdh?.ToString())) |
| | | throw new ArgumentException("验退单号不允许为空", nameof(ytdh)); |
| | | |
| | | var sqlParams = new List<SugarParameter> { new("@ytdh", ytdh) }; |
| | | |
| | | var sql1 = @"SELECT C.item_id,C.item_no,C.item_name,C.item_model,A.quantity |
| | | FROM MES_INV_ITEM_CGYT_ITEMS A |
| | | LEFT JOIN MES_INV_ITEM_CGYT B ON A.item_cgyt_id = B.GUID |
| | | LEFT JOIN MES_ITEMS C ON A.item_id = C.item_id |
| | | WHERE B.item_cgyt_no = @ytdh"; |
| | | |
| | | var YtItem = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams); |
| | | |
| | | //if (YtItem.Count < 1) |
| | | //{ |
| | | // throw new Exception($"该验退单号{ytdh}物料明细不存在!"); |
| | | //} |
| | | |
| | | return YtItem; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取验退单已扫条码信息 |
| | | /// </summary> |
| | | /// <param name="query"></param> |
| | | /// <returns></returns> |
| | | public dynamic getYtBarInfo(string ytdh) |
| | | { |
| | | if (string.IsNullOrEmpty(ytdh?.ToString())) |
| | | throw new ArgumentException("验退单号不允许为空", nameof(ytdh)); |
| | | |
| | | var sqlParams = new List<SugarParameter> { new("@ytdh", ytdh) }; |
| | | |
| | | var sql1 = @"SELECT C.item_id,C.item_no,C.item_name,C.item_model,A.quantity,A.ITEM_BARCODE |
| | | FROM MES_INV_ITEM_CGYT_C_DETAILS A |
| | | LEFT JOIN MES_INV_ITEM_CGYT B ON A.item_cgyt_id = B.GUID |
| | | LEFT JOIN MES_ITEMS C ON A.item_id = C.item_id |
| | | WHERE B.item_cgyt_no = @ytdh"; |
| | | |
| | | var YtBarInfo = Db.Ado.SqlQuery<dynamic>(sql1, sqlParams); |
| | | |
| | | //if (YtBarInfo.Count < 1) |
| | | //{ |
| | | // throw new Exception($"该验退单号{ytdh}他们不存在!"); |
| | | //} |
| | | |
| | | return YtBarInfo; |
| | | } |
| | | } |