Exemplo n.º 1
0
        /*
         *生成拨烟数据:101|总长度(四位)任务号(八位)订单总数量(四位)烟仓号A(两位)打几下(三位)烟仓号B(两位)打几下(三位);下一个任务号。。。
         *
         */
        public string allocateCigarStr(out String tasknums)
        {
            string retStr       = "101|";
            String cigarDataStr = getAllocateCigarDataFromDB(out tasknums);
            //计算字符串总长度

            int StrLen = 4 + 4 + cigarDataStr.Length;
            //拼接长度串

            String StrLenStr = SortingPub.formatData(StrLen.ToString(), 4);

            retStr = retStr + StrLenStr + cigarDataStr;
            return(retStr);
        }
Exemplo n.º 2
0
        /*
         * 从数据库取拨烟数据,任务号(八位)订单总数量(四位)烟仓号A(两位)打几下(三位)烟仓号B(两位)打几下(三位);下一个任务号。。。
         *
         */
        public string getAllocateCigarDataFromDB(out String tasknums)
        {
            string retStr = "";

            tasknums = "";
            ht.Clear();
            //String sql = "SELECT *  FROM ( SELECT rownum seq, a.*  FROM (select * from t_produce_poke t  WHERE T.status='10' order by to_number(tasknum)) a )WHERE seq  >=1	AND seq <200";
            String           sql    = "SELECT a.*,b.regioncode,b.taskquantity  FROM t_produce_poke a,t_produce_task b WHERE a.tasknum=b.tasknum AND a.tasknum IN( SELECT tasknum  FROM (select DISTINCT tasknum from t_produce_poke t  WHERE T.status='10' order by tasknum) WHERE ROWNUM <4 ) and status='10' ORDER BY b.regioncode,a.tasknum";
            OracleDataReader myread = DataPublic.ReadDb(sql);

            try
            {
                String taskNum = "", taskQty = "", troughNum = "", pokeNum = "", regioncode = "";
                String taskNumTemp = "";
                String export      = "";
                //ht = new Hashtable();
                while (myread.Read())
                {
                    taskNum = myread["tasknum"].ToString().Trim();

                    taskQty    = myread["taskquantity"].ToString().Trim();
                    regioncode = myread["regioncode"].ToString().Trim();
                    export     = myread["export"].ToString().Trim();
                    if (export.Equals("L"))
                    {
                        export = "1";
                    }
                    else
                    {
                        export = "2";
                    }
                    if (!taskNumTemp.Equals(taskNum))
                    {
                        tasknums += "," + taskNum;

                        //增加一个新任务号前,判断组装的字符串长度,所有拼接后的长度不能超过4000字节。

                        if (retStr.Length > 3500)
                        {
                            break;
                        }
                        if (!ht_taskinfo.ContainsKey(taskNum))
                        {
                            ht.Add(SortingPub.formatData(taskNum, 8), "0");//hashtable 存放任务号和0,表示未完成分拣
                            ht_taskinfo.Add(taskNum, regioncode + "-" + taskQty);
                        }//存放 任务号对应的车组和任务数量  用于更新分拣数据
                        retStr += ";" + SortingPub.formatData(taskNum, 8) + export;
                        retStr += SortingPub.formatData(taskQty, 4);
                        //已经取过的更新status为15


                        /*临时
                         * troughNum = myread["troughNum"].ToString().Trim();
                         * pokeNum = myread["pokeNum"].ToString().Trim();
                         *
                         * retStr += SortingPub.formatData(troughNum, 2);
                         * retStr += SortingPub.formatData(pokeNum, 3);
                         * taskNumTemp = taskNum;*/
                    }
                    troughNum = myread["machineseq"].ToString().Trim();
                    pokeNum   = myread["pokeNum"].ToString().Trim();

                    retStr     += SortingPub.formatData(troughNum, 2);
                    retStr     += SortingPub.formatData(pokeNum, 3);
                    taskNumTemp = taskNum;
                }
            }
            finally
            {
                myread.Close();
                myread.Dispose();
            }
            if (ht != null)
            {
                htSize += ht.Count;
            }
            if (retStr.Length > 0)
            {
                retStr = retStr.Substring(1) + ".";
            }
            return(retStr);
        }