Пример #1
0
        /// <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()));
        }
Пример #2
0
        /// <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);
            }
        }
Пример #5
0
        /// <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);
            }
        }
Пример #6
0
        /// <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());
        }
Пример #7
0
        //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));
                }
            }
        }
Пример #8
0
        /// <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());
            }
        }