using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.工序排产.entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Globalization; using System.Linq; using System.Text; using System.Windows.Forms; namespace Core.StlMes.Client.PlnSaleOrd.工序排产 { public class ProducHelper { /// /// 查询选择记录 /// /// ArrayList public static ArrayList GetChcRows(UltraGrid ug) { try { ug.UpdateData(); } catch (Exception) { return null; } IQueryable chcRows = ug.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"); if (chcRows == null || chcRows.Count() == 0) { return null; } ArrayList list = new ArrayList(); foreach (UltraGridRow ugr in chcRows) { T t = (T)ugr.ListObject; list.Add(t); } return list; } public static ProducEntity GenerationProEntity(object obj, string processCode) { ProducEntity proEntity = new ProducEntity(); if (processCode.Equals("B")) { Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity.PlnOrderCastSEntity entity = (Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity.PlnOrderCastSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo.ToString(); proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.PlanNumS - entity.PlanedNum - entity.PlanNumSold); proEntity.PlanWgt = Convert.ToString(entity.PlanWtS - entity.PlanedWt-entity.PlanWtSold); proEntity.ExeStatus = entity.ExeStatus; proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.GxProSeq = entity.GxProSeq.ToString(); proEntity.IfStoveIssued = ""; proEntity.ProMonth = entity.ProMonth; proEntity.InWeightS = Convert.ToString(entity.PlanWtS - entity.PlanedWt - entity.PlanWtSold); proEntity.InNums = Convert.ToString(entity.PlanNumS - entity.PlanedNum - entity.PlanNumSold); proEntity.Castingtype = entity.Castingtype; proEntity.WeigthSMin = Convert.ToString(entity.PlanWtMin); if (entity.PlanedNum == 0) { proEntity.FurnDz = "0"; } else { proEntity.FurnDz ="1"; } proEntity.JsonStr = JSONFormat.Format(entity); } else if (processCode.Equals("C")) { PlnOrderDzSEntity entity = (PlnOrderDzSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo; proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.NumS); proEntity.PlanWgt = Convert.ToString(entity.WeigthS); proEntity.ExeStatus = entity.ExeStatus; proEntity.GxProSeq = entity.GxProSeq; proEntity.IfStoveIssued = ""; proEntity.ProMonth = entity.ProMonth; proEntity.InWeightS = "0"; proEntity.InNums = "0"; proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.JsonStr = JSONFormat.Format(entity); } else if (processCode.Equals("D")) { PlnOrderZgSEntity entity = (PlnOrderZgSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo; proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.NumS); proEntity.PlanWgt = Convert.ToString(entity.WeigthS); proEntity.ExeStatus = entity.ExeStatus; proEntity.GxProSeq = Convert.ToString(entity.GxProSeq); proEntity.IfStoveIssued = entity.IfStoveIssued; proEntity.ProMonth = entity.ProMonth; proEntity.InWeightS = entity.InWeightS.ToString(); proEntity.InNums = entity.InNumS.ToString(); proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.GpreqNum = entity.GpreqNum.ToString(); proEntity.GpreqWeight = entity.GpreqWeight.ToString(); proEntity.WeigthSMin = entity.WeigthSMin.ToString(); proEntity.PlansNum = int.Parse(entity.PlansNum.ToString()); proEntity.OrderNo = entity.OrderNo; proEntity.Memo = entity.Memo; proEntity.ProgyMemo = entity.ProgyMemo; proEntity.FurnaNum = entity.FurnaNum.ToString(); proEntity.FurnaWeight = entity.FurnaWeight.ToString(); proEntity.CkNum = entity.CkNum.ToString(); proEntity.CkWeight = entity.CkWeight.ToString(); proEntity.LjNum = entity.LjNum.ToString(); proEntity.LjWeight = entity.LjWeight.ToString(); proEntity.MatchNumIn = entity.MatchNumIn.ToString(); proEntity.MatchWtIn = entity.MatchWtIn.ToString(); proEntity.ExpectWt=entity.ExpectWt.ToString(); proEntity.ExpectNum = entity.ExpectNum.ToString(); proEntity.ReducedWt = entity.ReducedWt.ToString(); proEntity.JsonStr = JSONFormat.Format(entity); } else if (processCode.Equals("E")) { PlnOrderDbkSEntity entity = (PlnOrderDbkSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo; proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.NumS); proEntity.PlanWgt = Convert.ToString(entity.WeigthS); proEntity.ExeStatus = entity.ExeStatus; proEntity.GxProSeq = Convert.ToString(entity.GxProSeq); proEntity.IfStoveIssued = entity.IfStoveIssued; proEntity.InWeightS = entity.InWeightS.ToString(); proEntity.InNums = entity.InNumS.ToString(); proEntity.ProMonth = entity.ProMonth; proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.WeigthSMin = Convert.ToString(entity.MinWgt); proEntity.ExpectWt = entity.ExpectWt.ToString(); proEntity.ExpectNum = entity.ExpectNum.ToString(); proEntity.ReducedWt = entity.ExpectWt.ToString(); proEntity.JsonStr = JSONFormat.Format(entity); } else if (processCode.Equals("F")) { PlnOrderRclSEntity entity = (PlnOrderRclSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo; proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.NumS); proEntity.PlanWgt = Convert.ToString(entity.WeigthS); proEntity.ExeStatus = entity.ExeStatus; proEntity.GxProSeq = Convert.ToString(entity.GxProSeq); proEntity.IfStoveIssued = entity.IfStoveIssued; proEntity.ProMonth = entity.ProMonth; proEntity.InWeightS = entity.InWeightS.ToString(); proEntity.InNums = entity.InNumS.ToString(); proEntity.WeigthSMin = entity.WeigthSMin.ToString(); proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.ExpectWt = entity.ExpectWt.ToString(); proEntity.ExpectNum = entity.ExpectNum.ToString(); proEntity.ReducedWt = entity.ExpectWt.ToString(); proEntity.JsonStr = JSONFormat.Format(entity); } else if (processCode.Equals("G")) { PlnOrderJgxSEntity entity = (PlnOrderJgxSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo; proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.NumS); proEntity.PlanWgt = Convert.ToString(entity.WeigthS); proEntity.ExeStatus = entity.ExeStatus; proEntity.GxProSeq = Convert.ToString(entity.GxProSeq); proEntity.IfStoveIssued = entity.IfStoveIssued; proEntity.ProMonth = entity.ProMonth; proEntity.InWeightS = entity.InWeightS.ToString(); proEntity.InNums = entity.InNumS.ToString(); proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.ExpectWt = entity.ExpectWtJ.ToString(); proEntity.ExpectNum = entity.ExpectNumJ.ToString(); proEntity.ReducedWt = entity.ExpectWtJ.ToString(); proEntity.WeigthSMin = entity.InWeightS.ToString(); proEntity.JsonStr = JSONFormat.Format(entity); } else if (processCode.Equals("H")) { PlnGxJgPropSEntity entity = (PlnGxJgPropSEntity)obj; entity.PlanTimeB = Convert.ToDateTime(entity.PlanTimeB).ToString("yyyy-MM-dd HH:mm:ss"); proEntity.ProPlanId = entity.ProPlanId; proEntity.GxPlanNo = entity.GxPlanNo; proEntity.IsPlanOk = entity.IsPlanOk; proEntity.IsRepairPln = entity.IsRepairPln; proEntity.PlanNum = Convert.ToString(entity.GroupBlNumS); proEntity.PlanWgt = Convert.ToString(entity.GroupBlWtS); proEntity.ExeStatus = entity.ExeStatus; proEntity.GxProSeq = entity.GxProSeq; proEntity.IfStoveIssued = entity.IsStoveIssued; proEntity.ProMonth = entity.ProMonth; proEntity.InWeightS = entity.GroupBlWtS.ToString(); proEntity.InNums = entity.GroupBlNumS.ToString(); proEntity.ReducedWt = entity.GroupBlWtS.ToString(); proEntity.WeigthSMin = entity.GroupBlWtS.ToString(); proEntity.ExpectWt = entity.GroupBlWtS.ToString(); proEntity.ExpectNum = entity.GroupBlNumS.ToString(); proEntity.PlanUseTime = Convert.ToString(entity.PlanUsetime); proEntity.JsonStr = JSONFormat.Format(entity); } return proEntity; } /// /// 排产确认 /// /// 实体类集合 /// 操作人 /// 下发标识 /// 工序 /// /// public static bool issuedPlanOrder(ArrayList entityList, string username, string isFlag, string procesCode, OpeBase ob) { if (entityList == null || entityList.Count == 0) { MessageUtil.ShowWarning("请选择订单!"); return false; } ArrayList jsonList = new ArrayList(); foreach (object obj in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(obj, procesCode); if (!entity.IfStoveIssued.Equals("是") && isFlag.Equals("3")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划未下发!"); return false; } if (entity.IfStoveIssued.Equals("是") && isFlag.Equals("2")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划已下发!"); return false; } if (!entity.IsPlanOk.Equals("是") && isFlag.Equals("2")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 未确认!"); return false; } if (!procesCode.Equals("B")) { if (entity.IsPlanOk.Equals("是") && isFlag.Equals("0")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")已经确认!"); return false; } if (!entity.IsPlanOk.Equals("是") && isFlag.Equals("1")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")未确认!"); return false; } } else { if (entity.IsPlanOk.Equals("是") && isFlag.Equals("0")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")已经下发!"); return false; } if (!entity.IsPlanOk.Equals("是") && isFlag.Equals("1")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")未下发!"); return false; } } jsonList.Add(entity.JsonStr); } if (procesCode.Equals("B")) { if (MessageUtil.ShowYesNoAndQuestion(isFlag.Equals("0") ? "是否下发?" : "是否取消下发?") == DialogResult.No) { return false; } } else { if (MessageUtil.ShowYesNoAndQuestion(isFlag.Equals("0") ? "是否确认?" : isFlag.Equals("1") ? "是否取消确认?" : isFlag.Equals("2") ? "是否炉计划下发?" : "是否取消炉计划下发?") == DialogResult.No) { return false; } } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.issued", new object[] { jsonList, isFlag, username, procesCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 订单拆分 /// /// /// /// /// public static bool SpitPlanOrder(ArrayList entityList, string procesCode, OpeBase ob) { if (entityList == null) { MessageUtil.ShowWarning("请选择订单!"); return false; } if (entityList.Count > 1) { MessageUtil.ShowWarning("不能一次性拆分多条订单!"); return false; } ProducEntity entity = ProducHelper.GenerationProEntity(entityList[0], procesCode); if (entity.IsRepairPln.Equals("是")) { MessageUtil.ShowTips("检修计划不能拆分!"); return false; } //if (entity.IsPlanOk.Equals("是")) //{ // MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 已确认!"); // return false; //} //if (entity.IfStoveIssued.Equals("是")) //{ // MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划下发!"); // return false; //} if (!entity.ExeStatus.Equals("计划") && !entity.ExeStatus.Equals("生产中")) { MessageUtil.ShowTips("不是计划/生产中状态,不能拆分!"); return false; } string wgt = ""; string num = ""; int numF = 0; if (procesCode.Equals("D")) { wgt = entity.GpreqWeight; num = entity.GpreqNum; //if (entity.LjNum.Equals("0")) //{ numF = int.Parse(entity.LjNum); //} //if (entity.FurnaNum != null && !entity.FurnaNum.Equals("")) //{ // numF += int.Parse(entity.FurnaNum); //} //if (entity.CkNum != null && !entity.CkNum.Equals("")) //{ // numF += int.Parse(entity.CkNum); //} //if (entity.LjNum != null && !entity.LjNum.Equals("")) //{ // numF += int.Parse(entity.LjNum); //} } else if (procesCode.Equals("B") || procesCode.Equals("C")) { wgt = entity.PlanWgt; num = entity.PlanNum; } else { wgt = entity.InWeightS; num = entity.InNums; } if (wgt == "") { wgt = "0"; } if (num == "") { wgt = "0"; } string[] param = null; if (!procesCode.Equals("D")) { if (procesCode.Equals("B")) { //重量与支数验证 if (double.Parse(wgt) <= 0)//|| int.Parse(num) <= 1 { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")重量为0吨,支数小于或者等于1支!"); return false; } //重量与支数比例 double ratio = double.Parse(wgt) / int.Parse(num); FrmSpitWgt frmSpitWgt = new FrmSpitWgt(double.Parse(wgt), int.Parse(num), ratio, procesCode, numF, entity.Castingtype, entity.FurnDz); frmSpitWgt.ShowDialog(); double spitWgt = frmSpitWgt.AlreadySpitWgt; int spitNum = frmSpitWgt.AlreadySpitNum; int countNum = frmSpitWgt.CountNum; if (spitWgt <= 0) { return false; } param = PlanHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.ControlOrderPlan.spitPlanOrder", new object[] { entity.JsonStr, spitWgt.ToString(), spitNum.ToString(), procesCode, countNum.ToString() }, ob); } else { double ratio = double.Parse(wgt) / int.Parse(num); FrmSpitWgtZg frmSpitWgtzg = new FrmSpitWgtZg(double.Parse(wgt), int.Parse(num), ratio, procesCode, numF, entity, ob); frmSpitWgtzg.ShowDialog(); double spitWgt = frmSpitWgtzg.AlreadySpitWgt; int spitNum = frmSpitWgtzg.AlreadySpitNum; string heatPlanNo = frmSpitWgtzg.HeatPlanNo; if (spitWgt <= 0) { return false; } if (heatPlanNo.Equals("") && int.Parse(entity.InNums) - spitNum < numF) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")分配剩余需坯支数不能小于利库或计划支数!"); return false; } param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.spitPlanOrderM", new object[] { entity.JsonStr, spitWgt.ToString(), spitNum.ToString(), heatPlanNo, procesCode }, ob); //param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.spitPlanOrder", new object[] { entity.JsonStr, spitWgt.ToString(), spitNum.ToString(), procesCode }, ob); } } else { double ratio = double.Parse(wgt) / int.Parse(num); FrmSpitWgtZg frmSpitWgtzg = new FrmSpitWgtZg(double.Parse(wgt), int.Parse(num), ratio, "D", numF,entity, ob); frmSpitWgtzg.ShowDialog(); double spitWgt = frmSpitWgtzg.AlreadySpitWgt; int spitNum = frmSpitWgtzg.AlreadySpitNum; string heatPlanNo = frmSpitWgtzg.HeatPlanNo; if (spitWgt <= 0) { return false; } if (heatPlanNo.Equals("")&&int.Parse(entity.GpreqNum) - spitNum < numF) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ")分配剩余需坯支数不能小于利库或LJ支数!"); return false; } param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.spitPlanOrderZg", new object[] { entity.JsonStr, spitWgt.ToString(), spitNum.ToString(), heatPlanNo }, ob); } if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 合并订单 /// /// /// /// /// public static bool MergePlanOrder(ArrayList entityList, string processCode, OpeBase ob) { if (entityList == null || entityList.Count == 1) { MessageUtil.ShowWarning("请选择多条订单!"); return false; } ArrayList jsonList = new ArrayList(); string proPlanId = ""; foreach (object obj in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(obj, processCode); if (entity.IsRepairPln.Equals("是")||entity.IsRepairPln.Equals("Y")) { MessageUtil.ShowTips("检修计划不能合并!"); return false; } if (!entity.ExeStatus.Equals("计划") && !entity.ExeStatus.Equals("生产中")) { MessageUtil.ShowTips("不是计划/生产中状态!"); return false; } if (proPlanId.Equals("")) { proPlanId = entity.ProPlanId; } if (!entity.ProPlanId.Equals(proPlanId)) { MessageUtil.ShowTips("相同订单编号才能合并!"); return false; } if (entity.IfStoveIssued.Equals("是")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划下发!"); return false; } //if (entity.IsPlanOk.Equals("是")) //{ // MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 已确认!"); // return false; //} if (processCode.Equals("B")) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.steelMarkingPlan.ControlFurNacePlan.getFurnacePlnOrderProPlanId", new object[] { entity.ProPlanId, entity.GxPlanNo }, ob); if (dt.Rows.Count > 0) { MessageUtil.ShowTips("铸造订单(" + entity.ProPlanId + "/" + entity.GxPlanNo + ")已组浇,浇次为:" + dt.Rows[0]["CAST_NO"].ToString() + ",炉次为:" + dt.Rows[0]["FURNACENO"].ToString() + ",不能合并"); return false; } } jsonList.Add(entity.JsonStr); } if (MessageUtil.ShowYesNoAndQuestion("是否合并?") == DialogResult.No) { return false; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.mergePlanOrder", new object[] { jsonList, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 排序 /// /// /// /// /// /// public static bool SortPlanOrder(ArrayList entityList, object obj, string processCode,string customInfo, OpeBase ob) { //定位行计划 ProducEntity entityD = ProducHelper.GenerationProEntity(obj,processCode); if (!entityD.ExeStatus.Equals("计划")) { return false; } if (processCode.Equals("E")) { if (customInfo.Equals("1") && entityD.IfStoveIssued.Equals("1")) { return false; } } //定位行序号 string gxProSeqD = entityD.GxProSeq.ToString(); //移动行序号集合 ArrayList seqList = new ArrayList(); ArrayList list = new ArrayList(); //获取数据库服务器当前时间 string time = DateTime.Now.ToString("yyyy-MM"); DataTable dt= ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.selectSystemTime",null, ob); DateTimeFormatInfo dtFormat = new DateTimeFormatInfo(); dtFormat.ShortDatePattern = "yyyy-MM-dd HH:mm:ss"; if (dt.Rows.Count > 0) { DateTime ds1 = Convert.ToDateTime(dt.Rows[0]["DATIME"].ToString()); //DateTime ds1 = Convert.ToDateTime("2021-03-26 00:00:00", dtFormat); DateTime ds2 = Convert.ToDateTime(dt.Rows[0]["DATIME"].ToString().Substring(0, 7) + "-25 21:00:00"); //time = dt.Rows[0]["DATIME"].ToString().Substring(0,7); if ((ds1.CompareTo(ds2)) > 0) { time = ds1.AddMonths(1).ToString("yyyy-MM-dd HH:mm:ss").Substring(0,7); } else { time = dt.Rows[0]["DATIME"].ToString().Substring(0, 7); } } foreach (object entityM in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(entityM, processCode); //调整行只能为计划中的 if (!entity.ExeStatus.Equals("计划")) { return false ; } if (processCode.Equals("E")) { if (customInfo.Equals("1") && entity.IfStoveIssued.Equals("1")) { return false; } } if (processCode.Equals("D")) { if (DateTime.Compare(Convert.ToDateTime(entity.ProMonth), Convert.ToDateTime(time)) <= 0) { if (DateTime.Compare(Convert.ToDateTime(time), Convert.ToDateTime(entityD.ProMonth)) < 0) { MessageUtil.ShowTips("所选合同:" + entity.OrderNo + ",生产年月小于等于当前日历年月,不能调整至当前日历年月之后 。"); return false; } } else { if (DateTime.Compare(Convert.ToDateTime(entityD.ProMonth), Convert.ToDateTime(entity.ProMonth)) < 0) { MessageUtil.ShowTips("所选合同:" + entity.OrderNo + ",生产年月大于当前日历年月, 。"); return false; } } } seqList.Add(Convert.ToInt32(entity.GxProSeq)); list.Add(entity.JsonStr); } seqList.Sort(); //如果鼠标坐标行在调整行的中间,则不允许调整 if (Convert.ToInt32(gxProSeqD) >= (int)seqList[0] && Convert.ToInt32(gxProSeqD) <= (int)seqList[seqList.Count - 1]) { return false ; } if (MessageUtil.ShowYesNoAndQuestion("是否调整生产顺序至:" + entityD.GxProSeq + "位?") == DialogResult.No) { return false ; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.sortPlanOrder", new object[] { list, entityD.JsonStr, processCode, customInfo }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 状态调整 /// /// /// /// /// public static bool StatusChange(ArrayList entityList, string processCode, OpeBase ob) { if (entityList == null || entityList.Count!=1) { MessageUtil.ShowWarning("请选择一条订单!"); return false; } ProducEntity entity = ProducHelper.GenerationProEntity(entityList[0], processCode); if (MessageUtil.ShowYesNoAndQuestion("是否状态调整?") == DialogResult.No) { return false; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.statusChange", new object[] { entity.JsonStr, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 时间调整 /// /// /// /// /// public static bool TimeChange(ArrayList entityList, string processCode, OpeBase ob) { if (entityList == null || entityList.Count != 1) { MessageUtil.ShowWarning("请选择一条订单!"); return false; } ProducEntity entity = ProducHelper.GenerationProEntity(entityList[0], processCode); if (!entity.ExeStatus.Equals("生产中")) { MessageUtil.ShowWarning("只有生产中的订单才能调整时间!"); return false; } if (MessageUtil.ShowYesNoAndQuestion("是否时间调整?") == DialogResult.No) { return false; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.TimeChange", new object[] { entity.JsonStr, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 初始化数据 /// /// /// /// /// public static bool InitData(ArrayList entityList, string processCode, OpeBase ob) { if (entityList == null ) { MessageUtil.ShowWarning("请选择订单!"); return false; } ArrayList jsonlist = new ArrayList(); foreach (Object obj in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(obj, processCode); //if (entity.IfStoveIssued.Equals("是")) //{ // MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划下发!"); // return false; //} if (entity.PlanUseTime == null || entity.PlanUseTime.Equals("")) { MessageUtil.ShowWarning("计划耗时不能为空!"); return false ; } jsonlist.Add(entity.JsonStr); } if (MessageUtil.ShowYesNoAndQuestion("是否初始化数据?") == DialogResult.No) { return false ; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.initData", new object[] { jsonlist, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 产线调整 /// /// /// /// /// public static bool PlineChange(ArrayList entityList, string processCode, OpeBase ob) { if (entityList == null) { MessageUtil.ShowWarning("请选择订单!"); return false; } ArrayList jsonlist = new ArrayList(); foreach (object obj in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(obj, processCode); //if (entity.IfStoveIssued.Equals("是")) //{ // MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划下发!"); // return false; //} if (entity.IsRepairPln.Equals("是")) { MessageUtil.ShowTips("检修计划不能产线调整!"); return false ; } if (!entity.ExeStatus.Equals("计划")) { MessageUtil.ShowTips("不是计划状态,不能产线调整!"); return false ; } jsonlist.Add(entity.JsonStr); } if (MessageUtil.ShowYesNoAndQuestion("是否产线调整?") == DialogResult.No) { return false ; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.plineChange", new object[] { jsonlist, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 删除检修 /// /// /// /// /// public static bool DeleteRepairPlan(ArrayList entityList, string processCode, OpeBase ob) { if (entityList == null) { MessageUtil.ShowWarning("请选择检修订单!"); return false; } ArrayList jsonlist = new ArrayList(); foreach (Object obj in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(obj, processCode); if (entity.IfStoveIssued.Equals("是")) { MessageUtil.ShowWarning("订单编号(" + entity.ProPlanId + ") 炉计划下发!"); return false; } if (!entity.IsRepairPln.Equals("是")) { MessageUtil.ShowWarning("不是检修计划,不能删除!"); return false ; } if (!entity.ExeStatus.Equals("计划")) { MessageUtil.ShowWarning("检修计划不是计划状态,不能删除!"); return false ; } jsonlist.Add(entity.JsonStr); } if (MessageUtil.ShowYesNoAndQuestion("是否删除检修计划?") == DialogResult.No) { return false ; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.deleteRepairPlan", new object[] { jsonlist, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 设置完成 /// /// /// /// /// public static bool SetPlanFinish(ArrayList entityList,string username, string processCode, OpeBase ob) { if (entityList == null) { MessageUtil.ShowWarning("请选择订单!"); return false; } ArrayList jsonlist = new ArrayList(); foreach (Object obj in entityList) { ProducEntity entity = ProducHelper.GenerationProEntity(obj, processCode); if (entity.IsRepairPln.Equals("是")) { MessageUtil.ShowWarning("检修计划订单,不能设置完成!"); return false; } //if (entity.GxProSeq.Equals("0")) //{ // MessageUtil.ShowWarning("订单已经设置完成!"); // return false; //} jsonlist.Add(entity.JsonStr); } if (MessageUtil.ShowYesNoAndQuestion("是否设置完成(此操作数据暂不可恢复)?") == DialogResult.No) { return false; } string[] param = PlanHelper.SetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.setPlanFinish", new object[] { jsonlist, username, processCode }, ob); if (param == null) { MessageUtil.ShowTips("服务端处理失败!"); return false; } else { MessageUtil.ShowTips(param[1]); if ((bool.Parse(param[0]))) { return true; } else { return false; } } } /// /// 查询炼轧数据 /// /// /// public static DataTable QueryLZData( OpeBase ob) { return ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryLZData", new object[] { }, ob); } /// /// 查询轧管炼轧数据 /// /// /// public static DataTable QueryLZDataZg(OpeBase ob) { return ServerHelper.GetData("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryLZDataZg", new object[] { }, ob); } /// /// 赋值炼轧数据 /// /// /// public static void copyLZData(UltraGrid ug,string flag, OpeBase ob) { if (ug.Rows.Count == 0) { return; } DataTable dt = ProducHelper.QueryLZData(ob); if (dt == null || dt.Rows.Count == 0){ return;} foreach(UltraGridRow ugr in ug.Rows){ string key = ugr.Cells["OrdLnDlyPk"].Text + "-" + ugr.Cells["PlnDivideId"].Text; DataRow[] drs = dt.Select("PK ='" + key+"'"); if (drs != null && drs.Length> 0) { ugr.Cells["FinishWgt"].Value = drs[0]["FINISH_WGT"].ToString(); ugr.Cells["UnfinishWgt"].Value = drs[0]["UNFINISH_WGT"].ToString(); ugr.Cells["UnfinishTime"].Value = drs[0]["UNFINISH_TIME"].ToString(); ugr.Cells["UnfinishNum"].Value = drs[0]["UNFINISH_NUM"].ToString(); if (flag.Equals("D") && !ugr.Cells["AfPlanTimeB"].Text.Equals("") && !drs[0]["UNFINISH_TIME"].ToString().Equals("")) { DateTime t1 = DateTime.Parse(ugr.Cells["AfPlanTimeB"].Text); DateTime t2 = DateTime.Parse(drs[0]["UNFINISH_TIME"].ToString()); ugr.Cells["DifTime"].Value = String.Format("{0:N0} ", (t1 - t2).TotalDays); } } } } /// /// 赋值轧管炼轧数据 /// /// /// public static void copyLZDataZg(UltraGrid ug, string flag, OpeBase ob) { if (ug.Rows.Count == 0) { return; } DataTable dt = ProducHelper.QueryLZDataZg(ob); if (dt == null || dt.Rows.Count == 0) { return; } foreach (UltraGridRow ugr in ug.Rows) { string key = ugr.Cells["proPlanId"].Text + "-" + ugr.Cells["gxPlanNo"].Text; DataRow[] drs = dt.Select("订单号 ='" + ugr.Cells["proPlanId"].Text + "' AND 序号='" + ugr.Cells["gxPlanNo"].Text + "'"); if (drs != null && drs.Length > 0) { if (!drs[0]["LJ支"].ToString().Equals("")) { ugr.Cells["LjNum"].Value = drs[0]["LJ支"].ToString(); ugr.Cells["LjWeight"].Value = drs[0]["LJ吨"].ToString(); } if (!drs[0]["装炉支"].ToString().Equals("")) { ugr.Cells["FurnaNum"].Value = drs[0]["装炉支"].ToString(); ugr.Cells["FurnaWeight"].Value = drs[0]["装炉吨"].ToString(); } if (!drs[0]["出库支"].ToString().Equals("")) { ugr.Cells["CkNum"].Value = drs[0]["出库支"].ToString(); ugr.Cells["CkWeight"].Value = drs[0]["出库吨"].ToString(); } //ugr.Cells["LjNum"].Value = drs[0]["LJ支"].ToString(); //ugr.Cells["LjWeight"].Value = drs[0]["LJ吨"].ToString(); //ugr.Cells["FurnaNum"].Value = drs[0]["装炉支"].ToString(); //ugr.Cells["FurnaWeight"].Value = drs[0]["装炉吨"].ToString(); //ugr.Cells["CkNum"].Value = drs[0]["出库支"].ToString(); //ugr.Cells["CkWeight"].Value = drs[0]["出库吨"].ToString(); //if (flag.Equals("D") && !ugr.Cells["AfPlanTimeB"].Text.Equals("") && !drs[0]["UNFINISH_TIME"].ToString().Equals("")) //{ // DateTime t1 = DateTime.Parse(ugr.Cells["AfPlanTimeB"].Text); // DateTime t2 = DateTime.Parse(drs[0]["UNFINISH_TIME"].ToString()); // ugr.Cells["DifTime"].Value = String.Format("{0:N0} ", (t1 - t2).TotalDays); //} } } } } }