FrmConfirmCraft.cs 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693
  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.Windows.Forms;
  9. using Infragistics.Win;
  10. using CoreFS.CA06;
  11. using Newtonsoft.Json;
  12. using Infragistics.Win.UltraWinGrid;
  13. using Core.Mes.Client.Comm.Server;
  14. using System.Collections;
  15. using Core.Mes.Client.Comm;
  16. using Core.Mes.Client.Comm.Tool;
  17. using com.steering.pss.plnsaleord.order.model;
  18. using com.steering.pss.plnsaleord.ordAmCal.model;
  19. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  20. using Core.StlMes.Client.PlnSaleOrd.PopupWindow;
  21. namespace Core.StlMes.Client.PlnSaleOrd
  22. {
  23. public partial class FrmConfirmCraft : FrmBase
  24. {
  25. public FrmConfirmCraft()
  26. {
  27. InitializeComponent();
  28. System.Threading.Thread t = new System.Threading.Thread(setGridColunmName);
  29. t.Start();
  30. }
  31. private void setGridColunmName()
  32. {
  33. System.Threading.Thread.Sleep(3000);
  34. if (!this.IsDisposed)
  35. {
  36. Init();
  37. }
  38. }
  39. public override void ToolBar_Click(object sender, string ToolbarKey)
  40. {
  41. base.ToolBar_Click(sender, ToolbarKey);
  42. switch (ToolbarKey)
  43. {
  44. case "Query": //查询
  45. DoQuery(GetQueryCondition());
  46. break;
  47. case "ConfirmCraft":// 替换工艺
  48. DoConfirmCraft();
  49. break;
  50. case "RefresCraft":// 刷新工艺
  51. DoRefresCraft();
  52. break;
  53. case "Iussed"://下发
  54. DoIussed();
  55. break;
  56. case "ConcelIussed":// 取消下发
  57. DoConcelIussed();
  58. break;
  59. case "LookCraftFile"://查看工艺文件
  60. if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
  61. {
  62. DoLookCraftFile();
  63. }
  64. else
  65. {
  66. comOrdExportCtrl1.DoLookCraftFile(this.ob);
  67. }
  68. break;
  69. case "TechOrderLine": //
  70. if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
  71. {
  72. TechOrderLine();
  73. }
  74. else
  75. {
  76. comOrdExportCtrl1.TechOrderLine();
  77. }
  78. break;
  79. case "ExportProc":
  80. PlanComm.Export(ref ultraGridSaleOrderProc, "计划" + DateTime.Now.ToString("yyyyMMdd"));
  81. break;
  82. case "QueryExp"://查询下发合同信息
  83. comOrdExportCtrl1.DoQueryExp();
  84. break;
  85. case "Export": //导出
  86. comOrdExportCtrl1.DoExport();
  87. break;
  88. case "GridExport": //按Grid导出
  89. comOrdExportCtrl1.DoGridExport();
  90. break;
  91. case "RefresDate"://刷新加载数据
  92. RefresDate();
  93. DoQuery(GetQueryCondition());
  94. break;
  95. case "ModifyBaseMlPl":
  96. DoModifyBaseMlPl();
  97. break;
  98. case "UpdateMonth"://修改排产月份
  99. UpdateMonth();
  100. break;
  101. case "BreakUp"://拆分
  102. doBreakUp();
  103. break;
  104. case "Merge"://合并
  105. doMerge();
  106. break;
  107. case "Close": //关闭
  108. this.Close();
  109. break;
  110. }
  111. }
  112. private void FrmConfirmCraft_Load(object sender, EventArgs e)
  113. {
  114. comOrdExportCtrl1.ComBLL(this.ob);
  115. comOrdExportCtrl1.UltraTextAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMM");
  116. comOrdExportCtrl1.CheckBoxAcceptNoexport.Checked = true;
  117. comOrdExportCtrl1.UltraDateTimeDELVRY_EDATEFrom.DateTime = DateTime.Now.AddMonths(-1);
  118. comOrdExportCtrl1.UltraDateTimeDELVRY_EDATETo.DateTime = DateTime.Now;
  119. comQueryPanelSource1.checkBoxIsConfirm.Visible = true;
  120. comQueryPanelSource1.checkBoxIsConfirm.Checked = false;
  121. comQueryPanelSource1.checkBoxIsConfirm.Text = "待变更工艺";
  122. comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("1", "已接收");
  123. comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("2", "已下发");
  124. comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("3", "生产中");
  125. comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("4", "生产完成");
  126. comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("5", "缴库完毕");
  127. comQueryPanelSource1.ctrlForQueryPORDERSTATUS.SelectedIndex = 0;
  128. comQueryPanelSource1.ultraTextEditorAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMMdd");
  129. Init();
  130. this.IsLoadUserView = true;
  131. }
  132. /// <summary>
  133. /// 刷新
  134. /// </summary>
  135. private void RefresDate()
  136. {
  137. }
  138. private void Init()
  139. {
  140. comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].EditorComponent
  141. = comOrdExportCtrl1.ultraFileLook;
  142. comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].ButtonDisplayStyle
  143. = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
  144. PlanComm.setGridDigitalCol(comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0],
  145. 5, 2, "RANGE_MIN", "RANGE_MAX", "OUTDIAMETER", "WALLTHICK");
  146. EntityHelper.ShowGridCaption<PlnSaleOrderQueryEntity>(ultraGridSaleOrderProc.DisplayLayout.Bands[0]);
  147. ultraGridSaleOrderProc.DisplayLayout.Bands[0].Columns["OrderAddDesc"].EditorComponent = ultraFileLook;
  148. ultraGridSaleOrderProc.DisplayLayout.Bands[0].Columns["OrderAddDesc"].ButtonDisplayStyle
  149. = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
  150. PlanComm.setGridActivation(this.ultraGridSaleOrderProc.DisplayLayout.Bands[0], "CHC", "RollMonth");
  151. PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 3,
  152. "OrderQtyD", "PlanWtD", "FinishWt", "planWtBegin", "PlanPMain", "Lengthmax", "Lengthmin", "PlanPMainMin", "AimWtEnd", "WeightJg");
  153. PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 2,
  154. "Outdiameter", "Wallthick", "TotLenOneP", "HeightNkMin", "HeightNkMax",
  155. "LenToendMin", "LenToendMax", "LengthJg", "DimaterYlg", "HeightYlg", "LenRollMin", "LenRollMax",
  156. "HeightOrdMax", "HeightOrdMin", "AimWallthick", "RollLength", "ShrtLenRato", "LongLenRato", "AimOutdiameter", "FeedRate", "Coefficient", "CoefficientMin", "CheckJVal");
  157. PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 3,
  158. "AimLenEnd", "AimLenRoll", "SiglLen", "EndlenSpecstd", "DifrncLenMax",
  159. "AvgLenMin", "Longest", "Shortest", "ZOrderweight");
  160. PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 0,
  161. "PlanNumD", "planNumBegin", "CutNumP", "ZOrdernum");
  162. PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 3, 6,
  163. "WeightPerM", "WeightKzM");
  164. PlanComm.setGridSummarySet(ultraGridSaleOrderProc, 0, "PlanNumD");
  165. PlanComm.setGridSummarySet(ultraGridSaleOrderProc, 3,
  166. "OrderQtyD", "PlanWtD", "FinishWt", "planWtBegin", "PlanPMain", "PlanPMainMin");
  167. }
  168. /// <summary>
  169. /// 获取查询条件信息
  170. /// </summary>
  171. /// <returns>查询条件信息</returns>
  172. private ArrayList GetQueryCondition()
  173. {
  174. ArrayList ary = new ArrayList();
  175. string strRollmonth = "";
  176. string strAcceptNo = "";//接收批次号
  177. string strOrderNo = ""; //合同号
  178. string strOrderStatus = ""; //合同状态
  179. string haveJg = ""; //是否有接箍
  180. string haveDj = ""; //是否有短节
  181. string isGpOrder = ""; //是否是管坯合同
  182. string ordSource = "";//合同来源
  183. if (comQueryPanelSource1.checkBoxHvJg.Checked)
  184. {
  185. haveJg = "1";
  186. }
  187. if (comQueryPanelSource1.checkBoxHvDj.Checked)
  188. {
  189. haveDj = "1";
  190. }
  191. if (comQueryPanelSource1.checkBoxisGp.Checked)
  192. {
  193. isGpOrder = "1";
  194. }
  195. if (comQueryPanelSource1.checkBoxAcceptNo.Checked)
  196. {
  197. strAcceptNo = comQueryPanelSource1.ultraTextEditorAcceptNo.Text.Trim();
  198. }
  199. if (comQueryPanelSource1.checkBoxForReqORDER_NO.Checked)
  200. {
  201. strOrderNo = comQueryPanelSource1.ctrlForQueryORDER_NO.Text.Trim();
  202. }
  203. if (comQueryPanelSource1.checkBoxForReqPORDERSTATUS.Checked)
  204. {
  205. strOrderStatus = comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Value.ToString();
  206. }
  207. if (comQueryPanelSource1.checkBoxRollMonth.Checked)
  208. {
  209. strRollmonth = comQueryPanelSource1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM");
  210. }
  211. if (comQueryPanelSource1.checkBoxOrdSource.Checked)
  212. {
  213. ordSource = comQueryPanelSource1.ultraComboOrdSource.Value.ToString();
  214. }
  215. ary.Add(strRollmonth);
  216. ary.Add(strAcceptNo);
  217. ary.Add(strOrderNo);
  218. ary.Add(strOrderStatus);
  219. ary.Add(haveJg);
  220. ary.Add(haveJg);
  221. ary.Add(haveDj);
  222. ary.Add(haveDj);
  223. ary.Add(isGpOrder);
  224. ary.Add(isGpOrder);
  225. ary.Add(ordSource);
  226. return ary;
  227. }
  228. /// <summary>
  229. /// 查询
  230. /// </summary>
  231. private void DoQuery(ArrayList ary)
  232. {
  233. bool isConfirm = comQueryPanelSource1.checkBoxIsConfirm.Checked;
  234. string strFinish = "";
  235. if (this.comQueryPanelSource1.checkBoxFinish.Checked)
  236. {
  237. strFinish = comQueryPanelSource1.ultraComboFinishEditor.Value.ToString();
  238. }
  239. slmSaleOrderEntitybindingSource.DataSource = EntityHelper.GetData<PlnSaleOrderQueryEntity>(
  240. "com.steering.pss.plnsaleord.order.CoreConfirmCraft.querySaleOrder",
  241. new object[] { ary, strFinish, isConfirm,this.CustomInfo.ToString2() }, this.ob);
  242. foreach (UltraGridRow uRow in this.ultraGridSaleOrderProc.Rows)
  243. {
  244. if (uRow.Cells["CraftRenewSt"].Value.ToString().Trim().Equals("待替换"))
  245. {
  246. uRow.Appearance.BackColor = Color.FromArgb(255, 220, 190);
  247. }
  248. }
  249. }
  250. /// <summary>
  251. /// 确认替换新工艺
  252. /// </summary>
  253. private void DoConfirmCraft()
  254. {
  255. try
  256. {
  257. int defailNum = 0;
  258. string messageErr = "";
  259. ultraGridSaleOrderProc.UpdateData();
  260. ArrayList list = new ArrayList();
  261. ArrayList listLog = new ArrayList();
  262. IQueryable<UltraGridRow> checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  263. if (checkRows.Count() == 0)
  264. {
  265. MessageUtil.ShowTips("未勾选合同!");
  266. return;
  267. }
  268. PlanComm.WaitFromOpen(this.Cursor);
  269. foreach (UltraGridRow uRow in checkRows)
  270. {
  271. //查询合同状态
  272. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.querySaleProcStatus",
  273. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
  274. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  275. {
  276. defailNum++;
  277. continue;
  278. }
  279. if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("4") < 0)
  280. {
  281. double outdiameter = 0;///外径
  282. double wallthick = 0; //壁厚
  283. double.TryParse(uRow.Cells["Wallthick"].Value.ToString(), out wallthick);
  284. string outsStlPipeFl = dtStatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
  285. if (!double.TryParse(uRow.Cells["Outdiameter"].Value.ToString(), out outdiameter))
  286. {
  287. if (messageErr.Equals(""))
  288. {
  289. messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  290. + uRow.Cells["DeliveryNo"].Value.ToString() + "外径有误,请核对合同信息!";
  291. }
  292. defailNum++;
  293. continue;
  294. }
  295. PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity();
  296. PlnSaleordCrfEditLogEntity crfEditLog = new PlnSaleordCrfEditLogEntity();
  297. ordProcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  298. ordProcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
  299. ordProcEntity.CraftSeq = dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString();
  300. if (dtStatus.Rows[0]["CRAFT_SEQ"].ToString().Equals(
  301. dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString()))
  302. {
  303. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  304. + uRow.Cells["DeliveryNo"].Value.ToString() + "没有新的工艺!";
  305. defailNum++;
  306. continue;
  307. }
  308. DataTable dtCraft = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.queryCraftDesign",
  309. new object[] { uRow.Cells["OrdLnPk"].Value.ToString(),
  310. dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString() }, this.ob);
  311. if (dtCraft == null || dtCraft.Rows.Count <= 0)
  312. {
  313. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  314. + uRow.Cells["DeliveryNo"].Value.ToString() + "没有找到新工艺的信息!";
  315. defailNum++;
  316. continue;
  317. }
  318. string desginKey = dtCraft.Rows[0]["DESGIN_KEY"].ToString();//新的质量设计
  319. if (desginKey.Equals(""))
  320. {
  321. messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  322. + "新的工艺没有经过工艺制定!";
  323. defailNum++;
  324. continue;
  325. }
  326. string mscPline = dtStatus.Rows[0]["INDEX_SEQ"].ToString();//旧的制程
  327. string bom = dtStatus.Rows[0]["BOM"].ToString();//旧的BOM
  328. string dPline = dtStatus.Rows[0]["GROUP_ROLL"].ToString();//旧的产线
  329. ordProcEntity.DIsOk = dtStatus.Rows[0]["D_IS_OK"].ToString();
  330. ordProcEntity.EIsOk = dtStatus.Rows[0]["E_IS_OK"].ToString();
  331. ordProcEntity.GradecodeIsOk = dtStatus.Rows[0]["GRADECODE_IS_OK"].ToString();
  332. crfEditLog.CraftSeqNew = dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString();
  333. crfEditLog.CraftSeqOld = dtStatus.Rows[0]["CRAFT_SEQ"].ToString();
  334. crfEditLog.CreateName = UserInfo.GetUserName();
  335. crfEditLog.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  336. crfEditLog.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
  337. listLog.Add(crfEditLog);
  338. if (dtStatus.Rows[0]["DESGIN_KEY"].ToString().Equals(desginKey)
  339. || !dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
  340. {
  341. list.Add(ordProcEntity);
  342. }
  343. else
  344. {
  345. OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
  346. InOrdParamEntity inOrdParam = new InOrdParamEntity();
  347. PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
  348. DateTime date = new DateTime();
  349. string errMessage = "";
  350. double putRate = 1;
  351. if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
  352. {
  353. //投料率
  354. putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob);
  355. }
  356. #region 新的质量设计下的制程
  357. DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryDesginPl",
  358. new object[] { desginKey }, this.ob);
  359. if (dtDegnPl != null && dtDegnPl.Rows.Count > 0)
  360. {
  361. if (!PlanComm.isInDataTable(dtDegnPl, "MSC_PLINE", mscPline))
  362. {
  363. //新的制程号
  364. mscPline = dtDegnPl.Rows[0]["MSC_PLINE"].ToString();
  365. ordProcEntity.IndexSeq = dtDegnPl.Rows[0]["MSC_PLINE"].ToString();
  366. ordProcEntity.ProcessSeq = dtDegnPl.Rows[0]["WHOLE_BACKLOG"].ToString();
  367. ordProcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString();
  368. }
  369. else
  370. {
  371. //沿用旧的制程号
  372. dtDegnPl.DefaultView.RowFilter = "MSC_PLINE='" + mscPline + "'";
  373. DataTable dt = dtDegnPl.DefaultView.ToTable();
  374. if (dt != null && dt.Rows.Count > 0)
  375. {
  376. mscPline = dt.Rows[0]["MSC_PLINE"].ToString();
  377. ordProcEntity.IndexSeq = dt.Rows[0]["MSC_PLINE"].ToString();
  378. ordProcEntity.ProcessSeq = dt.Rows[0]["WHOLE_BACKLOG"].ToString();
  379. ordProcEntity.GradecodeAll = dt.Rows[0]["GRADENAME"].ToString();
  380. }
  381. }
  382. }
  383. else
  384. {
  385. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  386. + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  387. + "未找到工艺向下的制程。";
  388. defailNum++;
  389. continue;
  390. }
  391. #endregion
  392. #region 根据制程查询全程途经工序
  393. ArrayList param = new ArrayList();
  394. param.Add(desginKey);
  395. param.Add(mscPline);
  396. DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc",
  397. new object[] { param }, this.ob);
  398. if (dtProcess != null && dtProcess.Rows.Count > 0)
  399. {
  400. string endgxCode = ordProcEntity.ProcessSeq.Substring(ordProcEntity.ProcessSeq.Length - 1);
  401. string gprocessC = ""; //加工二级工序
  402. string fprocessC = ""; //热处理二级工序
  403. ordProcEntity.GroupJgx = "/";
  404. ordProcEntity.GroupRcl = "/";
  405. ordProcEntity.BjType = "/";
  406. foreach (DataRow dr in dtProcess.Rows)
  407. {
  408. if (dr["PROCESS_CODE"].ToString().Trim().Equals("H"))
  409. {
  410. ordProcEntity.GroupJgx = "200401";
  411. }
  412. if (dr["PROCESS_CODE"].ToString().Trim().Equals("G"))
  413. {
  414. //经过加工工序
  415. gprocessC = dr["PROCESS_CODE_C"].ToString();
  416. //加工组
  417. //string modelCode = uRow.Cells["ModelCode"].Value.ToString();
  418. //string[] planGroups = FrmDefGroup.planGroups(desginKey,
  419. // mscPline, "G", this.ob);
  420. //if (planGroups != null)
  421. //{
  422. // ordProcEntity.GroupJgx = FrmDefGroup.defgourpJgc(planGroups, outdiameter, modelCode, this.ob);
  423. //}
  424. //else
  425. //{
  426. // ordProcEntity.GroupJgx = FrmDefGroup.defgourpJgc(outdiameter, modelCode, this.ob);
  427. //}
  428. }
  429. if (dr["PROCESS_CODE"].ToString().Trim().Equals("F"))
  430. {
  431. //经过热处理工序
  432. fprocessC = dr["PROCESS_CODE_C"].ToString();
  433. ordProcEntity.ProcDescCRcl = dr["PROCESS_DESC_C"].ToString();
  434. //热处理组
  435. //double lengthmax = Convert.ToDouble(uRow.Cells["Lengthmax"].Value);
  436. //string modelCode = uRow.Cells["ModelCode"].Value.ToString();
  437. //string[] planGroups = FrmDefGroup.planGroups(desginKey,
  438. // mscPline, "F", this.ob);
  439. //if (planGroups != null)
  440. //{
  441. // ordProcEntity.GroupRcl = FrmDefGroup.defgourpRcl(planGroups, outdiameter, wallthick,
  442. // lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob);
  443. //}
  444. //else
  445. //{
  446. // ordProcEntity.GroupRcl = FrmDefGroup.defgourpRcl(outdiameter, wallthick,
  447. // lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob);
  448. //}
  449. }
  450. if (dr["PROCESS_CODE"].ToString().Trim().Equals("E"))
  451. {
  452. //经过镦拔扩工序
  453. ordProcEntity.BjType = dr["PROCESS_DESC_C"].ToString();
  454. }
  455. }
  456. }
  457. else
  458. {
  459. if (messageErr.Equals(""))
  460. {
  461. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  462. + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  463. + "未找到制程途径工序,请联系管理员。";
  464. }
  465. defailNum++;
  466. continue;
  467. }
  468. #endregion
  469. #region BOM物料数据
  470. //查询物料信息
  471. //param.Clear();
  472. //param.Add(mscPline);
  473. //param.Add(uRow.Cells["Msc"].Value.ToString());
  474. //param.Add(uRow.Cells["MaterialNo"].Value.ToString());
  475. //param.Add(ordProcEntity.ProcessSeq);
  476. DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom",
  477. new object[] { desginKey, uRow.Cells["Msc"].Value.ToString(), mscPline }, this.ob);
  478. if (dtBom != null && dtBom.Rows.Count > 0)
  479. {
  480. if (!PlanComm.isInDataTable(dtBom, "BOM", bom))
  481. {
  482. bool isAvailBom = false;//是否存在可用BOM
  483. string errReason = "";//不可用原因
  484. foreach (DataRow dr in dtBom.Rows)
  485. {
  486. #region 判断坯料的属性
  487. string dinMaterial = "";
  488. ///轧管投入物料(炼钢末工序产出物料)
  489. if (!dr["D_IN_MATERIAL_NO"].ToString().Equals(""))
  490. {
  491. dinMaterial = dr["D_IN_MATERIAL_NO"].ToString();
  492. }
  493. else if (!dr["C_OUT_MATERIAL_NO"].ToString().Equals(""))
  494. {
  495. dinMaterial = dr["C_OUT_MATERIAL_NO"].ToString();
  496. }
  497. else if (!dr["B_OUT_MATERIAL_NO"].ToString().Equals(""))
  498. {
  499. dinMaterial = dr["B_OUT_MATERIAL_NO"].ToString();
  500. }
  501. else
  502. {
  503. dinMaterial = dr["A_OUT_MATERIAL_NO"].ToString();
  504. }
  505. ordProcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial);
  506. #endregion
  507. //轧管去向
  508. ordProcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(dr["WHOLE_BACKLOG"].ToString(), dr["WHOLE_BACKLOG_DESC"].ToString());
  509. bom = dr["BOM"].ToString();
  510. ordProcEntity.Bom = dr["BOM"].ToString();
  511. ordProcEntity.Gradecode = dr["GRADECODE"].ToString();
  512. if (ordProcEntity.ProcessSeq.Contains("E"))
  513. {
  514. ordProcEntity.EIsOk = "0";
  515. }
  516. else
  517. {
  518. ordProcEntity.EIsOk = "2";
  519. }
  520. ordProcEntity.GradecodeIsOk = "0";
  521. ordProcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
  522. ordProcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
  523. ordProcEntity.DimaterYlg = dr["DIMATER"].ToString();
  524. ordProcEntity.HeightYlg = dr["HEIGHT"].ToString();
  525. ordProcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
  526. mscPline, dr["BOM"].ToString(), this.ob);
  527. ordProcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
  528. mscPline, dr["BOM"].ToString(), this.ob);
  529. #region 默认轧管产线
  530. ArrayList paramPline = new ArrayList();
  531. paramPline.Add(dr["D_IN_MATERIAL_NO"].ToString());
  532. paramPline.Add(dr["D_OUT_MATERIAL_NO"].ToString());
  533. paramPline.Add(desginKey);
  534. paramPline.Add(mscPline);
  535. paramPline.Add(uRow.Cells["FinalUser"].Value.ToString());
  536. paramPline.Add(uRow.Cells["Produccode"].Value.ToString());
  537. DataTable dtDpl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getBomMaterialDpl",
  538. new object[] { paramPline }, this.ob);
  539. if (dtDpl != null && dtDpl.Rows.Count > 0)
  540. {
  541. if (!PlanComm.isInDataTable(dtDpl, "PLINE_CODE", dPline))
  542. {
  543. ordProcEntity.DIsOk = "0";
  544. //如果存在ASSEL机组,优选ASSEL机组
  545. if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", "C012"))
  546. {
  547. if (FrmPlnSaleOrder.queryAsselFl(uRow.Cells["OrdLnPk"].Value.ToString(), this.ob))
  548. {
  549. ordProcEntity.GroupRoll = "C012";
  550. }
  551. else
  552. {
  553. bool isPline = false;
  554. foreach (DataRow drPine in dtDpl.Rows)
  555. {
  556. if (!drPine["PLINE_CODE"].ToString().Equals("C012"))
  557. {
  558. isPline = true;
  559. ordProcEntity.GroupRoll = drPine["PLINE_CODE"].ToString();
  560. break;
  561. }
  562. }
  563. if (!isPline)
  564. {
  565. ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
  566. }
  567. }
  568. }
  569. else
  570. {
  571. ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
  572. }
  573. dPline = ordProcEntity.GroupRoll;
  574. }
  575. }
  576. else if (ordProcEntity.ProcessSeq.Contains("D"))
  577. {
  578. errReason = "未找到可用轧管机组(BOM:" + dr["BOM"].ToString() + ")。";
  579. continue;
  580. }
  581. #endregion
  582. if (ordProcEntity.ProcessSeq.Contains("D")
  583. && !dPline.Trim().Equals("C072")
  584. && !outsStlPipeFl.Equals("121903")
  585. && !outsStlPipeFl.Equals("121902"))
  586. {
  587. #region 合同量转换
  588. inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey, mscPline,
  589. uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString(),
  590. dPline, bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
  591. if (!ordAmountCal.isRightParam(inOrdParam, desginKey,
  592. dtStatus.Rows[0]["CODE_JG"].ToString(), bom, dPline, out errMessage))
  593. {
  594. errReason = errMessage;
  595. continue;
  596. }
  597. ordAmountCal.InEnity = inOrdParam;
  598. outOrdParam = ordAmountCal.getOrdAmount();
  599. if (outOrdParam.ErrCode == -1)
  600. {
  601. errReason = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
  602. continue;
  603. }
  604. #endregion
  605. }
  606. isAvailBom = true;
  607. break;
  608. }
  609. if (!isAvailBom)
  610. {
  611. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  612. + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + errReason;
  613. defailNum++;
  614. continue;
  615. }
  616. }
  617. }
  618. else
  619. {
  620. if (messageErr.Equals(""))
  621. {
  622. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  623. + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  624. + "未找到物料信息,请查看工艺制定。";
  625. }
  626. defailNum++;
  627. continue;
  628. }
  629. #endregion
  630. #region 重算合同量
  631. if (ordProcEntity.ProcessSeq.Contains("D")
  632. && !dPline.Trim().Equals("C072")
  633. && !outsStlPipeFl.Equals("121903")
  634. && !outsStlPipeFl.Equals("121902"))
  635. {
  636. inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey,
  637. mscPline, uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString(),
  638. dPline, bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
  639. if (!ordAmountCal.isRightParam(inOrdParam, desginKey,
  640. dtStatus.Rows[0]["CODE_JG"].ToString(), bom, dPline, out errMessage))
  641. {
  642. messageErr = errMessage;
  643. defailNum++;
  644. continue;
  645. }
  646. ordAmountCal.InEnity = inOrdParam;
  647. outOrdParam = ordAmountCal.getOrdAmount();
  648. if (outOrdParam.ErrCode == -1)
  649. {
  650. messageErr = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
  651. defailNum++;
  652. continue;
  653. }
  654. ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
  655. ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
  656. ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
  657. ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
  658. ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
  659. ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
  660. ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
  661. ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
  662. ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString();
  663. ordProcEntity.RollLength = outOrdParam.RollLength.ToString();
  664. ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
  665. ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
  666. ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
  667. }
  668. #endregion
  669. list.Add(ordProcEntity);
  670. }
  671. }
  672. else
  673. {
  674. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  675. + uRow.Cells["DeliveryNo"].Value.ToString() + "已生产完毕,不能改工艺!";
  676. defailNum++;
  677. continue;
  678. }
  679. }
  680. if (list.Count <= 0)
  681. {
  682. PlanComm.WaitFromColse(this.Cursor);
  683. MessageUtil.ShowTips("0条替换成功," + defailNum + "条替换失败。\n" + messageErr);
  684. return;
  685. }
  686. CoreClientParam ccp = new CoreClientParam();
  687. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  688. ccp.MethodName = "updateCraftVersion";
  689. ccp.ServerParams = new object[] { list, listLog };
  690. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  691. PlanComm.WaitFromColse(this.Cursor);
  692. if (ccp.ReturnCode != -1)
  693. {
  694. if (defailNum == 0)
  695. {
  696. MessageUtil.ShowTips("替换成功,共" + list.Count + "条。");
  697. }
  698. else
  699. {
  700. MessageUtil.ShowTips(list.Count + "条替换成功," + defailNum + "条替换失败。\n" + messageErr);
  701. }
  702. }
  703. else
  704. {
  705. MessageUtil.ShowTips("替换失败,共" + list.Count + "条。");
  706. }
  707. }
  708. catch (Exception ex)
  709. {
  710. PlanComm.WaitFromColse(this.Cursor);
  711. if (!(ex is MESException))
  712. {
  713. MessageUtil.ShowError(ex.Message);
  714. }
  715. }
  716. DoQuery(GetQueryCondition());
  717. }
  718. /// <summary>
  719. /// 下发
  720. /// </summary>
  721. private void DoIussed()
  722. {
  723. try
  724. {
  725. int defailNum = 0;
  726. string messageErr = "";
  727. ultraGridSaleOrderProc.UpdateData();
  728. ArrayList list = new ArrayList();
  729. IQueryable<UltraGridRow> checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  730. if (checkRows.Count() == 0)
  731. {
  732. MessageUtil.ShowTips("未勾选合同!");
  733. return;
  734. }
  735. PlanComm.WaitFromOpen(this.Cursor);
  736. foreach (UltraGridRow uRow in checkRows)
  737. {
  738. //if (IsLockCraft(uRow.Cells["OrdLnPk"].Value.ToString()))
  739. //{
  740. // messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  741. // + "有工艺文件处于锁定状态,不能下发!";
  742. // defailNum++;
  743. // continue;
  744. //}
  745. if (uRow.Cells["OrderSource"].Text.Equals("销售合同"))
  746. {
  747. if (uRow.Cells["OrderNoSeq"].Value != null)
  748. {
  749. int count = 0;
  750. foreach (UltraGridRow uRows in checkRows)
  751. {
  752. if (uRows.Cells["OrderNoSeq"].Value != null)
  753. {
  754. if (uRow.Cells["OrderNoSeq"].Value.ToString().Equals(uRows.Cells["OrderNoSeq"].Value.ToString()))
  755. {
  756. count++;
  757. }
  758. }
  759. }
  760. if (count > 1)
  761. {
  762. PlanComm.WaitFromColse(this.Cursor);
  763. MessageUtil.ShowTips("排产分类为【销售合同】的合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  764. + "有重复,不能同时下发!");
  765. return;
  766. }
  767. }
  768. }
  769. //查询合同状态
  770. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
  771. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
  772. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  773. {
  774. defailNum++;
  775. continue;
  776. }
  777. if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
  778. {
  779. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryLineLocked",
  780. new object[] { uRow.Cells["OrdLnPk"].Value.ToString(), }, this.ob);
  781. if (dt == null || dt.Rows.Count <= 0)
  782. {
  783. defailNum++;
  784. continue;
  785. }
  786. if (!dt.Rows[0][0].ToString().Trim().Equals("0"))
  787. {
  788. messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  789. + "处于销售变更冻结中!";
  790. defailNum++;
  791. continue;
  792. }
  793. if (dtStatus.Rows[0]["PLAN_IS_OK"].ToString().Equals("0"))
  794. {
  795. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  796. + uRow.Cells["DeliveryNo"].Value.ToString() + "计划未确认!";
  797. defailNum++;
  798. continue;
  799. }
  800. if (dtStatus.Rows[0]["CRAFT_SEQ"].ToString().Equals(""))
  801. {
  802. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  803. + uRow.Cells["DeliveryNo"].Value.ToString()
  804. + uRow.Cells["PlnDivideId"].Value.ToString() + "无工艺!";
  805. defailNum++;
  806. continue;
  807. }
  808. if (!dtStatus.Rows[0]["VALIDFLAG"].ToString().Trim().Equals("1"))
  809. {
  810. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  811. + uRow.Cells["DeliveryNo"].Value.ToString()
  812. + uRow.Cells["PlnDivideId"].Value.ToString() + "使用的不是有效工艺或工艺文件未上传!";
  813. defailNum++;
  814. continue;
  815. }
  816. if (dtStatus.Rows[0]["E_IS_OK"].ToString().Equals("0") &&
  817. !dtStatus.Rows[0]["BJ_TYPE"].ToString().Equals("镦粗"))
  818. {
  819. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  820. + uRow.Cells["DeliveryNo"].Value.ToString() + "镦拔扩未确认!";
  821. defailNum++;
  822. continue;
  823. }
  824. if (dtStatus.Rows[0]["INDEX_SEQ"].ToString().Equals(""))
  825. {
  826. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  827. + uRow.Cells["DeliveryNo"].Value.ToString()
  828. + uRow.Cells["PlnDivideId"].Value.ToString() + "无制程!";
  829. defailNum++;
  830. continue;
  831. }
  832. if (dtStatus.Rows[0]["BOM"].ToString().Equals(""))
  833. {
  834. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  835. + uRow.Cells["DeliveryNo"].Value.ToString()
  836. + uRow.Cells["PlnDivideId"].Value.ToString() + "无BOM!";
  837. defailNum++;
  838. continue;
  839. }
  840. if (dtStatus.Rows[0]["DESGIN_KEY"].ToString().Equals(""))
  841. {
  842. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  843. + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到工艺制定数据,请制定工艺!";
  844. defailNum++;
  845. continue;
  846. }
  847. ArrayList param = new ArrayList();
  848. param.Add(UserInfo.GetUserName());
  849. param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  850. param.Add(uRow.Cells["PlnDivideId"].Value.ToString());
  851. param.Add(dtStatus.Rows[0]["ORDER_UNIT"].ToString());
  852. param.Add(dtStatus.Rows[0]["PLAN_WT_D"].ToString());
  853. param.Add(dtStatus.Rows[0]["PLAN_NUM_D"].ToString());
  854. param.Add(uRow.Cells["OrderNoSeq"].Value.ToString());
  855. param.Add(uRow.Cells["OrderSource"].Value.ToString());
  856. list.Add(param);
  857. }
  858. else
  859. {
  860. if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("1") > 0)
  861. {
  862. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  863. + uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发过了!";
  864. }
  865. defailNum++;
  866. continue;
  867. }
  868. }
  869. if (list.Count <= 0)
  870. {
  871. PlanComm.WaitFromColse(this.Cursor);
  872. MessageUtil.ShowTips("0条下发成功," + defailNum + "条下发失败。\n" + messageErr);
  873. return;
  874. }
  875. string flag = "0";
  876. if (comQueryPanelSource1.checkBox1.Checked)
  877. {
  878. flag = "1";
  879. }
  880. CoreClientParam ccp = new CoreClientParam();
  881. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  882. ccp.MethodName = "iussedOrder";
  883. ccp.ServerParams = new object[] { list, flag };
  884. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  885. PlanComm.WaitFromColse(this.Cursor);
  886. int suceedNum = list.Count;
  887. if (ccp.ReturnCode != -1)
  888. {
  889. if (ccp.ReturnObject != null &&
  890. ccp.ReturnObject.GetType().FullName.Trim().Equals("System.Object[]"))
  891. {
  892. object[] message = (object[])ccp.ReturnObject;
  893. defailNum += (int)message[0];
  894. suceedNum = suceedNum - (int)message[0];
  895. messageErr = message[1].ToString();
  896. }
  897. MessageUtil.ShowTips(suceedNum + "条下发成功," + defailNum + "条下发失败。\n" + messageErr);
  898. }
  899. if (suceedNum > 0)
  900. {
  901. DoQuery(GetQueryCondition());
  902. }
  903. }
  904. catch (Exception ex)
  905. {
  906. PlanComm.WaitFromColse(this.Cursor);
  907. if (!(ex is MESException))
  908. {
  909. MessageUtil.ShowError(ex.Message);
  910. }
  911. }
  912. }
  913. /// <summary>
  914. /// 刷新工艺
  915. /// </summary>
  916. private void DoRefresCraft()
  917. {
  918. int defailNum = 0;
  919. string messageErr = "";
  920. ArrayList list = new ArrayList();
  921. ultraGridSaleOrderProc.UpdateData();
  922. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  923. if (checkRows.Count() == 0)
  924. {
  925. MessageUtil.ShowTips("未勾选合同!");
  926. return;
  927. }
  928. //PlanComm.WaitFromOpen(this.Cursor);
  929. foreach (UltraGridRow uRow in checkRows)
  930. {
  931. //查询合同状态
  932. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.selectPlnOrderStatus",
  933. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
  934. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  935. {
  936. defailNum++;
  937. continue;
  938. }
  939. if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
  940. {
  941. ArrayList param = new ArrayList();
  942. PlnSaleordProcEntity orderPrcEntity = new PlnSaleordProcEntity();
  943. string ordLnPk = uRow.Cells["OrdLnPk"].Value.ToString();
  944. string desginKey = "";
  945. string dinMaterialNo = dtStatus.Rows[0]["D_IN_MATERIAL_NO"].ToString();
  946. string doutMaterialNo = dtStatus.Rows[0]["D_OUT_MATERIAL_NO"].ToString();
  947. orderPrcEntity.CraftSeq = dtStatus.Rows[0]["CRAFT_SEQ"].ToString();
  948. orderPrcEntity.IndexSeq = dtStatus.Rows[0]["INDEX_SEQ"].ToString();
  949. orderPrcEntity.ProcessSeq = dtStatus.Rows[0]["PROCESS_SEQ"].ToString();
  950. orderPrcEntity.FIsOk = dtStatus.Rows[0]["F_IS_OK"].ToString();
  951. orderPrcEntity.GroupRcl = dtStatus.Rows[0]["GROUP_RCL"].ToString();
  952. orderPrcEntity.Bom = dtStatus.Rows[0]["BOM"].ToString();
  953. orderPrcEntity.GroupRoll = dtStatus.Rows[0]["GROUP_ROLL"].ToString();
  954. orderPrcEntity.Gradecode = dtStatus.Rows[0]["GRADECODE"].ToString();
  955. orderPrcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
  956. orderPrcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
  957. #region 对比制程有无变化
  958. DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.selectCraftDesgin",
  959. new object[] { ordLnPk, orderPrcEntity.CraftSeq }, this.ob);
  960. if (dtDegnPl != null && dtDegnPl.Rows.Count > 0)
  961. {
  962. DataRow dr = null;
  963. if (!PlanComm.isInDataTable(dtDegnPl, "MSC_PLINE", orderPrcEntity.IndexSeq))
  964. {
  965. dr = dtDegnPl.Rows[0];
  966. }
  967. else
  968. {
  969. dtDegnPl.DefaultView.RowFilter = "MSC_PLINE = '" + orderPrcEntity.IndexSeq + "'";
  970. dr = dtDegnPl.DefaultView.ToTable().Rows[0];
  971. }
  972. desginKey = dr["DESGIN_KEY"].ToString();
  973. orderPrcEntity.IndexSeq = dr["MSC_PLINE"].ToString();
  974. if (!dr["WHOLE_BACKLOG"].ToString().Equals(orderPrcEntity.ProcessSeq))
  975. {
  976. orderPrcEntity.ProcessSeq = dr["WHOLE_BACKLOG"].ToString();
  977. if (dr["WHOLE_BACKLOG"].ToString().Contains('F'))
  978. {
  979. if (orderPrcEntity.FIsOk.Equals("2"))
  980. {
  981. orderPrcEntity.FIsOk = "0";
  982. orderPrcEntity.GroupRcl = "";
  983. }
  984. }
  985. else
  986. {
  987. orderPrcEntity.FIsOk = "2";
  988. orderPrcEntity.GroupRcl = "/";
  989. }
  990. }
  991. orderPrcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString();
  992. if (orderPrcEntity.ProcessSeq.Equals(""))
  993. {
  994. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  995. + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  996. + "未找到制程经过的工序。";
  997. defailNum++;
  998. continue;
  999. }
  1000. }
  1001. else
  1002. {
  1003. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  1004. + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  1005. + "未找到工艺下的制程信息,请联系工艺人员。";
  1006. defailNum++;
  1007. continue;
  1008. }
  1009. #endregion
  1010. #region 对比BOM物料有无变化
  1011. //param.Clear();
  1012. //param.Add(orderPrcEntity.IndexSeq);
  1013. //param.Add(uRow.Cells["Msc"].Value.ToString());
  1014. //param.Add(uRow.Cells["MaterialNo"].Value.ToString());
  1015. //param.Add(orderPrcEntity.ProcessSeq);
  1016. DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom",
  1017. new object[] { desginKey, uRow.Cells["Msc"].Value.ToString(), orderPrcEntity.IndexSeq }, this.ob);
  1018. if (dtBom != null && dtBom.Rows.Count > 0)
  1019. {
  1020. DataRow dr = null;
  1021. if (!PlanComm.isInDataTable(dtBom, "BOM", orderPrcEntity.Bom))
  1022. {
  1023. dtBom.DefaultView.RowFilter = "D_IN_MATERIAL_NO = '" + dinMaterialNo + "'";
  1024. DataTable dt1 = dtBom.DefaultView.ToTable();
  1025. if (dt1.Rows.Count > 0)
  1026. {
  1027. //有相同轧管规格的BOM
  1028. dt1.DefaultView.RowFilter = "GRADECODE = '" + orderPrcEntity.Gradecode + "'";
  1029. if (dt1.DefaultView.ToTable().Rows.Count > 0)
  1030. {
  1031. //有相同钢种的BOM
  1032. dr = dt1.DefaultView.ToTable().Rows[0];
  1033. }
  1034. else
  1035. {
  1036. dr = dt1.Rows[0];
  1037. }
  1038. }
  1039. else
  1040. {
  1041. dtBom.DefaultView.RowFilter = "GRADECODE = '" + orderPrcEntity.Gradecode + "'";
  1042. if (dtBom.DefaultView.ToTable().Rows.Count > 0)
  1043. {
  1044. dr = dtBom.DefaultView.ToTable().Rows[0];
  1045. }
  1046. else
  1047. {
  1048. dr = dtBom.Rows[0];
  1049. }
  1050. }
  1051. }
  1052. else
  1053. {
  1054. dtBom.DefaultView.RowFilter = "BOM = '" + orderPrcEntity.Bom + "'";
  1055. dr = dtBom.DefaultView.ToTable().Rows[0];
  1056. }
  1057. orderPrcEntity.Bom = dr["BOM"].ToString();
  1058. orderPrcEntity.GroupRollAll = dr["D_PLINE"].ToString();
  1059. orderPrcEntity.Gradecode = dr["GRADECODE"].ToString();
  1060. orderPrcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
  1061. orderPrcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
  1062. orderPrcEntity.DimaterYlg = dr["DIMATER"].ToString();
  1063. orderPrcEntity.HeightYlg = dr["HEIGHT"].ToString();
  1064. orderPrcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
  1065. orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
  1066. orderPrcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
  1067. orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
  1068. }
  1069. else
  1070. {
  1071. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
  1072. + "/" + uRow.Cells["DeliveryNo"].Value.ToString()
  1073. + "未找到制程" + orderPrcEntity.IndexSeq + "向下的物料信息。";
  1074. defailNum++;
  1075. continue;
  1076. }
  1077. #endregion
  1078. list.Add(orderPrcEntity);
  1079. }
  1080. else
  1081. {
  1082. messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1083. + uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发了!";
  1084. defailNum++;
  1085. continue;
  1086. }
  1087. }
  1088. if (list.Count <= 0)
  1089. {
  1090. //PlanComm.WaitFromColse(this.Cursor);
  1091. MessageUtil.ShowTips("0条刷新成功," + defailNum + "条刷新失败。\n" + messageErr);
  1092. return;
  1093. }
  1094. CoreClientParam ccp = new CoreClientParam();
  1095. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  1096. ccp.MethodName = "updateRefresCraft";
  1097. ccp.ServerParams = new object[] { list };
  1098. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1099. //PlanComm.WaitFromColse(this.Cursor);
  1100. if (ccp.ReturnCode != -1)
  1101. {
  1102. if (defailNum == 0)
  1103. {
  1104. MessageUtil.ShowTips("刷新成功,共" + list.Count + "条。");
  1105. }
  1106. else
  1107. {
  1108. MessageUtil.ShowTips(list.Count + "条刷新成功," + defailNum + "条刷新失败。\n" + messageErr);
  1109. }
  1110. }
  1111. }
  1112. /// <summary>
  1113. /// 取消下发
  1114. /// </summary>
  1115. private void DoConcelIussed()
  1116. {
  1117. try
  1118. {
  1119. ArrayList messageErr = new ArrayList();
  1120. ultraGridSaleOrderProc.UpdateData();
  1121. ArrayList list = new ArrayList();
  1122. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  1123. if (checkRows.Count() == 0)
  1124. {
  1125. MessageUtil.ShowTips("未勾选合同!");
  1126. return;
  1127. }
  1128. PlanComm.WaitFromOpen(this.Cursor);
  1129. foreach (UltraGridRow uRow in checkRows)
  1130. {
  1131. DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
  1132. new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
  1133. if (dtStatus == null || dtStatus.Rows.Count <= 0)
  1134. {
  1135. messageErr.Add("");
  1136. continue;
  1137. }
  1138. if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("2"))
  1139. {
  1140. ArrayList param = new ArrayList();
  1141. param.Add(UserInfo.GetUserName());
  1142. param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1143. param.Add(uRow.Cells["PlnDivideId"].Value.ToString());
  1144. param.Add(dtStatus.Rows[0]["ORDER_UNIT"].ToString());
  1145. param.Add(dtStatus.Rows[0]["PLAN_WT_D"].ToString());
  1146. param.Add(dtStatus.Rows[0]["PLAN_NUM_D"].ToString());
  1147. list.Add(param);
  1148. }
  1149. else
  1150. {
  1151. if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("2") > 0)
  1152. {
  1153. messageErr.Add("合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1154. + uRow.Cells["DeliveryNo"].Value.ToString() + "已经生产了!");
  1155. }
  1156. else
  1157. {
  1158. messageErr.Add("合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
  1159. + uRow.Cells["DeliveryNo"].Value.ToString() + "还未下发!");
  1160. }
  1161. continue;
  1162. }
  1163. }
  1164. if (list.Count == 0)
  1165. {
  1166. PlanComm.WaitFromColse(this.Cursor);
  1167. MessageUtil.ShowTips("0条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]);
  1168. return;
  1169. }
  1170. CoreClientParam ccp = new CoreClientParam();
  1171. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  1172. ccp.MethodName = "canCelIussed";
  1173. ccp.ServerParams = new object[] { list,UserInfo.GetUserName() };
  1174. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1175. PlanComm.WaitFromColse(this.Cursor);
  1176. if (ccp.ReturnCode != -1)
  1177. {
  1178. int suceed = list.Count;
  1179. if (ccp.ReturnObject != null)
  1180. {
  1181. List<string> message = (List<string>)JsonConvert.DeserializeObject(
  1182. ccp.ReturnObject.ToString(), typeof(List<string>));
  1183. foreach (string reason in message)
  1184. {
  1185. messageErr.Add(reason);
  1186. suceed--;
  1187. }
  1188. }
  1189. if (messageErr.Count > 0)
  1190. {
  1191. MessageUtil.ShowTips(suceed + "条撤消成功,"
  1192. + messageErr.Count + "条撤消失败。\n" + messageErr[0]);
  1193. }
  1194. else
  1195. {
  1196. MessageUtil.ShowTips(suceed + "条撤消成功,0条撤消失败。");
  1197. }
  1198. }
  1199. }
  1200. catch (Exception ex)
  1201. {
  1202. PlanComm.WaitFromColse(this.Cursor);
  1203. if (!(ex is MESException))
  1204. {
  1205. MessageUtil.ShowError(ex.Message);
  1206. }
  1207. }
  1208. DoQuery(GetQueryCondition());
  1209. }
  1210. /// <summary>
  1211. ///排产合同拆分
  1212. /// </summary>
  1213. private void doBreakUp()
  1214. {
  1215. ultraGridSaleOrderProc.UpdateData();
  1216. IQueryable<UltraGridRow> checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  1217. if (checkRows.Count() == 0)
  1218. {
  1219. MessageUtil.ShowTips("未勾选排产合同!");
  1220. return;
  1221. }
  1222. if (checkRows.Count() > 1)
  1223. {
  1224. MessageUtil.ShowWarning("不能一次性拆分多条合同!");
  1225. return;
  1226. }
  1227. int num = 0;
  1228. double wgt = 0;
  1229. double ratio = 0;
  1230. ArrayList jsonList = new ArrayList();
  1231. foreach (UltraGridRow uRow in checkRows)
  1232. {
  1233. ArrayList list = new ArrayList();
  1234. if (!uRow.Cells["Planstatus"].Text.Trim().Equals("已接收"))
  1235. {
  1236. MessageUtil.ShowTips("选中的合同不是已接收状态,不能拆分!");
  1237. return;
  1238. }
  1239. if (!uRow.Cells["PlanWtD"].Text.Trim().Equals(""))
  1240. {
  1241. num = int.Parse(uRow.Cells["PlanNumD"].Value.ToString());
  1242. wgt = double.Parse(uRow.Cells["PlanWtD"].Value.ToString());
  1243. }
  1244. //重量与支数比例
  1245. ratio = wgt / num;
  1246. list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1247. list.Add(uRow.Cells["PlnDivideId"].Value.ToString());
  1248. list.Add(ratio.ToString());
  1249. jsonList.Add(list);
  1250. }
  1251. FrmSpitWgtSProc frmSpitWgt = new FrmSpitWgtSProc(wgt, num, ratio, ob);
  1252. frmSpitWgt.ShowDialog();
  1253. double spitWgt = frmSpitWgt.AlreadySpitWgt;
  1254. int spitNum = frmSpitWgt.AlreadySpitNum;
  1255. if (spitWgt <= 0) { return; }
  1256. if (MessageUtil.ShowYesNoAndQuestion("是否拆分?") == DialogResult.No)
  1257. {
  1258. return;
  1259. }
  1260. PlanComm.WaitFromOpen(this.Cursor);
  1261. CoreClientParam ccp = new CoreClientParam();
  1262. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  1263. ccp.MethodName = "doBreakUp";
  1264. ccp.ServerParams = new object[] { jsonList, spitWgt.ToString(), spitNum.ToString(), this.UserInfo.GetUserName() };
  1265. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1266. PlanComm.WaitFromColse(this.Cursor);
  1267. if (ccp.ReturnCode == -1) return;
  1268. MessageUtil.ShowTips(ccp.ReturnInfo);
  1269. if (ccp.ReturnInfo.Equals("拆分成功!"))
  1270. {
  1271. DoQuery(GetQueryCondition());
  1272. }
  1273. }
  1274. /// <summary>
  1275. /// 合并
  1276. /// </summary>
  1277. private void doMerge()
  1278. {
  1279. ultraGridSaleOrderProc.UpdateData();
  1280. IQueryable<UltraGridRow> checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  1281. if (checkRows.Count() == 0 || checkRows.Count() == 1)
  1282. {
  1283. MessageUtil.ShowTips("请选择多个排产合同!");
  1284. return;
  1285. }
  1286. //if (checkRows.Count() > 1)
  1287. //{
  1288. // MessageUtil.ShowWarning("不能一次性拆分多条合同!");
  1289. // return;
  1290. //}
  1291. int num = 0;
  1292. double wgt = 0;
  1293. double ratio = 0;
  1294. ArrayList jsonList = new ArrayList();
  1295. string ordLnDlyPk = "";
  1296. string orderSource = "";
  1297. foreach (UltraGridRow uRow in checkRows)
  1298. {
  1299. ArrayList list = new ArrayList();
  1300. if (!uRow.Cells["Planstatus"].Text.Trim().Equals("已接收"))
  1301. {
  1302. MessageUtil.ShowTips("选中的合同不是已接收状态,不能拆分!");
  1303. return;
  1304. }
  1305. if (ordLnDlyPk.Equals("")) { ordLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); }
  1306. if (orderSource.Equals("")) { orderSource = uRow.Cells["OrderSource"].Value.ToString(); }
  1307. if (!uRow.Cells["OrdLnDlyPk"].Value.ToString().Equals(ordLnDlyPk) || !uRow.Cells["OrderSource"].Value.ToString().Equals(orderSource))
  1308. {
  1309. MessageUtil.ShowTips("相同合同并且合同来源也相同才能合并!");
  1310. return;
  1311. }
  1312. list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1313. list.Add(uRow.Cells["PlnDivideId"].Value.ToString());
  1314. jsonList.Add(list);
  1315. }
  1316. if (MessageUtil.ShowYesNoAndQuestion("是否合并?") == DialogResult.No)
  1317. {
  1318. return;
  1319. }
  1320. PlanComm.WaitFromOpen(this.Cursor);
  1321. CoreClientParam ccp = new CoreClientParam();
  1322. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  1323. ccp.MethodName = "doMerge";
  1324. ccp.ServerParams = new object[] { jsonList };
  1325. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1326. PlanComm.WaitFromColse(this.Cursor);
  1327. if (ccp.ReturnCode == -1) return;
  1328. MessageUtil.ShowTips(ccp.ReturnInfo);
  1329. if (ccp.ReturnInfo.Equals("合并成功!"))
  1330. {
  1331. DoQuery(GetQueryCondition());
  1332. }
  1333. }
  1334. /// <summary>
  1335. /// 查看上传工艺文件
  1336. /// </summary>
  1337. private void DoLookCraftFile()
  1338. {
  1339. UltraGridRow ugr = this.ultraGridSaleOrderProc.ActiveRow;
  1340. if (ugr == null)
  1341. {
  1342. return;
  1343. }
  1344. DataTable dtPath = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftFilePath",
  1345. new object[] { ugr.Cells["OrdLnDlyPk"].Value.ToString(), ugr.Cells["PlnDivideId"].Value.ToString() }, this.ob);
  1346. if (dtPath != null && dtPath.Rows.Count > 0)
  1347. {
  1348. ArrayList listPIC = new ArrayList();
  1349. foreach (DataRow dr in dtPath.Rows)
  1350. {
  1351. listPIC.Add(dr["CRAFT_PATH"].ToString());
  1352. }
  1353. dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC);
  1354. orderAsk.Text = "查看上传工艺文件";
  1355. orderAsk.Show();
  1356. }
  1357. }
  1358. private void ultraTabControl1_SelectedTabChanged(object sender,
  1359. Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  1360. {
  1361. if (toolMenu != null)
  1362. {
  1363. if (e.Tab.TabPage == ultraTabPageControlOrd)
  1364. {
  1365. setTab1Appearance(DefaultableBoolean.True);
  1366. setTab2Appearance(DefaultableBoolean.False);
  1367. }
  1368. else if (e.Tab.TabPage == ultraTabPageControlExport)
  1369. {
  1370. setTab1Appearance(DefaultableBoolean.False);
  1371. setTab2Appearance(DefaultableBoolean.True);
  1372. }
  1373. }
  1374. }
  1375. private void FrmConfirmCraft_Shown(object sender, EventArgs e)
  1376. {
  1377. setTab1Appearance(DefaultableBoolean.True);
  1378. setTab2Appearance(DefaultableBoolean.False);
  1379. }
  1380. private void setTab1Appearance(DefaultableBoolean appearance)
  1381. {
  1382. #region tab1显示或隐藏
  1383. if (toolMenu.Toolbars[0].Tools.Exists("Query"))
  1384. {
  1385. toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = appearance;
  1386. }
  1387. if (toolMenu.Toolbars[0].Tools.Exists("ConfirmCraft"))
  1388. {
  1389. toolMenu.Toolbars[0].Tools["ConfirmCraft"].InstanceProps.Visible = appearance;
  1390. }
  1391. if (toolMenu.Toolbars[0].Tools.Exists("RefresCraft"))
  1392. {
  1393. toolMenu.Toolbars[0].Tools["RefresCraft"].InstanceProps.Visible = appearance;
  1394. }
  1395. if (toolMenu.Toolbars[0].Tools.Exists("Iussed"))
  1396. {
  1397. toolMenu.Toolbars[0].Tools["Iussed"].InstanceProps.Visible = appearance;
  1398. }
  1399. if (toolMenu.Toolbars[0].Tools.Exists("ConcelIussed"))
  1400. {
  1401. toolMenu.Toolbars[0].Tools["ConcelIussed"].InstanceProps.Visible = appearance;
  1402. }
  1403. if (toolMenu.Toolbars[0].Tools.Exists("RefresDate"))
  1404. {
  1405. toolMenu.Toolbars[0].Tools["RefresDate"].InstanceProps.Visible = appearance;
  1406. }
  1407. if (toolMenu.Toolbars[0].Tools.Exists("ModifyBaseMlPl"))
  1408. {
  1409. toolMenu.Toolbars[0].Tools["ModifyBaseMlPl"].InstanceProps.Visible = appearance;
  1410. }
  1411. if (toolMenu.Toolbars[0].Tools.Exists("ExportProc"))
  1412. {
  1413. toolMenu.Toolbars[0].Tools["ExportProc"].InstanceProps.Visible = appearance;
  1414. }
  1415. if (toolMenu.Toolbars[0].Tools.Exists("UpdateMonth"))
  1416. {
  1417. toolMenu.Toolbars[0].Tools["UpdateMonth"].InstanceProps.Visible = appearance;
  1418. }
  1419. if (toolMenu.Toolbars[0].Tools.Exists("BreakUp"))
  1420. {
  1421. toolMenu.Toolbars[0].Tools["BreakUp"].InstanceProps.Visible = appearance;
  1422. }
  1423. if (toolMenu.Toolbars[0].Tools.Exists("Merge"))
  1424. {
  1425. toolMenu.Toolbars[0].Tools["Merge"].InstanceProps.Visible = appearance;
  1426. }
  1427. #endregion
  1428. }
  1429. private void setTab2Appearance(DefaultableBoolean appearance)
  1430. {
  1431. #region tab1显示或隐藏
  1432. if (toolMenu.Toolbars[0].Tools.Exists("QueryExp"))
  1433. {
  1434. toolMenu.Toolbars[0].Tools["QueryExp"].InstanceProps.Visible = appearance;
  1435. }
  1436. if (toolMenu.Toolbars[0].Tools.Exists("Export"))
  1437. {
  1438. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = appearance;
  1439. }
  1440. if (toolMenu.Toolbars[0].Tools.Exists("GridExport"))
  1441. {
  1442. toolMenu.Toolbars[0].Tools["GridExport"].InstanceProps.Visible = appearance;
  1443. }
  1444. #endregion
  1445. }
  1446. /// <summary>
  1447. /// 验证合同行工艺文件有没有锁定的(true- 锁定,false - 无锁定)
  1448. /// </summary>
  1449. /// <param name="ordLnPk">合同行pk</param>
  1450. /// <returns></returns>
  1451. private bool IsLockCraft(string ordLnPk)
  1452. {
  1453. bool isLocked = false;
  1454. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftLockFlag",
  1455. new object[] { ordLnPk }, this.ob);
  1456. if (dt != null && dt.Rows.Count > 0)
  1457. {
  1458. if (!dt.Rows[0][0].ToString().Trim().Equals("0"))
  1459. {
  1460. isLocked = true;
  1461. }
  1462. }
  1463. return isLocked;
  1464. }
  1465. /// <summary>
  1466. /// 查看附加要求贴图
  1467. /// </summary>
  1468. /// <param name="sender"></param>
  1469. /// <param name="e"></param>
  1470. private void ultraFileLook_EditorButtonClick(object sender,
  1471. Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1472. {
  1473. try
  1474. {
  1475. UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow;
  1476. if (ugr == null)
  1477. {
  1478. return;
  1479. }
  1480. string askNo = ugr.Cells["AddAskNo"].Value.ToString();
  1481. ArrayList listPIC = new ArrayList();
  1482. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryAddAsk",
  1483. new object[] { askNo }, this.ob);
  1484. if (dt != null && dt.Rows.Count > 0)
  1485. {
  1486. foreach (DataRow dr in dt.Rows)
  1487. {
  1488. listPIC.Add(dr["PIC"].ToString());
  1489. }
  1490. }
  1491. dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC);
  1492. orderAsk.Show();
  1493. }
  1494. catch (Exception ex)
  1495. {
  1496. if (!(ex is MESException))
  1497. {
  1498. MessageBox.Show(ex.Message);
  1499. }
  1500. }
  1501. }
  1502. private void ultraGridSaleOrderProc_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  1503. {
  1504. foreach (UltraGridRow uRow in ultraGridSaleOrderProc.Selected.Rows)
  1505. {
  1506. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  1507. {
  1508. uRow.Cells["CHC"].Value = true;
  1509. }
  1510. }
  1511. }
  1512. /// <summary>
  1513. /// 小时能力维护
  1514. /// </summary>
  1515. private void DoModifyBaseMlPl()
  1516. {
  1517. UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow;
  1518. if (ugr == null)
  1519. {
  1520. return;
  1521. }
  1522. string ordLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString();
  1523. string plnDivideId = ugr.Cells["PlnDivideId"].Value.ToString();
  1524. FrmOrdProcessBasePl processBasePl = new FrmOrdProcessBasePl(ordLnDlyPk, plnDivideId, this.ob);
  1525. processBasePl.ShowDialog();
  1526. }
  1527. /// <summary>
  1528. /// 合同行工艺文件
  1529. /// </summary>
  1530. private void TechOrderLine()
  1531. {
  1532. UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow;
  1533. if (ugr == null)
  1534. {
  1535. return;
  1536. }
  1537. string ordLnPk = ugr.Cells["OrdLnPk"].Value.ToString();
  1538. string designKey = ugr.Cells["DesginKey"].Value.ToString();
  1539. string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&__bypagesize__=false&format=pdf&__embed__=true"
  1540. + "&desgin_key=" + designKey + "&lnpk=" + ordLnPk;
  1541. FrmOutExcel outPut = new FrmOutExcel(url);
  1542. outPut.Show();
  1543. }
  1544. /// <summary>
  1545. /// 修改排产月份
  1546. /// </summary>
  1547. private void UpdateMonth()
  1548. {
  1549. try
  1550. {
  1551. ArrayList messageErr = new ArrayList();
  1552. ultraGridSaleOrderProc.UpdateData();
  1553. ArrayList list = new ArrayList();
  1554. IQueryable<UltraGridRow> checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
  1555. if (checkRows.Count() == 0)
  1556. {
  1557. MessageUtil.ShowTips("未勾选合同!");
  1558. return;
  1559. }
  1560. foreach (UltraGridRow uRow in checkRows)
  1561. {
  1562. if (uRow.Cells["RollMonth"].Value.ToString().Equals(""))
  1563. {
  1564. MessageUtil.ShowTips("排产月份不能为空!");
  1565. return;
  1566. }
  1567. ArrayList param = new ArrayList();
  1568. param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
  1569. param.Add(uRow.Cells["PlnDivideId"].Value.ToString());
  1570. param.Add(uRow.Cells["RollMonth"].Text.ToString().Trim());
  1571. list.Add(param);
  1572. }
  1573. if (list.Count == 0)
  1574. {
  1575. PlanComm.WaitFromColse(this.Cursor);
  1576. MessageUtil.ShowTips("0条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]);
  1577. return;
  1578. }
  1579. PlanComm.WaitFromOpen(this.Cursor);
  1580. CoreClientParam ccp = new CoreClientParam();
  1581. ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
  1582. ccp.MethodName = "updateMonth";
  1583. ccp.ServerParams = new object[] { list, UserInfo.GetUserName() };
  1584. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  1585. PlanComm.WaitFromColse(this.Cursor);
  1586. if (ccp.ReturnCode == -1) return;
  1587. MessageUtil.ShowTips(ccp.ReturnInfo);
  1588. if (ccp.ReturnInfo.Equals("排产月份调整成功!"))
  1589. {
  1590. DoQuery(GetQueryCondition());
  1591. }
  1592. }
  1593. catch (Exception ex)
  1594. {
  1595. MessageUtil.ShowError("请输入正确的时间格式!");
  1596. //if (!(ex is MESException))
  1597. //{
  1598. // MessageUtil.ShowError(ex.Message);
  1599. //}
  1600. }
  1601. }
  1602. private void ultraGridSaleOrderProc_KeyUp(object sender, KeyEventArgs e)
  1603. {
  1604. PlanComm.setGridCopyActColumn(this.ultraGridSaleOrderProc, "CHC", e,
  1605. "RollMonth");
  1606. }
  1607. }
  1608. }