Warehouse_ProductMakeIn.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Drawing;
  5. using System.Windows.Forms;
  6. using UAS_MES_NEW.DataOperate;
  7. using UAS_MES_NEW.Entity;
  8. using UAS_MES_NEW.PublicMethod;
  9. namespace UAS_MES_NEW.Warehouse
  10. {
  11. public partial class Warehouse_ProductMakeIn : Form
  12. {
  13. DataTable dbfind;
  14. AutoSizeFormClass asc = new AutoSizeFormClass();
  15. LogStringBuilder sql = new LogStringBuilder();
  16. DataTable dt;
  17. DataHelper dh;
  18. DataTable dta;
  19. DataTable dtpi;
  20. DataTable dtform;
  21. DataTable dtms;
  22. int getcount;
  23. public Warehouse_ProductMakeIn()
  24. {
  25. InitializeComponent();
  26. }
  27. private void input_KeyDown(object sender, KeyEventArgs e)
  28. {
  29. if (e.KeyCode == Keys.Enter)
  30. {
  31. if (input.Text == "")
  32. {
  33. OperateResult.AppendText("录入信息不能为空\n", Color.Red, input);
  34. return;
  35. }
  36. if (!cancel.Checked)
  37. {
  38. if (palletBtn.Checked)
  39. {
  40. sql.Clear();
  41. sql.Append("select pa_id,pa_outboxcode,pa_status,nvl(pa_downstatus,0)pa_downstatus,pa_makecode,");
  42. sql.Append("pa_outno,nvl(pa_iostatus,0) pa_iostatus from package where pa_outboxcode='" + input.Text + "' and pa_type=3");
  43. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  44. if (dt.Rows.Count > 0)
  45. {
  46. string pa_downstatus = dt.Rows[0]["pa_downstatus"].ToString();
  47. string pa_iostatus = dt.Rows[0]["pa_iostatus"].ToString();
  48. string pa_status = dt.Rows[0]["pa_status"].ToString();
  49. string pa_outno = dt.Rows[0]["pa_outno"].ToString();
  50. string pa_id = dt.Rows[0]["pa_id"].ToString();
  51. string pa_makecode = dt.Rows[0]["pa_makecode"].ToString();
  52. if (!CheckStatus(pa_downstatus, pa_status, pa_iostatus, pa_outno, "栈板"))
  53. return;
  54. insertprodiomac(pa_id, pa_makecode, "PALLET");
  55. OperateResult.AppendText("栈板" + input.Text + "完工入库成功\n", Color.Green);
  56. }
  57. else
  58. {
  59. OperateResult.AppendText("栈板号" + input.Text + "不存在,重新输入栈板号\n", Color.Red, input);
  60. return;
  61. }
  62. }
  63. else if (bigboxBtn.Checked)
  64. {
  65. string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_sncode = '" + input.Text + "'").ToString();
  66. if (outboxcode != "")
  67. {
  68. input.Text = outboxcode;
  69. }
  70. sql.Clear();
  71. sql.Append("select pa_id,pa_outboxcode,pa_status,nvl(pa_downstatus,0)pa_downstatus,pa_makecode,");
  72. sql.Append("pa_outno,pa_mothercode,nvl(pa_iostatus,0) pa_iostatus from package where pa_outboxcode='" + input.Text + "' and pa_type in (1,2)");
  73. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  74. if (dt.Rows.Count > 0)
  75. {
  76. string pa_mothercode = dt.Rows[0]["pa_mothercode"].ToString();
  77. string pa_downstatus = dt.Rows[0]["pa_downstatus"].ToString();
  78. string pa_iostatus = dt.Rows[0]["pa_iostatus"].ToString();
  79. string pa_status = dt.Rows[0]["pa_status"].ToString();
  80. string pa_outno = dt.Rows[0]["pa_outno"].ToString();
  81. string pa_id = dt.Rows[0]["pa_id"].ToString();
  82. string pa_makecode = dt.Rows[0]["pa_makecode"].ToString();
  83. if (pa_mothercode != "")
  84. {
  85. OperateResult.AppendText("箱号" + input.Text + "已经装大箱或者栈板" + pa_mothercode + ",不允许单独操作\n", Color.Red, input);
  86. return;
  87. }
  88. if (!CheckStatus(pa_downstatus, pa_status, pa_iostatus, pa_outno, "箱"))
  89. return;
  90. insertprodiomac(pa_id, pa_makecode, "BOX");
  91. OperateResult.AppendText("箱号" + input.Text + "完工入库成功\n", Color.Green);
  92. }
  93. else
  94. {
  95. OperateResult.AppendText("箱号" + input.Text + "不存在,重新输入箱号\n", Color.Red, input);
  96. return;
  97. }
  98. }
  99. else if (serBtn.Checked)
  100. {
  101. string ms_id = dh.getFieldDataByCondition("makeserial", "max(ms_id)ms_id", "ms_sncode='" + input.Text + "'").ToString();
  102. if (ms_id == "")
  103. {
  104. OperateResult.AppendText("序列号" + input.Text + "不存在,请重新输入\n", Color.Red, input);
  105. return;
  106. }
  107. else
  108. {
  109. sql.Clear();
  110. sql.Append("select ms_status,nvl(ms_downstatus,0)ms_downstatus,ms_outboxcode,ms_makecode,nvl(ms_iostatus,0)ms_iostatus,ms_prodcode,ms_outno from makeserial where ms_id='" + ms_id + "'");
  111. dtms = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  112. string ms_downstatus = dtms.Rows[0]["ms_downstatus"].ToString();
  113. string ms_status = dtms.Rows[0]["ms_status"].ToString();
  114. string ms_outboxcode = dtms.Rows[0]["ms_outboxcode"].ToString();
  115. string ms_iostatus = dtms.Rows[0]["ms_iostatus"].ToString();
  116. string ms_outno = dtms.Rows[0]["ms_outno"].ToString();
  117. string ms_prodcode = dtms.Rows[0]["ms_prodcode"].ToString();
  118. string ms_makecode = dtms.Rows[0]["ms_makecode"].ToString();
  119. if (ms_status != "2")
  120. {
  121. OperateResult.AppendText("序列号" + input.Text + "未完工,不允许出货\n", Color.Red, input);
  122. return;
  123. }
  124. if (ms_outboxcode != "")
  125. {
  126. OperateResult.AppendText("序列号" + input.Text + "有外箱号" + ms_outboxcode + ",不允许单独操作\n", Color.Red, input);
  127. return;
  128. }
  129. if (ms_downstatus != "0")
  130. {
  131. OperateResult.AppendText("序列号" + input.Text + "处于下地状态,不允许出货\n", Color.Red, input);
  132. return;
  133. }
  134. if (ms_iostatus == "1")
  135. {
  136. OperateResult.AppendText("序列号" + input.Text + "已经入库,不允许重复入库\n", Color.Red, input);
  137. return;
  138. }
  139. if (ms_iostatus == "2")
  140. {
  141. OperateResult.AppendText("序列号" + input.Text + "已经出库,出库单号:" + ms_outno + "\n", Color.Red, input);
  142. return;
  143. }
  144. if (ms_iostatus == "3")
  145. {
  146. OperateResult.AppendText("序列号" + input.Text + "处于售后退货状态\n", Color.Red, input);
  147. return;
  148. }
  149. sql.Clear();
  150. sql.Append("insert into prodiomac(pim_id,pim_prodcode,pim_mac,pim_indate,pim_inman,pim_type,pim_inorout,pim_class) ");
  151. sql.Append("values(prodiomac_seq.nextval,'" + ms_prodcode + "','" + input.Text + "',sysdate,'" + User.UserCode + "',' ','IN','完工入库')");
  152. dh.ExecuteSql(sql.GetString(), "insert");
  153. dh.UpdateByCondition("makeserial", "ms_iostatus=1", " ms_id='" + ms_id + "'");
  154. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "序列号" + input.Text + "完工入库", "序列号" + input.Text + "完工入库成功", input.Text, "");
  155. OperateResult.AppendText("序列号" + input.Text + "完工入库成功\n", Color.Green);
  156. }
  157. }
  158. else
  159. {
  160. OperateResult.AppendText("未选择录入数据类型\n", Color.Red, input);
  161. return;
  162. }
  163. LoadGridData();
  164. input.Clear();
  165. }
  166. else
  167. {
  168. if (palletBtn.Checked)
  169. {
  170. sql.Clear();
  171. sql.Append("select pa_id,pa_outboxcode,pa_status,nvl(pa_downstatus,0)pa_downstatus,pa_makecode,");
  172. sql.Append("pa_outno,nvl(pa_iostatus,0) pa_iostatus from package where pa_outboxcode='" + input.Text + "' and pa_type=3");
  173. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  174. if (dt.Rows.Count > 0)
  175. {
  176. string pa_downstatus = dt.Rows[0]["pa_downstatus"].ToString();
  177. string pa_iostatus = dt.Rows[0]["pa_iostatus"].ToString();
  178. string pa_status = dt.Rows[0]["pa_status"].ToString();
  179. string pa_outno = dt.Rows[0]["pa_outno"].ToString();
  180. string pa_id = dt.Rows[0]["pa_id"].ToString();
  181. string pa_makecode = dt.Rows[0]["pa_makecode"].ToString();
  182. if (pa_iostatus != "1")
  183. {
  184. OperateResult.AppendText("栈板号" + input.Text + "不是在库状态,无需取消完工入库\n", Color.Red, input);
  185. return;
  186. }
  187. if (pa_outno != "")
  188. {
  189. OperateResult.AppendText("栈板号" + input.Text + "已被出货单单号:" + pa_outno + "锁定\n", Color.Red, input);
  190. return;
  191. }
  192. DeleteData();
  193. deleteprodiomac(pa_id, pa_makecode, "PALLET");
  194. OperateResult.AppendText("栈板" + input.Text + "取消完工入库成功\n", Color.Green, input);
  195. }
  196. else
  197. {
  198. OperateResult.AppendText("栈板号" + input.Text + "不存在,重新输入栈板号\n", Color.Red, input);
  199. return;
  200. }
  201. }
  202. else if (bigboxBtn.Checked)
  203. {
  204. string outboxcode = dh.getFieldDataByCondition("makeserial", "ms_outboxcode", "ms_sncode = '" + input.Text + "'").ToString();
  205. if (outboxcode != "")
  206. {
  207. input.Text = outboxcode;
  208. }
  209. sql.Clear();
  210. sql.Append("select pa_id,pa_outboxcode,pa_status,nvl(pa_downstatus,0)pa_downstatus,pa_makecode,");
  211. sql.Append("pa_outno,pa_mothercode,nvl(pa_iostatus,0) pa_iostatus from package where pa_outboxcode='" + input.Text + "' and pa_type in (1,2)");
  212. dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  213. if (dt.Rows.Count > 0)
  214. {
  215. string pa_mothercode = dt.Rows[0]["pa_mothercode"].ToString();
  216. string pa_downstatus = dt.Rows[0]["pa_downstatus"].ToString();
  217. string pa_iostatus = dt.Rows[0]["pa_iostatus"].ToString();
  218. string pa_status = dt.Rows[0]["pa_status"].ToString();
  219. string pa_outno = dt.Rows[0]["pa_outno"].ToString();
  220. string pa_id = dt.Rows[0]["pa_id"].ToString();
  221. string pa_makecode = dt.Rows[0]["pa_makecode"].ToString();
  222. if (pa_mothercode != "")
  223. {
  224. OperateResult.AppendText("箱号" + input.Text + "已经装大箱或者栈板" + pa_mothercode + ",不允许单独操作\n", Color.Red, input);
  225. return;
  226. }
  227. if (pa_iostatus != "1")
  228. {
  229. OperateResult.AppendText("箱号" + input.Text + "不是在库状态,无需取消完工入库\n", Color.Red, input);
  230. return;
  231. }
  232. if (pa_outno != "")
  233. {
  234. OperateResult.AppendText("箱号" + input.Text + "已被出货单单号:" + pa_outno + "锁定\n", Color.Red, input);
  235. return;
  236. }
  237. DeleteData();
  238. deleteprodiomac(pa_id, pa_makecode, "BOX");
  239. OperateResult.AppendText("箱号" + input.Text + "取消完工入库成功\n", Color.Green, input);
  240. }
  241. else
  242. {
  243. OperateResult.AppendText("箱号" + input.Text + "不存在,重新输入箱号\n", Color.Red, input);
  244. return;
  245. }
  246. }
  247. else if (serBtn.Checked)
  248. {
  249. string ms_id = dh.getFieldDataByCondition("makeserial", "max(ms_id)ms_id", "ms_sncode='" + input.Text + "'").ToString();
  250. if (ms_id == "")
  251. {
  252. OperateResult.AppendText("序列号" + input.Text + "不存在,请重新输入\n", Color.Red, input);
  253. return;
  254. }
  255. else
  256. {
  257. sql.Clear();
  258. sql.Append("select ms_status,nvl(ms_downstatus,0)ms_downstatus,ms_outboxcode,ms_makecode,nvl(ms_iostatus,0)ms_iostatus,ms_prodcode,ms_outno from makeserial where ms_id='" + ms_id + "'");
  259. dtms = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  260. string ms_downstatus = dtms.Rows[0]["ms_downstatus"].ToString();
  261. string ms_status = dtms.Rows[0]["ms_status"].ToString();
  262. string ms_outboxcode = dtms.Rows[0]["ms_outboxcode"].ToString();
  263. string ms_iostatus = dtms.Rows[0]["ms_iostatus"].ToString();
  264. string ms_outno = dtms.Rows[0]["ms_outno"].ToString();
  265. string ms_prodcode = dtms.Rows[0]["ms_prodcode"].ToString();
  266. string ms_makecode = dtms.Rows[0]["ms_makecode"].ToString();
  267. if (ms_outboxcode != "")
  268. {
  269. OperateResult.AppendText("序列号" + input.Text + "有外箱号" + ms_outboxcode + ",不允许单独操作\n", Color.Red, input);
  270. return;
  271. }
  272. if (ms_outno != "")
  273. {
  274. OperateResult.AppendText("序列号" + input.Text + "已被出货单单号:" + ms_outno + "锁定\n", Color.Red, input);
  275. return;
  276. }
  277. if (ms_iostatus != "1")
  278. {
  279. OperateResult.AppendText("序列号" + input.Text + "不是在库状态,无需取消完工入库\n", Color.Red, input);
  280. return;
  281. }
  282. DeleteData();
  283. sql.Clear();
  284. sql.Append("delete from prodiomac where pim_id =(select max(pim_id) from prodiomac where ");
  285. sql.Append(" pim_mac='" + input.Text + "' and pim_inorout='IN' AND pim_class='完工入库' )");
  286. dh.ExecuteSql(sql.GetString(), "delete");
  287. dh.UpdateByCondition("makeserial", "ms_iostatus=0", " ms_id='" + ms_id + "'");
  288. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, ms_makecode, User.UserLineCode, User.UserSourceCode, "序列号" + input.Text + "取消完工入库", "序列号" + input.Text + "取消完工入库成功", input.Text, "");
  289. OperateResult.AppendText("序列号" + input.Text + "取消完工入库成功\n", Color.Green, input);
  290. }
  291. }
  292. else
  293. {
  294. OperateResult.AppendText("未选择录入数据类型\n", Color.Red, input);
  295. return;
  296. }
  297. }
  298. getqty.Text = ((DataTable)bindingSource1.DataSource).Rows.Count.ToString();
  299. }
  300. }
  301. private Boolean CheckStatus(string pa_downstatus, string pa_status, string pa_iostatus, string pa_outno, string type)
  302. {
  303. if (pa_status == "0")
  304. {
  305. OperateResult.AppendText(type + "号" + input.Text + "未封装\n", Color.Red, input);
  306. return false;
  307. }
  308. if (pa_downstatus != "0")
  309. {
  310. OperateResult.AppendText(type + "号" + input.Text + "处于下地状态,如需完工入库,请先取消下地\n", Color.Red, input);
  311. return false;
  312. }
  313. if (pa_iostatus == "1")
  314. {
  315. OperateResult.AppendText(type + "号" + input.Text + "已经入库,不允许重复入库\n", Color.Red, input);
  316. return false;
  317. }
  318. if (pa_iostatus == "2")
  319. {
  320. OperateResult.AppendText(type + "号" + input.Text + "已经出库,出库单号:" + pa_outno + "\n", Color.Red, input);
  321. return false;
  322. }
  323. if (pa_iostatus == "3")
  324. {
  325. OperateResult.AppendText(type + "号" + input.Text + "处于售后退货状态\n", Color.Red, input);
  326. return false;
  327. }
  328. sql.Clear();
  329. sql.Append("select wm_concat(v_barcode)data,count(1)cn from mes_package_view left join ");
  330. sql.Append("makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode ");
  331. sql.Append("where v_outboxcode='" + input.Text + "' and nvl(ms_status,0)<>2 and rownum<20");
  332. dta = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  333. string CN = dta.Rows[0]["CN"].ToString();
  334. string DATA = dta.Rows[0]["DATA"].ToString();
  335. if (int.Parse(CN) > 0)
  336. {
  337. OperateResult.AppendText(type + "号" + input.Text + "内的序列号尚未完工,不允许进行完工入库,序列号:" + DATA + "\n", Color.Red, input);
  338. return false;
  339. }
  340. return true;
  341. }
  342. private void insertprodiomac(string pa_id, string pa_makecode, string type)
  343. {
  344. sql.Clear();
  345. sql.Append("insert into prodiomac(pim_id,pim_prodcode,pim_mac,pim_indate,pim_inman,pim_type,pim_outboxcode,pim_inorout,pim_class) ");
  346. sql.Append("select prodiomac_seq.nextval,v_prodcode,v_barcode,sysdate,'" + User.UserCode + "','" + type + "','" + input.Text + "','IN','完工入库' from mes_package_view where v_outboxcode='" + input.Text + "'");
  347. dh.ExecuteSql(sql.GetString(), "update");
  348. dh.UpdateByCondition("package", "pa_iostatus=1", "pa_id='" + pa_id + "'");
  349. if (type == "BOX")
  350. {
  351. type = "箱";
  352. }
  353. else
  354. type = "栈板";
  355. //dh.UpdateByCondition("makeserial", "ms_iostatus=1", "ms_id in (select max(ms_id) from makeserial where ms_sncode in (select v_barcode from MES_PACKAGE_VIEW where v_outboxcode = '"+input.Text+"') GROUP BY ms_sncode)");
  356. List<string> v_barcode = new List<string>();
  357. List<string> v_makecode = new List<string>();
  358. DataTable datatable = (DataTable)dh.ExecuteSql("select v_makecode,v_barcode from MES_PACKAGE_VIEW where v_outboxcode = '" + input.Text + "'", "select");
  359. for (int i = 0; i < datatable.Rows.Count; i++)
  360. {
  361. v_barcode.Add(datatable.Rows[i]["v_barcode"].ToString());
  362. v_makecode.Add(datatable.Rows[i]["v_makecode"].ToString());
  363. }
  364. dh.BatchInsert("update makeserial set ms_iostatus=1 where ms_sncode = :v_barcode and ms_makecode = :v_makecode", new string[] { "v_barcode", "v_makecode" }, v_barcode.ToArray(), v_makecode.ToArray());
  365. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, pa_makecode, User.UserLineCode, User.UserSourceCode, type + "号" + input.Text + "完工入库", type + "号" + input.Text + "完工入库成功", "", input.Text);
  366. return;
  367. }
  368. /// <summary>
  369. /// 加载Grid数据
  370. /// </summary>
  371. private void LoadGridData()
  372. {
  373. if (palletBtn.Checked || bigboxBtn.Checked)
  374. {
  375. sql.Clear();
  376. sql.Append("select pim_id,pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec, pim_indate from prodiomac ");
  377. sql.Append("left join product on pr_code=pim_prodcode where pim_outboxcode='" + input.Text + "'and pim_inorout='IN' AND pim_class='完工入库'");
  378. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  379. (bindingSource1.DataSource as DataTable).Merge(dt.Copy());
  380. BaseUtil.FillDgvWithDataTable(InOutDetailDGV, (DataTable)bindingSource1.DataSource);
  381. }
  382. else
  383. {
  384. sql.Clear();
  385. sql.Append("select pim_id,pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec, pim_indate from prodiomac ");
  386. sql.Append("left join product on pr_code=pim_prodcode where pim_mac='" + input.Text + "' and pim_inorout='IN' AND pim_class='完工入库'");
  387. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  388. (bindingSource1.DataSource as DataTable).Merge(dt.Copy());
  389. BaseUtil.FillDgvWithDataTable(InOutDetailDGV, (DataTable)bindingSource1.DataSource);
  390. }
  391. }
  392. /// <summary>
  393. /// 去除重复Grid数据
  394. /// </summary>
  395. private void DeleteData()
  396. {
  397. if (palletBtn.Checked || bigboxBtn.Checked)
  398. {
  399. sql.Clear();
  400. sql.Append("select pim_id,pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec, pim_indate from prodiomac ");
  401. sql.Append("left join product on pr_code=pim_prodcode where pim_outboxcode='" + input.Text + "' and pim_inorout='IN' AND pim_class='完工入库'");
  402. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  403. BaseUtil.FillDgvWithDataTable(InOutDetailDGV, BaseUtil.DataTableMerge((DataTable)bindingSource1.DataSource, dt, "pim_id"));
  404. }
  405. else
  406. {
  407. sql.Clear();
  408. sql.Append("select pim_id,pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec, pim_indate from prodiomac ");
  409. sql.Append("left join product on pr_code=pim_prodcode where pim_mac='" + input.Text + "' and pim_inorout='IN' AND pim_class='完工入库'");
  410. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  411. BaseUtil.FillDgvWithDataTable(InOutDetailDGV, BaseUtil.DataTableMerge((DataTable)bindingSource1.DataSource, dt, "pim_id"));
  412. }
  413. }
  414. private void deleteprodiomac(string pa_id, string pa_makecode, string type)
  415. {
  416. sql.Clear();
  417. sql.Append("delete from prodiomac where pim_id in (select pim_id from prodiomac where ");
  418. sql.Append(" pim_outboxcode='" + input.Text + "' and pim_type='" + type + "' and pim_inorout='IN' AND pim_class='完工入库' )");
  419. dh.ExecuteSql(sql.GetString(), "delete");
  420. dh.UpdateByCondition("package", "pa_iostatus=0", "pa_id='" + pa_id + "'");
  421. List<string> v_barcode = new List<string>();
  422. List<string> v_makecode = new List<string>();
  423. DataTable datatable = (DataTable)dh.ExecuteSql("select v_makecode,v_barcode from MES_PACKAGE_VIEW where v_outboxcode = '" + input.Text + "'", "select");
  424. for (int i = 0; i < datatable.Rows.Count; i++)
  425. {
  426. v_barcode.Add(datatable.Rows[i]["v_barcode"].ToString());
  427. v_makecode.Add(datatable.Rows[i]["v_makecode"].ToString());
  428. }
  429. dh.BatchInsert("update makeserial set ms_iostatus=0 where ms_sncode = :v_barcode and ms_makecode = :v_makecode", new string[] { "v_barcode", "v_makecode" }, v_barcode.ToArray(), v_makecode.ToArray());
  430. LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, pa_makecode, User.UserLineCode, User.UserSourceCode, type + "号" + input.Text + "取消完工入库", type + "号" + input.Text + "取消完工入库成功", "", input.Text);
  431. //dh.UpdateByCondition("makeserial", "ms_iostatus=0", "ms_id in (select max(ms_id) from makeserial where ms_sncode in (select v_barcode from MES_PACKAGE_VIEW where v_outboxcode = '" + input.Text + "') GROUP BY ms_sncode)");
  432. return;
  433. }
  434. private void Warehouse_ProductMakeIn_Load(object sender, EventArgs e)
  435. {
  436. asc.controllInitializeSize(this);
  437. getcount = 0;
  438. getqty.Text = getcount.ToString();
  439. dh = SystemInf.dh;
  440. sql.Clear();
  441. sql.Append("select pim_id,pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec, pim_indate from prodiomac ");
  442. sql.Append("left join product on pr_code=pim_prodcode where pim_id is null");
  443. bindingSource1.DataSource = dh.ExecuteSql(sql.GetString(), "select");
  444. input.Focus();
  445. OperateResult.AppendText("请输入栈板进行采集\n", Color.Black, input);
  446. }
  447. private void Warehouse_ProductMakeIn_SizeChanged(object sender, EventArgs e)
  448. {
  449. asc.controlAutoSize(this);
  450. }
  451. private void serBtn_Click(object sender, EventArgs e)
  452. {
  453. if (((RadioButton)sender).Checked == true)
  454. {
  455. if (((RadioButton)sender).Name == "serBtn")
  456. {
  457. input.Focus();
  458. OperateResult.AppendText("请输入序列号进行采集\n", Color.Black, input);
  459. }
  460. else if (((RadioButton)sender).Name == "bigboxBtn")
  461. {
  462. input.Focus();
  463. OperateResult.AppendText("请输入箱号进行采集\n", Color.Black, input);
  464. }
  465. else if (((RadioButton)sender).Name == "palletBtn")
  466. {
  467. input.Focus();
  468. OperateResult.AppendText("请输入栈板进行采集\n", Color.Black, input);
  469. }
  470. }
  471. }
  472. private void textBoxWithPlaceHolder1_UserControlTextChanged(object sender, EventArgs e)
  473. {
  474. if (pallecode.Text.Length == 0)
  475. {
  476. input.Enabled = true;
  477. if (bindingSource1.DataSource != null)
  478. {
  479. BaseUtil.FillDgvWithDataTable(InOutDetailDGV, (DataTable)bindingSource1.DataSource);
  480. }
  481. }
  482. }
  483. private void Search_Click(object sender, EventArgs e)
  484. {
  485. if (pallecode.Text.Length >= 1 || startdate.Text.Length >= 1 || enddate.Text.Length >= 1)
  486. {
  487. string start = startdate.Text.Length >= 1 ? startdate.Text : "0";
  488. string end = enddate.Text.Length >= 1 ? enddate.Text : "9999999999";
  489. sql.Clear();
  490. sql.Append("select pim_id,pim_outboxcode,pim_mac,pim_prodcode,pr_detail,pr_spec, pim_indate from prodiomac ");
  491. sql.Append("left join product on pr_code=pim_prodcode where pim_outboxcode like '%" + pallecode.Text + "%' and pim_inorout='IN' AND pim_class='完工入库' and to_char(pim_indate,'yyyymmdd') between '" + start + "' and '" + end + "' order by pim_id asc");
  492. DataTable dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
  493. BaseUtil.FillDgvWithDataTable(InOutDetailDGV, dt);
  494. input.Enabled = false;
  495. }
  496. else
  497. OperateResult.AppendText("查询栏为空\n", Color.Black);
  498. }
  499. private void InOutDetailDGV_DataSourceChanged(object sender, EventArgs e)
  500. {
  501. getqty.Text = InOutDetailDGV.Rows.Count.ToString();
  502. }
  503. private void button1_Click(object sender, EventArgs e)
  504. {
  505. //Data表示导出数据
  506. //Templet表示导出模板
  507. folderBrowserDialog1.Description = "选择导出的路径";
  508. DialogResult result = folderBrowserDialog1.ShowDialog();
  509. if (result == DialogResult.OK)
  510. {
  511. string FolderPath = folderBrowserDialog1.SelectedPath;
  512. ExcelHandler eh = new ExcelHandler();
  513. DataTable dt = (DataTable)InOutDetailDGV.DataSource;
  514. //导出Excel的时候返回一个文件名,用户选择是否打开
  515. string filePath = eh.ExportExcel(dt, FolderPath);
  516. //用户选择导出之后是否立即打开
  517. MessageBoxButtons messButton = MessageBoxButtons.YesNo;
  518. string openFile = MessageBox.Show(this.ParentForm, "是否打开文件" + filePath, "提示", messButton).ToString();
  519. if (openFile == "Yes")
  520. {
  521. System.Diagnostics.Process.Start(filePath);
  522. }
  523. }
  524. }
  525. }
  526. }