コード例 #1
0
        public bool saveWoBatch(WoBatch woBatch)
        {
            bool          saveMark = true;
            StringBuilder strSql   = new StringBuilder();

            strSql.Append("insert into t_wo_batchno (uuid,work_no,batchNo,batchType,op_user,create_time)");
            strSql.Append("values(@uuid,@workno,@batchNo,@batchType,@opuser,@createtime)");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@uuid",       MySqlDbType.VarChar, 900),
                new MySqlParameter("@workno",     MySqlDbType.VarChar, 900),
                new MySqlParameter("@batchNo",    MySqlDbType.VarChar, 900),
                new MySqlParameter("@batchType",  MySqlDbType.VarChar, 900),
                new MySqlParameter("@opuser",     MySqlDbType.VarChar, 900),
                new MySqlParameter("@createtime", MySqlDbType.VarChar, 900)
            };
            parameters[0].Value = woBatch.Uuid;
            parameters[1].Value = woBatch.Workno;
            parameters[2].Value = woBatch.BatchNo;
            parameters[3].Value = woBatch.BatchType;
            parameters[4].Value = woBatch.Opuser;
            parameters[5].Value = woBatch.Createtime;
            int rows = SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionString, CommandType.Text, strSql.ToString(), parameters);

            if (rows > 0)
            {
                saveMark = true;
            }
            else
            {
                saveMark = false;
            }
            return(saveMark);
        }
コード例 #2
0
 /// <summary>
 /// 根据工单号查询装箱单批次.
 /// </summary>
 /// <param name="workNo"></param>
 /// <returns></returns>
 public bool saveWoBatch(WoBatch woBatch)
 {
     woBatch.Uuid       = Auxiliary.Get_UUID();
     woBatch.Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     woBatch.Opuser     = Auxiliary.loginName;
     return(woBatchDao.saveWoBatch(woBatch));
 }
