| | |
| | | using OracleInternal.Sharding; |
| | | using SqlSugar; |
| | | using SqlSugar.Extensions; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory; |
| | |
| | | /// 获取受托退料申请列表 |
| | | /// </summary> |
| | | /// <returns>受托退料申请列表</returns> |
| | | public List<string> GetSttlBillNo(WarehouseQuery query) |
| | | public List<string> GetSttlBillNo(WarehouseQuery query, dynamic RequestInfo) |
| | | { |
| | | var list = Db.Queryable<MesShouTui>() |
| | | .Where(s => s.IsCheck == true && s.IsFinish == false) |
| | | .Select(s => s.BillNo).ToList(); |
| | | var orgId = RequestInfo.OrgId; |
| | | |
| | | return list; |
| | | if (orgId == null) |
| | | throw new Exception("组织不存在!"); |
| | | |
| | | // 获取未完成的退料单号列表 |
| | | var parameters = new[] |
| | | { |
| | | new SugarParameter("@pi_orgId", orgId), |
| | | new SugarParameter("@inP1", null), |
| | | new SugarParameter("@inP2", null), |
| | | new SugarParameter("@inP3", null), |
| | | new SugarParameter("@inP4", null) |
| | | }; |
| | | try |
| | | { |
| | | // 返回单号字符串列表Get_Qt_ck_List |
| | | var list = Db.Ado.SqlQuery<string>( |
| | | "EXEC prc_pda_sttl_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); |
| | | return list; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="query">仓库查询参数</param> |
| | | /// <returns>物料明细列表</returns> |
| | | public List<ItemDetailModel> GetMesItemDetailByBillNo( |
| | | WarehouseQuery query) |
| | | public dynamic GetMesItemDetailByBillNo(WarehouseQuery query, dynamic RequestInfo) |
| | | { |
| | | // 关联查询物料表、物料明细表和物料基础信息表 |
| | | var mesItemTblDetails = Db |
| | | .Queryable<MesShouTui, MesShouTuiDetail, MesItems>( |
| | | (a, b, c) => new JoinQueryInfos( |
| | | JoinType.Left, |
| | | a.Guid == b.PGuid, |
| | | JoinType.Left, |
| | | b.FMaterialId == c.Id.ToString()) |
| | | ).Where((a, b, c) => a.BillNo == query.billNo && a.IsCheck == true) |
| | | .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel |
| | | if (string.IsNullOrEmpty(query.billNo)) |
| | | throw new Exception("请选单据号!"); |
| | | |
| | | if (query == null) |
| | | throw new ArgumentNullException(nameof(query), "参数对象不能为null"); |
| | | |
| | | if (string.IsNullOrEmpty(query.billNo?.ToString())) |
| | | throw new ArgumentException("单据号不能为空", nameof(query.billNo)); |
| | | |
| | | var orgId = RequestInfo.OrgId; |
| | | |
| | | if (orgId == null) |
| | | throw new Exception("组织不存在!"); |
| | | |
| | | // 获取未完成的发货通知单明细 |
| | | var parameters = new[] |
| | | { |
| | | new SugarParameter("@billNo", query.billNo), |
| | | new SugarParameter("@pi_orgId",orgId), |
| | | new SugarParameter("@inP1", null), |
| | | new SugarParameter("@inP2", null), |
| | | new SugarParameter("@inP3", null), |
| | | new SugarParameter("@inP4", null) |
| | | }; |
| | | try |
| | | { |
| | | List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( |
| | | "EXEC prc_pda_sttl_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); |
| | | var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 待扫物料 |
| | | var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 已扫物料 |
| | | |
| | | // 这里返回所有明细列表 |
| | | var result = blDetails.Select(b => new ItemDetailModel |
| | | { |
| | | ItemNo = c.ItemNo, |
| | | ItemName = c.ItemName, |
| | | ItemModel = c.ItemModel, |
| | | FQty = b.FQty, // 申请数量 |
| | | SQty = b.SQty, // 已扫数量 |
| | | Pid = b.PGuid.ToString(), |
| | | ItemNo = b.ItemNo, |
| | | ItemName = b.ItemName, |
| | | ItemModel = b.ItemModel, |
| | | FQty = b.FQty, |
| | | SQty = b.SQty, |
| | | DSQty = b.DSQty, |
| | | Pid = b.Pid, |
| | | FMaterialId = b.FMaterialId, |
| | | Id = b.Guid.ToString() |
| | | Id = b.Id, |
| | | RecoKw=b.RecoKw, |
| | | ItemId = b.FMaterialId |
| | | }).ToList(); |
| | | |
| | | // 筛选出待退数量大于已退数量的记录 |
| | | //var itemTblDetails = mesItemTblDetails |
| | | // .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList(); |
| | | |
| | | return mesItemTblDetails; |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 保留原有异常处理逻辑 |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 受托退料入库 |
| | | /// 受托退料 |
| | | /// </summary> |
| | | /// <param name="query"></param> |
| | | /// <returns></returns> |
| | |
| | | } |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 受托退料条码拆分 prc_rf_pda_prnt_zout_barcode2 |
| | | /// </summary> |
| | | /// <param name="query">查询参数</param> |
| | | /// <returns>(成功标志, 待处理列表)</returns> |
| | | /// <remarks> |
| | | /// 前台需要传入的参数: |
| | | /// - userName: 用户名(必填) |
| | | /// - billNo: 工单号(必填) |
| | | /// - barcode: 物料条码(必填) |
| | | /// - Num: 发料数量(必填,必须大于0) |
| | | /// - blNo: 发货通知单号(必填) |
| | | /// </remarks> |
| | | public ProductionPickDto SplitBarcode(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_STTL_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(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |