/// <summary> /// 根据转库单获取数据 /// </summary> /// <param name="dh"></param> /// <returns></returns> public DataSet GetListBydh(string dh) { StringBuilder strSql = new StringBuilder(); strSql.Append("select C_ID,C_ZKD_NO,C_MAT_CODE,C_MAT_DESC,C_LINEWH_ID,C_MBLINEWH_ID,C_LINEWH_CODE,C_MBLINEWH_CODE,C_STL_GRD,C_JUDGE_LEV_ZH,N_NUM,N_WGT,C_Z_DW,C_F_DW,C_BATCH_NO,C_SPEC,C_STOVE,C_ZYX1,C_ZYX2,C_BZYQ,C_ZYX4,N_STATUS,C_EMP_ID,D_MOD_DT ,N_SJNUM,N_SJWGT"); strSql.Append(" FROM TRC_ROLL_ZKD WHERE N_STATUS<>2"); if (dh.Trim() != "") { strSql.Append(" AND C_ZKD_NO ='" + dh + "' "); } return(TransactionHelper.Query(strSql.ToString())); }
/// <summary> /// 根据发运单号获取中间表数据 /// </summary> /// <param name="dhstr">发运单号</param> /// <returns></returns> public DataSet GetZJBList(string dhstr) { StringBuilder strSql = new StringBuilder(); strSql.Append("select C_ID,C_DISPATCH_ID,C_SEND_STOCK,N_NUM,C_CKDH,N_WGT,N_JZ,C_STOVE,C_BATCH_NO,C_PLAN_ID,C_STL_GRD,C_STD_CODE,C_SPEC,C_PK_NCID,C_MZDATE,N_MWGT,N_PWGT,N_MZTIME,N_PZTIME,C_PZDATE,C_ZLDJ,C_BZYQ"); strSql.Append(" FROM TMD_DISPATCH_SJZJB WHERE 1=1 "); if (dhstr.Trim() != "") { strSql.Append(" AND C_DISPATCH_ID='" + dhstr + "'"); } return(TransactionHelper.Query(strSql.ToString())); }
/* * /// <summary> * /// 分页获取数据列表 * /// </summary> * public DataSet GetList(int PageSize,int PageIndex,string strWhere) * { * OracleParameter[] parameters = { * new OracleParameter(":tblName", OracleDbType.Varchar2, 255), * new OracleParameter(":fldName", OracleDbType.Varchar2, 255), * new OracleParameter(":PageSize", OracleDbType.Int16), * new OracleParameter(":PageIndex", OracleDbType.Int16), * new OracleParameter(":IsReCount", OracleType.Clob), * new OracleParameter(":OrderType", OracleType.Clob), * new OracleParameter(":strWhere", OracleDbType.Varchar2,1000), * }; * parameters[0].Value = "TRC_ROLL_QTCKD_ITEM"; * parameters[1].Value = "C_ID"; * parameters[2].Value = PageSize; * parameters[3].Value = PageIndex; * parameters[4].Value = 0; * parameters[5].Value = 0; * parameters[6].Value = strWhere; * return DbHelperOra.RunProcedure("UP_GetRecordByPage",parameters,"ds"); * }*/ #endregion BasicMethod #region ExtensionMethod /// <summary> /// 通过出库单号获得出库单详情数据 /// </summary> /// <param name="dh">出库单号</param> /// <returns></returns> public DataSet GetQTCKXQByDH(string dh) { StringBuilder strSql = new StringBuilder(); strSql.Append("select C_ID,C_QTCKD_NO,C_MAT_CODE,C_MAT_DESC,C_STL_GRD,C_JUDGE_LEV_ZH,N_NUM,N_WGT,C_Z_DW,C_F_DW,C_BATCH_NO,C_SPEC,C_STOVE,C_ZYX1,C_ZYX2,C_BZYQ,C_ZYX4,N_STATUS,C_LINEWH_CODE ,N_SJNUM,N_SJWGT"); strSql.Append(" FROM TRC_ROLL_QTCKD_ITEM WHERE N_STATUS=1 and NVL(N_SJNUM,0)>0"); if (dh.Trim() != "") { strSql.Append(" AND C_QTCKD_NO ='" + dh + "' "); } return(TransactionHelper.Query(strSql.ToString())); }
/// <summary> /// 得到一个对象实体 /// </summary> public Mod_TRC_ROLL_QTCKD_ITEM GetModeltran(string C_ID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select C_ID,C_QTCKD_NO,C_BATCH_NO,C_JUDGE_LEV_ZH,C_MAT_CODE,C_MAT_DESC,C_STL_GRD,C_SPEC,N_NUM,N_WGT,C_Z_DW,C_F_DW,C_STOVE,C_ZYX1,C_ZYX2,C_BZYQ,C_ZYX4,N_STATUS,C_LINEWH_CODE,D_PRODUCE_DATE,C_JUDGE_LEV_BP,C_STD_CODE,N_SJNUM,N_SJWGT from TRC_ROLL_QTCKD_ITEM "); strSql.Append(" where C_ID=:C_ID "); OracleParameter[] parameters = { new OracleParameter(":C_ID", OracleDbType.Varchar2, 100) }; parameters[0].Value = C_ID; Mod_TRC_ROLL_QTCKD_ITEM model = new Mod_TRC_ROLL_QTCKD_ITEM(); DataSet ds = TransactionHelper.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 得到一个对象实体 /// </summary> public Mod_TPB_LINEWH GetModel_Interface_Trans(string C_LINEWH_CODE) { StringBuilder strSql = new StringBuilder(); strSql.Append("select C_ID,C_LINEWH_CODE,C_LINEWH_NAME,N_STATUS,C_EMP_ID,D_MOD_DT,C_REMARK,D_START_DATE,D_END_DATE,C_NC_CODE,C_RF_CODE,C_NC_PK from TPB_LINEWH "); strSql.Append(" where C_LINEWH_CODE=:C_LINEWH_CODE "); OracleParameter[] parameters = { new OracleParameter(":C_LINEWH_CODE", OracleDbType.Varchar2, 100) }; parameters[0].Value = C_LINEWH_CODE; Mod_TPB_LINEWH model = new Mod_TPB_LINEWH(); DataSet ds = TransactionHelper.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 获取工位ERP代码 /// </summary> /// <param name="staCode"></param> /// <returns></returns> public string GetStaErpCode(string staCode) { string sql = $"SELECT MAX(C_STA_ERPCODE) FROM TB_STA WHERE C_STA_CODE='{staCode}'"; return(TransactionHelper.Query(sql).Tables[0].Rows[0][0]?.ToString()); }
//NF.DAL.I.Dal_Interface_FR bll_Interface_FR = new NF.DAL.I.Dal_Interface_FR(); /// <summary> /// 转矩操作 /// </summary> /// <param name="lineCode">目标仓库</param> /// <param name="inventoryItems">转库数据</param> public void SaveInventory2(string lineCode, List <WWInventoryItem> inventoryItems) { List <string> zkIds = new List <string>(); TransactionHelper.BeginTransaction(); try { foreach (var item in inventoryItems) { string sql = $@" select t.* from TRC_ROLL_PRODCUT T WHERE T.C_BATCH_NO='{item.BatchNo}' AND T.C_STL_GRD='{item.Gz}' AND T.C_STD_CODE='{item.Zxbz}' AND T.C_SPEC='{item.Spec}' AND T.C_LINEWH_CODE = '{item.InventoryCode}' "; // 验证库存是否足够 var list = TransactionHelper.Query(sql).Tables[0].DataTableToList2 <Mod_TRC_ROLL_PRODCUT>(); if (list.Count < item.Number) { throw new Exception("库存不够,不能转库"); } foreach (var pItem in list.Take(item.Number)) { // 设置转库及未上传NC状态 TransactionHelper.ExecuteSql($"UPDATE TRC_ROLL_PRODCUT SET " + $"C_LINEWH_CODE='{lineCode}',C_IS_TB='N' WHERE C_ID='{pItem.C_ID}'"); } // 订单物料信息 var mtrlItem = dal_TB_MATRL_MAIN.GetModel(item.MtrlCode); var batchItem = list.FirstOrDefault(); string zkd = (DateTime.Now.Year.ToString().Substring(2, 2)) + (Convert.ToInt32(DateTime.Now.Month) > 9 ? DateTime.Now.Month.ToString() : ("0" + DateTime.Now.Month.ToString())) + (Convert.ToInt32(DateTime.Now.Day) > 9 ? DateTime.Now.Day.ToString() : ("0" + DateTime.Now.Day.ToString())); //转库单号 string maxzkd = GetZKDNO(zkd); //查询当天最大转库单号 long no = 0; if (maxzkd == "0") { no = Convert.ToInt64(zkd + "0001"); } else { no = Convert.ToInt64(maxzkd.Substring(2, maxzkd.Length - 2)) + 1; } zkd = "ZK" + no; var zkId = zkd; zkIds.Add(zkId); // 转换仓库code为ID string getLinewhId = "select t.C_ID from TPB_LINEWH T WHERE T.C_LINEWH_CODE='{0}'"; var targetLinewhId = TransactionHelper.GetSingle(string.Format(getLinewhId, lineCode)) as string; var lineWhId = TransactionHelper.GetSingle(string.Format(getLinewhId, item.InventoryCode)) as string; dalZkd.Add(new Mod_TRC_ROLL_ZKD { C_BATCH_NO = item.BatchNo, C_BZYQ = item.BZYQ, C_EMP_ID = "1001NC100000002SS9XB", C_F_DW = mtrlItem.C_PK_MEASDOC, C_JUDGE_LEV_ZH = batchItem.C_JUDGE_LEV_ZH, C_LINEWH_CODE = item.InventoryCode, C_MAT_CODE = item.MtrlCode, C_MAT_DESC = batchItem.C_MAT_DESC, C_MBLINEWH_CODE = lineCode, C_SPEC = batchItem.C_SPEC, C_STL_GRD = batchItem.C_STL_GRD, C_STOVE = batchItem.C_STOVE, C_ZKD_NO = zkId,//转库单号 C_ZYX1 = batchItem.C_ZYX1, C_ZYX2 = batchItem.C_ZYX2, C_ZYX4 = batchItem.C_STD_CODE, C_Z_DW = mtrlItem.C_PK_MEASDOC, D_MOD_DT = DateTime.Now, D_PRODUCE_DATE = batchItem.D_MOD_DT, N_NUM = item.Number, N_STATUS = 1, N_WGT = list.Take(item.Number).Sum(w => w.N_WGT), C_LINEWH_ID = lineWhId, C_MBLINEWH_ID = targetLinewhId, }, true); } TransactionHelper.Commit(); } catch (Exception ex) { TransactionHelper.RollBack(); throw ex; } // 发送NC foreach (var item in zkIds) { string directory = $"{AppDomain.CurrentDomain.BaseDirectory}"; if (Directory.Exists(directory) == false) { Directory.CreateDirectory(directory); } var result4i = dal_zk4i.SendXml_GP(directory, item); var result4a = dal_zk4a.SendXml_GP(directory, item); if (result4i != "1") { throw new Exception(GetNCError(result4i)); } if (result4a != "1") { throw new Exception(GetNCError(result4a)); } } }
/// <summary> /// 发送发运单到中间表 /// </summary> /// <param name="fydid">要发送的发运单号</param> /// <returns>返回int类型 1转入成功-1发送失败</returns> public string ADDFYDToZJB(string fydid, DateTime dateTime) { try { TransactionHelper.BeginTransaction(); #region MyRegion string rjhsql = "SELECT C_PLAN_ID,C_ID,C_MAT_CODE,C_STD_CODE,C_SEND_STOCK_CODE,c_Judge_Lev_Zh,C_PACK,N_FYZS,N_FYWGT,N_MWGT,N_PWGT,N_JWGT,C_MZDATE, C_PZDATE,N_MZTIME,N_PZTIME FROM TMD_DISPATCHDETAILS WHERE C_DISPATCH_ID='" + fydid + "'"; DataTable plandt = TransactionHelper.Query(rjhsql).Tables[0]; if (plandt.Rows.Count < 0) { TransactionHelper.RollBack(); return("未查询到发运单子表数据!"); } foreach (DataRow planrow in plandt.Rows) { int plannum = Convert.ToInt32(planrow["N_FYZS"]);//发运数量 string mzstr = planrow["N_MWGT"].ToString(); string pzstr = planrow["N_PWGT"].ToString(); string jzstr = planrow["N_JWGT"].ToString(); #region 获取出库单 string no = DateTime.Now.Year.ToString() + (Convert.ToInt32(DateTime.Now.Month) > 9 ? DateTime.Now.Month.ToString() : ("0" + DateTime.Now.Month.ToString())) + (Convert.ToInt32(DateTime.Now.Day) > 9 ? DateTime.Now.Day.ToString() : ("0" + DateTime.Now.Day.ToString())); //转库单号 string maxckd = GetCKDNO(no); //查询当天最大转库单 if (maxckd == "0") { no = no + "0001"; } else { no = (Convert.ToInt64(maxckd.Substring(2, maxckd.Length - 2)) + 1).ToString(); } no = "GP" + no; #endregion #region 获取钢坯实绩 DataTable dt1 = GetListByidstr(fydid, planrow["C_MAT_CODE"].ToString(), planrow["C_STD_CODE"].ToString(), planrow["C_SEND_STOCK_CODE"].ToString(), planrow["c_Judge_Lev_Zh"].ToString(), "1").Tables[0];//要传输的发运单数据 if (dt1.Rows.Count < 1) { TransactionHelper.RollBack(); return("根据发运单子表查询钢坯实绩错误!"); } int fpnum = 0; //string idstr = ""; foreach (DataRow xqitem in dt1.Rows) { fpnum += Convert.ToInt32(xqitem["N_NUM"]); ////if (plannum == fpnum) ////{ //// break; ////} //idstr += "'" + xqitem["C_ID"] + "',"; //fpnum++; } //idstr = idstr.Substring(0, idstr.Length - 1); //#region 变更钢坯实绩 //if (BJBynum(idstr) == 0) //{ // TransactionHelper.RollBack(); // return "根据发运单子表变更钢坯实绩错误!"; //} //#endregion //DataTable sjdt = GetListByidstr(idstr).Tables[0];//要传输的发运单数据 if (mzstr == "") { foreach (DataRow item1 in dt1.Rows) { int num = Convert.ToInt32(item1["N_NUM"]); #region 添加中间表 string sql = ""; sql += "insert into TMD_DISPATCH_SJZJB(C_DISPATCH_ID,N_NUM,N_STATUS,C_CKDH,C_SEND_STOCK,C_STOVE,C_BATCH_NO,C_PLAN_ID,C_STL_GRD,C_STD_CODE,C_SPEC,C_PK_NCID,C_ZLDJ,C_BZYQ,D_CKSJ,C_MAT_CODE,C_MAT_NAME,C_TICK_STR,N_WGT,N_JZ,N_MWGT,N_PWGT,C_MZDATE,C_PZDATE,N_MZTIME,N_PZTIME) values('" + fydid + "','" + num + "','6','" + no + "','" + item1["C_SLABWH_CODE"] + "','" + item1["C_STOVE"] + "','" + item1["C_BATCH_NO"] + "','" + planrow["C_PLAN_ID"].ToString() + "','" + item1["C_STL_GRD"] + "','" + item1["C_STD_CODE"] + "','" + item1["C_SPEC"] + "','" + planrow["C_ID"].ToString() + "','" + item1["C_JUDGE_LEV_ZH"].ToString() + "','',to_date('" + dateTime + "', 'yyyy-mm-dd hh24:mi:ss'),'" + item1["C_MAT_CODE"].ToString() + "','" + item1["C_MAT_NAME"].ToString() + "','','" + item1["N_WGT"].ToString() + "','','','','','','','')"; if (TransactionHelper.ExecuteSql(sql) == 0) { TransactionHelper.RollBack(); return("条件发运单中间表错误!"); } #endregion } } else { decimal smz = Convert.ToDecimal(planrow["N_MWGT"]); //总毛重 decimal spz = Convert.ToDecimal(planrow["N_PWGT"]); //总皮重 decimal sjz = Convert.ToDecimal(planrow["N_JWGT"]); //总净重 string C_MZDATE = planrow["C_MZDATE"].ToString(); //获取毛重日期 string C_PZDATE = planrow["C_PZDATE"].ToString(); //获取皮重日期 string N_MZTIME = planrow["N_MZTIME"].ToString(); //获取毛重时间 string N_PZTIME = planrow["N_PZTIME"].ToString(); //获取皮重时间 decimal mz = smz / fpnum; //获取毛重 decimal pz = spz / fpnum; //获取皮重 decimal jz = sjz / fpnum; //获取净重 decimal bjmz = 0; decimal bjpz = 0; decimal bjjz = 0; int bjnum = 0; foreach (DataRow item1 in dt1.Rows) { int num = Convert.ToInt32(item1["N_NUM"]); decimal sjmz = decimal.Round(mz * num, 2); decimal sjpz = decimal.Round(pz * num, 2); decimal sjjz = decimal.Round(jz * num, 2); bjnum++; bjmz += sjmz; bjpz += sjpz; bjjz += sjjz; if (bjnum == dt1.Rows.Count) { sjmz = smz - bjmz; sjpz = spz - bjpz; sjjz = sjz - bjjz; } #region 添加中间表 string sql = ""; sql += "insert into TMD_DISPATCH_SJZJB(C_DISPATCH_ID,N_NUM,N_STATUS,C_CKDH,C_SEND_STOCK,C_STOVE,C_BATCH_NO,C_PLAN_ID,C_STL_GRD,C_STD_CODE,C_SPEC,C_PK_NCID,C_ZLDJ,C_BZYQ,D_CKSJ,C_MAT_CODE,C_MAT_NAME,C_TICK_STR,N_WGT,N_JZ,N_MWGT,N_PWGT,C_MZDATE,C_PZDATE,N_MZTIME,N_PZTIME) values('" + fydid + "','" + num + "','6','" + no + "','" + item1["C_SLABWH_CODE"] + "','" + item1["C_STOVE"] + "','" + item1["C_BATCH_NO"] + "','" + planrow["C_PLAN_ID"].ToString() + "','" + item1["C_STL_GRD"] + "','" + item1["C_STD_CODE"] + "','" + item1["C_SPEC"] + "','" + planrow["C_ID"].ToString() + "','" + item1["C_JUDGE_LEV_ZH"].ToString() + "','',to_date('" + dateTime + "', 'yyyy-mm-dd hh24:mi:ss'),'" + item1["C_MAT_CODE"].ToString() + "','" + item1["C_MAT_NAME"].ToString() + "','','" + item1["N_WGT"].ToString() + "','" + sjjz + "','" + sjmz + "','" + sjpz + "','" + C_MZDATE + "','" + C_PZDATE + "','" + N_MZTIME + "','" + N_MZTIME + "')"; if (TransactionHelper.ExecuteSql(sql) == 0) { TransactionHelper.RollBack(); return("条件发运单中间表错误!"); } } #endregion } #endregion } #endregion TransactionHelper.Commit(); return("1"); } catch (Exception ex) { TransactionHelper.RollBack(); return(ex.ToString()); } }