コード例 #3
0
        public static Pallet generatePalletNo(Pallet pallet, CodeRule codeRule)
        {
            StringBuilder palletNo = new StringBuilder();

            if (codeRule != null)
            {
                foreach (RuleItem ruleItem in codeRule.RuleItem)
                {
                    int ruleInt = ruleItem.Rulelength;
                    switch (ruleItem.Ruletype)
                    {
                    case "T001":
                        string poOrWorkNo = "";
                        if (pallet.Cuspo != null && pallet.Cuspo != "")
                        {
                            poOrWorkNo = pallet.Cuspo;
                        }
                        else
                        {
                            poOrWorkNo = pallet.Workno;
                        }
                        palletNo.Append(poOrWorkNo.Substring(0, ruleInt));
                        break;

                    case "T002":
                        palletNo.Append(GenerateTimeCode(ruleInt));
                        break;

                    case "T003":
                        palletNo.Append(pallet.Cusmatno.Trim().Substring(0, ruleInt));
                        break;

                    case "T004":
                        break;

                    case "T005":
                        break;

                    case "T006":            //流水碼34進制
                        break;

                    case "T007":
                        palletNo.Append(ruleItem.Rulevalue);
                        break;

                    case "T008":
                        string subOperation = extractString(pallet.SoOrder, ruleInt);
                        palletNo.Append(subOperation);
                        break;

                    case "T009":
                        //机种号3-7位
                        palletNo.Append(pallet.Delmatno.Substring(2, 5));
                        break;

                    case "T010":
                        break;

                    case "T011":
                        //流水码十六进制
                        string maxPallet    = palletService.queryMaxPalletNo(palletNo.ToString());
                        string prefixPallet = palletNo.ToString();
                        if (maxPallet == null || maxPallet == "")
                        {
                            string seqCode = "1";
                            for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++)
                            {
                                seqCode = "0" + seqCode;
                            }
                            palletNo.Append(seqCode);
                        }
                        else
                        {
                            //獲取流水號
                            string subCode      = maxPallet.Substring(prefixPallet.Length, Convert.ToInt32(ruleItem.Rulelength));
                            int    palletSeq    = convert16CodeTo10(subCode);
                            string pallet16Code = Convert16Code(palletSeq + 1);
                            string seqNo        = "";
                            for (int i = pallet16Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++)
                            {
                                seqNo += 0;
                            }
                            pallet16Code = seqNo + pallet16Code;
                            palletNo.Append(pallet16Code);
                        }
                        break;

                    case "T012":
                        String prefix = palletNo.ToString();
                        int    modNum = 0;
                        foreach (char result in prefix.ToCharArray())
                        {
                            string exchangeInt = result.ToString();
                            int    numExchange = inverseBase43Code[exchangeInt];
                            modNum += numExchange;
                        }
                        int    modReuslt = modNum % 43;
                        string modString = base43Code[modReuslt];
                        palletNo.Append(modString);
                        break;

                    case "T013":                    //十進制流水碼
                        string maxPallet10    = palletService.queryMaxPalletNo(palletNo.ToString());
                        string prefixPallet10 = palletNo.ToString();
                        if (maxPallet10 == null || maxPallet10 == "")
                        {
                            string seqCode = "1";
                            for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++)
                            {
                                seqCode = "0" + seqCode;
                            }
                            palletNo.Append(seqCode);
                        }
                        else
                        {
                            //獲取流水號
                            string subCode10    = maxPallet10.Substring(prefixPallet10.Length, Convert.ToInt32(ruleItem.Rulelength));
                            int    palletSeq10  = int.Parse(subCode10);
                            string pallet10Code = (palletSeq10 + 1).ToString();
                            string seqNo        = "";
                            for (int i = pallet10Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++)
                            {
                                seqNo += 0;
                            }
                            pallet10Code = seqNo + pallet10Code;
                            palletNo.Append(pallet10Code);
                        }

                        break;

                    case "T015":                    //年月日進制表示
                        palletNo.Append(getInsuprTime());
                        break;

                    case "T016":                            //浪潮批次号


                        string woBatchNo  = woBatchService.getBatchNoByWO(pallet.Workno);               //查询工单批次号
                        string batchSeqNo = "1";
                        if (woBatchNo != null && !woBatchNo.Equals(""))
                        {
                            pallet.BatchNo = woBatchNo;
                            palletNo.Clear();
                            palletNo.Append(woBatchNo);
                        }
                        else
                        {
                            string        queryCond = getInsuprTime() + "Q";
                            List <String> batchNos  = woBatchService.queryBatchNos(queryCond);
                            if (batchNos != null && batchNos.Count > 0)
                            {
                                int maxNo = 0;
                                foreach (string batchNo in batchNos)
                                {
                                    int tempMathNo = InverseBase34Code[batchNo.Substring(batchNo.Length - 1, 1)];
                                    if (tempMathNo > maxNo)
                                    {
                                        maxNo = tempMathNo;
                                    }
                                }
                                batchSeqNo = Base34Code[maxNo + 1];
                            }
                            palletNo.Append(batchSeqNo);
                            pallet.BatchNo = palletNo.ToString();
                            //保存工单批次
                            WoBatch woBatch = new WoBatch();
                            woBatch.BatchNo = pallet.BatchNo;
                            woBatch.Workno  = pallet.Workno;
                            woBatchService.saveWoBatch(woBatch);                        //占用工单批次
                        }
                        break;

                    case "T017":                    //批次号
                        //string selfBatchNo = cartonService.queryBatchNoWorkNo(cartonNo.ToString(), carton.Workno);
                        //string batchCustom = "1";
                        //if (selfBatchNo != null)
                        //{
                        //    batchCustom = selfBatchNo.Substring(cartonNo.Length, ruleItem.Rulelength);
                        //}
                        //else
                        //{
                        //    selfBatchNo = cartonService.queryInspurMaxBoxNo(cartonNo.ToString(), carton.Cusno);
                        //    if (selfBatchNo != null)
                        //    {
                        //        string tempBatchNo = selfBatchNo.Substring(cartonNo.Length, ruleItem.Rulelength);
                        //        int tempMathNo = int.Parse(tempBatchNo);
                        //        batchCustom = (tempMathNo + 1).ToString();
                        //    }
                        //    string tempZero = "";
                        //    for (int i = batchCustom.Length; i < ruleItem.Rulelength; i++)
                        //    {
                        //        tempZero = 0 + tempZero;
                        //    }
                        //    batchCustom = tempZero + batchCustom;
                        //}
                        //cartonNo.Append(batchCustom);
                        //carton.BatchNo = cartonNo.ToString();
                        break;

                    case "T018":                    //年月日進制表示
                        StringBuilder h3cTime       = new StringBuilder();
                        string        h3cYearString = DateTime.Now.Year.ToString();
                        int           h3cYearInt    = int.Parse(h3cYearString.Substring(h3cYearString.Length - 2)); //獲取兩位年
                        int           h3cInt        = DateTime.Now.Month;
                        string        h3cDD         = DateTime.Now.ToString("dd");                                  //获得两位日
                        h3cTime.Append(h3cYearInt);
                        h3cTime.Append(Base33Code[h3cInt]);
                        h3cTime.Append(h3cDD);
                        //             ctCode.Append(inspurTime.ToString());
                        palletNo.Append(h3cTime.ToString());

                        break;

                    case "T019":                    //工单十进制流水
                    case "T020":

                        break;
                    }
                }
            }
            pallet.PalletNo = palletNo.ToString();
            return(pallet);
        }
コード例 #4
0
        public static Carton generateCartonNo(Carton carton, CodeRule codeRule, DateTime currentTime)
        {
            StringBuilder cartonNo = new StringBuilder();

            if (codeRule != null)
            {
                foreach (RuleItem ruleItem in codeRule.RuleItem)
                {
                    int ruleInt = ruleItem.Rulelength;
                    switch (ruleItem.Ruletype)
                    {
                    case "T001":
                        string poOrWorkNo = "";
                        if (carton.Cuspo != null && carton.Cuspo != "")
                        {
                            poOrWorkNo = carton.Cuspo;
                        }
                        else
                        {
                            poOrWorkNo = carton.Workno;
                        }
                        cartonNo.Append(poOrWorkNo.Substring(0, ruleInt));
                        break;

                    case "T002":
                        cartonNo.Append(GenerateTimeCode(ruleInt, currentTime));
                        break;

                    case "T003":
                        cartonNo.Append(carton.Cusmatno.Trim().Substring(0, ruleInt));
                        break;

                    case "T004":
                        string assistT004 = carton.Offino.Trim().Substring(0, ruleInt);
                        cartonNo.Append(assistT004);
                        break;

                    //case "T005":
                    //    string assistT005 = "A10";
                    //    if (carton.Verno.Length > ruleInt)
                    //    {
                    //        assistT005 = carton.Verno.Trim().Substring(0, ruleInt);
                    //    }
                    //    cartonNo.Append(assistT005);
                    //    break;
                    case "T006":            //流水碼34進制
                        break;

                    case "T007":
                        cartonNo.Append(ruleItem.Rulevalue);
                        break;

                    case "T008":
                        string subOperation = extractString(carton.SoOrder, ruleInt);
                        cartonNo.Append(subOperation);
                        break;

                    case "T009":
                        //机种号3-7位
                        cartonNo.Append(carton.Delmatno.Substring(2, 5));
                        break;

                    case "T010":
                        cartonNo.Append(carton.ProdLineVal);
                        break;

                    case "T011":
                        //流水码十六进制
                        string maxCarton    = cartonService.getMaxCartonNo(cartonNo.ToString());
                        string prefixCarton = cartonNo.ToString();
                        if (maxCarton == null || maxCarton == "")
                        {
                            string seqCode = "1";
                            for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++)
                            {
                                seqCode = "0" + seqCode;
                            }
                            cartonNo.Append(seqCode);
                        }
                        else
                        {
                            //獲取流水號
                            string subCode      = maxCarton.Substring(prefixCarton.Length, Convert.ToInt32(ruleItem.Rulelength));
                            int    cartonSeq    = convert16CodeTo10(subCode);
                            string carton16Code = Convert16Code(cartonSeq + 1);
                            string seqNo        = "";
                            for (int i = carton16Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++)
                            {
                                seqNo += 0;
                            }
                            carton16Code = seqNo + carton16Code;
                            cartonNo.Append(carton16Code);
                        }
                        break;

                    case "T012":
                        String prefix = cartonNo.ToString();
                        int    modNum = 0;
                        foreach (char result in prefix.ToCharArray())
                        {
                            string exchangeInt = result.ToString();
                            int    numExchange = inverseBase43Code[exchangeInt];
                            modNum += numExchange;
                        }
                        int    modReuslt = modNum % 43;
                        string modString = base43Code[modReuslt];
                        cartonNo.Append(modString);
                        break;

                    case "T013":                    //十進制流水碼
                        string maxCarton10    = cartonService.getMaxCartonNo(cartonNo.ToString());
                        string prefixCarton10 = cartonNo.ToString();
                        if (maxCarton10 == null || maxCarton10 == "")
                        {
                            string seqCode = "1";
                            for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++)
                            {
                                seqCode = "0" + seqCode;
                            }
                            cartonNo.Append(seqCode);
                        }
                        else
                        {
                            //獲取流水號
                            string subCode10    = maxCarton10.Substring(prefixCarton10.Length, Convert.ToInt32(ruleItem.Rulelength));
                            int    cartonSeq10  = int.Parse(subCode10);
                            string carton10Code = (cartonSeq10 + 1).ToString();
                            string seqNo        = "";
                            for (int i = carton10Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++)
                            {
                                seqNo += 0;
                            }
                            carton10Code = seqNo + carton10Code;
                            cartonNo.Append(carton10Code);
                        }

                        break;

                    case "T015":                    //年月日進制表示
                        cartonNo.Append(getInsuprTime(currentTime));
                        break;

                    case "T016":                                                          //浪潮批次号
                        string woBatchNo  = woBatchService.getBatchNoByWO(carton.Workno); //查询工单批次号
                        string batchSeqNo = "1";
                        if (woBatchNo != null && !woBatchNo.Equals(""))
                        {
                            carton.BatchNo = woBatchNo;
                            cartonNo.Clear();
                            cartonNo.Append(woBatchNo);
                        }
                        else
                        {
                            string        queryCond = getInsuprTime(currentTime) + "Q";
                            List <String> batchNos  = woBatchService.queryBatchNos(queryCond);
                            if (batchNos != null && batchNos.Count > 0)
                            {
                                int maxNo = 0;
                                foreach (string batchNo in batchNos)
                                {
                                    int tempMathNo = InverseBase34Code[batchNo.Substring(batchNo.Length - 1, 1)];
                                    if (tempMathNo > maxNo)
                                    {
                                        maxNo = tempMathNo;
                                    }
                                }
                                batchSeqNo = Base34Code[maxNo + 1];
                            }
                            cartonNo.Append(batchSeqNo);
                            carton.BatchNo = cartonNo.ToString();
                            //保存工单批次
                            WoBatch woBatch = new WoBatch();
                            woBatch.BatchNo = carton.BatchNo;
                            woBatch.Workno  = carton.Workno;
                            woBatchService.saveWoBatch(woBatch);                        //占用工单批次
                        }
                        break;

                    case "T017":                    //批次号
                        string selfBatchNo = cartonService.queryBatchNoWorkNo(cartonNo.ToString(), carton.Workno);
                        string batchCustom = "1";
                        if (selfBatchNo != null)
                        {
                            batchCustom = selfBatchNo.Substring(cartonNo.Length, ruleItem.Rulelength);
                        }
                        else
                        {
                            selfBatchNo = cartonService.queryInspurMaxBoxNo(cartonNo.ToString(), carton.Cusno);
                            if (selfBatchNo != null)
                            {
                                string tempBatchNo = selfBatchNo.Substring(cartonNo.Length, ruleItem.Rulelength);
                                int    tempMathNo  = int.Parse(tempBatchNo);
                                batchCustom = (tempMathNo + 1).ToString();
                            }
                            string tempZero = "";
                            for (int i = batchCustom.Length; i < ruleItem.Rulelength; i++)
                            {
                                tempZero = 0 + tempZero;
                            }
                            batchCustom = tempZero + batchCustom;
                        }
                        cartonNo.Append(batchCustom);
                        carton.BatchNo = cartonNo.ToString();
                        break;

                    case "T018":                    //年月日進制表示
                        StringBuilder h3cTime       = new StringBuilder();
                        string        h3cYearString = currentTime.Year.ToString();
                        int           h3cYearInt    = int.Parse(h3cYearString.Substring(h3cYearString.Length - 2)); //獲取兩位年
                        int           h3cInt        = currentTime.Month;
                        string        h3cDD         = currentTime.ToString("dd");                                   //获得两位日
                        h3cTime.Append(h3cYearInt);
                        h3cTime.Append(Base33Code[h3cInt]);
                        h3cTime.Append(h3cDD);
                        cartonNo.Append(h3cTime.ToString());

                        break;

                    case "T019":                    //工单十进制流水
                        string maxCartonWO    = cartonService.getMaxCartonNoByWO(carton.Workno);
                        string prefixCartonWO = cartonNo.ToString();
                        if (maxCartonWO == null || maxCartonWO == "")
                        {
                            string seqCode = "1";
                            for (int numLength = seqCode.Length; numLength < ruleItem.Rulelength; numLength++)
                            {
                                seqCode = "0" + seqCode;
                            }
                            cartonNo.Append(seqCode);
                        }
                        else
                        {
                            //獲取流水號
                            string subCode10    = maxCartonWO.Substring(prefixCartonWO.Length, ruleItem.Rulelength);
                            int    cartonSeq10  = int.Parse(subCode10);
                            string carton10Code = (cartonSeq10 + 1).ToString();
                            string seqNo        = "";
                            for (int i = carton10Code.Length; i < ruleItem.Rulelength; i++)
                            {
                                seqNo += 0;
                            }
                            carton10Code = seqNo + carton10Code;
                            cartonNo.Append(carton10Code);
                        }
                        break;

                    case "T020":
                        string extractResult = extractString(carton.Woquantity, ruleInt);
                        cartonNo.Append(extractResult);
                        break;

                    case "T021":
                        cartonNo.Append(carton.Ct1);
                        break;

                    case "T022":                                                // 顺达标准-流水号
                        string maxBoxNo       = cartonService.getMaxCartonNo("103100");
                        string prefixCartonNo = cartonNo.ToString();
                        if (maxBoxNo == null || maxBoxNo == "")
                        {
                            string seqCode = "1";
                            for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++)
                            {
                                seqCode = "0" + seqCode;
                            }
                            cartonNo.Append(seqCode);
                        }
                        else
                        {
                            //獲取流水號
                            string subCode10    = maxBoxNo.Substring(prefixCartonNo.Length, Convert.ToInt32(ruleItem.Rulelength));
                            int    cartonSeq10  = int.Parse(subCode10);
                            string carton10Code = (cartonSeq10 + 1).ToString();
                            string seqNo        = "";
                            for (int i = carton10Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++)
                            {
                                seqNo += 0;
                            }
                            carton10Code = seqNo + carton10Code;
                            cartonNo.Append(carton10Code);
                        }
                        break;
                    }
                }
            }
            carton.CartonNo = cartonNo.ToString();
            return(carton);
        }
