frmHotDeliveryScaleCar42.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  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 System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Windows.Forms;
  11. namespace StorageMeterSystem
  12. {
  13. public partial class frmHotDeliveryScaleCar42 : Form
  14. {
  15. private PreStorageScaleService scaleService = new PreStorageScaleService(); //预报服务
  16. private ComBaseInfoService comBaseInfoService = new ComBaseInfoService(); //基础数服务
  17. private MeterBaseScalePointService scalePointService = new MeterBaseScalePointService(); //计量点信息服务
  18. private MeterWorkStorageSingleWgtService singleWgtService = new MeterWorkStorageSingleWgtService(); //理论重量表
  19. private PreStorageScale preTack = new PreStorageScale(); //预报实体类
  20. private Log l = Log.GetInstance(); //日志
  21. private string userId = "", userName = ""; //用户ID用户名
  22. private CoreAppUser appUser = null;//登陆信息
  23. private frmHotDeliveryBeltWarn fm = null;//预警界面
  24. public bool bMsgOpen = false; //是否打开了预警界面提醒
  25. private MeterWorkStorageActualService actualService = new MeterWorkStorageActualService(); //实绩服务
  26. public frmHotDeliveryScaleCar42()
  27. {
  28. InitializeComponent();
  29. }
  30. private void frmHotDeliveryScaleCar42_Load(object sender, EventArgs e)
  31. {
  32. ClsControlPack.SetNoEnable(ultraGridScale);
  33. userId = ((ST_MainForm)(this.MdiParent)).UserID;
  34. userName = ((ST_MainForm)(this.MdiParent)).UserName;
  35. appUser = ((ST_MainForm)(this.MdiParent)).AppUser;
  36. dtStartTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00"));
  37. dtEndTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"));
  38. #region 载入基础信息
  39. /*
  40. string sql = @"SELECT base_code baseCode,base_name baseName,memo FROM Com_Base_Info where p_base_code='001025' and valid_Flag='1'";
  41. PbModelDbService<List<ComBaseInfo>> pb = new PbModelDbService<List<ComBaseInfo>>();
  42. RESTfulResult<List<ComBaseInfo>> rmType = pb.executeSqlDataWf(sql);
  43. if (rmType.Succeed && rmType.Data != null && rmType.Data.Count > 0)
  44. {
  45. ClsControlPack.SetUltraComboDataSource(cmbScaleState, rmType.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  46. }
  47. else
  48. {
  49. MessageBox.Show("产品信息载入失败");
  50. return;
  51. }
  52. */
  53. //计量点信息载入cmbPoint;cmbPointUp
  54. //计量点信息载入cmbPoint;cmbPointUp
  55. RESTfulResult<List<MeterBaseScalePoint>> rr = scalePointService.doQueryWf(
  56. new MeterBaseScalePoint { validFlag = "1", spotTypeNo = "001002004", scalePointNo = "00032001" });
  57. if (rr.Succeed && rr.Data != null && rr.Data.Count > 0)
  58. {
  59. //ClsControlPack.SetUltraComboDataSource(cmbPoint, rr.Data.ListToDataTable<MeterBaseScalePoint>(), "baseSpotNo", "baseSpotName");
  60. //ClsControlPack.SetUltraComboDataSource(cmbPointUp, rr.Data.ListToDataTable<MeterBaseScalePoint>(), "baseSpotNo", "baseSpotName");
  61. ValueList vlist2 = new ValueList();
  62. foreach (var item in rr.Data)
  63. {
  64. vlist2.ValueListItems.Add(item.baseSpotNo, item.baseSpotName);
  65. }
  66. cmbPoint.ValueList = vlist2;
  67. cmbPoint.SelectedIndex = 0;
  68. cmbPointUp.ValueList = vlist2;
  69. cmbPointUp.SelectedIndex = 0;
  70. }
  71. else
  72. {
  73. MessageBox.Show("计量点载入失败!");
  74. return;
  75. }
  76. //热送磅规格信息载入cmbSpcNameUp
  77. RESTfulResult<List<ComBaseInfo>> rrComSpcName = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001018" });
  78. if (rrComSpcName.Succeed && rrComSpcName.Data != null && rrComSpcName.Data.Count > 0)
  79. {
  80. rrComSpcName.Data.Sort((a, b) => a.baseName.CompareTo(b.baseName));
  81. ClsControlPack.SetUltraComboDataSource(cmbSpcNameUp, rrComSpcName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  82. }
  83. else
  84. {
  85. MessageBox.Show("热送磅规格信息载入失败!");
  86. return;
  87. }
  88. //热送磅钢种信息载入cmbGradeNameUp
  89. RESTfulResult<List<ComBaseInfo>> rrComGradeName = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001017" });
  90. if (rrComGradeName.Succeed && rrComGradeName.Data != null && rrComGradeName.Data.Count > 0)
  91. {
  92. rrComGradeName.Data.Sort((a, b) => a.baseName.CompareTo(b.baseName));
  93. ClsControlPack.SetUltraComboDataSource(cmbGradeNameUp, rrComGradeName.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  94. }
  95. else
  96. {
  97. MessageBox.Show("热送磅钢种信息载入失败!");
  98. return;
  99. }
  100. //热送磅班组信息载入cmbMeterGroupUp
  101. RESTfulResult<List<ComBaseInfo>> rrComMeterGroop = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001044" });
  102. if (rrComMeterGroop.Succeed && rrComMeterGroop.Data != null && rrComMeterGroop.Data.Count > 0)
  103. {
  104. ClsControlPack.SetUltraComboDataSource(cmbMeterGroupUp, rrComMeterGroop.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  105. ClsControlPack.SetUltraComboDataSource(cmbMeterGroup, rrComMeterGroop.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  106. }
  107. else
  108. {
  109. MessageBox.Show("热送磅班组信息载入失败!");
  110. return;
  111. }
  112. //热送磅班次信息载入cmbMeterClassUp
  113. RESTfulResult<List<ComBaseInfo>> rrComMeterClass = comBaseInfoService.doQueryBaseList(new ComBaseInfo { validFlag = "1", pBaseCode = "001043" });
  114. if (rrComMeterClass.Succeed && rrComMeterClass.Data != null && rrComMeterClass.Data.Count > 0)
  115. {
  116. ClsControlPack.SetUltraComboDataSource(cmbMeterClassUp, rrComMeterClass.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  117. ClsControlPack.SetUltraComboDataSource(cmbMeterClass, rrComMeterClass.Data.ListToDataTable<ComBaseInfo>(), "baseCode", "baseName");
  118. }
  119. else
  120. {
  121. MessageBox.Show("热送磅班次信息载入失败!");
  122. return;
  123. }
  124. //预报状态
  125. ValueList vlistScale = new ValueList();
  126. vlistScale.ValueListItems.Add("", "全部");
  127. vlistScale.ValueListItems.Add("0", "无效");
  128. vlistScale.ValueListItems.Add("1", "未使用");
  129. vlistScale.ValueListItems.Add("2", "使用中");
  130. vlistScale.ValueListItems.Add("3", "已完成");
  131. cmbScaleState.ValueList = vlistScale;
  132. cmbScaleState.SelectedIndex = 0;
  133. ValueList vlistFlag3 = new ValueList();
  134. vlistFlag3.ValueListItems.Add("", "全部");
  135. vlistFlag3.ValueListItems.Add("0", "无效");
  136. vlistFlag3.ValueListItems.Add("1", "未使用");
  137. vlistFlag3.ValueListItems.Add("2", "使用中");
  138. vlistFlag3.ValueListItems.Add("3", "已完成");
  139. this.ultraGridScale.DisplayLayout.Bands[0].Columns["valueFlag"].ValueList = vlistFlag3;
  140. //ClsControlPack.SetUltraGridRowFilter(ref ultraGridScale, true);
  141. #endregion 载入基础信息
  142. }
  143. #region 点击事件
  144. /// <summary>
  145. /// 点击事件
  146. /// </summary>
  147. /// <param name="sender"></param>
  148. /// <param name="e"></param>
  149. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  150. {
  151. switch (e.Tool.Key)
  152. {
  153. case "btnQuery": //btnInsert
  154. {
  155. btnQuery();
  156. break;
  157. }
  158. case "btnInsert": //新增
  159. {
  160. btnInsert();
  161. break;
  162. }
  163. case "btnCancel": //作废
  164. {
  165. btnUpdate("0");
  166. }
  167. break;
  168. case "btnUnCancel": //还原
  169. {
  170. btnUpdate("1");
  171. }
  172. break;
  173. case "btnUpdate": //还原
  174. {
  175. btnUpdate("");
  176. }
  177. break;
  178. default: break;
  179. }
  180. }
  181. /// <summary>
  182. /// 行点击事件,给下面的区域赋值
  183. /// </summary>
  184. /// <param name="sender"></param>
  185. /// <param name="e"></param>
  186. private void ultraGridScale_ClickCell(object sender, ClickCellEventArgs e)
  187. {
  188. try
  189. {
  190. if (ultraGridScale.ActiveRow == null)
  191. {
  192. return;
  193. }
  194. UltraGridRow ugr = ultraGridScale.ActiveRow;
  195. if (ugr.Cells["UNCK"].Value.ToString().ToUpper().Equals("TRUE"))
  196. {
  197. ugr.Cells["UNCK"].Value = false;
  198. }
  199. else
  200. {
  201. ugr.Cells["UNCK"].Value = true;
  202. }
  203. //界面赋值
  204. if (ugr != null)
  205. {
  206. preTack.predictionNo = ugr.Cells["predictionNo"].Text.Trim(); //预报编号
  207. preTack.specName = ugr.Cells["specName"].Text.Trim(); //规格
  208. preTack.gradeName = ugr.Cells["gradeName"].Text.Trim(); //钢号
  209. preTack.batchNo = ugr.Cells["batchNo"].Text.Trim(); //批次号
  210. preTack.heatNo = ugr.Cells["heatNo"].Text.Trim(); //炉号
  211. preTack.packageNo = ugr.Cells["packageNo"].Text.Trim(); //顺序号
  212. preTack.blockNum = ugr.Cells["blockNum"].Text.Trim(); //总支数
  213. preTack.theoreticalWeight = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["theoreticalWeight"].Text.Trim()) ? "0" : ugr.Cells["theoreticalWeight"].Text.Trim()); //理论重量
  214. preTack.weightDiff = Convert.ToDouble(string.IsNullOrEmpty(ugr.Cells["weightDiff"].Text.Trim()) ? "0" : ugr.Cells["weightDiff"].Text.Trim()); //理论重量差值
  215. preTack.meterClass = ugr.Cells["meterClass"].Text.Trim(); //班次
  216. preTack.meterGroup = ugr.Cells["meterGroup"].Text.Trim(); //班次
  217. preTack.baseSpotNo = ugr.Cells["baseSpotNo"].Text.Trim(); //计量点的编号
  218. preTack.baseSpotName = ugr.Cells["baseSpotName"].Text.Trim(); //计量点名称
  219. preTack.memo = ugr.Cells["memo"].Text.Trim(); //计量点名称
  220. if ("2".Equals(ugr.Cells["valueFlag"].Value + ""))
  221. {
  222. updateBoxUnEnable();
  223. }
  224. else
  225. {
  226. updateBoxEnable();
  227. }
  228. autoAutoFill(preTack); //点击行进行自动填充界面字段
  229. }
  230. }
  231. catch (Exception ex)
  232. {
  233. MessageBox.Show("ultraGridScale_ClickCell方法处理异常:" + ex);
  234. }
  235. }
  236. /// <summary>
  237. /// 全选点击事件
  238. /// </summary>
  239. /// <param name="sender"></param>
  240. /// <param name="e"></param>
  241. private void cbAll_CheckedChanged(object sender, EventArgs e)
  242. {
  243. foreach (UltraGridRow ugr in ultraGridScale.Rows)
  244. {
  245. if (!ugr.HiddenResolved)
  246. {
  247. ugr.Cells["UNCK"].Value = cbAll.Checked;
  248. }
  249. }
  250. }
  251. /// <summary>
  252. /// 钢种TextChange事件
  253. /// </summary>
  254. /// <param name="sender"></param>
  255. /// <param name="e"></param>
  256. private void cmbGradeNameUp_TextChanged(object sender, EventArgs e)
  257. {
  258. queryTheoryWgt();
  259. }
  260. /// <summary>
  261. /// 规格TextChange事件
  262. /// </summary>
  263. /// <param name="sender"></param>
  264. /// <param name="e"></param>
  265. private void cmbSpcNameUp_TextChanged(object sender, EventArgs e)
  266. {
  267. queryTheoryWgt();
  268. }
  269. #endregion 点击事件
  270. #region 预报支数报警事件
  271. /// <summary>
  272. /// 定时器,用于做预报报警
  273. /// </summary>
  274. /// <param name="sender"></param>
  275. /// <param name="e"></param>
  276. private void timer1_Tick(object sender, EventArgs e)
  277. {
  278. CommonPage<PreStorageScale> cp = new CommonPage<PreStorageScale>();
  279. cp.param = new PreStorageScale(); //{ valueFlag = "1", baseSpotNo = cmbPoint.Value?.ToString() };
  280. cp.param.valueFlag = "9";//VALUE_FLAG in ('1','2')
  281. cp.param.baseSpotNo = cmbPoint.Value + "";
  282. RESTfulResult<List<PreStorageScale>> rms = scaleService.doQueryWf(cp.param);
  283. if (rms.Succeed)
  284. {
  285. if (rms.Data != null && rms.Data.Count == 1)
  286. {
  287. RESTfulResult<List<MeterWorkStorageActual>> rmsActual = actualService.doQuery(new MeterWorkStorageActual
  288. {
  289. predictionNo = rms.Data[0].predictionNo,
  290. valueFlag = "1"
  291. });
  292. if (rmsActual.Succeed && rmsActual.Data != null && rmsActual.Data.Count > 0)
  293. {
  294. if (!string.IsNullOrEmpty(rmsActual.Data[0].packageNo) && !string.IsNullOrEmpty(rmsActual.Data[0].blockNum))
  295. {
  296. if (Convert.ToInt32(rmsActual.Data[0].blockNum) - Convert.ToInt32(rmsActual.Data[0].packageNo) == 10)
  297. {
  298. OpenMsg("预报仅剩余 10 支,请及时做预报!");
  299. }
  300. if (Convert.ToInt32(rmsActual.Data[0].blockNum) - Convert.ToInt32(rmsActual.Data[0].packageNo) == 5)
  301. {
  302. OpenMsg("预报仅剩余 5 支,请及时做预报!");
  303. }
  304. }
  305. }
  306. }
  307. else
  308. {
  309. //直接报警
  310. }
  311. }
  312. }
  313. /// <summary>
  314. /// 预报支数报警信息,从用户控件中回调主界面方法
  315. /// </summary>
  316. /// <param name="strWarnInfo"></param>
  317. private void OpenMsg(string strWarnInfo)
  318. {
  319. try
  320. {
  321. if (!bMsgOpen)
  322. {
  323. if (PbCacheMonitor.frmMsgClosingTime == null)
  324. {
  325. bMsgOpen = true;
  326. fm = frmHotDeliveryBeltWarn.CreateInstrance(this);
  327. fm.TopMost = true;
  328. fm.setLbTxt(strWarnInfo);
  329. fm.Show();
  330. }
  331. else
  332. {
  333. TimeSpan secondSpan = new TimeSpan(DateTime.Now.Ticks - PbCacheMonitor.frmMsgClosingTime.Value.Ticks);
  334. if (secondSpan.TotalSeconds > 5)
  335. {
  336. bMsgOpen = true;
  337. fm = frmHotDeliveryBeltWarn.CreateInstrance(this);
  338. fm.TopMost = true;
  339. fm.setLbTxt(strWarnInfo);
  340. fm.Show();
  341. }
  342. }
  343. }
  344. /*
  345. if (!string.IsNullOrEmpty(openPointNo) && fm != null)
  346. {
  347. fm.CloseFrm();
  348. }
  349. */
  350. }
  351. catch { }
  352. }
  353. #endregion 预报支数报警事件
  354. /// <summary>
  355. /// 查询理论重量,并给界面赋值
  356. /// </summary>
  357. private void queryTheoryWgt()
  358. {
  359. if (!string.IsNullOrEmpty(cmbGradeNameUp.Text) && !string.IsNullOrEmpty(cmbSpcNameUp.Text))
  360. {
  361. MeterWorkStorageSingleWgt singleWgt = new MeterWorkStorageSingleWgt();
  362. singleWgt.gradeNo = cmbGradeNameUp.Value + "";
  363. singleWgt.specNo = cmbSpcNameUp.Value + "";
  364. singleWgt.valueFlag = "1";//状态(1=有效,0=无效)
  365. singleWgt.weightType = "1"; //重量类型(0 = 单只实际重量,1 = 预报理论重量,2 = 标准件重量)
  366. RESTfulResult<List<MeterWorkStorageSingleWgt>> rms = singleWgtService.doQuery(singleWgt);
  367. if (rms.Succeed && rms.Data != null && rms.Data.Count > 0)
  368. {
  369. tbTheoreticalWeightUp.Text = rms.Data[0].singleWeight + "";
  370. tbWeightDiff.Text = rms.Data[0].weightDiff + "";
  371. }
  372. else
  373. {
  374. tbTheoreticalWeightUp.Text = "";
  375. tbWeightDiff.Text = "";
  376. //MessageBox.Show("未查询到钢种【" + cmbGradeNameUp.Text + "】、规格【" + cmbSpcNameUp.Text + "】对应的理论重量,请先在【热送磅理论重量维护】界面维护理论重量!");
  377. }
  378. }
  379. }
  380. /// <summary>
  381. /// 除顺序号,界面不可编辑
  382. /// </summary>
  383. private void updateBoxUnEnable()
  384. {
  385. cmbPointUp.Enabled = false;
  386. tbHeatNoUp.Enabled = false;
  387. cmbSpcNameUp.Enabled = false;
  388. cmbGradeNameUp.Enabled = false;
  389. tbTheoreticalWeightUp.Enabled = false;
  390. cmbMeterClassUp.Enabled = false;
  391. cmbMeterGroupUp.Enabled = false;
  392. tbPackageNoUp.Enabled = true;
  393. tbBlockNumUp.Enabled = false;
  394. tbMemo.Enabled = false;
  395. }
  396. /// <summary>
  397. /// 界面可编辑
  398. /// </summary>
  399. private void updateBoxEnable()
  400. {
  401. cmbPointUp.Enabled = true;
  402. tbHeatNoUp.Enabled = true;
  403. cmbSpcNameUp.Enabled = true;
  404. cmbGradeNameUp.Enabled = true;
  405. tbTheoreticalWeightUp.Enabled = true;
  406. cmbMeterClassUp.Enabled = true;
  407. cmbMeterGroupUp.Enabled = true;
  408. tbPackageNoUp.Enabled = true;
  409. tbBlockNumUp.Enabled = true;
  410. tbMemo.Enabled = true;
  411. }
  412. /// <summary>
  413. /// 自动填充界面的数据
  414. /// </summary>
  415. private void autoAutoFill(PreStorageScale preTack)
  416. {
  417. if (preTack == null || string.IsNullOrEmpty(preTack.predictionNo))
  418. {
  419. return;
  420. }
  421. cmbPointUp.Text = preTack.baseSpotName; //计量点名称1
  422. tbHeatNoUp.Text = preTack.heatNo; //炉号2
  423. cmbSpcNameUp.Text = preTack.specName; //规格名称3
  424. cmbGradeNameUp.Text = preTack.gradeName; //钢号名称4
  425. tbPackageNoUp.Text = preTack.packageNo;//顺序号5
  426. tbBlockNumUp.Text = preTack.blockNum;//总支数6
  427. cmbMeterClassUp.Text = preTack.meterClass;//班次7
  428. tbTheoreticalWeightUp.Text = preTack.theoreticalWeight + "";//理论重量8
  429. tbMemo.Text = preTack.memo;//备注
  430. cmbMeterGroupUp.Text = preTack.meterGroup;//班次7
  431. }
  432. /// <summary>
  433. /// 界面的值给storageActual赋值;用于新增、修改
  434. /// </summary>
  435. /// <param name="storageActual"></param>
  436. private PreStorageScale setTableValue(PreStorageScale tbScale)
  437. {
  438. tbScale.baseSpotName = cmbPointUp.Text;
  439. tbScale.baseSpotNo = cmbPointUp.Value + "";
  440. tbScale.heatNo = tbHeatNoUp.Text;
  441. tbScale.specName = cmbSpcNameUp.Text;
  442. tbScale.specNo = cmbSpcNameUp.Value + "";
  443. tbScale.gradeName = cmbGradeNameUp.Text;
  444. tbScale.gradeNo = cmbGradeNameUp.Value + "";
  445. tbScale.theoreticalWeight = Convert.ToDouble(string.IsNullOrEmpty(tbTheoreticalWeightUp.Text) ? "0" : tbTheoreticalWeightUp.Text); //理论重量
  446. tbScale.weightDiff = Convert.ToDouble(string.IsNullOrEmpty(tbWeightDiff.Text) ? "0" : tbWeightDiff.Text); //理论重量偏差值
  447. tbScale.meterClass = cmbMeterClassUp.Text;
  448. tbScale.meterGroup = cmbMeterGroupUp.Text;
  449. tbScale.packageNo = tbPackageNoUp.Text;
  450. tbScale.blockNum = tbBlockNumUp.Text;
  451. tbScale.memo = tbMemo.Text;//备注
  452. return tbScale;
  453. }
  454. /// <summary>
  455. /// 新增数据
  456. /// </summary>
  457. /// <param name="vFlag"></param>
  458. private void btnInsert()
  459. {
  460. queryTheoryWgt();//新增前重复校验,避免停留过久影响
  461. List<PreStorageScale> scaleList = new List<PreStorageScale>();
  462. PreStorageScale preStorageScale = new PreStorageScale();
  463. preStorageScale.createManName = userName;
  464. preStorageScale.createManNo = userId;
  465. preStorageScale = setTableValue(preStorageScale);
  466. if (string.IsNullOrEmpty(tbTheoreticalWeightUp.Text) || string.IsNullOrEmpty(tbWeightDiff.Text))
  467. {
  468. MessageBox.Show("未查询到钢种【" + cmbGradeNameUp.Text + "】、规格【" + cmbSpcNameUp.Text + "】对应的理论重量,不允许进行新增,请先到【热送磅理论重量维护】界面维护!");
  469. return;
  470. }
  471. scaleList.Add(preStorageScale);
  472. RESTfulResult<string> rms = scaleService.doAddWf(scaleList);
  473. if (rms.Succeed)
  474. {
  475. MessageBox.Show("新增成功!");
  476. btnQuery();
  477. }
  478. else
  479. {
  480. MessageBox.Show("操作失败:" + rms.Data);
  481. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  482. }
  483. }
  484. /// <summary>
  485. /// 修改数据(作废还原)
  486. /// </summary>
  487. /// <param name="vFlag"></param>
  488. private void btnUpdate(string vFlag)
  489. {
  490. try
  491. {
  492. queryTheoryWgt();//修改前重复校验,避免停留过久影响
  493. int iCount = 0, updateValueNotUse = 0, updateValueUsed = 0;
  494. List<PreStorageScale> lt = new List<PreStorageScale>();
  495. ultraGridScale.UpdateData();
  496. foreach (UltraGridRow ugr in ultraGridScale.Rows)
  497. {
  498. if (ugr.Cells["UNCK"].Value.ToString().Trim().ToUpper() == "TRUE")
  499. {
  500. if ("1".Equals(ugr.Cells["valueFlag"].Value + ""))
  501. {
  502. updateValueNotUse = 1;
  503. }
  504. if ("2".Equals(ugr.Cells["valueFlag"].Value + ""))
  505. {
  506. updateValueUsed = 2;
  507. }
  508. if (updateValueNotUse == 1 && updateValueUsed == 2)
  509. {
  510. MessageBox.Show("[使用中]的预报与[未使用]的预报不允许同时修改,重新勾选数据!");
  511. return;
  512. }
  513. if (string.IsNullOrEmpty(vFlag) && "0".Equals(ugr.Cells["valueFlag"].Value + ""))
  514. {
  515. MessageBox.Show("已作废的数据,请先还原再进行修改!");
  516. return;
  517. }
  518. if ("3".Equals(ugr.Cells["valueFlag"].Value + ""))
  519. {
  520. MessageBox.Show("已使用完成的预报不允许进行修改,请重新做预报!");
  521. return;
  522. }
  523. if (string.IsNullOrEmpty(tbTheoreticalWeightUp.Text) || string.IsNullOrEmpty(tbWeightDiff.Text))
  524. {
  525. MessageBox.Show("未查询到钢种【" + cmbGradeNameUp.Text + "】、规格【" + cmbSpcNameUp.Text + "】对应的理论重量,不允许进行新增,请先到【热送磅理论重量维护】界面维护!");
  526. return;
  527. }
  528. PreStorageScale preStorageUpdate = new PreStorageScale();
  529. preStorageUpdate.predictionNo = ugr.Cells["predictionNo"].Text.Trim();
  530. preStorageUpdate.updateManNo = userId;
  531. preStorageUpdate.updateManName = userName;
  532. if (!string.IsNullOrEmpty(vFlag))
  533. {
  534. preStorageUpdate.valueFlag = vFlag;
  535. }
  536. else
  537. {
  538. preStorageUpdate = setTableValue(preStorageUpdate);
  539. }
  540. lt.Add(preStorageUpdate);
  541. iCount++;
  542. }
  543. }
  544. if (lt == null || lt.Count == 0)
  545. {
  546. MessageBox.Show("请至少勾选一条数据后再进行更新操作!");
  547. return;
  548. }
  549. DialogResult dr = MessageBox.Show("共更新[" + iCount + "]条数据,是否继续更新!", "提示", MessageBoxButtons.OKCancel);
  550. if (dr == DialogResult.Cancel)
  551. {
  552. return;
  553. }
  554. RESTfulResult<String> rms = scaleService.doUpdateWf(lt);
  555. if (rms.Succeed)
  556. {
  557. MessageBox.Show("修改成功!");
  558. btnQuery();
  559. }
  560. else
  561. {
  562. MessageBox.Show("操作失败:" + rms.Data);
  563. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  564. }
  565. }
  566. catch (Exception)
  567. {
  568. throw;
  569. }
  570. }
  571. /// <summary>
  572. /// 查询数据
  573. /// </summary>
  574. private void btnQuery()
  575. {
  576. DataTable dtScale = dataTable1.Clone();
  577. if (DateTime.Compare(dtStartTime.Value, dtEndTime.Value) > 0)
  578. {
  579. MessageBox.Show("开始时间不能大于结束时间");
  580. return;
  581. }
  582. if ((dtEndTime.Value - dtStartTime.Value).Days > 30)
  583. {
  584. MessageBox.Show("时间跨度不能大于30天");
  585. return;
  586. }
  587. if (string.IsNullOrEmpty(cmbPoint.Value?.ToString()))
  588. {
  589. MessageBox.Show("请选择计量点");
  590. return;
  591. }
  592. CommonPage<PreStorageScale> cp = new CommonPage<PreStorageScale>();
  593. cp.param = new PreStorageScale(); //{ valueFlag = "1", baseSpotNo = cmbPoint.Value?.ToString() };
  594. cp.param.valueFlag = cmbScaleState.Value + "";
  595. cp.param.baseSpotNo = cmbPoint.Value + "";
  596. cp.param.startTime = dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  597. cp.param.endTime = dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  598. cp.param.meterClass = cmbMeterClass.Text + "";
  599. cp.param.meterGroup = cmbMeterGroup.Text + "";
  600. RESTfulResult<List<PreStorageScale>> rms = scaleService.doQueryWf(cp.param);
  601. if (rms.Succeed)
  602. {
  603. if (rms.Data != null && rms.Data.Count > 0)
  604. {
  605. dtScale = rms.Data.ListToDataTable<PreStorageScale>();
  606. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  607. ClsControlPack.RefreshAndAutoSize(ultraGridScale);
  608. foreach (UltraGridRow ugr in ultraGridScale.Rows)
  609. {
  610. if (ugr.Cells["valueFlag"].Value.ToString() == "0")
  611. {
  612. ugr.Appearance.BackColor = Color.Red;
  613. }
  614. else
  615. {
  616. ugr.Appearance.BackColor = Color.White;
  617. }
  618. }
  619. }
  620. else
  621. {
  622. dtScale.Clear();
  623. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  624. ClsControlPack.RefreshAndAutoSize(ultraGridScale);
  625. }
  626. }
  627. }
  628. /// <summary>
  629. /// 是否开启过滤
  630. /// </summary>
  631. /// <param name="sender"></param>
  632. /// <param name="e"></param>
  633. private void ckFilter_CheckedChanged(object sender, EventArgs e)
  634. {
  635. if (ckFilter.Checked)
  636. {
  637. this.ultraGridScale.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.True;
  638. }
  639. else
  640. {
  641. this.ultraGridScale.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  642. }
  643. }
  644. }
  645. }