| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Data.OleDb; | 
					
						
							|  |  |  |  | using System.IO; | 
					
						
							|  |  |  |  | using System.Security.Cryptography; | 
					
						
							|  |  |  |  | using System.Text; | 
					
						
							|  |  |  |  | using System.Diagnostics; | 
					
						
							|  |  |  |  | using System.Reflection; | 
					
						
							|  |  |  |  | using System.Web; | 
					
						
							|  |  |  |  | using System.Web.UI; | 
					
						
							|  |  |  |  | using System.Web.UI.WebControls; | 
					
						
							|  |  |  |  | using System.Net; | 
					
						
							|  |  |  |  | using System.Text.RegularExpressions; | 
					
						
							|  |  |  |  | using System.Globalization; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | using System.Runtime.Serialization.Json; | 
					
						
							|  |  |  |  | using Newtonsoft.Json; | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | using ThoughtWorks.QRCode.Codec; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | namespace DeiNiu.Utils | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |   //  public enum op_flag { add = 1, update, delete, getObj, queryAll, queryExample,queryActived,getPk, getCount};  | 
					
						
							|  |  |  |  | //    public enum ProjectStatus { <20><><EFBFBD><EFBFBD>δ<EFBFBD>ύ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>, <20><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>ͨ<EFBFBD><CDA8>, <20><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>δͨ<CEB4><CDA8>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>,ɾ<><C9BE>δ<EFBFBD>ύ,ɾ<><C9BE><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>,ɾ<><C9BE>Ԥ<EFBFBD><D4A4>ͨ<EFBFBD><CDA8>,ɾ<><C9BE>Ԥ<EFBFBD><D4A4>δͨ<CEB4><CDA8>,ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>,ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>,ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>,ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>,<2C><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> }; | 
					
						
							|  |  |  |  |     public enum FileType {Project,ProjectDetail,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼƻ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>ȼƻ<EFBFBD> }; | 
					
						
							|  |  |  |  |     public struct ProjectDetailStatus | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string <EFBFBD>¶<EFBFBD>δ<EFBFBD>ύ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22>¶<EFBFBD>δ<EFBFBD>ύ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string <EFBFBD>¶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ύ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22>¶<EFBFBD><C2B6><EFBFBD><EFBFBD>ύ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ԥ<EFBFBD><D4A4>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string Ԥ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "Ԥ<><D4A4>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string Ԥ<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "Ԥ<><D4A4>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     public struct ApproveRoles | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         public static string YuShen | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>ĿԤ<C4BF><D4A4>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string ShenHe | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string KaoHe | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ŀά<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀά<C4BF><CEAC>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |     public struct ProjectStatus | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ŀ<EFBFBD>ѷ<EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀ<EFBFBD>ѷ<EFBFBD><D1B7><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ŀδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀδ<C4BF><CEB4><EFBFBD><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>ύ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>δ<EFBFBD>ύ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ύ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ύ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ŀ<EFBFBD>ⶳ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀ<EFBFBD>ⶳ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |             public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |           public static string ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          public static string ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string ɾ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE>Ԥ<EFBFBD><D4A4>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |             public static string ɾ<EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE>Ԥ<EFBFBD><D4A4>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         | 
					
						
							|  |  |  |  |          public static string ɾ<EFBFBD><EFBFBD>δ<EFBFBD>ύ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE>δ<EFBFBD>ύ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ύ | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ύ"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |             public static string <EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string <EFBFBD><EFBFBD>Ŀδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "<22><>Ŀδ<C4BF><CEB4><EFBFBD><EFBFBD>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δͨ<CEB4><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          public static string ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         }   | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |  <EFBFBD><EFBFBD>  public struct appScope | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// used for  storing logic object in session | 
					
						
							|  |  |  |  |         /// when page changes in server side, logic object in session | 
					
						
							|  |  |  |  |         /// will be replaced by new one. | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static string PagelevelObj | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return "PageLevelObj"; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |        | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     public class MyTracer | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         private static TraceSwitch appSwitch = new TraceSwitch("TraceSwitch", "Switch in config file"); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         private static string render(object clz, string msg) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             //time | 
					
						
							|  |  |  |  |             StringBuilder sb = new StringBuilder(); | 
					
						
							|  |  |  |  |             DateTime dt = DateTime.Now; | 
					
						
							|  |  |  |  |             sb.Append(dt.ToLongDateString()).Append(" ").Append(dt.ToLongTimeString()).Append(" - "); | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |             StackTrace stackTrace = new StackTrace(); | 
					
						
							|  |  |  |  |             StackFrame stackFrame = stackTrace.GetFrame(2); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             //class name | 
					
						
							|  |  |  |  |             sb.Append(clz.GetType().FullName).Append(" ["); | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |             //method name | 
					
						
							|  |  |  |  |             MethodBase methodBase = stackFrame.GetMethod(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             sb.Append(methodBase.Name).Append("] "); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             //the msg | 
					
						
							|  |  |  |  |             sb.Append(msg); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return sb.ToString(); | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static void Error(object clz, string msg) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Trace.WriteLineIf(appSwitch.TraceError, render(clz, "[ERROR] " + msg)); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static void Warning(object clz, string msg) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Trace.WriteLineIf(appSwitch.TraceWarning, render(clz, "[WARNING] " + msg)); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static void Info(object clz, string msg) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Trace.WriteLineIf(appSwitch.TraceInfo, render(clz, "[INFO] " + msg)); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static void Verbose(object clz, string msg) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Trace.WriteLineIf(appSwitch.TraceVerbose, render(clz, "[VERBOSE] " + msg)); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     public class Util | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         public static string Encrypt(string password)//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD> | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             /* | 
					
						
							|  |  |  |  |             Byte[] clearBytes = new UnicodeEncoding().GetBytes(password); | 
					
						
							|  |  |  |  |             Byte[] hashedBytes = ((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(clearBytes); | 
					
						
							|  |  |  |  |             return BitConverter.ToString(hashedBytes); | 
					
						
							|  |  |  |  |             */ | 
					
						
							|  |  |  |  |             return MD5(password); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         //http://events.jianshu.io/p/41b07b52fc33 | 
					
						
							|  |  |  |  |         public static String MD5(String str) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             byte[] result = ((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(Encoding.UTF8.GetBytes(str)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             StringBuilder output = new StringBuilder(16); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             for (int i = 0; i < result.Length; i++) | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 // convert from hexa-decimal to character? | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 output.Append((result[i]).ToString("x2", System.Globalization.CultureInfo.InvariantCulture)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return output.ToString(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static void GetCheckedNode(TreeNodeCollection tnc, ArrayList checkedvalues) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             foreach (TreeNode node in tnc) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (node.Checked) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     checkedvalues.Add(node.Value); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 GetCheckedNode(node.ChildNodes, checkedvalues); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static void GetCheckedNode(TreeNodeCollection tnc, ArrayList checkedvalues, ArrayList checkedText) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             foreach (TreeNode node in tnc) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (node.Checked) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     checkedvalues.Add(node.Value); | 
					
						
							|  |  |  |  |                     checkedText.Add(node.Text); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 GetCheckedNode(node.ChildNodes, checkedvalues); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static void SetCheckedNode(TreeNodeCollection tnc, ArrayList setcheckedvalues) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             foreach (TreeNode node in tnc) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 node.Checked = setcheckedvalues.Contains(Convert.ToInt32(node.Value)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 SetCheckedNode(node.ChildNodes, setcheckedvalues); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// <20><><EFBFBD><EFBFBD>in sql,return like " 1,2,3" | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="al"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string buildWhereIntIn(ArrayList al) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string whereString = string.Empty; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             for (int i = 0; i < al.Count; i++) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                 whereString += "'" + al[i] + "',"; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             if (whereString.EndsWith(",")) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 whereString = whereString.Substring(0, whereString.Length - 1); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return whereString; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static DataSet Excel2DataSet(string filepath) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             DataSet ds = new DataSet(); | 
					
						
							|  |  |  |  |             ArrayList SheeNames = ExcelSheetName(filepath); | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             for (int i = 0; i < SheeNames.Count; i++) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             { | 
					
						
							|  |  |  |  |                 DataTable dt = (ExcelDataSource(filepath, SheeNames[i].ToString())).Tables[0].Copy(); | 
					
						
							|  |  |  |  |                 dt.TableName = SheeNames[i].ToString(); | 
					
						
							|  |  |  |  |                 dt.TableName = dt.TableName.Substring(0, dt.TableName.IndexOf("$")); | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                 ds.Tables.Add(dt); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             return ds; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         //<2F>÷<EFBFBD><C3B7><EFBFBD>ʵ<EFBFBD>ִ<EFBFBD>Excel<65>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>DataSet<65>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>filepathΪExcel<65>ļ<EFBFBD><C4BC>ľ<EFBFBD><C4BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD> sheetnameΪexcel<65>ļ<EFBFBD><C4BC>еı<D0B5><C4B1><EFBFBD> | 
					
						
							|  |  |  |  |         public static DataSet ExcelDataSource(string filepath, string sheetname) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string strConn; | 
					
						
							|  |  |  |  |             strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; | 
					
						
							|  |  |  |  |             OleDbConnection conn = new OleDbConnection(strConn); | 
					
						
							|  |  |  |  |             OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", strConn); | 
					
						
							|  |  |  |  |             DataSet ds = new DataSet(); | 
					
						
							|  |  |  |  |             oada.Fill(ds); | 
					
						
							|  |  |  |  |             conn.Close(); | 
					
						
							|  |  |  |  |             return ds; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         //<2F><><EFBFBD><EFBFBD>Excel<65>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>sheetname<6D><65> | 
					
						
							|  |  |  |  |         public static ArrayList ExcelSheetName(string filepath) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             ArrayList al = new ArrayList(); | 
					
						
							|  |  |  |  |             string strConn; | 
					
						
							|  |  |  |  |             strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; | 
					
						
							|  |  |  |  |             OleDbConnection conn = new OleDbConnection(strConn); | 
					
						
							|  |  |  |  |             conn.Open(); | 
					
						
							|  |  |  |  |             DataTable sheetNames = conn.GetOleDbSchemaTable | 
					
						
							|  |  |  |  |             (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); | 
					
						
							|  |  |  |  |             conn.Close(); | 
					
						
							|  |  |  |  |             foreach (DataRow dr in sheetNames.Rows) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 al.Add(dr[2]); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return al; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static DataView GetTopDataViewRows(DataView dv, int n) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             DataTable dt = dv.Table.Clone(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             for (int i = 0; i < n - 1; i++) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (i >= dv.Count) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 dt.ImportRow(dv[i].Row); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return new DataView(dt, dv.RowFilter, dv.Sort, dv.RowStateFilter); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD>ֵ | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="key">appSettings<67><73>key</param> | 
					
						
							|  |  |  |  |         /// <returns>appSettings<67><73>Value</returns> | 
					
						
							|  |  |  |  |         //public static string GetConfig(string key) | 
					
						
							|  |  |  |  |         //{ | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         //string _value = string.Empty; | 
					
						
							|  |  |  |  |         //System.Configuration.ConfigurationManager  config =  System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); | 
					
						
							|  |  |  |  |         //if (config.AppSettings.Settings[key] != null) | 
					
						
							|  |  |  |  |         //{ | 
					
						
							|  |  |  |  |         //    _value = config.AppSettings.Settings[key].Value; | 
					
						
							|  |  |  |  |         //} | 
					
						
							|  |  |  |  |         //return _value; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         //} | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         private static char[] constant = | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |         '0','1','2','3','4','5','6','7','8','9', | 
					
						
							|  |  |  |  |         'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', | 
					
						
							|  |  |  |  |         'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |       }; | 
					
						
							|  |  |  |  |         public static string GenerateRandomNumber(int Length) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62); | 
					
						
							|  |  |  |  |             Random rd = new Random(); | 
					
						
							|  |  |  |  |             for (int i = 0; i < Length; i++) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 newRandom.Append(constant[rd.Next(62)]); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return newRandom.ToString().ToUpper(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA> | 
					
						
							|  |  |  |  |         public static string getCode128(string codeIn) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             //string str =""; | 
					
						
							|  |  |  |  |             string result; | 
					
						
							|  |  |  |  |             int checksum = 104; | 
					
						
							|  |  |  |  |             for (int i = 0; i < codeIn.Length; i++) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (codeIn[i] >= 32) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     checksum += (codeIn[i] - 32) * (i + 1); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     checksum += (codeIn[i] + 64) * (i + 1); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             checksum = checksum % 103; | 
					
						
							|  |  |  |  |             if (checksum < 95) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 checksum += 32; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 checksum += 100; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             result = Convert.ToChar(204) + codeIn + | 
					
						
							|  |  |  |  |             Convert.ToChar(checksum) + Convert.ToChar(206); | 
					
						
							|  |  |  |  |             return result; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string getPrefix(enumCreateOrderType orderType) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string prefix = "UN"; | 
					
						
							|  |  |  |  |             switch (orderType) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.repOrderIn: | 
					
						
							|  |  |  |  |                     prefix = "RPI"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.repOrderOut: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_RPO;// "RPO"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.pickOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_PICK;//"PICK"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.waveOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_WAVE;//"WAVE"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.transOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_TRAN;//"TRAN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.seedsPickOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_SEEDS;//"SEED"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.pandianOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_PANDIAN;//"PAN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.preInOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_INORDER;//"PREIN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.pickJobNo: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_WAVEJOB;//"PREIN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.dpsOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_DPS_WAVE;//"PREIN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.obsolete: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_OBSOLETE;//"PREIN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.transferOutside: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_TRANSFER_OUTSIDE;//"PREIN"; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.transferInternal: | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |                     prefix = WmsConstants.ORDER_PRI_TRANSFER_INSIDE;//"TRI"; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.returnVender: | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |                     prefix = WmsConstants.ORDER_PRI_RETURN_VENDER;//"RTV"; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.pickOutInvoice: | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |                     prefix = WmsConstants.ORDER_PRI_PICK_OUT_INVOICE;//"PKI"; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                     break; | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                 case enumCreateOrderType.selfPickOrder: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_PICK_SELF;// ITK | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.stockInWithNoOrder: | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |                     prefix = WmsConstants.ORDER_PRI_STK_IN;// STI | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumCreateOrderType.stockLocationDown: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.ORDER_PRI_STK_DOWN;// XJ | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     break; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             return prefix; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static string getOrderNo(enumCreateOrderType orderType, int seq) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             string prefix = getPrefix(orderType); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-06 19:36:47 +08:00
										 |  |  |  |             string orderno = string.Format("{0}{1:D2}{2:D2}{6}{3:D2}{4}{5:D6}", prefix, DateTime.Now.Year - 2000, | 
					
						
							|  |  |  |  |                 DateTime.Now.Month, DateTime.Now.Day, GenerateRandomNumber(2), seq, GenerateRandomNumber(1)); | 
					
						
							| 
									
										
										
										
											2024-03-06 20:48:05 +08:00
										 |  |  |  |            //LogHelper.debug("Utils", string.Format( "create order no ,seq is {0}, orderno is {1}",   seq,orderno)); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             return orderno; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static enumStockRecordType getStockRecordType(int outStoretype) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             enumOutStoreType ost = (enumOutStoreType)outStoretype; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             switch (ost) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD>˹<EFBFBD>Ӧ<EFBFBD>̳<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |                 case enumOutStoreType.<EFBFBD><EFBFBD>λ<EFBFBD>¼<EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD>ƿ<EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 default: | 
					
						
							|  |  |  |  |                     return enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static string getShortDateString(string date) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             //  DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo() ; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             //  dtFormat.ShortDatePattern = "yyyy-MM-dd"; | 
					
						
							|  |  |  |  |             // return Convert.ToDateTime(date, dtFormat); | 
					
						
							|  |  |  |  |             DateTime dt; | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 dt = Convert.ToDateTime(date); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                 return string.Format("{0}-{1:d2}-{2:d2}", dt.Year, dt.Month, dt.Day); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             catch { } | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 dt = DateTime.ParseExact(date, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                 return string.Format("{0}-{1:d2}-{2:d2}", dt.Year, dt.Month, dt.Day); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             catch { } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static enumOutStoreType getOutStoreTypeByOrderType(int orderType) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             enumOrderType ost = (enumOrderType)orderType; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             switch (ost) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD>ּ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD>ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD>˹<EFBFBD>Ӧ<EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |                 case enumOrderType.<EFBFBD><EFBFBD>λ<EFBFBD>¼<EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD>λ<EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 default: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return enumOutStoreType.<EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>; ; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public static EnumFlowTaskType getTaskType(int recordType) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             enumStockRecordType type = (enumStockRecordType)recordType; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             switch (type) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD>۳<EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD>ƿ<EFBFBD><EFBFBD>ϼ<EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD>ƿ<EFBFBD><EFBFBD>ϼ<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD>ƿ<EFBFBD><EFBFBD>¼<EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD>ƿ<EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD>˹<EFBFBD>Ӧ<EFBFBD>̳<EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD>ƿ<EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2024-02-06 19:36:47 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                 case enumStockRecordType.ֱͨԽ<EFBFBD><EFBFBD>: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return EnumFlowTaskType.ֱͨ<EFBFBD>ֻ<EFBFBD>; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>: | 
					
						
							|  |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD>ַֻ<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2024-02-06 19:36:47 +08:00
										 |  |  |  |                     | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							| 
									
										
										
										
											2024-02-06 19:36:47 +08:00
										 |  |  |  |                  | 
					
						
							|  |  |  |  |                 case enumStockRecordType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>: | 
					
						
							|  |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-16 09:29:04 +08:00
										 |  |  |  |                 case enumStockRecordType.<EFBFBD>ֳ<EFBFBD><EFBFBD>̵<EFBFBD>: | 
					
						
							|  |  |  |  |                     return EnumFlowTaskType.<EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                    | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 default: | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                     return EnumFlowTaskType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         public static enumWhType getTargetWhType(enumOrderType orderType, enumWhType fromWh = enumWhType.<EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             switch (orderType) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                 case enumOrderType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumWhType.<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 case enumOrderType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return fromWh; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 case enumOrderType.<EFBFBD>˹<EFBFBD>Ӧ<EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     return enumWhType.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |                 default: return enumWhType.<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD>; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static long getTimeStamp() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); | 
					
						
							|  |  |  |  |             return Convert.ToInt64(ts.TotalMilliseconds); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static string getPartLightKey(int color, int labelId, int address, int part) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             return string.Format("{0}-{1}-{2}", color, labelId, address); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static string getLightKey(int color, int labelId, int address) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             return string.Format("{0}-{1}-{2}", color, labelId, address); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |         public static string getBoxId(enumPlateLevel type, int color, int id) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |             string prefix = "H"; | 
					
						
							|  |  |  |  |             switch (type) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 case enumPlateLevel.<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.PLATE_TMP_PREFIX; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumPlateLevel.<EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.PLATE_BOX_PREFIX; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumPlateLevel.<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.PLATE_CUST_PREFIX; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumPlateLevel.<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.PLATE_LINE_PREFIX; | 
					
						
							|  |  |  |  |                     break; | 
					
						
							|  |  |  |  |                 case enumPlateLevel.<EFBFBD><EFBFBD><EFBFBD>䳵: | 
					
						
							|  |  |  |  |                     prefix = WmsConstants.PLATE_TRUCK_PREFIX; | 
					
						
							|  |  |  |  |                     break;   | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             }  | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-06 19:36:47 +08:00
										 |  |  |  |             return string.Format("{0}-{1}-{2}-{3:D4}",prefix, (int)type, color, id); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         public static int getBoxColor(string boxId) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             string[] s = boxId.Split('-'); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             return Convert.ToInt16(s[2].ToString()); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         public static int getBoxId(string boxId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string[] s = boxId.Split('-'); | 
					
						
							|  |  |  |  |             return Convert.ToInt16(s[3].ToString()); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static Dictionary<int, string> convertEnumToDic(Type enumType) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             Dictionary<int, string> dic = new Dictionary<int, string>(); | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             foreach (int myCode in Enum.GetValues(enumType)) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             { | 
					
						
							|  |  |  |  |                 string strName = Enum.GetName(enumType, myCode);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |                 string strVaule = myCode.ToString();//<2F><>ȡֵ | 
					
						
							|  |  |  |  |                 dic[myCode] = strName; | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return dic; | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         public static DateTime pareseDateString(string dateStr) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             /* | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |              string[] invailidChars = { ".","-","/"}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             foreach (string s in invailidChars) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (WmsConstants.GOODS_VALID_DATE_FORMAT.IndexOf(s) == -1) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     dateStr = dateStr.Replace(s, "x"); | 
					
						
							|  |  |  |  |                     | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             string year = dateStr.Split('x')[0]; | 
					
						
							|  |  |  |  |             string month = dateStr.Split('x')[1]; | 
					
						
							|  |  |  |  |             string day = dateStr.Split('x')[2]; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             month = month.Length == 1 ? "0" + month : month; | 
					
						
							|  |  |  |  |             day = day.Length == 1 ? "0" + day : day; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             dateStr = year + month + day; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             */ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return DateTime.ParseExact(dateStr, WmsConstants.GOODS_VALID_DATE_FORMAT, System.Globalization.CultureInfo.CurrentCulture); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                 return DateTime.ParseExact(dateStr, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             //  return DateTime.ParseExact(dateStr, WmsConstants.GOODS_VALID_DATE_FORMAT, System.Globalization.CultureInfo.CurrentCulture);   | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip<69><70>ַ | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="netType">"InterNetwork":ipv4<76><34>ַ<EFBFBD><D6B7>"InterNetworkV6":ipv6<76><36>ַ</param> | 
					
						
							|  |  |  |  |         /// <returns>ip<69><70>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD></returns> | 
					
						
							|  |  |  |  |         public static List<string> GetLocalIpAddress(string netType) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string hostName = Dns.GetHostName();                    //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |             IPAddress[] addresses = Dns.GetHostAddresses(hostName); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             List<string> IPList = new List<string>(); | 
					
						
							|  |  |  |  |             if (netType == string.Empty) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 for (int i = 0; i < addresses.Length; i++) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     IPList.Add(addresses[i].ToString()); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 //AddressFamily.InterNetwork<72><6B>ʾ<EFBFBD><CABE>IPΪIPv4, | 
					
						
							|  |  |  |  |                 //AddressFamily.InterNetworkV6<56><36>ʾ<EFBFBD>˵<EFBFBD>ַΪIPv6<76><36><EFBFBD><EFBFBD> | 
					
						
							|  |  |  |  |                 for (int i = 0; i < addresses.Length; i++) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     if (addresses[i].AddressFamily.ToString() == netType) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         IPList.Add(addresses[i].ToString()); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return IPList; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// <20><><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD>дת<D0B4><D7AA> | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="number"><3E><><EFBFBD><EFBFBD></param> | 
					
						
							|  |  |  |  |         /// <returns><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD>д,<2C>磺ҼԪ<D2BC><D4AA></returns> | 
					
						
							|  |  |  |  |         public static string convertToChinese(decimal number) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var s = number.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A"); | 
					
						
							|  |  |  |  |             var d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}"); | 
					
						
							|  |  |  |  |             var r = Regex.Replace(d, ".", m => "<22><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD>ƾ<EFBFBD><C6BE>տտտտտտշֽ<D5B7>ʰ<EFBFBD><CAB0>Ǫ<EFBFBD><C7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"[m.Value[0] - '-'].ToString()); | 
					
						
							|  |  |  |  |             return r; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         public static string getJson(Object obj) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             try | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |                 return JsonConvert.SerializeObject(obj); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                 /* | 
					
						
							|  |  |  |  |                    DataContractJsonSerializer jsonSerializer | 
					
						
							|  |  |  |  |                                = new DataContractJsonSerializer(typeof(Object)); | 
					
						
							|  |  |  |  |                 var stream = new MemoryStream(); | 
					
						
							|  |  |  |  |                 jsonSerializer.WriteObject(stream, obj); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 byte[] dataBytes = new byte[stream.Length]; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 stream.Position = 0; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 stream.Read(dataBytes, 0, (int)stream.Length); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 string dataString = Encoding.UTF8.GetString(dataBytes); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return dataString; | 
					
						
							|  |  |  |  |                 */ | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |             catch (Exception e) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 LogHelper.debug("Utls", e.Message); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return e.Message; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |           | 
					
						
							|  |  |  |  |             public static string CreateQRcode(string content) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |             //https://blog.csdn.net/qyr20/article/details/119885812 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |           | 
					
						
							|  |  |  |  |                 System.IO.MemoryStream MStream = new System.IO.MemoryStream(); | 
					
						
							|  |  |  |  |                 getQrCode(  content).Save(MStream, System.Drawing.Imaging.ImageFormat.Png); | 
					
						
							|  |  |  |  |                 byte[] qrByte = MStream.ToArray(); | 
					
						
							|  |  |  |  |                 string qrStr = Convert.ToBase64String(qrByte);    //<2F><>Ҫת<D2AA><D7AA>һ<EFBFBD><D2BB> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return  qrStr; | 
					
						
							|  |  |  |  |                 //Response.ClearContent(); | 
					
						
							|  |  |  |  |                 //Response.ContentType = "image/Png"; | 
					
						
							|  |  |  |  |                 //Response.BinaryWrite(MStream.ToArray()); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |          public static System.Drawing.Bitmap getQrCode(string content) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); | 
					
						
							|  |  |  |  |             qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; | 
					
						
							|  |  |  |  |             qrCodeEncoder.QRCodeScale = 4; | 
					
						
							|  |  |  |  |             qrCodeEncoder.QRCodeVersion = 8; | 
					
						
							|  |  |  |  |             qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; | 
					
						
							|  |  |  |  |             System.Drawing.Bitmap image = qrCodeEncoder.Encode(content); | 
					
						
							|  |  |  |  |             return image; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-03 22:13:49 +08:00
										 |  |  |  |          public  static string getReportPath() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return string.IsNullOrEmpty(WmsConstants.FILE_SVR_PRINT) ? "utils\\reports\\" : WmsConstants.FILE_SVR_PRINT; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-11-21 19:18:23 +08:00
										 |  |  |  |   | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | } |