Form1.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Common.DbOption.work;
  4. using System;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. using System.Data;
  8. using System.Data.OracleClient;
  9. using System.Diagnostics;
  10. using System.IO;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Windows.Forms;
  14. namespace TrainVideoDataDispose
  15. {
  16. public partial class Form1 : Form
  17. {
  18. public Form1()
  19. {
  20. InitializeComponent();
  21. }
  22. private string m_szRunPath = "";
  23. private bool m_bRun = true;
  24. //private bool newRow_Flag = false;
  25. private DataTable m_dtTrainWeightOrigDataMain;//轨道衡原始数据主表
  26. private DataTable m_dtTrainWeightOrigData;//轨道衡原始数据表
  27. private string[] m_szOrigDataPath;//轨道衡共享数据文件夹列表
  28. private System.Threading.Thread m_hTrainOrigDataCollect;//轨道衡原始数据采集线程
  29. private MeterWorkRailwayRecMainService meterWorkRailwayRecMainService = new MeterWorkRailwayRecMainService(); // 采集主表
  30. private MeterWorkRailwayReceivedService MeterWorkRailwayReceivedService = new MeterWorkRailwayReceivedService(); // 采集从表
  31. private MeterBaseSpotInfoService meterBaseSpotInfoService = new MeterBaseSpotInfoService();
  32. /// <summary>
  33. /// 获取轨道衡系统上传的原始数据文件保存路径
  34. /// </summary>
  35. private void GetOrigDataPathInfo()
  36. {
  37. try
  38. {
  39. //doc:编辑TrainOrigData.txt时要用UTF-8格式保存
  40. if (System.IO.File.Exists(m_szRunPath + "\\TrainOrigData.txt"))
  41. {
  42. string str = System.IO.File.ReadAllText(m_szRunPath + "\\TrainOrigData.txt", Encoding.Default);
  43. m_szOrigDataPath = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
  44. }
  45. }
  46. catch (System.Exception error)
  47. {
  48. WriteLog("GetOrigDataPathInfo:" + error.Message);
  49. }
  50. }
  51. /// <summary>
  52. /// 构建轨道衡原始数据表,客户端获取该表得到最新数据
  53. /// </summary>
  54. private void BuildOrigDataTable()
  55. {
  56. m_dtTrainWeightOrigDataMain = new DataTable("ORIGDATAMAIN");
  57. DataColumn dc = new System.Data.DataColumn("SEQUENCENUMBER");//流水号
  58. m_dtTrainWeightOrigDataMain.Columns.Add(dc);
  59. dc = new System.Data.DataColumn("WEIGHTTIME");//时间
  60. m_dtTrainWeightOrigDataMain.Columns.Add(dc);
  61. dc = new System.Data.DataColumn("POINTNO");//计量编号
  62. m_dtTrainWeightOrigDataMain.Columns.Add(dc);
  63. dc = new System.Data.DataColumn("POINTNAME");//计量点
  64. m_dtTrainWeightOrigDataMain.Columns.Add(dc);
  65. dc = new System.Data.DataColumn("TOTALCOUNT");//总节数
  66. m_dtTrainWeightOrigDataMain.Columns.Add(dc);
  67. dc = new System.Data.DataColumn("VIDEOFILENAME");//录像文件名
  68. m_dtTrainWeightOrigDataMain.Columns.Add(dc);
  69. m_dtTrainWeightOrigData = new System.Data.DataTable("ORIGDATADETAIL");
  70. dc = new System.Data.DataColumn("SEQUENCENUMBER");//流水号
  71. m_dtTrainWeightOrigData.Columns.Add(dc);
  72. dc = new System.Data.DataColumn("INDEXNO");//车厢序号
  73. m_dtTrainWeightOrigData.Columns.Add(dc);
  74. dc = new System.Data.DataColumn("TRAINNO");//车号
  75. m_dtTrainWeightOrigData.Columns.Add(dc);
  76. dc = new System.Data.DataColumn("WEIGHT");//重量
  77. m_dtTrainWeightOrigData.Columns.Add(dc);
  78. dc = new System.Data.DataColumn("SPEED");//速度
  79. m_dtTrainWeightOrigData.Columns.Add(dc);
  80. dc = new System.Data.DataColumn("POINTNO");//计量编号
  81. m_dtTrainWeightOrigData.Columns.Add(dc);
  82. dc = new System.Data.DataColumn("POINTNAME");//计量点
  83. m_dtTrainWeightOrigData.Columns.Add(dc);
  84. dc = new System.Data.DataColumn("WEIGHTTIME");//时间
  85. m_dtTrainWeightOrigData.Columns.Add(dc);
  86. dc = new System.Data.DataColumn("ISVALID");//是否有效
  87. m_dtTrainWeightOrigData.Columns.Add(dc);
  88. dc = new System.Data.DataColumn("RAILWAYWORKNO");//列车作业编号
  89. m_dtTrainWeightOrigData.Columns.Add(dc);
  90. dc = new System.Data.DataColumn("RAILWAYMODELNAME");//车型名称
  91. m_dtTrainWeightOrigData.Columns.Add(dc);
  92. }
  93. /// <summary>
  94. /// 写日志信息到日志文件
  95. /// </summary>
  96. /// <param name="str"></param>
  97. private void WriteLog(string str)
  98. {
  99. if (System.IO.Directory.Exists(m_szRunPath + "\\log") == false)
  100. {
  101. System.IO.Directory.CreateDirectory(m_szRunPath + "\\log");
  102. }
  103. string strDate = System.DateTime.Now.ToString("yyyyMMdd");
  104. System.IO.TextWriter tw = new System.IO.StreamWriter(m_szRunPath + "\\log\\TrainSceneLogic_" + strDate + ".log", true);
  105. tw.WriteLine(System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  106. tw.WriteLine(str);
  107. tw.WriteLine("\r\n");
  108. tw.Close();
  109. }
  110. private string[] carHeadNo = null;
  111. private Hashtable hashtable = new Hashtable();//存储称点信息
  112. private void Form1_Load(object sender, EventArgs e)
  113. {
  114. //ldb- 进程已存在,则不重复打开。
  115. Process[] myProcess = Process.GetProcessesByName(Application.ProductName);
  116. if (myProcess.Length <= 1)
  117. {
  118. m_szRunPath = System.Environment.CurrentDirectory;
  119. //getBaseCarInfo();
  120. GetOrigDataPathInfo();
  121. BuildOrigDataTable();
  122. //GetUnhandledHistoryData();
  123. m_hTrainOrigDataCollect = new System.Threading.Thread(new System.Threading.ThreadStart(GetOrigDataFile));
  124. m_hTrainOrigDataCollect.Start();
  125. }
  126. else
  127. {
  128. MessageBox.Show("程序已经启动.", "提示");
  129. Application.Exit();
  130. }
  131. }
  132. /// <summary>
  133. /// 线程读取原始数据
  134. /// </summary>
  135. private void GetOrigDataFile()
  136. {
  137. System.Threading.Thread.Sleep(1000);
  138. // int i = 0;
  139. string FileContent = "";
  140. while (m_bRun)
  141. {
  142. System.Threading.Thread.Sleep(1000);
  143. // Create a reference to the current directory.
  144. foreach (string strPath in m_szOrigDataPath)
  145. {
  146. System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(strPath);
  147. FileInfo[] fis = null;
  148. System.IO.DirectoryInfo dicar = new System.IO.DirectoryInfo(strPath + "\\chehao");
  149. FileInfo[] fiscar = null;
  150. try
  151. {
  152. FileContent = "";
  153. // Create an array representing the files in the current directory.
  154. fis = di.GetFiles("*.txt");
  155. foreach (FileInfo fi in fis)
  156. {
  157. //读文件
  158. FileContent = System.IO.File.ReadAllText(fi.FullName, Encoding.Default);
  159. string strSequenceNumber = System.DateTime.Now.ToString("yyyyMMddHHmmss");
  160. if (HandleOrigData(strSequenceNumber, FileContent, fi.FullName) == true)
  161. {
  162. if (System.IO.Directory.Exists(strPath + "\\history") == false)
  163. {
  164. System.IO.Directory.CreateDirectory(strPath + "\\history");
  165. }
  166. //移到历史文件夹
  167. if (System.IO.File.Exists(strPath + "\\history\\" + fi.Name))
  168. {
  169. //20181130 原来同名txt文档先备份
  170. if (System.IO.Directory.Exists(strPath + "\\history\\existBak") == false)
  171. {
  172. System.IO.Directory.CreateDirectory(strPath + "\\history\\existBak");
  173. }
  174. System.IO.File.Copy(strPath + "\\history\\" + fi.Name, strPath + "\\history\\existBak" + fi.Name, true);
  175. System.IO.File.Delete(strPath + "\\history\\" + fi.Name);
  176. fi.MoveTo(strPath + "\\history\\" + fi.Name);
  177. }
  178. else
  179. {
  180. fi.MoveTo(strPath + "\\history\\" + fi.Name);
  181. }
  182. //newRow_Flag = true;
  183. }
  184. System.Threading.Thread.Sleep(1000);
  185. }
  186. if (dicar.Exists)
  187. {
  188. fiscar = dicar.GetFiles("*.txt");
  189. foreach (FileInfo fi in fiscar)
  190. {
  191. //读文件
  192. FileContent = System.IO.File.ReadAllText(fi.FullName, Encoding.Default);
  193. string strSequenceNumber = System.DateTime.Now.ToString("yyyyMMddHHmmss");
  194. if (HandleOrigDatas(strSequenceNumber, FileContent, strPath, fi.Name.Split('c')[0]) == true)
  195. {
  196. if (System.IO.Directory.Exists(strPath + "\\history\\chehao") == false)
  197. {
  198. System.IO.Directory.CreateDirectory(strPath + "\\history\\chehao");
  199. }
  200. //移到历史文件夹
  201. if (System.IO.File.Exists(strPath + "\\history\\chehao\\" + fi.Name))
  202. {
  203. System.IO.File.Delete(strPath + "\\history\\chehao\\" + fi.Name);
  204. fi.MoveTo(strPath + "\\history\\chehao\\" + fi.Name);
  205. }
  206. else
  207. {
  208. fi.MoveTo(strPath + "\\history\\chehao\\" + fi.Name);
  209. }
  210. //newRow_Flag = true;
  211. }
  212. System.Threading.Thread.Sleep(1000);
  213. }
  214. }
  215. }
  216. catch (System.Exception error)
  217. {
  218. WriteLog("GetOrigDataFile:" + error.Message);
  219. }
  220. }
  221. }
  222. }
  223. connection con1 = new connection();
  224. private bool HandleOrigDatas(string strSequenceNo, string strContent, string strPath, string fileTime)
  225. {
  226. string[] Lines = null;
  227. string[] Fields = null;
  228. //拆分行
  229. Lines = strContent.Split(new string[] { "\r\n" }, StringSplitOptions.None);
  230. if (Lines == null || Lines.Length == 0)
  231. {
  232. return false;
  233. }
  234. try
  235. {
  236. List<string[]> lss = new List<string[]>();
  237. if (lss.Count == 0)
  238. {
  239. // 默认把空文件处理掉
  240. return true;
  241. }
  242. for (int i = 0; i < Lines.Length - 1; i++)
  243. {
  244. Fields = Lines[i].Split(',');
  245. //================eason update 2019-10-21,增加一个不为9的判断===============
  246. if (Fields.Length != 4)
  247. {
  248. WriteLog("轨道衡车号数据格式不正确!" + Lines[i]);
  249. return false;
  250. }
  251. sModel sm = lm.Where(s => s.key == Fields[1].TrimStart('0').PadLeft(4, '0')).FirstOrDefault();
  252. // 写入采集主表
  253. // 写入采集从表
  254. /*
  255. if (sm != null)//车头数据
  256. {
  257. //若存在数据则将其写入
  258. string strSql = "INSERT INTO JL_TRAINOINFO(SEQUENCENUMBER,INDEXNO,TRAINNO,WEIGHTTIME,POINTNAME,IS_HEAD)VALUES"
  259. + "('" + strSequenceNo + "','" + Fields[0] + "','" + sm.value + "',TO_DATE('" + fileTime + "', 'YYYYMMDDHH24MISS'),"
  260. + "'" + Fields[3] + "','1')";
  261. OracleCommand ERP_InsertDB = new OracleCommand(strSql, con1.GetDefaultDatabaseConnectionForMain());
  262. int ERPint = ERP_InsertDB.ExecuteNonQuery();
  263. if (ERPint < 0)
  264. {
  265. WriteLog("轨道衡车号数据添加失败!");
  266. return false;
  267. }
  268. else
  269. {
  270. WriteLog(strSequenceNo + "轨道衡车号数据上传成功!");
  271. }
  272. string strUpdate = "update jl_trainorigdatadetail set ENGINE_NO='" + sm.value + "' where POINTNAME='" + Fields[3] + "' and WEIGHTTIME=TO_DATE('" + fileTime + "', 'YYYYMMDDHH24MISS')";
  273. ERP_InsertDB = new OracleCommand(strUpdate, con1.GetDefaultDatabaseConnectionForMain());
  274. ERPint = ERP_InsertDB.ExecuteNonQuery();
  275. if (ERPint < 0)
  276. {
  277. WriteLog("轨道衡车号数据更新失败!");
  278. return false;
  279. }
  280. else
  281. {
  282. WriteLog(strSequenceNo + "轨道衡车号数据更新成功!");
  283. }
  284. }
  285. else
  286. {
  287. //车厢数据
  288. lss.Add(Fields);
  289. //若存在数据则将其写入
  290. string strSql = "INSERT INTO JL_TRAINOINFO(SEQUENCENUMBER,INDEXNO,TRAINNO,WEIGHTTIME,POINTNAME,IS_HEAD)VALUES"
  291. + "('" + strSequenceNo + "','" + Fields[0] + "','" + Fields[1].TrimStart('0') + "',TO_DATE('" + Fields[2] + "', 'YYYYMMDDHH24MISS'),"
  292. + "'" + Fields[3] + "','0')";
  293. OracleCommand ERP_InsertDB = new OracleCommand(strSql, con1.GetDefaultDatabaseConnectionForMain());
  294. int ERPint = ERP_InsertDB.ExecuteNonQuery();
  295. if (ERPint < 0)
  296. {
  297. WriteLog("轨道衡车号数据添加失败!");
  298. return false;
  299. }
  300. else
  301. {
  302. WriteLog(strSequenceNo + "轨道衡车号数据上传成功!");
  303. }
  304. }
  305. */
  306. }
  307. return true;
  308. }
  309. catch (Exception exp)
  310. {
  311. WriteLog("保存数据异常原因!:" + exp.Message);
  312. return false;
  313. }
  314. }
  315. /// <summary>
  316. /// 处理轨道衡上传的原始数据
  317. /// </summary>
  318. /// <param name="strSequenceNo">流水号,客户端回传应使用该流水号</param>
  319. /// <param name="strContent">文件内容</param>
  320. private bool HandleOrigData(string strSequenceNo, string strContent, string strPath)
  321. {
  322. string[] Lines = null;
  323. string[] Fields = null;
  324. string strWeightTime = "";
  325. string strPointNo = "";
  326. string strPointName = "";
  327. string strVideoFileName = "";
  328. DataRow dr = null;
  329. //读取称点配置信息并存入hashtable
  330. hashtable.Clear();
  331. //读取配置
  332. //拆分行
  333. Lines = strContent.Split(new string[] { "\r\n" }, StringSplitOptions.None);
  334. if (Lines == null || Lines.Length == 0)
  335. {
  336. return false;
  337. }
  338. m_dtTrainWeightOrigData.Clear();
  339. //处理每行
  340. for (int i = 0; i < Lines.Length - 1; i++)
  341. {
  342. Fields = Lines[i].Split(',');
  343. //================eason update 2019-10-21,增加一个不为9的判断===============
  344. //if (Fields.Length != 8 && Fields.Length != 9)
  345. //{
  346. // WriteLog("轨道衡数据格式不正确!" + Lines[i]);
  347. // return false;
  348. //}
  349. dr = m_dtTrainWeightOrigData.NewRow();
  350. //strSequenceNo = Fields[6]; //20181130增加: 改取现场生成时间 //20181207 取此字段容易主键冲突
  351. if (dtCarInfo != null && dtCarInfo.Rows.Count > 0)
  352. {
  353. foreach (DataRow drs in dtCarInfo.Rows)
  354. {
  355. if (drs["CARD_NO"].ToString().TrimStart('0') == Fields[1])
  356. {
  357. Fields[1] = drs["CAR_NO"].ToString().Trim();
  358. break;
  359. }
  360. }
  361. }
  362. if (lm.Where(s => s.value == Fields[1].TrimStart('0').PadLeft(s.value.Length, '0')).Count() > 0)
  363. {
  364. //说明是车头信息
  365. continue;
  366. }
  367. dr["SEQUENCENUMBER"] = strSequenceNo;
  368. dr["INDEXNO"] = Fields[1];//车厢号
  369. //dr["TRAINNO"] = strSequenceNo;
  370. dr["TRAINNO"] = Fields[3];
  371. dr["RAILWAYMODELNAME"] = Fields[2];//车型
  372. dr["WEIGHT"] = Fields[4];//重量
  373. dr["RAILWAYWORKNO"] = strSequenceNo;//列车作业编号
  374. if (Fields[3] == "")
  375. {//lck20150109静态过磅时车速处理
  376. Fields[3] = "3";
  377. }
  378. dr["SPEED"] = Fields[5];//速度
  379. RESTfulResult<List<MeterBaseSpotInfo>> rmX = meterBaseSpotInfoService.doQueryWf(new MeterBaseSpotInfo { baseSpotNo = Fields[8] });
  380. strPointNo = rmX.Data[0].baseSpotNo;//称点信息
  381. strPointName = rmX.Data[0].baseSpotName;//称点信息
  382. dr["POINTNO"] = strPointNo;//称点信息
  383. dr["POINTNAME"] = strPointName;//称点信息
  384. string _path = strPath.Substring(2);//录像地址
  385. string _strPath = "\\\\194.168.0.38" + _path;//194.168.0.38//录像地址dd
  386. strVideoFileName = strPath.Replace("\\txt", "\\movie").Replace(".txt",".mp4");//录像地址
  387. dr["WEIGHTTIME"] = Fields[6];//时间
  388. strWeightTime = Fields[6];//时间
  389. dr["ISVALID"] = "1";//是否有效
  390. m_dtTrainWeightOrigData.Rows.Add(dr);
  391. }
  392. m_dtTrainWeightOrigDataMain.Clear();
  393. DataRow newRow = m_dtTrainWeightOrigDataMain.NewRow();
  394. newRow["SEQUENCENUMBER"] = strSequenceNo;
  395. newRow["WEIGHTTIME"] = strWeightTime;
  396. newRow["POINTNO"] = strPointNo;
  397. newRow["POINTNAME"] = strPointName;
  398. newRow["TOTALCOUNT"] = (Lines.Length - 1).ToString();
  399. newRow["VIDEOFILENAME"] = strVideoFileName;
  400. m_dtTrainWeightOrigDataMain.Rows.Add(newRow);
  401. return SaveOrigData2DB(m_dtTrainWeightOrigDataMain, m_dtTrainWeightOrigData);
  402. }
  403. /// <summary>
  404. /// 保存原始数据
  405. /// </summary>
  406. /// <param name="dtMain"></param>
  407. /// <param name="dtDetail"></param>
  408. /// <returns></returns>
  409. private bool SaveOrigData2DB(DataTable dtMain, DataTable dtDetail)
  410. {
  411. //Guid trans = Guid.Empty;
  412. try
  413. {
  414. string strError = "";
  415. //connection con1 = new connection();
  416. //ArrayList list = new ArrayList();
  417. //保存从表数据
  418. foreach (DataRow dr in dtDetail.Rows)
  419. {
  420. MeterWorkRailwayMotorialReceived meterWorkRailwayMotorialReceived = new MeterWorkRailwayMotorialReceived();
  421. meterWorkRailwayMotorialReceived.actualFirstNo = dr["SEQUENCENUMBER"].ToString().Trim();//流水号
  422. meterWorkRailwayMotorialReceived.baseSpotName = dr["POINTNAME"].ToString().Trim();//称点名称
  423. meterWorkRailwayMotorialReceived.baseSpotNo = dr["POINTNO"].ToString().Trim();//称点编号
  424. meterWorkRailwayMotorialReceived.railwayNo = dr["TRAINNO"].ToString().Trim();//车号
  425. meterWorkRailwayMotorialReceived.railwaySpeed = double.Parse(dr["SPEED"].ToString().Trim());//速度
  426. meterWorkRailwayMotorialReceived.valueFlag = dr["ISVALID"].ToString().Trim();//是否有效
  427. meterWorkRailwayMotorialReceived.meterWeight = double.Parse(dr["WEIGHT"].ToString().Trim());//重量
  428. meterWorkRailwayMotorialReceived.railwayModel = dr["RAILWAYMODELNAME"].ToString().Trim();//车型
  429. meterWorkRailwayMotorialReceived.railwayWorkNo = dr["RAILWAYWORKNO"].ToString().Trim();//列车作业编号
  430. meterWorkRailwayMotorialReceived.createTime = DateTime.Parse(dr["WEIGHTTIME"].ToString());//时间
  431. meterWorkRailwayMotorialReceived.railwayCarriageNo = dr["INDEXNO"].ToString().Trim();//车厢号
  432. RESTfulResult<string> rm = MeterWorkRailwayReceivedService.doAdd(meterWorkRailwayMotorialReceived);
  433. if (!rm.Succeed)
  434. {
  435. WriteLog("保存数据异常原因!:" + rm.Message);
  436. return false;
  437. }
  438. }
  439. //保存主表数据
  440. foreach (DataRow dr in dtMain.Rows)
  441. {
  442. MeterWorkRailwayRecMain meterWorkRailwayRecMain = new MeterWorkRailwayRecMain();
  443. meterWorkRailwayRecMain.actualNo = dr["SEQUENCENUMBER"].ToString().Trim();
  444. meterWorkRailwayRecMain.baseSpotName = dr["POINTNAME"].ToString().Trim();
  445. meterWorkRailwayRecMain.baseSpotNo = dr["POINTNO"].ToString().Trim();
  446. meterWorkRailwayRecMain.createTime = DateTime.Now;
  447. meterWorkRailwayRecMain.videoName = dr["VIDEOFILENAME"].ToString().Trim();
  448. meterWorkRailwayRecMain.carriageNum = int.Parse(dr["TOTALCOUNT"].ToString().Trim());
  449. RESTfulResult<string> rm = meterWorkRailwayRecMainService.doAdd(meterWorkRailwayRecMain);
  450. if (!rm.Succeed)
  451. {
  452. WriteLog("保存数据异常原因!:" + rm.Message);
  453. return false;
  454. }
  455. }
  456. return true;
  457. }
  458. catch (Exception exp)
  459. {
  460. WriteLog("保存数据异常原因!:" + exp.Message);
  461. return false;
  462. }
  463. }
  464. //每隔一分钟读取一次基础数据
  465. DataTable dtCarInfo = null;
  466. private void timer1_Tick(object sender, EventArgs e)
  467. {
  468. getBaseCarInfo();
  469. }
  470. List<sModel> lm = new List<sModel>();
  471. private void getBaseCarInfo()
  472. {
  473. try
  474. {
  475. string sql = "SELECT CARD_NO,CAR_NO,CAR_TYPE FROM CMM_CARD_CAR";
  476. OracleCommand ERP_InsertDB = new OracleCommand(sql, con1.GetDefaultDatabaseConnectionForMain());
  477. OracleDataAdapter oda = new OracleDataAdapter();
  478. oda.SelectCommand = ERP_InsertDB;
  479. DataSet ds = new DataSet();
  480. oda.Fill(ds);
  481. if (ds != null && ds.Tables.Count > 0)
  482. {
  483. dtCarInfo = ds.Tables[0];
  484. if (lm.Count == 0)
  485. {
  486. foreach (DataRow dr in dtCarInfo.Rows)
  487. {
  488. if (dr["CAR_TYPE"].ToString().Trim() == "1")
  489. {
  490. lm.Add(new sModel { key = dr["CARD_NO"].ToString(), value = dr["CAR_NO"].ToString() });
  491. }
  492. }
  493. }
  494. }
  495. }
  496. catch (Exception ex)
  497. {
  498. WriteLog("读取车号匹配信息异常!:" + ex.Message);
  499. }
  500. }
  501. }
  502. public class sModel
  503. {
  504. public string key { get; set; }
  505. public string value { get; set; }
  506. }
  507. }