UIJ040030.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Collections;
  9. using System.Windows.Forms;
  10. using CoreFS.CA06;
  11. namespace Core.LZMes.Client.UIJ
  12. {
  13. public partial class UIJ040030 : FrmBase
  14. {
  15. public UIJ040030()
  16. {
  17. InitializeComponent();
  18. }
  19. private void UIJ040030_Load(object sender, EventArgs e)
  20. {
  21. this.ultraDateTimeEditor1.Value = null;
  22. }
  23. public override void ToolBar_Click(object sender, string ToolbarKey)
  24. {
  25. switch (ToolbarKey)
  26. {
  27. case "Query":
  28. this.DoQuery();
  29. break;
  30. case "Save":
  31. this.DoSave();
  32. break;
  33. case "Print":
  34. this.DoPrint();
  35. break;
  36. case "Exit":
  37. this.Close();
  38. break;
  39. }
  40. }
  41. /// <summary>
  42. /// 查询发货实绩
  43. /// </summary>
  44. private void DoQuery()
  45. {
  46. string coilProgCd = "";
  47. if (this.ultraComboEditor2.SelectedIndex >= 0)
  48. {
  49. if (ultraComboEditor2.Value.ToString().Equals("06"))
  50. {
  51. coilProgCd = "SFB";
  52. }
  53. else
  54. {
  55. coilProgCd = "SFF";
  56. if (ultraDateTimeEditor1.Value == null)
  57. {
  58. MessageBox.Show("需要选择出库时间,否则数据量过大,不便于查找!");
  59. return;
  60. }
  61. }
  62. }
  63. else
  64. {
  65. MessageBox.Show("状态区分必须选择,否则导致数据量过大!");
  66. return;
  67. }
  68. string dlivTp = this.ultraComboEditor1.SelectedIndex < 0 ? "" : this.ultraComboEditor1.Value.ToString();
  69. string transCarNo = this.textBox2.Text.Trim();
  70. string dlivDirNo = this.textBox3.Text.Trim();
  71. string shipProgCd = this.ultraComboEditor2.SelectedIndex < 0 ? "" : this.ultraComboEditor2.Value.ToString();
  72. string trnfDTime = this.ultraDateTimeEditor1.Value == null ? "" : this.ultraDateTimeEditor1.DateTime.ToString("yyyyMMdds");
  73. this.dataSet1.Tables[0].Clear();
  74. CoreClientParam ccp = new CoreClientParam();
  75. ccp.ServerName = "UIJ.UIJ04.UIJ040030";
  76. ccp.MethodName = "queryShippingResult";
  77. ccp.ServerParams = new Object[] { dlivTp, coilProgCd, transCarNo, dlivDirNo, shipProgCd, trnfDTime };
  78. ccp.SourceDataTable = this.dataSet1.Tables[0];
  79. this.ExecuteQueryToDataTable(ccp, CoreInvokeType.Internal);
  80. DataRowCollection drs = dataSet1.Tables[0].Rows;
  81. for (int i = 0; i < drs.Count; i++)
  82. {
  83. ultraGrid1.Rows[i].Cells[0].Value = false;
  84. }
  85. }
  86. /// <summary>
  87. ///
  88. /// </summary>
  89. private void DoSave()
  90. {
  91. if (this.ultraComboEditor3.SelectedIndex < 0)
  92. {
  93. MessageBox.Show("出库班次信息不能为空,请选择相应的出库班次!");
  94. return;
  95. }
  96. if (this.ultraComboEditor4.SelectedIndex < 0)
  97. {
  98. MessageBox.Show("出库班组信息不能为空,请选择相应的出库班组!");
  99. return;
  100. }
  101. if (this.ultraComboEditor5.Text.Trim().Equals(""))
  102. {
  103. MessageBox.Show("出库人信息不能为空,请选择相应的出库人!");
  104. return;
  105. }
  106. if (this.ultraDateTimeEditor1.Value == null)
  107. {
  108. MessageBox.Show("出库时间信息不能为空,请选择相应的出库时间!");
  109. return;
  110. }
  111. if (this.textBox1.Text.Trim().Equals(""))
  112. {
  113. MessageBox.Show("草支垫重量信息不能为空,请输入相应的草支垫重量!");
  114. return;
  115. }
  116. Infragistics.Win.UltraWinGrid.RowsCollection rs = this.ultraGrid1.Rows;
  117. for (int i = 0; i < rs.Count; i++)
  118. {
  119. if ("TRUE".Equals(rs[i].Cells["CHK"].Text.ToUpperInvariant()))
  120. {
  121. string coilWgt = rs[i].Cells["COIL_WGT"].Text;
  122. string transCarNo = rs[i].Cells["TRANS_CAR_NO"].Text;
  123. if (coilWgt.Equals(""))
  124. {
  125. MessageBox.Show("第" + (i + 1) + "行卷重数据为空,请核对后再点击保存!");
  126. return;
  127. }
  128. if (transCarNo.Equals(""))
  129. {
  130. MessageBox.Show("第" + (i + 1) + "行车辆号为空,请核对后再点击保存!");
  131. return;
  132. }
  133. }
  134. }
  135. ArrayList list = new ArrayList();
  136. string[] param = null;
  137. string regId = this.UserInfo.GetUserID();
  138. for (int i = 0; i < rs.Count; i++)
  139. {
  140. if ("TRUE".Equals(rs[i].Cells["CHK"].Text.ToUpperInvariant()) && "06".Equals(rs[i].Cells["SHIP_PROG_CD"].Text))
  141. {
  142. param = new string[30];
  143. param[0] = rs[i].Cells["SHIP_DIRNO"].Text; ;//发货指示号
  144. param[1] = rs[i].Cells["DLIV_DIRNO"].Text;//运输指示号
  145. param[2] = rs[i].Cells["TRANS_CAR_NO"].Text;//车辆号
  146. param[3] = rs[i].Cells["GET_ON_PCD"].Text;//装车地点
  147. param[4] = rs[i].Cells["DEST_PCD"].Text;//目的地
  148. param[5] = rs[i].Cells["EXLV_LINE_CD"].Text;//专用线
  149. param[6] = rs[i].Cells["GET_OFF_PCD"].Text;//卸车地点
  150. param[7] = rs[i].Cells["BY_SEA_YN"].Text;//水运区分
  151. param[8] = rs[i].Cells["DEPARTURE_CD"].Text;//出发港
  152. param[9] = rs[i].Cells["ARRIVAL_CD"].Text;//到达港
  153. param[10] = rs[i].Cells["COIL_NO"].Text;//生产钢卷号
  154. param[11] = rs[i].Cells["TOT_DEC_GRD"].Text;//综合判定等级
  155. param[12] = rs[i].Cells["COIL_WGT"].Text;//钢卷重量
  156. param[13] = rs[i].Cells["COIL_OUTDIA"].Text;//钢卷外径
  157. param[14] = rs[i].Cells["SHIP_INVNO"].Text;//发货清单号码
  158. param[15] = rs[i].Cells["CRET_NO"].Text;//品质保证书号
  159. param[16] = rs[i].Cells["TRNF_DTIME"].Text;//发货时间
  160. param[17] = "07";//钢卷公共表中的状态字段 SHIP_PROG_CD
  161. param[18] = rs[i].Cells["SPEC_STL_GRD"].Text;//标冷牌号
  162. param[19] = rs[i].Cells["BEF_PROG_CD"].Text;//钢卷公共表中当前状态做前状态使用
  163. param[20] = rs[i].Cells["BEF_PROG_CD_DTIME"].Text;//状态改变时间
  164. param[21] = rs[i].Cells["BEF_PROG_CD_PGM"].Text;//状态改变人
  165. param[22] = rs[i].Cells["ORD_NO"].Text;//合同号
  166. param[23] = rs[i].Cells["ORD_SEQ"].Text;//订单号
  167. param[24] = rs[i].Cells["SHIP_COMP_CD"].Text;//运输公司编码
  168. param[25] = rs[i].Cells["COIL_STAT"].Text;//钢卷状态
  169. param[26] = rs[i].Cells["CUR_PROG_CD"].Text;//当前状态
  170. param[27] = rs[i].Cells["CUR_PROG_CD_PGM"].Text;//当前状态修改人
  171. param[28] = regId;//登录人
  172. param[29] = rs[i].Cells["DLIV_TP"].Text;//火运汽运标志
  173. list.Add(param);
  174. }
  175. }
  176. if (list.Count > 0)
  177. {
  178. //出库班次、出库班组、出库人、出库时间、草支垫重量
  179. string trnfShift = this.ultraComboEditor3.Value.ToString(); ;
  180. string trnfGroup = this.ultraComboEditor4.Value.ToString();
  181. string trnfRegId = this.ultraComboEditor5.Text.Trim();
  182. string trnfDtime = this.ultraDateTimeEditor1.DateTime.ToString("yyyyMMdd");
  183. string czdWgt = this.textBox1.Text.Trim();
  184. CoreClientParam ccp = new CoreClientParam();
  185. ccp.ServerName = "UIJ.UIJ04.UIJ040030";
  186. ccp.MethodName = "saveShippingResult";
  187. ccp.ServerParams = new Object[] { trnfShift, trnfGroup, trnfRegId, trnfDtime, czdWgt, list };
  188. this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  189. }
  190. //生成发货实绩后再次查询
  191. this.DoQuery();
  192. }
  193. /// <summary>
  194. /// 打印发货明细
  195. /// </summary>
  196. private void DoPrint()
  197. {
  198. if (this.ultraComboEditor3.SelectedIndex < 0)
  199. {
  200. MessageBox.Show("出库班次信息不能为空,请选择相应的出库班次!");
  201. return;
  202. }
  203. if (this.ultraComboEditor4.SelectedIndex < 0)
  204. {
  205. MessageBox.Show("出库班组信息不能为空,请选择相应的出库班组!");
  206. return;
  207. }
  208. if (this.ultraComboEditor5.Text.Trim().Equals(""))
  209. {
  210. MessageBox.Show("出库人信息不能为空,请选择相应的出库人!");
  211. return;
  212. }
  213. if (this.ultraDateTimeEditor1.Value == null)
  214. {
  215. MessageBox.Show("出库时间信息不能为空,请选择相应的出库时间!");
  216. return;
  217. }
  218. if (this.textBox1.Text.Trim().Equals(""))
  219. {
  220. MessageBox.Show("草支垫重量信息不能为空,请输入相应的草支垫重量!");
  221. return;
  222. }
  223. Infragistics.Win.UltraWinGrid.RowsCollection rs = this.ultraGrid1.Rows;
  224. //发货明细打印必须是同一客户同合同号、发运指示号
  225. string befOrdNo = "";//前运输号
  226. string befDlivDirNo = "";//前运输指示号
  227. ArrayList coils = new ArrayList();//钢卷信息
  228. int coilCount = 0;//钢卷个数
  229. double coilWgtSum = 0;//钢卷重量合计
  230. for (int i = 0; i < rs.Count; i++)
  231. {
  232. if ("TRUE".Equals(rs[i].Cells["CHK"].Text.ToUpperInvariant()))
  233. {
  234. string[] coilInfo = new string[8];
  235. string ordNoTmp = rs[i].Cells["ORD_NO"].Text;
  236. string dlivDirNoTmp = rs[i].Cells["DLIV_DIRNO"].Text;
  237. if (!"".Equals(befDlivDirNo) && !"".Equals(befOrdNo))
  238. {
  239. if (!befDlivDirNo.Equals(dlivDirNoTmp))
  240. {
  241. MessageBox.Show("不同运输指示号下的卷不能生成同一张发货明细,请确认后重新选择!");
  242. return;
  243. }
  244. if (!befOrdNo.Equals(ordNoTmp))
  245. {
  246. MessageBox.Show("同发运指示号下的卷,合同号不一样需要分开打印发货明细!");
  247. return;
  248. }
  249. }
  250. befDlivDirNo = dlivDirNoTmp;
  251. befOrdNo = ordNoTmp;
  252. coilCount++;
  253. coilInfo[0] = rs[i].Cells["OLD_SAMPL_NO"].Text;//钢卷号
  254. coilInfo[1] = rs[i].Cells["SPEC_STL_GRD"].Text;//牌号
  255. coilInfo[2] = rs[i].Cells["T_W"].Text;//规格
  256. coilInfo[3] = rs[i].Cells["TOT_DEC_GRD_DESC"].Text;//等级
  257. coilInfo[4] = rs[i].Cells["MATLQLTY_DEC_GRD_DESC"].Text;//性能
  258. coilInfo[5] = coilInfo[0].Length > 10 ? coilInfo[0].Substring(0, 10) : "";//轧批号
  259. coilInfo[6] = (double.Parse(rs[i].Cells["COIL_WGT"].Text.Trim()) / 1000).ToString();//重量
  260. coilInfo[7] = "";//备注
  261. coilWgtSum += double.Parse(coilInfo[6]);
  262. coils.Add(coilInfo);
  263. }
  264. }
  265. //取出明细打印需要的数据
  266. string dlivDirNo = "";//发运指示号
  267. string ordNo = "";//合同号
  268. string dlivTp = "";//运输方式
  269. string shipInnNo = "";//发货清单号
  270. string custNm = "";//客户名称
  271. string ordNm = "";//合同单位
  272. string destPcdDesc = "";//到站
  273. string transCarNo = "";//车号
  274. string prodNm = "";//产品名称
  275. string specAbbsym = "";//标准
  276. string hColorRem = "";//外贸合同钢卷颜色备注
  277. for (int i = 0; i < rs.Count; i++)
  278. {
  279. if ("TRUE".Equals(rs[i].Cells["CHK"].Text.ToUpperInvariant()))
  280. {
  281. dlivDirNo = rs[i].Cells["DLIV_DIRNO"].Text;
  282. ordNo = rs[i].Cells["ORD_NO"].Text;
  283. dlivTp = rs[i].Cells["DLIV_TP"].Text;
  284. shipInnNo = rs[i].Cells["SHIP_INVNO"].Text;
  285. custNm = rs[i].Cells["CUST_NM"].Text;
  286. ordNo = rs[i].Cells["ORD_NM"].Text;
  287. destPcdDesc = rs[i].Cells["DEST_PCD_DESC"].Text;
  288. transCarNo = rs[i].Cells["TRANS_CAR_NO"].Text;
  289. prodNm = rs[i].Cells["SM_CFNM"].Text;
  290. specAbbsym = rs[i].Cells["SPEC_ABBSYM"].Text;
  291. hColorRem = rs[i].Cells["HCOLOUR_REM"].Text;
  292. break;
  293. }
  294. }
  295. //导出EXCEL
  296. //打印后修改发货状态
  297. print();
  298. }
  299. /// <summary>
  300. /// 打印后修改发货状态
  301. /// </summary>
  302. private void print()
  303. {
  304. ArrayList list = new ArrayList();
  305. string[] param = null;
  306. string regId = this.UserInfo.GetUserID();
  307. Infragistics.Win.UltraWinGrid.RowsCollection rs = this.ultraGrid1.Rows;
  308. for (int i = 0; i < rs.Count; i++)
  309. {
  310. if ("TRUE".Equals(rs[i].Cells["CHK"].Text.ToUpperInvariant()) && "06".Equals(rs[i].Cells["SHIP_PROG_CD"].Text))
  311. {
  312. param = new string[30];
  313. param[0] = rs[i].Cells["SHIP_DIRNO"].Text; ;//发货指示号
  314. param[1] = rs[i].Cells["DLIV_DIRNO"].Text;//运输指示号
  315. param[2] = rs[i].Cells["TRANS_CAR_NO"].Text;//车辆号
  316. param[3] = rs[i].Cells["GET_ON_PCD"].Text;//装车地点
  317. param[4] = rs[i].Cells["DEST_PCD"].Text;//目的地
  318. param[5] = rs[i].Cells["EXLV_LINE_CD"].Text;//专用线
  319. param[6] = rs[i].Cells["GET_OFF_PCD"].Text;//卸车地点
  320. param[7] = rs[i].Cells["BY_SEA_YN"].Text;//水运区分
  321. param[8] = rs[i].Cells["DEPARTURE_CD"].Text;//出发港
  322. param[9] = rs[i].Cells["ARRIVAL_CD"].Text;//到达港
  323. param[10] = rs[i].Cells["COIL_NO"].Text;//生产钢卷号
  324. param[11] = rs[i].Cells["TOT_DEC_GRD"].Text;//综合判定等级
  325. param[12] = rs[i].Cells["COIL_WGT"].Text;//钢卷重量
  326. param[13] = rs[i].Cells["COIL_OUTDIA"].Text;//钢卷外径
  327. param[14] = rs[i].Cells["SHIP_INVNO"].Text;//发货清单号码
  328. param[15] = rs[i].Cells["CRET_NO"].Text;//品质保证书号
  329. param[16] = rs[i].Cells["TRNF_DTIME"].Text;//发货时间
  330. param[17] = "08";//钢卷公共表中的状态字段 SHIP_PROG_CD
  331. param[18] = rs[i].Cells["SPEC_STL_GRD"].Text;//标冷牌号
  332. param[19] = rs[i].Cells["BEF_PROG_CD"].Text;//钢卷公共表中当前状态做前状态使用
  333. param[20] = rs[i].Cells["BEF_PROG_CD_DTIME"].Text;//状态改变时间
  334. param[21] = rs[i].Cells["BEF_PROG_CD_PGM"].Text;//状态改变人
  335. param[22] = rs[i].Cells["ORD_NO"].Text;//合同号
  336. param[23] = rs[i].Cells["ORD_SEQ"].Text;//订单号
  337. param[24] = rs[i].Cells["SHIP_COMP_CD"].Text;//运输公司编码
  338. param[25] = rs[i].Cells["COIL_STAT"].Text;//钢卷状态
  339. param[26] = rs[i].Cells["CUR_PROG_CD"].Text;//当前状态
  340. param[27] = rs[i].Cells["CUR_PROG_CD_PGM"].Text;//当前状态修改人
  341. param[28] = regId;//登录人
  342. param[29] = rs[i].Cells["DLIV_TP"].Text;//火运汽运标志
  343. list.Add(param);
  344. }
  345. }
  346. if (list.Count > 0)
  347. {
  348. //出库班次、出库班组、出库人、出库时间、草支垫重量
  349. string trnfShift = this.ultraComboEditor3.Value.ToString(); ;
  350. string trnfGroup = this.ultraComboEditor4.Value.ToString();
  351. string trnfRegId = this.ultraComboEditor5.Text.Trim();
  352. string trnfDtime = this.ultraDateTimeEditor1.DateTime.ToString("yyyyMMdd");
  353. string czdWgt = this.textBox1.Text.Trim();
  354. CoreClientParam ccp = new CoreClientParam();
  355. ccp.ServerName = "UIJ.UIJ04.UIJ040030";
  356. ccp.MethodName = "printShippingResult";
  357. ccp.ServerParams = new Object[] { trnfShift, trnfGroup, trnfRegId, trnfDtime, czdWgt, list };
  358. this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  359. }
  360. }
  361. }
  362. }