private void button1_Click(object sender, EventArgs e) { string queryValue = this.textBox1.Text; CodeRule codeR = codeRuleService.queryRuleById(queryValue); if (codeR != null) { this.textBox2.Text = codeR.RuleDesc; this.textBox3.Text = codeR.Opuser; this.textBox4.Text = codeR.Createtime; this.dataGridView1.DataSource = codeR.RuleItem; //DGV 改變列名,列寬 this.dataGridView1.Columns[0].Visible = false; this.dataGridView1.Columns[0].Width = 0; this.dataGridView1.Columns[1].HeaderText = "規則編號"; this.dataGridView1.Columns[1].Width = 80; this.dataGridView1.Columns[2].HeaderText = "流水編號"; this.dataGridView1.Columns[2].Width = 80; this.dataGridView1.Columns[3].HeaderText = "規則類型"; this.dataGridView1.Columns[3].Width = 80; this.dataGridView1.Columns[4].HeaderText = "規則值"; this.dataGridView1.Columns[4].Width = 80; this.dataGridView1.Columns[5].HeaderText = "規則長度"; this.dataGridView1.Columns[5].Width = 80; this.dataGridView1.Columns[6].HeaderText = "操作用戶"; this.dataGridView1.Columns[6].Width = 80; this.dataGridView1.Columns[7].HeaderText = "創建時間"; this.dataGridView1.Columns[7].Width = 140; this.dataGridView1.Columns[8].HeaderText = "修改時間"; this.dataGridView1.Columns[8].Width = 140; this.dataGridView1.Columns[9].Visible = false; this.dataGridView1.Columns[9].Width = 0; } }
public static String gennerateQualityNo(string ruleNo) { StringBuilder qualityNo = new StringBuilder(); CodeRule codeRule = codeRuleService.queryRuleById(ruleNo); if (codeRule != null) { foreach (RuleItem ruleItem in codeRule.RuleItem) { int ruleInt = ruleItem.Rulelength; switch (ruleItem.Ruletype) { case "T001": break; case "T002": qualityNo.Append(GenerateTimeCode(ruleInt)); break; case "T003": break; case "T004": break; case "T005": break; case "T006": //流水碼34進制 break; case "T007": qualityNo.Append(ruleItem.Rulevalue); break; case "T008": break; case "T009": //机种号3-7位 break; case "T010": break; case "T011": //流水码十六进制 string maxQualityNo = qualityInfoService.queryMaxQualityNo(qualityNo.ToString()); string prefixQualityNo = qualityNo.ToString(); if (maxQualityNo == null || maxQualityNo == "") { string seqCode = "1"; for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++) { seqCode = "0" + seqCode; } qualityNo.Append(seqCode); } else { //獲取流水號 string subCode = maxQualityNo.Substring(prefixQualityNo.Length, Convert.ToInt32(ruleItem.Rulelength)); int qualitySeq = convert16CodeTo10(subCode); string quality16Code = Convert16Code(qualitySeq + 1); string seqNo = ""; for (int i = quality16Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++) { seqNo += 0; } quality16Code = seqNo + quality16Code; qualityNo.Append(quality16Code); } break; case "T012": //43码 String prefix = qualityNo.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]; qualityNo.Append(modString); break; case "T013": //十進制流水碼 string maxQuality10 = qualityInfoService.queryMaxQualityNo(qualityNo.ToString()); string prefixQuality10 = qualityNo.ToString(); if (maxQuality10 == null || maxQuality10 == "") { string seqCode = "1"; for (int numLength = seqCode.Length; numLength < Convert.ToInt32(ruleItem.Rulelength); numLength++) { seqCode = "0" + seqCode; } qualityNo.Append(seqCode); } else { //獲取流水號 string subCode10 = maxQuality10.Substring(prefixQuality10.Length, Convert.ToInt32(ruleItem.Rulelength)); int qualitySeq10 = int.Parse(subCode10); string quality10Code = (qualitySeq10 + 1).ToString(); string seqNo = ""; for (int i = quality10Code.Length; i < Convert.ToInt32(ruleItem.Rulelength); i++) { seqNo += 0; } quality10Code = seqNo + quality10Code; qualityNo.Append(quality10Code); } break; case "T015": //年月日進制表示 qualityNo.Append(getInsuprTime()); break; case "T016": //浪潮批次号 break; case "T017": //批次号 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); qualityNo.Append(h3cTime.ToString()); break; case "T019": //工单十进制流水 break; case "T020": break; } } } return(qualityNo.ToString()); }
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); }