frmCalibration.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using Infragistics.Win;
  4. using JC_MeasuringSystem;
  5. using MeterPlugInLibrary;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Forms;
  15. namespace CarRemoteMeter
  16. {
  17. public partial class frmCalibration : Form
  18. {
  19. Log lg = Log.GetInstance();
  20. public frmCalibration()
  21. {
  22. InitializeComponent();
  23. }
  24. bool bFlag = false;
  25. MeterWorkCalibrationBranch calibrationBranch { get; set; }
  26. private void btnClose_Click(object sender, EventArgs e)
  27. {
  28. this.Close();
  29. }
  30. public string userId = "", userName = "";
  31. //校秤主
  32. MeterWorkCalibrationMainService calibrationMainService = new MeterWorkCalibrationMainService();
  33. //校秤从
  34. MeterWorkCalibrationBranchService calibrationBranchService = new MeterWorkCalibrationBranchService();
  35. ComBaseInfoService cis = new ComBaseInfoService();
  36. private void btnSave_Click(object sender, EventArgs e)
  37. {
  38. lbMsgInfo.Visible = false;
  39. if (cbCalibrationType.Value == null || cbCalibrationType.Text.Trim() == "")
  40. {
  41. MessageBox.Show("请选择校秤类型");
  42. return;
  43. }
  44. if (cbCalibrationType.Value != null && cbCalibrationType.Value.ToString() == "001005002")
  45. {
  46. if (cbWorkMonitor.Value == null || cbWorkMonitor.Text.Trim() == "")
  47. {
  48. MessageBox.Show("请选择对比计量点");
  49. return;
  50. }
  51. if (string.IsNullOrEmpty(strCbCarNo))
  52. {
  53. MessageBox.Show("互检校秤的车号不能为空");
  54. return;
  55. }
  56. }
  57. DialogResult dr = MessageBox.Show("确认进行校秤吗?", "提示", MessageBoxButtons.OKCancel);
  58. if (dr == DialogResult.OK)
  59. {
  60. btnSave.Enabled = false;
  61. string baseContrastNo = PbCache.sportInfo.baseSpotNo;
  62. string baseContrastName = PbCache.sportInfo.baseSpotName;
  63. string dbWgt = PbCache.lockWgt + "";
  64. if (calibrationBranch != null)
  65. {
  66. baseContrastNo = calibrationBranch.baseSpotNo;
  67. baseContrastName = calibrationBranch.baseSpotName;
  68. dbWgt = calibrationBranch.calibrationWeight;
  69. }
  70. RESTfulResult<MeterWorkCalibrationBranch> rm = calibrationMainService.doSaveWf(
  71. new MeterWorkCalibrationMain
  72. {
  73. baseSpotNo = baseContrastNo,
  74. baseSpotName = baseContrastName,
  75. spotTypeNo = cbSpotType.Value == null ? "001002001" : cbSpotType.Value.ToString().Trim(),
  76. spotTypeName = cbSpotType.Text == "" ? "汽车衡" : cbSpotType.Text.Trim(),
  77. calibrationTypeNo = cbCalibrationType.Value == null ? "" : cbCalibrationType.Value.ToString().Trim(),
  78. calibrationTypeName = cbCalibrationType.Text, //校秤类型名称
  79. baseContrastSpotNo = cbWorkMonitor.Value == null ? "" : cbWorkMonitor.Value.ToString().Trim(), //校秤对比计量点编号
  80. baseContrastSpotName = cbWorkMonitor.Text.Trim() //校秤对比计量点名称
  81. },
  82. new MeterWorkCalibrationBranch
  83. {
  84. baseSpotNo = baseContrastNo,
  85. baseSpotName = baseContrastName,
  86. calibrationWeight = dbWgt + "",
  87. spotTypeNo = cbSpotType.Value == null ? "001002001" : cbSpotType.Value.ToString().Trim(),
  88. spotTypeName = cbSpotType.Text == "" ? "汽车衡" : cbSpotType.Text.Trim(),
  89. calibrationTypeNo = cbCalibrationType.Value == null ? "" : cbCalibrationType.Value.ToString().Trim(),
  90. calibrationTypeName = cbCalibrationType.Text,
  91. createManNo = userId,
  92. createManName = userName,
  93. carNo = strCbCarNo
  94. }
  95. ); ;
  96. if (rm.Succeed)
  97. {
  98. #region 截取图片信息
  99. try
  100. {
  101. calibrationBranch = rm.Data;
  102. //*
  103. //截取屏幕信息
  104. Point screenPoint = this.PointToScreen(new Point());
  105. Rectangle rect = new Rectangle(screenPoint, this.Size);
  106. Image img = new Bitmap(rect.Width, rect.Height);
  107. Graphics g = Graphics.FromImage(img);
  108. g.CopyFromScreen(rect.X - 1, rect.Y - 1, 0, 0, rect.Size);//"D://file/1.jpg"
  109. img.Save(string.Format("{0}imgShort\\tempImg\\{1}_{2}_{3}.jpg",
  110. AppDomain.CurrentDomain.SetupInformation.ApplicationBase,
  111. PbCache.sportInfo.baseSpotNo,
  112. "C" + rm.Message,
  113. (PbCache.videoChild.Count + 1)), System.Drawing.Imaging.ImageFormat.Jpeg);
  114. //*
  115. //最后进行截图操作
  116. CameraShotCls cameraShot = new CameraShotCls();
  117. cameraShot.CapMethod(rm.Message);
  118. //*/
  119. }
  120. catch (Exception ex)
  121. {
  122. lg.WriteLog(5, PbCache.lockCarNo + "校秤截图失败");
  123. }
  124. #endregion
  125. if (rm.Data == null || string.IsNullOrEmpty(rm.Data.baseSpotNo))
  126. {
  127. this.DialogResult = DialogResult.OK;
  128. this.Close(); //校秤成功了,可能是单点通过,可能是同时通过
  129. }
  130. else //说明是单点校秤然后失败了,此时提醒选择下一个对比校秤点
  131. {
  132. lbMsgInfo.Visible = true;
  133. btnSave.Enabled = true;
  134. if (!bFlag)
  135. {
  136. cbWorkMonitor.Enabled = true;
  137. cbCalibrationType.Enabled = true;
  138. }
  139. else
  140. {
  141. #region
  142. RESTfulResult<List<MeterBaseMutualDiff>> rmX = mutualDiffService.doQueryWf(new MeterBaseMutualDiff { baseSpotOneNo = rm.Data.baseSpotNo });
  143. ValueList vlist = new ValueList();
  144. foreach (MeterBaseMutualDiff diff in rmX.Data)
  145. {
  146. vlist.ValueListItems.Add(diff.baseSpotOneNo, diff.baseSpotOneName);
  147. }
  148. cbWorkMonitor.ValueList = vlist;
  149. #endregion
  150. }
  151. }
  152. }
  153. else
  154. {
  155. MessageBox.Show("校秤异常:" + rm.Message);
  156. btnSave.Enabled = true;
  157. }
  158. }
  159. }
  160. private void frmCalibration_Load(object sender, EventArgs e)
  161. {
  162. //calibrationBranch = null;
  163. timer1.Start();
  164. //cbSpotType
  165. ValueList vlistSpot = new ValueList();
  166. vlistSpot.ValueListItems.Add("001002001", "汽车衡");
  167. cbSpotType.ValueList = vlistSpot;
  168. cbSpotType.Value = "001002001";
  169. cbSpotType.Enabled = false;
  170. //校秤类型
  171. RESTfulResult<List<PbModelDb>> rm = cis.doQueryWf(new ComBaseInfo { pBaseCode = "001005" });
  172. ValueList vlistCalibration = new ValueList();
  173. foreach (PbModelDb pb in rm.Data)
  174. {
  175. vlistCalibration.ValueListItems.Add(pb.id, pb.text);
  176. }
  177. cbCalibrationType.ValueList = vlistCalibration;
  178. if (!string.IsNullOrEmpty(PbCache.collect.carno))
  179. {
  180. CarNoChange(PbCache.collect.carno);
  181. }
  182. txtCarNo.LostFocus += new EventHandler(txtCarNo_KeyDown);
  183. }
  184. MeterBaseMutualDiffService mutualDiffService = new MeterBaseMutualDiffService();
  185. bool bCarChange = false;
  186. private void timer1_Tick(object sender, EventArgs e)
  187. {
  188. txtWgt.Value = PbCache.collect.weight;
  189. if (!string.IsNullOrEmpty(PbCache.collect.carno) && PbCache.collect.carno.Length > 1 && !bCarChange)
  190. {
  191. cbCarNo.Text = PbCache.collect.carno.Substring(0, 1);
  192. txtCarNo.Text = PbCache.collect.carno.Substring(1, PbCache.collect.carno.Length - 1);
  193. bCarChange = true;
  194. strCbCarNo = cbCarNo.Text.Trim() + txtCarNo.Text.Trim();
  195. CarNoChange(strCbCarNo);
  196. }
  197. }
  198. private void frmCalibration_FormClosing(object sender, FormClosingEventArgs e)
  199. {
  200. timer1.Stop();
  201. }
  202. string strCbCarNo = "";
  203. private void cbCarNo_SelectedIndexChanged(object sender, EventArgs e)
  204. {
  205. if (PbCache.collect != null && PbCache.collect.weight > 0)
  206. {
  207. if (cbCarNo.SelectedIndex > -1)
  208. {
  209. strCbCarNo = cbCarNo.Text.Trim()+txtCarNo.Text.Trim();
  210. CarNoChange(strCbCarNo);
  211. }
  212. }
  213. }
  214. private void txtCarNo_KeyDown(object sender, EventArgs e)
  215. {
  216. if (PbCache.collect != null && PbCache.collect.weight > 0)
  217. {
  218. strCbCarNo = cbCarNo.Text.Trim() + txtCarNo.Text.Trim();
  219. CarNoChange(strCbCarNo);
  220. }
  221. }
  222. private void CarNoChange(string carNo)
  223. {
  224. if (!string.IsNullOrEmpty(carNo))
  225. {
  226. RESTfulResult<List<MeterWorkCalibrationBranch>> rmMwcb = calibrationBranchService.doQueryWf(new MeterWorkCalibrationBranch { baseSpotNo = PbCache.sportInfo.baseSpotNo, carNo = carNo });
  227. if (rmMwcb.Succeed)
  228. {
  229. if (rmMwcb.Data != null && rmMwcb.Data.Count > 0)
  230. {
  231. cbCalibrationType.Value = rmMwcb.Data[0].calibrationTypeNo;
  232. cbWorkMonitor.Value = rmMwcb.Data[0].baseSpotNo;
  233. cbCalibrationType.Enabled = false;
  234. cbWorkMonitor.Enabled = false;
  235. bFlag = true;
  236. }
  237. else
  238. {
  239. cbCalibrationType.Enabled = true;
  240. cbWorkMonitor.Enabled = true;
  241. }
  242. }
  243. }
  244. }
  245. private void cbCalibrationType_SelectionChanged(object sender, EventArgs e)
  246. {
  247. //互检
  248. if (cbCalibrationType.Value != null && cbCalibrationType.Value.ToString() == "001005002" && !bFlag)
  249. {
  250. label1.Visible = true;
  251. cbWorkMonitor.Visible = true;
  252. RESTfulResult<List<MeterBaseMutualDiff>> rm = mutualDiffService.doQueryWf(new MeterBaseMutualDiff { baseSpotOneNo = PbCache.sportInfo.baseSpotNo });
  253. if (rm.Data == null || rm.Data.Count == 0)
  254. {
  255. MessageBox.Show("互检差值表未配置当前计量点对应的互检计量点数据");
  256. return;
  257. }
  258. ValueList vlist = new ValueList();
  259. foreach (MeterBaseMutualDiff diff in rm.Data)
  260. {
  261. vlist.ValueListItems.Add(diff.baseSpotOneNo, diff.baseSpotOneName);
  262. }
  263. cbWorkMonitor.ValueList = vlist;
  264. }
  265. else
  266. {
  267. cbWorkMonitor.SelectedIndex = -1;
  268. cbWorkMonitor.ValueList = null;
  269. label1.Visible = false;
  270. cbWorkMonitor.Visible = false;
  271. }
  272. }
  273. }
  274. }