frmTgMotoriaMain.cs 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Infragistics.Win;
  4. using Infragistics.Win.UltraWinGrid;
  5. using JC_MeasuringSystem;
  6. using MeterPlugInLibrary;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. using System.Data;
  11. using System.Drawing;
  12. using System.Linq;
  13. using System.Reflection;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. using System.Windows.Forms;
  17. using CreateAccess;
  18. using Common.DbOption.work;
  19. using System.Collections;
  20. namespace RailMeterSystem
  21. {
  22. public partial class frmTgMotoriaMain : Form
  23. {
  24. #region
  25. MeterWorkRailwayActFirstService actFirstService = new MeterWorkRailwayActFirstService(); //
  26. MeterBaseRailwayWeightService baseRailwayWgt = new MeterBaseRailwayWeightService();
  27. MeterWorkRailwayActualService actualService = new MeterWorkRailwayActualService();
  28. MeterWorkRailwayRecMainService meterWorkRailwayRecMainService = new MeterWorkRailwayRecMainService();
  29. MeterWorkRailwayReceivedService meterWorkRailwayReceivedService = new MeterWorkRailwayReceivedService();
  30. #endregion
  31. List<MeterBaseVideoinfo> ltMbV = new List<MeterBaseVideoinfo>();
  32. CoreAppUser appUser = null;
  33. string strBaseSpotNo = "00013", sBaseSpotName = "动态轨道衡";
  34. public frmTgMotoriaMain()
  35. {
  36. InitializeComponent();
  37. }
  38. private void frmTgMotoriaMain_Load(object sender, EventArgs e)
  39. {
  40. appUser = ((ST_MainForm)(this.MdiParent)).AppUser;
  41. cbTimeType.SelectedIndex = 1;
  42. ValueList vlist1 = new ValueList();
  43. vlist1.ValueListItems.Add("1", "未使用");
  44. vlist1.ValueListItems.Add("2", "已使用");
  45. ultraGridRecive.DisplayLayout.Bands[0].Columns["valueFlag"].ValueList = vlist1;
  46. ValueList vlist2 = new ValueList();
  47. vlist2.ValueListItems.Add("1", "正常结净");
  48. vlist2.ValueListItems.Add("2", "匹配结净");
  49. ultraGridNet.DisplayLayout.Bands[0].Columns["netMode"].ValueList = vlist2;
  50. ValueList vlist3 = new ValueList();
  51. vlist3.ValueListItems.Add("0", "待审核");
  52. vlist3.ValueListItems.Add("1", "已审核");
  53. vlist3.ValueListItems.Add("2", "已上传");
  54. ultraGridNet.DisplayLayout.Bands[0].Columns["uploadFlag"].ValueList = vlist3;
  55. dtStartTime.Value = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
  56. dtEndTime.Value = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59");
  57. ClsControlPack.SetUltraGridRowFilter(ref ultraGridNet, true);
  58. ClsControlPack.SetUltraGridRowFilter(ref ultraGridFirst, true);
  59. }
  60. #region 按钮事件
  61. private void btnQuery()
  62. {
  63. dtRecevice.Clear();
  64. DataTable dtV = dtRecevice.Clone();
  65. ClsControlPack.CopyDataToDatatable(ref dtV, ref this.dtRecevice, true);
  66. ClsControlPack.RefreshAndAutoSize(ultraGridRecive);
  67. QueryVoice();
  68. QueryNetDb();
  69. QueryFirstDb();
  70. }
  71. /// <summary>
  72. /// 结净匹配
  73. /// </summary>
  74. private void btnSubmit()
  75. {
  76. ultraGridRecive.UpdateData();
  77. ultraGridFirst.UpdateData();
  78. List<MeterWorkRailwayMotorialReceived> lmmr = new List<MeterWorkRailwayMotorialReceived>();
  79. List<MeterWorkRailwayActFirst> lmrf = new List<MeterWorkRailwayActFirst>();
  80. int icnt = 0;
  81. foreach (UltraGridRow ugrR in ultraGridRecive.Rows)
  82. {
  83. if (ugrR.Cells["UNCK"].Value.ToString().ToUpper() == "TRUE" && !ugrR.HiddenResolved)
  84. {
  85. icnt++;
  86. foreach (UltraGridRow ugr in ultraGridFirst.Rows)
  87. {
  88. if (ugrR.Cells["railwayNo"].Text.Trim() == ugr.Cells["railwayNo"].Text.Trim())
  89. {
  90. MeterWorkRailwayMotorialReceived rec = new MeterWorkRailwayMotorialReceived();
  91. rec.actualFirstNo = ugrR.Cells["actualFirstNo"].Text.Trim();
  92. rec.railwayNo = ugrR.Cells["railwayNo"].Text.Trim();
  93. rec.railwayCarriageNo = ugrR.Cells["railwayCarriageNo"].Text.Trim();
  94. rec.railwaySpeed = Convert.ToDouble(string.IsNullOrEmpty(ugrR.Cells["railwaySpeed"].Text) ? "0" : ugrR.Cells["railwaySpeed"].Text);
  95. rec.railwayModel = ugrR.Cells["railwayModel"].Text.Trim();
  96. rec.shipmentGrossWeight = Convert.ToDouble(string.IsNullOrEmpty(ugrR.Cells["shipmentGrossWeight"].Text) ? "0" : ugrR.Cells["shipmentGrossWeight"].Text);
  97. rec.shipmentNetWeight = Convert.ToDouble(string.IsNullOrEmpty(ugrR.Cells["shipmentNetWeight"].Text) ? "0" : ugrR.Cells["shipmentNetWeight"].Text);
  98. rec.meterWeight = Convert.ToDouble(string.IsNullOrEmpty(ugrR.Cells["meterWeight"].Text) ? "0" : ugrR.Cells["meterWeight"].Text);
  99. rec.createTime = Convert.ToDateTime(ugrR.Cells["createTime"].Text.Trim());
  100. rec.valueFlag = ugrR.Cells["valueFlag"].Text.Trim();
  101. rec.baseSpotNo = "00013";
  102. rec.baseSpotName = "动态轨道衡";
  103. rec.railwayTypeNo = "001019002";
  104. rec.railwayTypeName = "动态轨道衡";
  105. rec.weightType = "0";
  106. lmmr.Add(rec);
  107. MeterWorkRailwayActFirst first = new MeterWorkRailwayActFirst();
  108. first.actualFirstNo = ugr.Cells["actualFirstNo"].Text.Trim();
  109. first.railwayNo = ugr.Cells["railwayNo"].Text.Trim();
  110. first.railwayCarriageNo = ugr.Cells["railwayCarriageNo"].Text.Trim();
  111. first.railwaySpeed = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["railwaySpeed"].Text) ? "0" : ugr.Cells["railwaySpeed"].Text);
  112. first.meterWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["meterWeight"].Text) ? "0" : ugr.Cells["meterWeight"].Text);
  113. first.shipmentGrossWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["shipmentGrossWeight"].Text) ? "0" : ugr.Cells["shipmentGrossWeight"].Text);
  114. first.shipmentNetWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["shipmentNetWeight"].Text) ? "0" : ugr.Cells["shipmentNetWeight"].Text);
  115. first.createManNo = ugr.Cells["createManNo"].Text.Trim();
  116. first.createManName = ugr.Cells["createManName"].Text.Trim();
  117. first.createTime = Convert.ToDateTime(ugr.Cells["createTime"].Text.Trim());
  118. first.valueFlag = ugr.Cells["valueFlag"].Text.Trim();
  119. first.weightType = "1";
  120. first.baseSpotNo = "00013";
  121. first.baseSpotName = "动态轨道衡";
  122. first.railwayTypeNo = "001019002";
  123. first.railwayTypeName = "动态轨道衡";
  124. lmrf.Add(first);
  125. break;
  126. }
  127. }
  128. }
  129. }
  130. string MeterTypeNo = "", MeterTypeName = "";
  131. FrmMessage frmMessage = FrmMess($"当前选中【{icnt}】条毛重数据,当前选中【{lmrf.Count}】条皮重数据\n\r是否进行匹配!", "进厂保存");
  132. if (frmMessage.ShowDialog(this) != DialogResult.OK)
  133. {
  134. return;
  135. }
  136. else
  137. {
  138. string sType = frmMessage.setType;
  139. switch (sType)
  140. {
  141. case "0": //采购
  142. MeterTypeNo = "001006001";
  143. MeterTypeName = "采购进厂";
  144. break;
  145. case "1": //销售
  146. MeterTypeNo = "001006002";
  147. MeterTypeName = "销售出厂";
  148. break;
  149. }
  150. }
  151. if (lmmr.Count == 0)
  152. {
  153. MessageBox.Show("请确保至少有一条能进行结净的毛皮数据");
  154. }
  155. else
  156. {
  157. for (int i = 0; i < lmmr.Count; i++)
  158. {
  159. lmmr[i].meterTypeNo = MeterTypeNo;
  160. lmmr[i].meterTypeName = MeterTypeName;
  161. lmrf[i].meterTypeNo = MeterTypeNo;
  162. lmrf[i].meterTypeName = MeterTypeName;
  163. }
  164. //下面先保存,保存成功则使用下面的清理predictionNo的代码
  165. RESTfulResult<string> rES = actFirstService.doAddRailNetWf(lmmr, lmrf);
  166. if (rES.Succeed)
  167. {
  168. QueryNetDb();
  169. QueryFirstDb();
  170. UltraGridRow ugr = ultraGridVoice.ActiveRow;
  171. if (ugr != null)
  172. {
  173. QueryReceived(ugr.Cells["actualNo"].Text.Trim());
  174. }
  175. MessageBox.Show("操作成功");
  176. }
  177. else
  178. {
  179. MessageBox.Show("操作失败:" + rES.Message);
  180. }
  181. }
  182. }
  183. /// <summary>
  184. /// 取消结净
  185. /// </summary>
  186. private void btnUnSubmit()
  187. {
  188. ultraGridNet.UpdateData();
  189. if (ultraGridNet.Rows.Count > 0)
  190. {
  191. List<MeterWorkRailwayActual> ltFirst = new List<MeterWorkRailwayActual>();
  192. foreach (UltraGridRow ugr in ultraGridNet.Rows)
  193. {
  194. if (ugr.Cells["UNCK"].Value.ToString().ToUpper() == "TRUE" && !ugr.HiddenResolved)
  195. {
  196. MeterWorkRailwayActual actual = new MeterWorkRailwayActual();
  197. actual.actualNo = ugr.Cells["actualNo"].Text.Trim();
  198. actual.actualFirst1No = ugr.Cells["actualFirst1No"].Text.Trim();
  199. actual.actualFirst2No = ugr.Cells["actualFirst2No"].Text.Trim();
  200. ltFirst.Add(actual);
  201. }
  202. }
  203. if (ltFirst != null && ltFirst.Count > 0)
  204. {
  205. RESTfulResult<string> result = actFirstService.doRemoveRailNetWf(ltFirst);
  206. if (result.Succeed)
  207. {
  208. QueryNetDb();
  209. QueryFirstDb();
  210. UltraGridRow ugr = ultraGridVoice.ActiveRow;
  211. if (ugr != null)
  212. {
  213. QueryReceived(ugr.Cells["actualNo"].Text.Trim());
  214. }
  215. }
  216. else
  217. {
  218. MessageBox.Show("删除失败:" + result.Message);
  219. }
  220. }
  221. else
  222. {
  223. MessageBox.Show("请先勾选需删除且未审核的结净数据");
  224. }
  225. }
  226. }
  227. /// <summary>
  228. ///皮重保存
  229. /// </summary>
  230. private void btnTare()
  231. {
  232. if (ultraGridRecive.Rows.Count > 0)
  233. {
  234. List<MeterWorkRailwayActFirst> ltFirst = new List<MeterWorkRailwayActFirst>();
  235. foreach (UltraGridRow ugr in ultraGridRecive.Rows)
  236. {
  237. if (ugr.Cells["UNCK"].Value.ToString().ToUpper() == "TRUE" && !ugr.HiddenResolved)
  238. {
  239. MeterWorkRailwayActFirst fs = new MeterWorkRailwayActFirst();
  240. fs.railwayNo = ugr.Cells["railwayNo"].Text.Trim();
  241. fs.actualFirstNo = ugr.Cells["actualFirstNo"].Text.Trim();
  242. fs.railwayCarriageNo = ugr.Cells["railwayCarriageNo"].Text.Trim();
  243. fs.railwaySpeed = Convert.ToDouble(ugr.Cells["railwaySpeed"].Text.Trim());
  244. fs.meterWeight = Convert.ToDouble(ugr.Cells["meterWeight"].Text.Trim());
  245. fs.createTime = Convert.ToDateTime(ugr.Cells["createTime"].Text.Trim());
  246. fs.railwayModelName = ugr.Cells["railwayModel"].Text.Trim();
  247. fs.baseSpotNo = strBaseSpotNo;
  248. fs.baseSpotName = sBaseSpotName;
  249. fs.valueFlag = "1";
  250. fs.weightType = "1";
  251. fs.createManNo = appUser.userid;
  252. fs.createManName = appUser.username;
  253. fs.shipmentGrossWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["shipmentGrossWeight"].Text) ? "0" : ugr.Cells["shipmentGrossWeight"].Text);
  254. fs.shipmentNetWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["shipmentNetWeight"].Text) ? "0" : ugr.Cells["shipmentNetWeight"].Text);
  255. fs.railwayTypeNo = "001019002";
  256. fs.railwayTypeName = "动态轨道衡";
  257. ltFirst.Add(fs);
  258. }
  259. }
  260. if (ltFirst != null && ltFirst.Count > 0)
  261. {
  262. RESTfulResult<string> result = actFirstService.doAddRailWf(ltFirst);
  263. if (result.Succeed)
  264. {
  265. UltraGridRow ugr = ultraGridVoice.ActiveRow;
  266. QueryReceived(ugr.Cells["actualNo"].Text.Trim());
  267. QueryFirstDb();
  268. }
  269. else
  270. {
  271. MessageBox.Show("新增失败!");
  272. }
  273. }
  274. }
  275. else
  276. {
  277. MessageBox.Show("请先勾选需确认的皮重数据");
  278. }
  279. }
  280. /// <summary>
  281. /// 皮重删除
  282. /// </summary>
  283. private void btnUnTare()
  284. {
  285. if (ultraGridFirst.Rows.Count > 0)
  286. {
  287. List<MeterWorkRailwayActFirst> ltFirst = new List<MeterWorkRailwayActFirst>();
  288. foreach (UltraGridRow ugr in ultraGridFirst.Rows)
  289. {
  290. if (ugr.Cells["UNCK"].Value.ToString().ToUpper() == "TRUE" && !ugr.HiddenResolved)
  291. {
  292. MeterWorkRailwayActFirst fs = new MeterWorkRailwayActFirst();
  293. fs.actualFirstNo = ugr.Cells["actualFirstNo"].Text.Trim();
  294. ltFirst.Add(fs);
  295. }
  296. }
  297. if (ltFirst != null && ltFirst.Count > 0)
  298. {
  299. RESTfulResult<string> result = actFirstService.doDeleteWf(ltFirst);
  300. if (result.Succeed)
  301. {
  302. QueryFirstDb();
  303. UltraGridRow ugr = ultraGridVoice.ActiveRow;
  304. if (ugr != null)
  305. {
  306. QueryReceived(ugr.Cells["actualNo"].Text.Trim());
  307. }
  308. }
  309. else
  310. {
  311. MessageBox.Show("删除失败!");
  312. }
  313. }
  314. }
  315. else
  316. {
  317. MessageBox.Show("请先勾选需删除的皮重数据");
  318. }
  319. }
  320. private static FrmMessage FrmMess(string strMess, string strBtnSaveInfo)
  321. {
  322. FrmMessage frmMessage = new FrmMessage();
  323. frmMessage.StartPosition = FormStartPosition.Manual;
  324. frmMessage.Location = new Point(350, 450);
  325. frmMessage.ShowMessage = strMess;
  326. frmMessage.BtnSaveText = strBtnSaveInfo;
  327. frmMessage.BtnCancelText = "取消";
  328. return frmMessage;
  329. }
  330. private void ultraGridVoice_Click(object sender, EventArgs e)
  331. {
  332. UltraGridRow ugr = ultraGridVoice.ActiveRow;
  333. if (ugr != null)
  334. {
  335. QueryReceived(ugr.Cells["actualNo"].Text.Trim());
  336. cbCheckAll.Checked = false;
  337. foreach (UltraGridRow ur in ultraGridVoice.Rows)
  338. {
  339. ur.Appearance.BackColor = Color.White;
  340. }
  341. ugr.Appearance.BackColor = Color.Red;
  342. }
  343. }
  344. #endregion
  345. #region 数据查询
  346. /// <summary>
  347. /// 采集主表数据查询
  348. /// </summary>
  349. private void QueryVoice()
  350. {
  351. DataTable dtV = dtVioce.Clone();
  352. Hashtable hashtable = new Hashtable();
  353. hashtable.Add("startTime", dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
  354. hashtable.Add("endTime", dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
  355. if (!string.IsNullOrEmpty(strBaseSpotNo))
  356. {
  357. hashtable.Add("startTime", dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss"));
  358. }
  359. RESTfulResult<List<MeterWorkRailwayRecMain>> rm = meterWorkRailwayRecMainService.Query(hashtable);
  360. dtV = ListToDatatable.ListToDataTable(rm.Data);
  361. //PbModelDbService<List<MeterWorkRailwayRecMain>> pb = new PbModelDbService<List<MeterWorkRailwayRecMain>>();
  362. //RESTfulResult<List<MeterWorkRailwayRecMain>> rmType = pb.executeSqlDataWf(sql);
  363. //if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  364. //{
  365. // dtV = rmType.Data.ListToDataTable<MeterWorkRailwayMotorialRecMain>();
  366. //}
  367. ClsControlPack.CopyDataToDatatable(ref dtV, ref this.dtVioce, true);
  368. ClsControlPack.RefreshAndAutoSize(ultraGridVoice);
  369. }
  370. /// <summary>
  371. /// 采集子表数据查询
  372. /// </summary>
  373. private void QueryReceived(string actualNo)
  374. {
  375. string sql = string.Format(@"select t.actual_first_no actualFirstNo,
  376. t.railway_no railwayNo,
  377. t.railway_carriage_no railwayCarriageNo,
  378. t.railway_speed railwaySpeed,
  379. nvl(t.meter_weight, 0) meterWeight,
  380. t.railway_model railwayModel,
  381. to_char(t.create_time,'yyyy-mm-dd hh24:mi:ss') createTime,
  382. t.base_spot_no baseSpotNo,
  383. t.base_spot_name baseSpotName,
  384. t.value_flag valueFlag,
  385. t.shipment_Gross_Weight shipmentGrossWeight,
  386. t.shipment_Net_Weight shipmentNetWeight
  387. from METER_WORK_RAILWAY_RECEIVED t
  388. where value_flag ='1' and actual_first_no like '{0}%' order by t.actual_first_no", actualNo);
  389. DataTable dtV = dtRecevice.Clone();
  390. PbModelDbService<List<MeterWorkRailwayMotorialReceived>> pb = new PbModelDbService<List<MeterWorkRailwayMotorialReceived>>();
  391. RESTfulResult<List<MeterWorkRailwayMotorialReceived>> rmType = pb.executeSqlDataWf(sql);
  392. if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  393. {
  394. dtV = rmType.Data.ListToDataTable<MeterWorkRailwayMotorialReceived>();
  395. }
  396. ClsControlPack.CopyDataToDatatable(ref dtV, ref this.dtRecevice, true);
  397. ClsControlPack.RefreshAndAutoSize(ultraGridRecive);
  398. foreach (UltraGridRow ugrc in ultraGridRecive.Rows)
  399. {
  400. if (ugrc.Cells["valueFlag"].Value.ToString() != "1")
  401. {
  402. ugrc.Appearance.BackColor = Color.Yellow;
  403. }
  404. }
  405. }
  406. /// <summary>
  407. /// 皮重查询
  408. /// </summary>
  409. private void QueryFirstDb()
  410. {
  411. string sql = $@"select actual_first_no actualFirstNo,
  412. railway_no railwayNo,
  413. railway_carriage_no railwayCarriageNo,
  414. railway_work_no railwayWorkNo,
  415. railway_speed railwaySpeed,
  416. nvl(meter_weight, 0) meterWeight,
  417. weight_type weightType,
  418. create_man_no createManNo,
  419. railway_model_name railwayModelName,
  420. create_man_name createManName,
  421. to_char(create_time, 'yyyy-mm-dd hh24:mi:ss') createTime,
  422. base_spot_no baseSpotNo,
  423. base_spot_name baseSpotName,
  424. value_flag valueFlag,
  425. shipment_Gross_Weight shipmentGrossWeight,
  426. shipment_Net_Weight shipmentNetWeight
  427. from Meter_Work_Railway_Act_First
  428. where value_flag = '1' and weight_type='1' and base_spot_no='00013' and create_time between to_date('{dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss")}','yyyy-MM-dd HH24:mi:ss') and to_date('{dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss")}','yyyy-MM-dd HH24:mi:ss') order by CREATE_TIME,RAILWAY_CARRIAGE_NO";
  429. dtRailwayActFirst.Clear();
  430. DataTable dtV = dtRailwayActFirst.Clone();
  431. PbModelDbService<List<MeterWorkRailwayActFirst>> pb = new PbModelDbService<List<MeterWorkRailwayActFirst>>();
  432. RESTfulResult<List<MeterWorkRailwayActFirst>> rmType = pb.executeSqlDataWf(sql);
  433. if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  434. {
  435. dtV = rmType.Data.ListToDataTable<MeterWorkRailwayActFirst>();
  436. }
  437. ClsControlPack.CopyDataToDatatable(ref dtV, ref this.dtRailwayActFirst, true);
  438. ClsControlPack.RefreshAndAutoSize(ultraGridFirst);
  439. }
  440. /// <summary>
  441. /// 结净数据查询
  442. /// </summary>
  443. private void QueryNetDb()
  444. {
  445. string sql = $@"select actual_no actualNo,
  446. prediction_no predictionNo,
  447. notice_no noticeNo,
  448. railway_no railwayNo,
  449. railway_carriage_no railwayCarriageNo,
  450. matter_no matterNo,
  451. matter_name matterName,
  452. contract_no contractNo,
  453. batch_no batchNo,
  454. customer_supplier_no customerSupplierNo,
  455. customer_supplier_name customerSupplierName,
  456. forwarding_unit_no forwardingUnitNo,
  457. forwarding_unit_name forwardingUnitName,
  458. receiving_uint_no receivingUintNo,
  459. receiving_uint_name receivingUintName,
  460. material_no materialNo,
  461. material_name materialName,
  462. spec_no specNo,
  463. spec_name specName,
  464. load_point_no loadPointNo,
  465. load_point_name loadPointName,
  466. sample_voucher sampleVoucher,
  467. carrier_unit_no carrierUnitNo,
  468. carrier_unit_name carrierUnitName,
  469. meter_type_no meterTypeNo,
  470. meter_type_name meterTypeName,
  471. meter_process_no meterProcessNo,
  472. meter_process_edition_no meterProcessEditionNo,
  473. actual_first1_no actualFirst1No,
  474. nvl(gross_weight,0) grossWeight,
  475. gross_man_no grossManNo,
  476. gross_man_name grossManName,
  477. to_char(gross_time, 'yyyy-mm-dd hh24:mi:ss') grossTime ,
  478. base_spot1_no baseSpot1No,
  479. base_spot1_name baseSpot1Name,
  480. gross_class grossClass,
  481. gross_group grossGroup,
  482. gross_mode grossMode,
  483. actual_first2_no actualFirst2No,
  484. nvl(tare_weight,0) tareWeight,
  485. tare_man_no tareManNo,
  486. tare_man_name tareManName,
  487. to_char(tare_time, 'yyyy-mm-dd hh24:mi:ss') tareTime ,
  488. base_spot2_no baseSpot2No,
  489. base_spot2_name baseSpot2Name,
  490. tare_class tareClass,
  491. tare_group tareGroup,
  492. tare_mode tareMode,
  493. nvl(net_weight,0) netWeight,
  494. net_man_no netManNo,
  495. net_man_name netManName,
  496. to_char(net_time, 'yyyy-mm-dd hh24:mi:ss') netTime ,
  497. net_spot3_no netSpot3No,
  498. net_spot3_name netSpot3Name,
  499. net_class netClass,
  500. net_group netGroup,
  501. net_mode netMode,
  502. value_flag valueFlag,
  503. upload_flag uploadFlag,
  504. check_man_no checkManNo,
  505. check_man_name checkManName,
  506. to_char(check_time, 'yyyy-mm-dd hh24:mi:ss') checkTime ,
  507. upload_man_no uploadManNo,
  508. upload_man_name uploadManName,
  509. to_char(upload_time, 'yyyy-mm-dd hh24:mi:ss') uploadTime,
  510. sample_no sampleNo,
  511. railway_type_no railwayTypeNo,
  512. railway_type_name railwayTypeName,
  513. water_num waterNum,
  514. round((nvl(net_weight,0)- nvl(net_weight,0) * nvl(water_num,0)/100),2) dryWgt,
  515. RAILWAY_MODEL_NAME railwayModelName
  516. from meter_work_railway_actual
  517. where value_flag = '0' and {(cbTimeType.Text == "毛重时间" ? "gross_time" : "net_time")} between to_date('{dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss")}','yyyy-MM-dd HH24:mi:ss') and to_date('{dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss")}','yyyy-MM-dd HH24:mi:ss')";
  518. //and railway_type_no='001019002' 轨道衡类型
  519. if (!string.IsNullOrEmpty(strBaseSpotNo))
  520. {
  521. sql += string.Format(" and NET_SPOT3_NO ='{0}'", strBaseSpotNo);
  522. }
  523. sql += " order by net_time";
  524. dtRailwayActual.Clear();
  525. DataTable dt = dtRailwayActual.Clone();
  526. PbModelDbService<List<MeterWorkRailwayActual>> pb = new PbModelDbService<List<MeterWorkRailwayActual>>();
  527. RESTfulResult<List<MeterWorkRailwayActual>> rmType = pb.executeSqlDataWf(sql);
  528. if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  529. {
  530. dt = rmType.Data.ListToDataTable<MeterWorkRailwayActual>();
  531. }
  532. ClsControlPack.CopyDataToDatatable(ref dt, ref this.dtRailwayActual, true);
  533. ClsControlPack.RefreshAndAutoSize(ultraGridNet);
  534. }
  535. #endregion
  536. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  537. {
  538. ultraGridNet.UpdateData();
  539. ultraGridRecive.UpdateData();
  540. switch (e.Tool.Key)
  541. {
  542. case "btnQuery":
  543. {
  544. cbCheckAll.Checked = false;
  545. cbNetAll.Checked = false;
  546. btnQuery();
  547. break;
  548. }
  549. case "btnSubmit":
  550. {
  551. btnSubmit();
  552. break;
  553. }
  554. case "btnTareSave":
  555. {
  556. btnTare();
  557. break;
  558. }
  559. case "btnUnSubmit":
  560. {
  561. btnUnSubmit();
  562. break;
  563. }
  564. case "btnUnTareSave":
  565. {
  566. btnUnTare();
  567. break;
  568. }
  569. default: break;
  570. }
  571. }
  572. private void cbCheckAll_CheckedChanged(object sender, EventArgs e)
  573. {
  574. if (ultraGridRecive.Rows.Count > 0)
  575. {
  576. foreach (UltraGridRow ugr in ultraGridRecive.Rows)
  577. {
  578. ugr.Cells["UNCK"].Value = cbCheckAll.Checked;
  579. foreach (UltraGridRow ugrx in ultraGridFirst.Rows)
  580. {
  581. if (ugrx.Cells["railwayNo"].Text.Trim() == ugr.Cells["railwayNo"].Text.Trim())
  582. {
  583. ugrx.Cells["UNCK"].Value = cbCheckAll.Checked;
  584. break;
  585. }
  586. }
  587. }
  588. }
  589. ultraGridFirst.UpdateData();
  590. ultraGridRecive.UpdateData();
  591. }
  592. private void cbCheckTare_CheckedChanged(object sender, EventArgs e)
  593. {
  594. if (ultraGridFirst.Rows.Count > 0)
  595. {
  596. foreach (UltraGridRow ugr in ultraGridFirst.Rows)
  597. {
  598. ugr.Cells["UNCK"].Value = cbCheckTare.Checked;
  599. }
  600. }
  601. ultraGridFirst.UpdateData();
  602. }
  603. private void ultraGridRecive_AfterCellUpdate(object sender, CellEventArgs e)
  604. {
  605. UltraGridRow ugr = ultraGridRecive.ActiveRow;
  606. if (ugr != null)
  607. {
  608. foreach (UltraGridRow ugrx in ultraGridFirst.Rows)
  609. {
  610. if (ugrx.Cells["railwayNo"].Text.Trim() == ugr.Cells["railwayNo"].Text.Trim())
  611. {
  612. ugrx.Cells["UNCK"].Value = ugr.Cells["UNCK"].Value;
  613. break;
  614. }
  615. }
  616. }
  617. ugr.Appearance.BackColor = Color.Red;
  618. }
  619. private void ultraGridNet_AfterRowActivate(object sender, EventArgs e)
  620. {
  621. UltraGridRow ugr = ultraGridNet.ActiveRow;
  622. if (ugr != null)
  623. {
  624. if (ultraGridNet.Rows.Count > 0)
  625. {
  626. foreach (UltraGridRow ugrc in ultraGridNet.Rows)
  627. {
  628. ugrc.Appearance.BackColor = Color.White;
  629. }
  630. }
  631. ugr.Appearance.BackColor = Color.Red;
  632. }
  633. }
  634. private void ultraGridVoice_InitializeLayout(object sender, InitializeLayoutEventArgs e)
  635. {
  636. }
  637. private void cbNetAll_CheckedChanged(object sender, EventArgs e)
  638. {
  639. if (ultraGridNet.Rows.Count > 0)
  640. {
  641. foreach (UltraGridRow ugr in ultraGridNet.Rows)
  642. {
  643. ugr.Cells["UNCK"].Value = cbNetAll.Checked;
  644. }
  645. }
  646. ultraGridNet.UpdateData();
  647. }
  648. public class ListToDatatable
  649. {
  650. public ListToDatatable() { }
  651. public static DataTable ListToDataTable<T>(List<T> entitys)
  652. {
  653. //检查实体集合不能为空
  654. if (entitys == null || entitys.Count < 1)
  655. {
  656. return new DataTable();
  657. }
  658. //取出第一个实体的所有Propertie
  659. Type entityType = entitys[0].GetType();
  660. PropertyInfo[] entityProperties = entityType.GetProperties();
  661. //生成DataTable的structure
  662. //生产代码中,应将生成的DataTable结构Cache起来,此处略
  663. DataTable dt = new DataTable("dt");
  664. for (int i = 0; i < entityProperties.Length; i++)
  665. {
  666. //dt.Columns.Add(entityProperties[i].Name, entityProperties[i].PropertyType);
  667. dt.Columns.Add(entityProperties[i].Name);
  668. }
  669. //将所有entity添加到DataTable中
  670. foreach (object entity in entitys)
  671. {
  672. //检查所有的的实体都为同一类型
  673. if (entity.GetType() != entityType)
  674. {
  675. throw new Exception("要转换的集合元素类型不一致");
  676. }
  677. object[] entityValues = new object[entityProperties.Length];
  678. for (int i = 0; i < entityProperties.Length; i++)
  679. {
  680. entityValues[i] = entityProperties[i].GetValue(entity, null);
  681. }
  682. dt.Rows.Add(entityValues);
  683. }
  684. return dt;
  685. }
  686. }
  687. }
  688. }