コード例 #5
0
        public List <CTCode> generateCTNumber(CTCode ctCodeInfo, int printQty, DateTime currentTime)
        {
            bool          judgeSerial = false;                                      //判断是否需要流水号
            List <CTCode> listCode    = new List <CTCode>();
            StringBuilder ctCode      = new StringBuilder();
            CodeRule      codeRule    = codeRuleService.queryRuleById(ctCodeInfo.Ruleno);

            if (codeRule != null)
            {
                foreach (RuleItem ruleItem in codeRule.RuleItem)
                {
                    int ruleInt = ruleItem.Rulelength;
                    switch (ruleItem.Ruletype)
                    {
                    case "T001":
                        string poOrWorkNo = "";
                        if (ctCodeInfo.Cuspo != null && ctCodeInfo.Cuspo != "")
                        {
                            poOrWorkNo = ctCodeInfo.Cuspo;
                        }
                        else
                        {
                            poOrWorkNo = ctCodeInfo.Workno;
                        }
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + poOrWorkNo.Substring(0, ruleInt);
                            }
                        }
                        else
                        {
                            ctCode.Append(poOrWorkNo.Substring(0, ruleInt));
                        }
                        break;

                    case "T002":
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + GenerateTimeCode(ruleInt, currentTime);
                            }
                        }
                        else
                        {
                            ctCode.Append(GenerateTimeCode(ruleInt, currentTime));
                        }
                        break;

                    case "T003":
                        string assistStr = "";
                        if (ctCodeInfo.Cusmatno.Length > ruleInt)
                        {
                            assistStr = ctCodeInfo.Cusmatno.Trim().Substring(0, ruleInt);
                        }
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + assistStr;
                            }
                        }
                        else
                        {
                            ctCode.Append(assistStr);
                        }
                        break;

                    case "T004":
                        if (ctCodeInfo.Offino.Trim().Length > ruleInt)
                        {
                            string assistT004 = ctCodeInfo.Offino.Trim().Substring(0, ruleInt);

                            if (listCode.Count > 1)
                            {
                                for (int i = 0; i < listCode.Count; i++)
                                {
                                    listCode[i].Ctcode = listCode[i].Ctcode + assistT004;
                                }
                            }
                            else
                            {
                                ctCode.Append(assistT004);
                            }
                        }
                        else
                        {
                            if (listCode.Count > 1)
                            {
                                for (int i = 0; i < listCode.Count; i++)
                                {
                                    listCode[i].Ctcode = listCode[i].Ctcode + ctCodeInfo.Offino.Trim();
                                }
                            }
                            else
                            {
                                ctCode.Append(ctCodeInfo.Offino.Trim());
                            }
                        }
                        break;

                    case "T005":
                        string assistT005 = "";
                        if (ctCodeInfo.Verno.Length > ruleInt)
                        {
                            assistT005 = ctCodeInfo.Verno.Trim().Substring(0, ruleInt);
                        }

                        if (listCode.Count >= 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + assistT005;
                            }
                        }
                        else
                        {
                            ctCode.Append(assistT005);
                        }
                        break;

                    case "T006":
                        judgeSerial = true;
                        string maxCode  = printM.getMaxCTCode(ctCode.ToString());
                        string prefixCT = ctCode.ToString();
                        if (maxCode == null || maxCode == "")
                        {
                            for (int i = 1; i <= printQty; i++)
                            {
                                CTCode ctCodeIn = new CTCode();
                                ctCodeIn = exchangeCT(ctCodeIn, ctCodeInfo);
                                string seqNo   = "";
                                string tempCT  = "";
                                string seqCode = Convert34Code(i);
                                for (int numLength = seqCode.Length; numLength < ruleInt; numLength++)
                                {
                                    seqNo += "0";
                                }
                                seqNo          += seqCode;
                                tempCT          = prefixCT + seqNo;
                                ctCodeIn.Ctcode = tempCT;
                                listCode.Add(ctCodeIn);
                            }
                            if (printQty == 1)
                            {
                                ctCode.Clear();
                                ctCode.Append(listCode[0].Ctcode);
                            }
                        }
                        else
                        {
                            //獲取流水號
                            string subCode = maxCode.Substring(ctCode.Length, ruleInt);
                            int    ctNo    = convert34CodeTo10(subCode);
                            for (int i = 0; i < printQty; i++)
                            {
                                CTCode ctCodeIn = new CTCode();
                                ctCodeIn = exchangeCT(ctCodeIn, ctCodeInfo);
                                ctNo++;
                                string ct34Code = Convert34Code(ctNo);
                                string temStr   = "";
                                string tempCT   = "";
                                for (int j = ct34Code.Length; j < ruleInt; j++)
                                {
                                    temStr += 0;
                                }
                                ct34Code        = temStr + ct34Code;
                                tempCT          = prefixCT + ct34Code;
                                ctCodeIn.Ctcode = tempCT;
                                listCode.Add(ctCodeIn);
                            }
                            if (printQty == 1)
                            {
                                ctCode.Clear();
                                ctCode.Append(listCode[0].Ctcode);
                            }
                        }
                        break;

                    case "T007":
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + ruleItem.Rulevalue;
                            }
                        }
                        else
                        {
                            ctCode.Append(ruleItem.Rulevalue);
                        }
                        break;

                    case "T008":
                        string subOperation = this.extractString(ctCodeInfo.SoOrder, ruleInt);
                        //ctCode.Append(subOperation);
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + subOperation;
                            }
                        }
                        else
                        {
                            ctCode.Append(subOperation);
                        }
                        break;

                    case "T013":                    //十進制流水碼
                        judgeSerial = true;
                        string maxTenCode  = printM.getMaxCTCode(ctCode.ToString());
                        string prefixTenCT = ctCode.ToString();
                        if (maxTenCode == null || maxTenCode == "")
                        {
                            for (int i = 1; i <= printQty; i++)
                            {
                                CTCode ctCodeIn = new CTCode();
                                ctCodeIn = exchangeCT(ctCodeIn, ctCodeInfo);
                                string seqNo   = "";
                                string tempCT  = "";
                                string seqCode = i.ToString();
                                for (int numLength = seqCode.Length; numLength < ruleInt; numLength++)
                                {
                                    seqNo += "0";
                                }
                                seqNo          += seqCode;
                                tempCT          = prefixTenCT + seqNo;
                                ctCodeIn.Ctcode = tempCT;
                                listCode.Add(ctCodeIn);
                            }
                            if (printQty == 1)
                            {
                                ctCode.Clear();
                                ctCode.Append(listCode[0].Ctcode);
                            }
                        }
                        else
                        {
                            //獲取流水號
                            string subCode = maxTenCode.Substring(ctCode.Length, ruleInt);
                            int    ctNo    = int.Parse(subCode);
                            for (int i = 0; i < printQty; i++)
                            {
                                CTCode ctCodeIn = new CTCode();
                                ctCodeIn = exchangeCT(ctCodeIn, ctCodeInfo);
                                ctNo++;
                                string ct34Code = ctNo.ToString();
                                string temStr   = "";
                                string tempCT   = "";
                                for (int j = ct34Code.Length; j < ruleInt; j++)
                                {
                                    temStr += 0;
                                }
                                ct34Code        = temStr + ct34Code;
                                tempCT          = prefixTenCT + ct34Code;
                                ctCodeIn.Ctcode = tempCT;
                                listCode.Add(ctCodeIn);
                            }
                            if (printQty == 1)
                            {
                                ctCode.Clear();
                                ctCode.Append(listCode[0].Ctcode);
                            }
                        }
                        break;

                    case "T014":                    //年月日進制表示
                        StringBuilder timeString = new StringBuilder();
                        string        yearString = currentTime.Year.ToString();
                        int           yearInt    = int.Parse(yearString.Substring(yearString.Length - 2)); //獲取兩位年
                        int           monthInt   = currentTime.Month;
                        int           dayInt     = currentTime.Day;
                        timeString.Append(Base31Code[yearInt]);
                        timeString.Append(Base31Code[monthInt]);
                        timeString.Append(Base31Code[dayInt]);
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + timeString.ToString();
                            }
                        }
                        else
                        {
                            ctCode.Append(timeString.ToString());
                        }
                        break;

                    case "T015":                    //浪潮年月日進制表示
                        if (listCode.Count > 1)
                        {
                            for (int i = 0; i < listCode.Count; i++)
                            {
                                listCode[i].Ctcode = listCode[i].Ctcode + getInsuprTime();
                            }
                        }
                        else
                        {
                            ctCode.Append(getInsuprTime());
                        }
                        break;

                    case "T016":                                                              //浪潮批次号
                        string woBatchNo  = woBatchService.getBatchNoByWO(ctCodeInfo.Workno); //查询工单批次号
                        string batchSeqNo = "1";
                        if (woBatchNo == null || woBatchNo.Equals(""))
                        {
                            string        queryCond = getInsuprTime() + "Q";
                            List <String> batchNos  = woBatchService.queryBatchNos(queryCond);
                            if (batchNos != null && batchNos.Count > 0)
                            {
                                int maxNo = 0;
                                foreach (string batch in batchNos)
                                {
                                    int tempMathNo = InverseBase34Code[batch.Substring(batch.Length - 1, 1)];
                                    if (tempMathNo > maxNo)
                                    {
                                        maxNo = tempMathNo;
                                    }
                                }
                                batchSeqNo = Base34Code[maxNo + 1];
                            }
                            if (listCode.Count > 1)
                            {
                                for (int i = 0; i < listCode.Count; i++)
                                {
                                    listCode[i].Ctcode = listCode[i].Ctcode + batchSeqNo;
                                }
                                woBatchNo = listCode[0].Ctcode;
                            }
                            else
                            {
                                ctCode.Append(batchSeqNo);
                                woBatchNo = ctCode.ToString();
                            }
                            //保存工单批次
                            WoBatch woBatch = new WoBatch();
                            woBatch.BatchNo = woBatchNo;
                            woBatch.Workno  = ctCodeInfo.Workno;
                            woBatchService.saveWoBatch(woBatch);                        //占用工单批次
                        }
                        else
                        {
                            if (listCode.Count > 1)
                            {
                                for (int i = 0; i < listCode.Count; i++)
                                {
                                    listCode[i].Ctcode = "";
                                    listCode[i].Ctcode = woBatchNo;
                                }
                            }
                            else
                            {
                                ctCode.Clear();
                                ctCode.Append(woBatchNo);
                            }
                        }

                        break;
                    }
                }
            }
            if (!judgeSerial)
            {
                for (int i = 1; i <= printQty; i++)
                {
                    CTCode ctCodeIn = new CTCode();
                    ctCodeIn        = exchangeCT(ctCodeIn, ctCodeInfo);
                    ctCodeIn.Ctcode = ctCode.ToString();
                    listCode.Add(ctCodeIn);
                }
            }
            if (printQty == 1)
            {
                listCode[0].Ctcode = ctCode.ToString();
            }
            return(listCode);
        }