frmHotDeliveryStandardWgt.cs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  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 frmHotDeliveryStandardWgt : Form
  14. {
  15. private MeterWorkStorageSingleWgtService singleWgtService = new MeterWorkStorageSingleWgtService(); //预报服务
  16. private ComBaseInfoService comBaseInfoService = new ComBaseInfoService(); //基础数服务
  17. private MeterBaseScalePointService scalePointService = new MeterBaseScalePointService(); //计量点信息服务
  18. private MeterWorkStorageSingleWgt singleWgt = new MeterWorkStorageSingleWgt(); //预报实体类
  19. private Log l = Log.GetInstance(); //日志
  20. private string userId = "", userName = ""; //用户ID用户名
  21. private CoreAppUser appUser = null;//登陆信息
  22. public frmHotDeliveryStandardWgt()
  23. {
  24. InitializeComponent();
  25. }
  26. private void frmHotDeliveryStandardWgt_Load(object sender, EventArgs e)
  27. {
  28. userId = ((ST_MainForm)(this.MdiParent)).UserID;
  29. userName = ((ST_MainForm)(this.MdiParent)).UserName;
  30. appUser = ((ST_MainForm)(this.MdiParent)).AppUser;
  31. dtStartTime.Value = Convert.ToDateTime((DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd") + " 00:00:00"));
  32. dtEndTime.Value = Convert.ToDateTime((DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59"));
  33. #region 载入基础信息
  34. //计量点信息载入cmbPoint1;cmbPoint1Up
  35. RESTfulResult<List<MeterBaseScalePoint>> rr = scalePointService.doQueryWf(new MeterBaseScalePoint { validFlag = "1", spotTypeNo = "001002004" });
  36. if (rr.Succeed && rr.Data != null && rr.Data.Count > 0)
  37. {
  38. ClsControlPack.SetUltraComboDataSource(cmbPoint1, rr.Data.ListToDataTable<MeterBaseScalePoint>(), "baseSpotNo", "baseSpotName");
  39. ClsControlPack.SetUltraComboDataSource(cmbPoint1Up, rr.Data.ListToDataTable<MeterBaseScalePoint>(), "baseSpotNo", "baseSpotName");
  40. }
  41. else
  42. {
  43. MessageBox.Show("计量点载入失败!");
  44. return;
  45. }
  46. ValueList vlistFlag1 = new ValueList();
  47. vlistFlag1.ValueListItems.Add("", "全部");
  48. vlistFlag1.ValueListItems.Add("0", "无效");
  49. vlistFlag1.ValueListItems.Add("1", "有效");
  50. cmbValueFlag.ValueList = vlistFlag1;
  51. cmbValueFlag.SelectedIndex = 0;
  52. ValueList vlistFlag2 = new ValueList();
  53. vlistFlag2.ValueListItems.Add("", "全部");
  54. vlistFlag2.ValueListItems.Add("0", "实际重量");
  55. vlistFlag2.ValueListItems.Add("1", "理论重量");
  56. vlistFlag2.ValueListItems.Add("2", "标准重量");
  57. this.ultraGridSingleWgt.DisplayLayout.Bands[0].Columns["weightType"].ValueList = vlistFlag2;
  58. ValueList vlistFlag3 = new ValueList();
  59. vlistFlag3.ValueListItems.Add("", "全部");
  60. vlistFlag3.ValueListItems.Add("0", "无效");
  61. vlistFlag3.ValueListItems.Add("1", "有效");
  62. this.ultraGridSingleWgt.DisplayLayout.Bands[0].Columns["valueFlag"].ValueList = vlistFlag3;
  63. //表格进行筛选
  64. //ClsControlPack.SetUltraGridRowFilter(ref ultraGridSingleWgt, true);
  65. #endregion 载入基础信息
  66. btnQuery();
  67. }
  68. #region 点击事件
  69. /// <summary>
  70. /// 点击事件
  71. /// </summary>
  72. /// <param name="sender"></param>
  73. /// <param name="e"></param>
  74. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  75. {
  76. switch (e.Tool.Key)
  77. {
  78. case "btnQuery": //btnInsert
  79. {
  80. btnQuery();
  81. break;
  82. }
  83. case "btnInsert": //新增
  84. {
  85. btnInsert();
  86. break;
  87. }
  88. case "btnCancel": //作废
  89. {
  90. btnUpdate("0");
  91. }
  92. break;
  93. case "btnUnCancel": //还原
  94. {
  95. btnUpdate("1");
  96. }
  97. break;
  98. case "btnUpdate": //还原
  99. {
  100. btnUpdate("");
  101. }
  102. break;
  103. default: break;
  104. }
  105. }
  106. /// <summary>
  107. /// 行点击事件,给下面的区域赋值
  108. /// </summary>
  109. /// <param name="sender"></param>
  110. /// <param name="e"></param>
  111. private void ultraGridSingleWgt_ClickCell(object sender, ClickCellEventArgs e)
  112. {
  113. try
  114. {
  115. if (ultraGridSingleWgt.ActiveRow == null)
  116. {
  117. return;
  118. }
  119. UltraGridRow ugr = ultraGridSingleWgt.ActiveRow;
  120. if (ugr.Cells["UNCK"].Value.ToString().ToUpper().Equals("TRUE"))
  121. {
  122. ugr.Cells["UNCK"].Value = false;
  123. }
  124. else
  125. {
  126. ugr.Cells["UNCK"].Value = true;
  127. }
  128. //界面赋值
  129. if (ugr != null)
  130. {
  131. singleWgt.singleWgtNo = ugr.Cells["singleWgtNo"].Text.Trim(); //重量编号
  132. singleWgt.specName = ugr.Cells["specName"].Text.Trim(); //规格
  133. singleWgt.specNo = ugr.Cells["specNo"].Text.Trim(); //规格编号
  134. singleWgt.baseSpotName = ugr.Cells["baseSpotName"].Text.Trim(); //计量点
  135. singleWgt.baseSpotNo = ugr.Cells["baseSpotNo"].Text.Trim(); //计量点编号
  136. singleWgt.gradeName = ugr.Cells["gradeName"].Text.Trim(); //钢号
  137. singleWgt.gradeNo = ugr.Cells["gradeNo"].Text.Trim(); //钢号编号
  138. singleWgt.singleWeight = Convert.ToDouble(ugr.Cells["singleWeight"].Text.Trim()); //理论重量
  139. singleWgt.weightDiff = Convert.ToDouble(ugr.Cells["weightDiff"].Text.Trim()); //重量偏差
  140. autoAutoFill(singleWgt); //点击行进行自动填充界面字段
  141. }
  142. }
  143. catch (Exception ex)
  144. {
  145. MessageBox.Show("ultraGridSingleWgt_ClickCell方法处理异常:" + ex);
  146. }
  147. }
  148. /// <summary>
  149. /// 全选点击事件
  150. /// </summary>
  151. /// <param name="sender"></param>
  152. /// <param name="e"></param>
  153. private void cbAll_CheckedChanged(object sender, EventArgs e)
  154. {
  155. foreach (UltraGridRow ugr in ultraGridSingleWgt.Rows)
  156. {
  157. if (!ugr.HiddenResolved)
  158. {
  159. ugr.Cells["UNCK"].Value = cbAll.Checked;
  160. }
  161. }
  162. }
  163. #endregion 点击事件
  164. /// <summary>
  165. /// 自动填充界面的数据
  166. /// </summary>
  167. private void autoAutoFill(MeterWorkStorageSingleWgt singleWgt)
  168. {
  169. if (singleWgt == null || string.IsNullOrEmpty(singleWgt.singleWgtNo))
  170. {
  171. return;
  172. }
  173. cmbPoint1Up.Text = singleWgt.baseSpotName;
  174. numSingleWeightUp.Value = (decimal)singleWgt.singleWeight;//理论重量8
  175. numWeightDiff.Value = (decimal)singleWgt.weightDiff;//理论重量维护
  176. }
  177. /// <summary>
  178. /// 新增数据
  179. /// </summary>
  180. /// <param name="vFlag"></param>
  181. private void btnInsert()
  182. {
  183. List<MeterWorkStorageSingleWgt> scaleList = new List<MeterWorkStorageSingleWgt>();
  184. MeterWorkStorageSingleWgt preStorageScale = new MeterWorkStorageSingleWgt();
  185. if (string.IsNullOrEmpty(numSingleWeightUp.Text))
  186. {
  187. MessageBox.Show("理论重量的值不允许为空!");
  188. return;
  189. }
  190. preStorageScale.createManName = userName;
  191. preStorageScale.createManNo = userId;
  192. preStorageScale.baseSpotName = cmbPoint1Up.Text.Trim(); //计量点
  193. preStorageScale.baseSpotNo = cmbPoint1Up.Value + ""; //计量点编号
  194. preStorageScale.singleWeight = Convert.ToDouble(numSingleWeightUp.Value); //理论重量
  195. preStorageScale.weightDiff = Convert.ToDouble(numWeightDiff.Value);//重量允许偏差
  196. preStorageScale.weightType = "2";//重量类型(0=单只实际重量,1=预报理论重量,2=标准件重量)
  197. scaleList.Add(preStorageScale);
  198. RESTfulResult<string> rms = singleWgtService.doAddWf(scaleList);
  199. if (rms.Succeed)
  200. {
  201. MessageBox.Show("新增成功!");
  202. btnQuery();
  203. }
  204. else
  205. {
  206. MessageBox.Show("操作失败:" + rms.Data);
  207. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  208. }
  209. }
  210. /// <summary>
  211. /// 修改数据(作废还原)
  212. /// </summary>
  213. /// <param name="vFlag"></param>
  214. private void btnUpdate(string vFlag)
  215. {
  216. try
  217. {
  218. int iCount = 0;
  219. List<MeterWorkStorageSingleWgt> lt = new List<MeterWorkStorageSingleWgt>();
  220. ultraGridSingleWgt.UpdateData();
  221. foreach (UltraGridRow ugr in ultraGridSingleWgt.Rows)
  222. {
  223. if (ugr.Cells["UNCK"].Value.ToString().Trim().ToUpper() == "TRUE")
  224. {
  225. if (string.IsNullOrEmpty(vFlag) && "0".Equals(ugr.Cells["valueFlag"].Value + ""))
  226. {
  227. MessageBox.Show("已作废的数据,请先还原再进行修改!");
  228. return;
  229. }
  230. if (string.IsNullOrEmpty(numSingleWeightUp.Text))
  231. {
  232. MessageBox.Show("理论重量的值不允许为空!");
  233. return;
  234. }
  235. MeterWorkStorageSingleWgt preStorageUpdate = new MeterWorkStorageSingleWgt();
  236. preStorageUpdate.singleWgtNo = ugr.Cells["singleWgtNo"].Text.Trim();
  237. preStorageUpdate.updateManNo = userId;
  238. preStorageUpdate.updateManName = userName;
  239. if (!string.IsNullOrEmpty(vFlag))
  240. {
  241. preStorageUpdate.valueFlag = vFlag;
  242. }
  243. else
  244. {
  245. preStorageUpdate.baseSpotName = cmbPoint1Up.Text.Trim(); //计量点
  246. preStorageUpdate.baseSpotNo = cmbPoint1Up.Value + ""; //计量点编号
  247. preStorageUpdate.singleWeight = Convert.ToDouble(numSingleWeightUp.Value); //理论重量
  248. preStorageUpdate.weightDiff = Convert.ToDouble(numWeightDiff.Value); //重量偏差
  249. }
  250. lt.Add(preStorageUpdate);
  251. iCount++;
  252. }
  253. }
  254. if (lt == null || lt.Count == 0)
  255. {
  256. MessageBox.Show("请至少勾选一条数据后再进行更新操作!");
  257. return;
  258. }
  259. DialogResult dr = MessageBox.Show("共更新[" + iCount + "]条数据,是否继续更新!", "提示", MessageBoxButtons.OKCancel);
  260. if (dr == DialogResult.Cancel)
  261. {
  262. return;
  263. }
  264. RESTfulResult<String> rms = singleWgtService.doUpdateWf(lt);
  265. if (rms.Succeed)
  266. {
  267. MessageBox.Show("修改成功!");
  268. btnQuery();
  269. }
  270. else
  271. {
  272. MessageBox.Show("操作失败:" + rms.Data);
  273. l.WriteLog(19, "操作失败:" + rms.Data + rms.Message);
  274. }
  275. }
  276. catch (Exception)
  277. {
  278. throw;
  279. }
  280. }
  281. /// <summary>
  282. /// 查询数据
  283. /// </summary>
  284. private void btnQuery()
  285. {
  286. DataTable dtScale = dataTable1.Clone();
  287. CommonPage<MeterWorkStorageSingleWgt> cp = new CommonPage<MeterWorkStorageSingleWgt>();
  288. cp.param = new MeterWorkStorageSingleWgt(); //{ valueFlag = "1", baseSpotNo = cmbPoint1.Value?.ToString() };
  289. cp.param.valueFlag = cmbValueFlag.Value + "";
  290. cp.param.baseSpotNo = cmbPoint1.Value + "";//计量点编号
  291. cp.param.weightType = "2";//重量类型(0=单只实际重量,1=预报理论重量,2=标准件重量)
  292. cp.param.createTime1 = dtStartTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  293. cp.param.createTime2 = dtEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss");
  294. RESTfulResult<List<MeterWorkStorageSingleWgt>> rms = singleWgtService.doQuery(cp.param);
  295. if (rms.Succeed)
  296. {
  297. if (rms.Data != null && rms.Data.Count > 0)
  298. {
  299. dtScale = rms.Data.ListToDataTable<MeterWorkStorageSingleWgt>();
  300. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  301. ClsControlPack.RefreshAndAutoSize(ultraGridSingleWgt);
  302. foreach (UltraGridRow ugr in ultraGridSingleWgt.Rows)
  303. {
  304. if (ugr.Cells["valueFlag"].Value.ToString() == "0")
  305. {
  306. ugr.Appearance.BackColor = Color.Red;
  307. }
  308. else
  309. {
  310. ugr.Appearance.BackColor = Color.White;
  311. }
  312. //ugr.Cells["valueFlag"].Value = GetValueFlageType(ugr.Cells["valueFlag"].Value.ToString());
  313. //ugr.Cells["weightType"].Value = GetWeightType(ugr.Cells["weightType"].Value.ToString());
  314. }
  315. }
  316. else
  317. {
  318. dtScale.Clear();
  319. ClsControlPack.CopyDataToDatatable(ref dtScale, ref dataTable1, true);
  320. ClsControlPack.RefreshAndAutoSize(ultraGridSingleWgt);
  321. }
  322. }
  323. }
  324. }
  325. }