using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Infragistics.Win;
using CoreFS.CA06;
using Newtonsoft.Json;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Server;
using System.Collections;
using Core.Mes.Client.Comm;
using Core.Mes.Client.Comm.Tool;
using com.steering.pss.plnsaleord.order.model;
using com.steering.pss.plnsaleord.ordAmCal.model;
using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
using Core.StlMes.Client.PlnSaleOrd.PopupWindow;
namespace Core.StlMes.Client.PlnSaleOrd
{
public partial class FrmConfirmCraft : FrmBase
{
public FrmConfirmCraft()
{
InitializeComponent();
System.Threading.Thread t = new System.Threading.Thread(setGridColunmName);
t.Start();
}
private void setGridColunmName()
{
System.Threading.Thread.Sleep(3000);
if (!this.IsDisposed)
{
Init();
}
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
base.ToolBar_Click(sender, ToolbarKey);
switch (ToolbarKey)
{
case "Query": //查询
DoQuery(GetQueryCondition());
break;
case "ConfirmCraft":// 替换工艺
DoConfirmCraft();
break;
case "RefresCraft":// 刷新工艺
DoRefresCraft();
break;
case "Iussed"://下发
DoIussed();
break;
case "ConcelIussed":// 取消下发
DoConcelIussed();
break;
case "LookCraftFile"://查看工艺文件
if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
{
DoLookCraftFile();
}
else
{
comOrdExportCtrl1.DoLookCraftFile(this.ob);
}
break;
case "TechOrderLine": //
if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
{
TechOrderLine();
}
else
{
comOrdExportCtrl1.TechOrderLine();
}
break;
case "ExportProc":
PlanComm.Export(ref ultraGridSaleOrderProc, "计划" + DateTime.Now.ToString("yyyyMMdd"));
break;
case "QueryExp"://查询下发合同信息
comOrdExportCtrl1.DoQueryExp();
break;
case "Export": //导出
comOrdExportCtrl1.DoExport();
break;
case "GridExport": //按Grid导出
comOrdExportCtrl1.DoGridExport();
break;
case "RefresDate"://刷新加载数据
RefresDate();
DoQuery(GetQueryCondition());
break;
case "ModifyBaseMlPl":
DoModifyBaseMlPl();
break;
case "UpdateMonth"://修改排产月份
UpdateMonth();
break;
case "BreakUp"://拆分
doBreakUp();
break;
case "Merge"://合并
doMerge();
break;
case "Close": //关闭
this.Close();
break;
}
}
private void FrmConfirmCraft_Load(object sender, EventArgs e)
{
comOrdExportCtrl1.ComBLL(this.ob);
comOrdExportCtrl1.UltraTextAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMM");
comOrdExportCtrl1.CheckBoxAcceptNoexport.Checked = true;
comOrdExportCtrl1.UltraDateTimeDELVRY_EDATEFrom.DateTime = DateTime.Now.AddMonths(-1);
comOrdExportCtrl1.UltraDateTimeDELVRY_EDATETo.DateTime = DateTime.Now;
comQueryPanelSource1.checkBoxIsConfirm.Visible = true;
comQueryPanelSource1.checkBoxIsConfirm.Checked = false;
comQueryPanelSource1.checkBoxIsConfirm.Text = "待变更工艺";
comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("1", "已接收");
comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("2", "已下发");
comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("3", "生产中");
comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("4", "生产完成");
comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("5", "缴库完毕");
comQueryPanelSource1.ctrlForQueryPORDERSTATUS.SelectedIndex = 0;
comQueryPanelSource1.ultraTextEditorAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMMdd");
Init();
this.IsLoadUserView = true;
}
///
/// 刷新
///
private void RefresDate()
{
}
private void Init()
{
comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].EditorComponent
= comOrdExportCtrl1.ultraFileLook;
comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].ButtonDisplayStyle
= Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
PlanComm.setGridDigitalCol(comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0],
5, 2, "RANGE_MIN", "RANGE_MAX", "OUTDIAMETER", "WALLTHICK");
EntityHelper.ShowGridCaption(ultraGridSaleOrderProc.DisplayLayout.Bands[0]);
ultraGridSaleOrderProc.DisplayLayout.Bands[0].Columns["OrderAddDesc"].EditorComponent = ultraFileLook;
ultraGridSaleOrderProc.DisplayLayout.Bands[0].Columns["OrderAddDesc"].ButtonDisplayStyle
= Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
PlanComm.setGridActivation(this.ultraGridSaleOrderProc.DisplayLayout.Bands[0], "CHC", "RollMonth");
PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 3,
"OrderQtyD", "PlanWtD", "FinishWt", "planWtBegin", "PlanPMain", "Lengthmax", "Lengthmin", "PlanPMainMin", "AimWtEnd", "WeightJg");
PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 2,
"Outdiameter", "Wallthick", "TotLenOneP", "HeightNkMin", "HeightNkMax",
"LenToendMin", "LenToendMax", "LengthJg", "DimaterYlg", "HeightYlg", "LenRollMin", "LenRollMax",
"HeightOrdMax", "HeightOrdMin", "AimWallthick", "RollLength", "ShrtLenRato", "LongLenRato", "AimOutdiameter", "FeedRate", "Coefficient", "CoefficientMin", "CheckJVal");
PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 3,
"AimLenEnd", "AimLenRoll", "SiglLen", "EndlenSpecstd", "DifrncLenMax",
"AvgLenMin", "Longest", "Shortest", "ZOrderweight");
PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 0,
"PlanNumD", "planNumBegin", "CutNumP", "ZOrdernum");
PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 3, 6,
"WeightPerM", "WeightKzM");
PlanComm.setGridSummarySet(ultraGridSaleOrderProc, 0, "PlanNumD");
PlanComm.setGridSummarySet(ultraGridSaleOrderProc, 3,
"OrderQtyD", "PlanWtD", "FinishWt", "planWtBegin", "PlanPMain", "PlanPMainMin");
}
///
/// 获取查询条件信息
///
/// 查询条件信息
private ArrayList GetQueryCondition()
{
ArrayList ary = new ArrayList();
string strRollmonth = "";
string strAcceptNo = "";//接收批次号
string strOrderNo = ""; //合同号
string strOrderStatus = ""; //合同状态
string haveJg = ""; //是否有接箍
string haveDj = ""; //是否有短节
string isGpOrder = ""; //是否是管坯合同
string ordSource = "";//合同来源
if (comQueryPanelSource1.checkBoxHvJg.Checked)
{
haveJg = "1";
}
if (comQueryPanelSource1.checkBoxHvDj.Checked)
{
haveDj = "1";
}
if (comQueryPanelSource1.checkBoxisGp.Checked)
{
isGpOrder = "1";
}
if (comQueryPanelSource1.checkBoxAcceptNo.Checked)
{
strAcceptNo = comQueryPanelSource1.ultraTextEditorAcceptNo.Text.Trim();
}
if (comQueryPanelSource1.checkBoxForReqORDER_NO.Checked)
{
strOrderNo = comQueryPanelSource1.ctrlForQueryORDER_NO.Text.Trim();
}
if (comQueryPanelSource1.checkBoxForReqPORDERSTATUS.Checked)
{
strOrderStatus = comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Value.ToString();
}
if (comQueryPanelSource1.checkBoxRollMonth.Checked)
{
strRollmonth = comQueryPanelSource1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM");
}
if (comQueryPanelSource1.checkBoxOrdSource.Checked)
{
ordSource = comQueryPanelSource1.ultraComboOrdSource.Value.ToString();
}
ary.Add(strRollmonth);
ary.Add(strAcceptNo);
ary.Add(strOrderNo);
ary.Add(strOrderStatus);
ary.Add(haveJg);
ary.Add(haveJg);
ary.Add(haveDj);
ary.Add(haveDj);
ary.Add(isGpOrder);
ary.Add(isGpOrder);
ary.Add(ordSource);
return ary;
}
///
/// 查询
///
private void DoQuery(ArrayList ary)
{
bool isConfirm = comQueryPanelSource1.checkBoxIsConfirm.Checked;
string strFinish = "";
if (this.comQueryPanelSource1.checkBoxFinish.Checked)
{
strFinish = comQueryPanelSource1.ultraComboFinishEditor.Value.ToString();
}
slmSaleOrderEntitybindingSource.DataSource = EntityHelper.GetData(
"com.steering.pss.plnsaleord.order.CoreConfirmCraft.querySaleOrder",
new object[] { ary, strFinish, isConfirm,this.CustomInfo.ToString2() }, this.ob);
foreach (UltraGridRow uRow in this.ultraGridSaleOrderProc.Rows)
{
if (uRow.Cells["CraftRenewSt"].Value.ToString().Trim().Equals("待替换"))
{
uRow.Appearance.BackColor = Color.FromArgb(255, 220, 190);
}
}
}
///
/// 确认替换新工艺
///
private void DoConfirmCraft()
{
try
{
int defailNum = 0;
string messageErr = "";
ultraGridSaleOrderProc.UpdateData();
ArrayList list = new ArrayList();
ArrayList listLog = new ArrayList();
IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
PlanComm.WaitFromOpen(this.Cursor);
foreach (UltraGridRow uRow in checkRows)
{
//查询合同状态
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.querySaleProcStatus",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
defailNum++;
continue;
}
if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("4") < 0)
{
double outdiameter = 0;///外径
double wallthick = 0; //壁厚
double.TryParse(uRow.Cells["Wallthick"].Value.ToString(), out wallthick);
string outsStlPipeFl = dtStatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
if (!double.TryParse(uRow.Cells["Outdiameter"].Value.ToString(), out outdiameter))
{
if (messageErr.Equals(""))
{
messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "外径有误,请核对合同信息!";
}
defailNum++;
continue;
}
PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity();
PlnSaleordCrfEditLogEntity crfEditLog = new PlnSaleordCrfEditLogEntity();
ordProcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
ordProcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
ordProcEntity.CraftSeq = dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString();
if (dtStatus.Rows[0]["CRAFT_SEQ"].ToString().Equals(
dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString()))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "没有新的工艺!";
defailNum++;
continue;
}
DataTable dtCraft = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.queryCraftDesign",
new object[] { uRow.Cells["OrdLnPk"].Value.ToString(),
dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString() }, this.ob);
if (dtCraft == null || dtCraft.Rows.Count <= 0)
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "没有找到新工艺的信息!";
defailNum++;
continue;
}
string desginKey = dtCraft.Rows[0]["DESGIN_KEY"].ToString();//新的质量设计
if (desginKey.Equals(""))
{
messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "新的工艺没有经过工艺制定!";
defailNum++;
continue;
}
string mscPline = dtStatus.Rows[0]["INDEX_SEQ"].ToString();//旧的制程
string bom = dtStatus.Rows[0]["BOM"].ToString();//旧的BOM
string dPline = dtStatus.Rows[0]["GROUP_ROLL"].ToString();//旧的产线
ordProcEntity.DIsOk = dtStatus.Rows[0]["D_IS_OK"].ToString();
ordProcEntity.EIsOk = dtStatus.Rows[0]["E_IS_OK"].ToString();
ordProcEntity.GradecodeIsOk = dtStatus.Rows[0]["GRADECODE_IS_OK"].ToString();
crfEditLog.CraftSeqNew = dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString();
crfEditLog.CraftSeqOld = dtStatus.Rows[0]["CRAFT_SEQ"].ToString();
crfEditLog.CreateName = UserInfo.GetUserName();
crfEditLog.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
crfEditLog.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
listLog.Add(crfEditLog);
if (dtStatus.Rows[0]["DESGIN_KEY"].ToString().Equals(desginKey)
|| !dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
{
list.Add(ordProcEntity);
}
else
{
OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
InOrdParamEntity inOrdParam = new InOrdParamEntity();
PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
DateTime date = new DateTime();
string errMessage = "";
double putRate = 1;
if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
{
//投料率
putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob);
}
#region 新的质量设计下的制程
DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryDesginPl",
new object[] { desginKey }, this.ob);
if (dtDegnPl != null && dtDegnPl.Rows.Count > 0)
{
if (!PlanComm.isInDataTable(dtDegnPl, "MSC_PLINE", mscPline))
{
//新的制程号
mscPline = dtDegnPl.Rows[0]["MSC_PLINE"].ToString();
ordProcEntity.IndexSeq = dtDegnPl.Rows[0]["MSC_PLINE"].ToString();
ordProcEntity.ProcessSeq = dtDegnPl.Rows[0]["WHOLE_BACKLOG"].ToString();
ordProcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString();
}
else
{
//沿用旧的制程号
dtDegnPl.DefaultView.RowFilter = "MSC_PLINE='" + mscPline + "'";
DataTable dt = dtDegnPl.DefaultView.ToTable();
if (dt != null && dt.Rows.Count > 0)
{
mscPline = dt.Rows[0]["MSC_PLINE"].ToString();
ordProcEntity.IndexSeq = dt.Rows[0]["MSC_PLINE"].ToString();
ordProcEntity.ProcessSeq = dt.Rows[0]["WHOLE_BACKLOG"].ToString();
ordProcEntity.GradecodeAll = dt.Rows[0]["GRADENAME"].ToString();
}
}
}
else
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString()
+ "未找到工艺向下的制程。";
defailNum++;
continue;
}
#endregion
#region 根据制程查询全程途经工序
ArrayList param = new ArrayList();
param.Add(desginKey);
param.Add(mscPline);
DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc",
new object[] { param }, this.ob);
if (dtProcess != null && dtProcess.Rows.Count > 0)
{
string endgxCode = ordProcEntity.ProcessSeq.Substring(ordProcEntity.ProcessSeq.Length - 1);
string gprocessC = ""; //加工二级工序
string fprocessC = ""; //热处理二级工序
ordProcEntity.GroupJgx = "/";
ordProcEntity.GroupRcl = "/";
ordProcEntity.BjType = "/";
foreach (DataRow dr in dtProcess.Rows)
{
if (dr["PROCESS_CODE"].ToString().Trim().Equals("H"))
{
ordProcEntity.GroupJgx = "200401";
}
if (dr["PROCESS_CODE"].ToString().Trim().Equals("G"))
{
//经过加工工序
gprocessC = dr["PROCESS_CODE_C"].ToString();
//加工组
//string modelCode = uRow.Cells["ModelCode"].Value.ToString();
//string[] planGroups = FrmDefGroup.planGroups(desginKey,
// mscPline, "G", this.ob);
//if (planGroups != null)
//{
// ordProcEntity.GroupJgx = FrmDefGroup.defgourpJgc(planGroups, outdiameter, modelCode, this.ob);
//}
//else
//{
// ordProcEntity.GroupJgx = FrmDefGroup.defgourpJgc(outdiameter, modelCode, this.ob);
//}
}
if (dr["PROCESS_CODE"].ToString().Trim().Equals("F"))
{
//经过热处理工序
fprocessC = dr["PROCESS_CODE_C"].ToString();
ordProcEntity.ProcDescCRcl = dr["PROCESS_DESC_C"].ToString();
//热处理组
//double lengthmax = Convert.ToDouble(uRow.Cells["Lengthmax"].Value);
//string modelCode = uRow.Cells["ModelCode"].Value.ToString();
//string[] planGroups = FrmDefGroup.planGroups(desginKey,
// mscPline, "F", this.ob);
//if (planGroups != null)
//{
// ordProcEntity.GroupRcl = FrmDefGroup.defgourpRcl(planGroups, outdiameter, wallthick,
// lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob);
//}
//else
//{
// ordProcEntity.GroupRcl = FrmDefGroup.defgourpRcl(outdiameter, wallthick,
// lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob);
//}
}
if (dr["PROCESS_CODE"].ToString().Trim().Equals("E"))
{
//经过镦拔扩工序
ordProcEntity.BjType = dr["PROCESS_DESC_C"].ToString();
}
}
}
else
{
if (messageErr.Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString()
+ "未找到制程途径工序,请联系管理员。";
}
defailNum++;
continue;
}
#endregion
#region BOM物料数据
//查询物料信息
//param.Clear();
//param.Add(mscPline);
//param.Add(uRow.Cells["Msc"].Value.ToString());
//param.Add(uRow.Cells["MaterialNo"].Value.ToString());
//param.Add(ordProcEntity.ProcessSeq);
DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom",
new object[] { desginKey, uRow.Cells["Msc"].Value.ToString(), mscPline }, this.ob);
if (dtBom != null && dtBom.Rows.Count > 0)
{
if (!PlanComm.isInDataTable(dtBom, "BOM", bom))
{
bool isAvailBom = false;//是否存在可用BOM
string errReason = "";//不可用原因
foreach (DataRow dr in dtBom.Rows)
{
#region 判断坯料的属性
string dinMaterial = "";
///轧管投入物料(炼钢末工序产出物料)
if (!dr["D_IN_MATERIAL_NO"].ToString().Equals(""))
{
dinMaterial = dr["D_IN_MATERIAL_NO"].ToString();
}
else if (!dr["C_OUT_MATERIAL_NO"].ToString().Equals(""))
{
dinMaterial = dr["C_OUT_MATERIAL_NO"].ToString();
}
else if (!dr["B_OUT_MATERIAL_NO"].ToString().Equals(""))
{
dinMaterial = dr["B_OUT_MATERIAL_NO"].ToString();
}
else
{
dinMaterial = dr["A_OUT_MATERIAL_NO"].ToString();
}
ordProcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial);
#endregion
//轧管去向
ordProcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(dr["WHOLE_BACKLOG"].ToString(), dr["WHOLE_BACKLOG_DESC"].ToString());
bom = dr["BOM"].ToString();
ordProcEntity.Bom = dr["BOM"].ToString();
ordProcEntity.Gradecode = dr["GRADECODE"].ToString();
if (ordProcEntity.ProcessSeq.Contains("E"))
{
ordProcEntity.EIsOk = "0";
}
else
{
ordProcEntity.EIsOk = "2";
}
ordProcEntity.GradecodeIsOk = "0";
ordProcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
ordProcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
ordProcEntity.DimaterYlg = dr["DIMATER"].ToString();
ordProcEntity.HeightYlg = dr["HEIGHT"].ToString();
ordProcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
mscPline, dr["BOM"].ToString(), this.ob);
ordProcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
mscPline, dr["BOM"].ToString(), this.ob);
#region 默认轧管产线
ArrayList paramPline = new ArrayList();
paramPline.Add(dr["D_IN_MATERIAL_NO"].ToString());
paramPline.Add(dr["D_OUT_MATERIAL_NO"].ToString());
paramPline.Add(desginKey);
paramPline.Add(mscPline);
paramPline.Add(uRow.Cells["FinalUser"].Value.ToString());
paramPline.Add(uRow.Cells["Produccode"].Value.ToString());
DataTable dtDpl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getBomMaterialDpl",
new object[] { paramPline }, this.ob);
if (dtDpl != null && dtDpl.Rows.Count > 0)
{
if (!PlanComm.isInDataTable(dtDpl, "PLINE_CODE", dPline))
{
ordProcEntity.DIsOk = "0";
//如果存在ASSEL机组,优选ASSEL机组
if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", "C012"))
{
if (FrmPlnSaleOrder.queryAsselFl(uRow.Cells["OrdLnPk"].Value.ToString(), this.ob))
{
ordProcEntity.GroupRoll = "C012";
}
else
{
bool isPline = false;
foreach (DataRow drPine in dtDpl.Rows)
{
if (!drPine["PLINE_CODE"].ToString().Equals("C012"))
{
isPline = true;
ordProcEntity.GroupRoll = drPine["PLINE_CODE"].ToString();
break;
}
}
if (!isPline)
{
ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
}
}
}
else
{
ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
}
dPline = ordProcEntity.GroupRoll;
}
}
else if (ordProcEntity.ProcessSeq.Contains("D"))
{
errReason = "未找到可用轧管机组(BOM:" + dr["BOM"].ToString() + ")。";
continue;
}
#endregion
if (ordProcEntity.ProcessSeq.Contains("D")
&& !dPline.Trim().Equals("C072")
&& !outsStlPipeFl.Equals("121903")
&& !outsStlPipeFl.Equals("121902"))
{
#region 合同量转换
inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey, mscPline,
uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString(),
dPline, bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
if (!ordAmountCal.isRightParam(inOrdParam, desginKey,
dtStatus.Rows[0]["CODE_JG"].ToString(), bom, dPline, out errMessage))
{
errReason = errMessage;
continue;
}
ordAmountCal.InEnity = inOrdParam;
outOrdParam = ordAmountCal.getOrdAmount();
if (outOrdParam.ErrCode == -1)
{
errReason = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
continue;
}
#endregion
}
isAvailBom = true;
break;
}
if (!isAvailBom)
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString() + errReason;
defailNum++;
continue;
}
}
}
else
{
if (messageErr.Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString()
+ "未找到物料信息,请查看工艺制定。";
}
defailNum++;
continue;
}
#endregion
#region 重算合同量
if (ordProcEntity.ProcessSeq.Contains("D")
&& !dPline.Trim().Equals("C072")
&& !outsStlPipeFl.Equals("121903")
&& !outsStlPipeFl.Equals("121902"))
{
inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey,
mscPline, uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString(),
dPline, bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
if (!ordAmountCal.isRightParam(inOrdParam, desginKey,
dtStatus.Rows[0]["CODE_JG"].ToString(), bom, dPline, out errMessage))
{
messageErr = errMessage;
defailNum++;
continue;
}
ordAmountCal.InEnity = inOrdParam;
outOrdParam = ordAmountCal.getOrdAmount();
if (outOrdParam.ErrCode == -1)
{
messageErr = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
defailNum++;
continue;
}
ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString();
ordProcEntity.RollLength = outOrdParam.RollLength.ToString();
ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
}
#endregion
list.Add(ordProcEntity);
}
}
else
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "已生产完毕,不能改工艺!";
defailNum++;
continue;
}
}
if (list.Count <= 0)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条替换成功," + defailNum + "条替换失败。\n" + messageErr);
return;
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "updateCraftVersion";
ccp.ServerParams = new object[] { list, listLog };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp.ReturnCode != -1)
{
if (defailNum == 0)
{
MessageUtil.ShowTips("替换成功,共" + list.Count + "条。");
}
else
{
MessageUtil.ShowTips(list.Count + "条替换成功," + defailNum + "条替换失败。\n" + messageErr);
}
}
else
{
MessageUtil.ShowTips("替换失败,共" + list.Count + "条。");
}
}
catch (Exception ex)
{
PlanComm.WaitFromColse(this.Cursor);
if (!(ex is MESException))
{
MessageUtil.ShowError(ex.Message);
}
}
DoQuery(GetQueryCondition());
}
///
/// 下发
///
private void DoIussed()
{
try
{
int defailNum = 0;
string messageErr = "";
ultraGridSaleOrderProc.UpdateData();
ArrayList list = new ArrayList();
IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
PlanComm.WaitFromOpen(this.Cursor);
foreach (UltraGridRow uRow in checkRows)
{
//if (IsLockCraft(uRow.Cells["OrdLnPk"].Value.ToString()))
//{
// messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
// + "有工艺文件处于锁定状态,不能下发!";
// defailNum++;
// continue;
//}
if (uRow.Cells["OrderSource"].Text.Equals("销售合同"))
{
if (uRow.Cells["OrderNoSeq"].Value != null)
{
int count = 0;
foreach (UltraGridRow uRows in checkRows)
{
if (uRows.Cells["OrderNoSeq"].Value != null)
{
if (uRow.Cells["OrderNoSeq"].Value.ToString().Equals(uRows.Cells["OrderNoSeq"].Value.ToString()))
{
count++;
}
}
}
if (count > 1)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("排产分类为【销售合同】的合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "有重复,不能同时下发!");
return;
}
}
}
//查询合同状态
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
defailNum++;
continue;
}
if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryLineLocked",
new object[] { uRow.Cells["OrdLnPk"].Value.ToString(), }, this.ob);
if (dt == null || dt.Rows.Count <= 0)
{
defailNum++;
continue;
}
if (!dt.Rows[0][0].ToString().Trim().Equals("0"))
{
messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "处于销售变更冻结中!";
defailNum++;
continue;
}
if (dtStatus.Rows[0]["PLAN_IS_OK"].ToString().Equals("0"))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "计划未确认!";
defailNum++;
continue;
}
if (dtStatus.Rows[0]["CRAFT_SEQ"].ToString().Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString()
+ uRow.Cells["PlnDivideId"].Value.ToString() + "无工艺!";
defailNum++;
continue;
}
if (!dtStatus.Rows[0]["VALIDFLAG"].ToString().Trim().Equals("1"))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString()
+ uRow.Cells["PlnDivideId"].Value.ToString() + "使用的不是有效工艺或工艺文件未上传!";
defailNum++;
continue;
}
if (dtStatus.Rows[0]["E_IS_OK"].ToString().Equals("0") &&
!dtStatus.Rows[0]["BJ_TYPE"].ToString().Equals("镦粗"))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "镦拔扩未确认!";
defailNum++;
continue;
}
if (dtStatus.Rows[0]["INDEX_SEQ"].ToString().Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString()
+ uRow.Cells["PlnDivideId"].Value.ToString() + "无制程!";
defailNum++;
continue;
}
if (dtStatus.Rows[0]["BOM"].ToString().Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString()
+ uRow.Cells["PlnDivideId"].Value.ToString() + "无BOM!";
defailNum++;
continue;
}
if (dtStatus.Rows[0]["DESGIN_KEY"].ToString().Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "未找到工艺制定数据,请制定工艺!";
defailNum++;
continue;
}
ArrayList param = new ArrayList();
param.Add(UserInfo.GetUserName());
param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
param.Add(uRow.Cells["PlnDivideId"].Value.ToString());
param.Add(dtStatus.Rows[0]["ORDER_UNIT"].ToString());
param.Add(dtStatus.Rows[0]["PLAN_WT_D"].ToString());
param.Add(dtStatus.Rows[0]["PLAN_NUM_D"].ToString());
param.Add(uRow.Cells["OrderNoSeq"].Value.ToString());
param.Add(uRow.Cells["OrderSource"].Value.ToString());
list.Add(param);
}
else
{
if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("1") > 0)
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发过了!";
}
defailNum++;
continue;
}
}
if (list.Count <= 0)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条下发成功," + defailNum + "条下发失败。\n" + messageErr);
return;
}
string flag = "0";
if (comQueryPanelSource1.checkBox1.Checked)
{
flag = "1";
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "iussedOrder";
ccp.ServerParams = new object[] { list, flag };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
int suceedNum = list.Count;
if (ccp.ReturnCode != -1)
{
if (ccp.ReturnObject != null &&
ccp.ReturnObject.GetType().FullName.Trim().Equals("System.Object[]"))
{
object[] message = (object[])ccp.ReturnObject;
defailNum += (int)message[0];
suceedNum = suceedNum - (int)message[0];
messageErr = message[1].ToString();
}
MessageUtil.ShowTips(suceedNum + "条下发成功," + defailNum + "条下发失败。\n" + messageErr);
}
if (suceedNum > 0)
{
DoQuery(GetQueryCondition());
}
}
catch (Exception ex)
{
PlanComm.WaitFromColse(this.Cursor);
if (!(ex is MESException))
{
MessageUtil.ShowError(ex.Message);
}
}
}
///
/// 刷新工艺
///
private void DoRefresCraft()
{
int defailNum = 0;
string messageErr = "";
ArrayList list = new ArrayList();
ultraGridSaleOrderProc.UpdateData();
IQueryable checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
//PlanComm.WaitFromOpen(this.Cursor);
foreach (UltraGridRow uRow in checkRows)
{
//查询合同状态
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.selectPlnOrderStatus",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
defailNum++;
continue;
}
if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1"))
{
ArrayList param = new ArrayList();
PlnSaleordProcEntity orderPrcEntity = new PlnSaleordProcEntity();
string ordLnPk = uRow.Cells["OrdLnPk"].Value.ToString();
string desginKey = "";
string dinMaterialNo = dtStatus.Rows[0]["D_IN_MATERIAL_NO"].ToString();
string doutMaterialNo = dtStatus.Rows[0]["D_OUT_MATERIAL_NO"].ToString();
orderPrcEntity.CraftSeq = dtStatus.Rows[0]["CRAFT_SEQ"].ToString();
orderPrcEntity.IndexSeq = dtStatus.Rows[0]["INDEX_SEQ"].ToString();
orderPrcEntity.ProcessSeq = dtStatus.Rows[0]["PROCESS_SEQ"].ToString();
orderPrcEntity.FIsOk = dtStatus.Rows[0]["F_IS_OK"].ToString();
orderPrcEntity.GroupRcl = dtStatus.Rows[0]["GROUP_RCL"].ToString();
orderPrcEntity.Bom = dtStatus.Rows[0]["BOM"].ToString();
orderPrcEntity.GroupRoll = dtStatus.Rows[0]["GROUP_ROLL"].ToString();
orderPrcEntity.Gradecode = dtStatus.Rows[0]["GRADECODE"].ToString();
orderPrcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
orderPrcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
#region 对比制程有无变化
DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.selectCraftDesgin",
new object[] { ordLnPk, orderPrcEntity.CraftSeq }, this.ob);
if (dtDegnPl != null && dtDegnPl.Rows.Count > 0)
{
DataRow dr = null;
if (!PlanComm.isInDataTable(dtDegnPl, "MSC_PLINE", orderPrcEntity.IndexSeq))
{
dr = dtDegnPl.Rows[0];
}
else
{
dtDegnPl.DefaultView.RowFilter = "MSC_PLINE = '" + orderPrcEntity.IndexSeq + "'";
dr = dtDegnPl.DefaultView.ToTable().Rows[0];
}
desginKey = dr["DESGIN_KEY"].ToString();
orderPrcEntity.IndexSeq = dr["MSC_PLINE"].ToString();
if (!dr["WHOLE_BACKLOG"].ToString().Equals(orderPrcEntity.ProcessSeq))
{
orderPrcEntity.ProcessSeq = dr["WHOLE_BACKLOG"].ToString();
if (dr["WHOLE_BACKLOG"].ToString().Contains('F'))
{
if (orderPrcEntity.FIsOk.Equals("2"))
{
orderPrcEntity.FIsOk = "0";
orderPrcEntity.GroupRcl = "";
}
}
else
{
orderPrcEntity.FIsOk = "2";
orderPrcEntity.GroupRcl = "/";
}
}
orderPrcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString();
if (orderPrcEntity.ProcessSeq.Equals(""))
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString()
+ "未找到制程经过的工序。";
defailNum++;
continue;
}
}
else
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString()
+ "未找到工艺下的制程信息,请联系工艺人员。";
defailNum++;
continue;
}
#endregion
#region 对比BOM物料有无变化
//param.Clear();
//param.Add(orderPrcEntity.IndexSeq);
//param.Add(uRow.Cells["Msc"].Value.ToString());
//param.Add(uRow.Cells["MaterialNo"].Value.ToString());
//param.Add(orderPrcEntity.ProcessSeq);
DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom",
new object[] { desginKey, uRow.Cells["Msc"].Value.ToString(), orderPrcEntity.IndexSeq }, this.ob);
if (dtBom != null && dtBom.Rows.Count > 0)
{
DataRow dr = null;
if (!PlanComm.isInDataTable(dtBom, "BOM", orderPrcEntity.Bom))
{
dtBom.DefaultView.RowFilter = "D_IN_MATERIAL_NO = '" + dinMaterialNo + "'";
DataTable dt1 = dtBom.DefaultView.ToTable();
if (dt1.Rows.Count > 0)
{
//有相同轧管规格的BOM
dt1.DefaultView.RowFilter = "GRADECODE = '" + orderPrcEntity.Gradecode + "'";
if (dt1.DefaultView.ToTable().Rows.Count > 0)
{
//有相同钢种的BOM
dr = dt1.DefaultView.ToTable().Rows[0];
}
else
{
dr = dt1.Rows[0];
}
}
else
{
dtBom.DefaultView.RowFilter = "GRADECODE = '" + orderPrcEntity.Gradecode + "'";
if (dtBom.DefaultView.ToTable().Rows.Count > 0)
{
dr = dtBom.DefaultView.ToTable().Rows[0];
}
else
{
dr = dtBom.Rows[0];
}
}
}
else
{
dtBom.DefaultView.RowFilter = "BOM = '" + orderPrcEntity.Bom + "'";
dr = dtBom.DefaultView.ToTable().Rows[0];
}
orderPrcEntity.Bom = dr["BOM"].ToString();
orderPrcEntity.GroupRollAll = dr["D_PLINE"].ToString();
orderPrcEntity.Gradecode = dr["GRADECODE"].ToString();
orderPrcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
orderPrcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
orderPrcEntity.DimaterYlg = dr["DIMATER"].ToString();
orderPrcEntity.HeightYlg = dr["HEIGHT"].ToString();
orderPrcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
orderPrcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
}
else
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString()
+ "/" + uRow.Cells["DeliveryNo"].Value.ToString()
+ "未找到制程" + orderPrcEntity.IndexSeq + "向下的物料信息。";
defailNum++;
continue;
}
#endregion
list.Add(orderPrcEntity);
}
else
{
messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发了!";
defailNum++;
continue;
}
}
if (list.Count <= 0)
{
//PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条刷新成功," + defailNum + "条刷新失败。\n" + messageErr);
return;
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "updateRefresCraft";
ccp.ServerParams = new object[] { list };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
//PlanComm.WaitFromColse(this.Cursor);
if (ccp.ReturnCode != -1)
{
if (defailNum == 0)
{
MessageUtil.ShowTips("刷新成功,共" + list.Count + "条。");
}
else
{
MessageUtil.ShowTips(list.Count + "条刷新成功," + defailNum + "条刷新失败。\n" + messageErr);
}
}
}
///
/// 取消下发
///
private void DoConcelIussed()
{
try
{
ArrayList messageErr = new ArrayList();
ultraGridSaleOrderProc.UpdateData();
ArrayList list = new ArrayList();
IQueryable checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
PlanComm.WaitFromOpen(this.Cursor);
foreach (UltraGridRow uRow in checkRows)
{
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
messageErr.Add("");
continue;
}
if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("2"))
{
ArrayList param = new ArrayList();
param.Add(UserInfo.GetUserName());
param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
param.Add(uRow.Cells["PlnDivideId"].Value.ToString());
param.Add(dtStatus.Rows[0]["ORDER_UNIT"].ToString());
param.Add(dtStatus.Rows[0]["PLAN_WT_D"].ToString());
param.Add(dtStatus.Rows[0]["PLAN_NUM_D"].ToString());
list.Add(param);
}
else
{
if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("2") > 0)
{
messageErr.Add("合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "已经生产了!");
}
else
{
messageErr.Add("合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/"
+ uRow.Cells["DeliveryNo"].Value.ToString() + "还未下发!");
}
continue;
}
}
if (list.Count == 0)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]);
return;
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "canCelIussed";
ccp.ServerParams = new object[] { list,UserInfo.GetUserName() };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp.ReturnCode != -1)
{
int suceed = list.Count;
if (ccp.ReturnObject != null)
{
List message = (List)JsonConvert.DeserializeObject(
ccp.ReturnObject.ToString(), typeof(List));
foreach (string reason in message)
{
messageErr.Add(reason);
suceed--;
}
}
if (messageErr.Count > 0)
{
MessageUtil.ShowTips(suceed + "条撤消成功,"
+ messageErr.Count + "条撤消失败。\n" + messageErr[0]);
}
else
{
MessageUtil.ShowTips(suceed + "条撤消成功,0条撤消失败。");
}
}
}
catch (Exception ex)
{
PlanComm.WaitFromColse(this.Cursor);
if (!(ex is MESException))
{
MessageUtil.ShowError(ex.Message);
}
}
DoQuery(GetQueryCondition());
}
///
///排产合同拆分
///
private void doBreakUp()
{
ultraGridSaleOrderProc.UpdateData();
IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选排产合同!");
return;
}
if (checkRows.Count() > 1)
{
MessageUtil.ShowWarning("不能一次性拆分多条合同!");
return;
}
int num = 0;
double wgt = 0;
double ratio = 0;
ArrayList jsonList = new ArrayList();
foreach (UltraGridRow uRow in checkRows)
{
ArrayList list = new ArrayList();
if (!uRow.Cells["Planstatus"].Text.Trim().Equals("已接收"))
{
MessageUtil.ShowTips("选中的合同不是已接收状态,不能拆分!");
return;
}
if (!uRow.Cells["PlanWtD"].Text.Trim().Equals(""))
{
num = int.Parse(uRow.Cells["PlanNumD"].Value.ToString());
wgt = double.Parse(uRow.Cells["PlanWtD"].Value.ToString());
}
//重量与支数比例
ratio = wgt / num;
list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
list.Add(uRow.Cells["PlnDivideId"].Value.ToString());
list.Add(ratio.ToString());
jsonList.Add(list);
}
FrmSpitWgtSProc frmSpitWgt = new FrmSpitWgtSProc(wgt, num, ratio, ob);
frmSpitWgt.ShowDialog();
double spitWgt = frmSpitWgt.AlreadySpitWgt;
int spitNum = frmSpitWgt.AlreadySpitNum;
if (spitWgt <= 0) { return; }
if (MessageUtil.ShowYesNoAndQuestion("是否拆分?") == DialogResult.No)
{
return;
}
PlanComm.WaitFromOpen(this.Cursor);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "doBreakUp";
ccp.ServerParams = new object[] { jsonList, spitWgt.ToString(), spitNum.ToString(), this.UserInfo.GetUserName() };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp.ReturnCode == -1) return;
MessageUtil.ShowTips(ccp.ReturnInfo);
if (ccp.ReturnInfo.Equals("拆分成功!"))
{
DoQuery(GetQueryCondition());
}
}
///
/// 合并
///
private void doMerge()
{
ultraGridSaleOrderProc.UpdateData();
IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0 || checkRows.Count() == 1)
{
MessageUtil.ShowTips("请选择多个排产合同!");
return;
}
//if (checkRows.Count() > 1)
//{
// MessageUtil.ShowWarning("不能一次性拆分多条合同!");
// return;
//}
int num = 0;
double wgt = 0;
double ratio = 0;
ArrayList jsonList = new ArrayList();
string ordLnDlyPk = "";
string orderSource = "";
foreach (UltraGridRow uRow in checkRows)
{
ArrayList list = new ArrayList();
if (!uRow.Cells["Planstatus"].Text.Trim().Equals("已接收"))
{
MessageUtil.ShowTips("选中的合同不是已接收状态,不能拆分!");
return;
}
if (ordLnDlyPk.Equals("")) { ordLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); }
if (orderSource.Equals("")) { orderSource = uRow.Cells["OrderSource"].Value.ToString(); }
if (!uRow.Cells["OrdLnDlyPk"].Value.ToString().Equals(ordLnDlyPk) || !uRow.Cells["OrderSource"].Value.ToString().Equals(orderSource))
{
MessageUtil.ShowTips("相同合同并且合同来源也相同才能合并!");
return;
}
list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
list.Add(uRow.Cells["PlnDivideId"].Value.ToString());
jsonList.Add(list);
}
if (MessageUtil.ShowYesNoAndQuestion("是否合并?") == DialogResult.No)
{
return;
}
PlanComm.WaitFromOpen(this.Cursor);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "doMerge";
ccp.ServerParams = new object[] { jsonList };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp.ReturnCode == -1) return;
MessageUtil.ShowTips(ccp.ReturnInfo);
if (ccp.ReturnInfo.Equals("合并成功!"))
{
DoQuery(GetQueryCondition());
}
}
///
/// 查看上传工艺文件
///
private void DoLookCraftFile()
{
UltraGridRow ugr = this.ultraGridSaleOrderProc.ActiveRow;
if (ugr == null)
{
return;
}
DataTable dtPath = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftFilePath",
new object[] { ugr.Cells["OrdLnDlyPk"].Value.ToString(), ugr.Cells["PlnDivideId"].Value.ToString() }, this.ob);
if (dtPath != null && dtPath.Rows.Count > 0)
{
ArrayList listPIC = new ArrayList();
foreach (DataRow dr in dtPath.Rows)
{
listPIC.Add(dr["CRAFT_PATH"].ToString());
}
dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC);
orderAsk.Text = "查看上传工艺文件";
orderAsk.Show();
}
}
private void ultraTabControl1_SelectedTabChanged(object sender,
Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
if (toolMenu != null)
{
if (e.Tab.TabPage == ultraTabPageControlOrd)
{
setTab1Appearance(DefaultableBoolean.True);
setTab2Appearance(DefaultableBoolean.False);
}
else if (e.Tab.TabPage == ultraTabPageControlExport)
{
setTab1Appearance(DefaultableBoolean.False);
setTab2Appearance(DefaultableBoolean.True);
}
}
}
private void FrmConfirmCraft_Shown(object sender, EventArgs e)
{
setTab1Appearance(DefaultableBoolean.True);
setTab2Appearance(DefaultableBoolean.False);
}
private void setTab1Appearance(DefaultableBoolean appearance)
{
#region tab1显示或隐藏
if (toolMenu.Toolbars[0].Tools.Exists("Query"))
{
toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("ConfirmCraft"))
{
toolMenu.Toolbars[0].Tools["ConfirmCraft"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("RefresCraft"))
{
toolMenu.Toolbars[0].Tools["RefresCraft"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("Iussed"))
{
toolMenu.Toolbars[0].Tools["Iussed"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("ConcelIussed"))
{
toolMenu.Toolbars[0].Tools["ConcelIussed"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("RefresDate"))
{
toolMenu.Toolbars[0].Tools["RefresDate"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("ModifyBaseMlPl"))
{
toolMenu.Toolbars[0].Tools["ModifyBaseMlPl"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("ExportProc"))
{
toolMenu.Toolbars[0].Tools["ExportProc"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("UpdateMonth"))
{
toolMenu.Toolbars[0].Tools["UpdateMonth"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("BreakUp"))
{
toolMenu.Toolbars[0].Tools["BreakUp"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("Merge"))
{
toolMenu.Toolbars[0].Tools["Merge"].InstanceProps.Visible = appearance;
}
#endregion
}
private void setTab2Appearance(DefaultableBoolean appearance)
{
#region tab1显示或隐藏
if (toolMenu.Toolbars[0].Tools.Exists("QueryExp"))
{
toolMenu.Toolbars[0].Tools["QueryExp"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("Export"))
{
toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = appearance;
}
if (toolMenu.Toolbars[0].Tools.Exists("GridExport"))
{
toolMenu.Toolbars[0].Tools["GridExport"].InstanceProps.Visible = appearance;
}
#endregion
}
///
/// 验证合同行工艺文件有没有锁定的(true- 锁定,false - 无锁定)
///
/// 合同行pk
///
private bool IsLockCraft(string ordLnPk)
{
bool isLocked = false;
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftLockFlag",
new object[] { ordLnPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (!dt.Rows[0][0].ToString().Trim().Equals("0"))
{
isLocked = true;
}
}
return isLocked;
}
///
/// 查看附加要求贴图
///
///
///
private void ultraFileLook_EditorButtonClick(object sender,
Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
try
{
UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow;
if (ugr == null)
{
return;
}
string askNo = ugr.Cells["AddAskNo"].Value.ToString();
ArrayList listPIC = new ArrayList();
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryAddAsk",
new object[] { askNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
listPIC.Add(dr["PIC"].ToString());
}
}
dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC);
orderAsk.Show();
}
catch (Exception ex)
{
if (!(ex is MESException))
{
MessageBox.Show(ex.Message);
}
}
}
private void ultraGridSaleOrderProc_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
{
foreach (UltraGridRow uRow in ultraGridSaleOrderProc.Selected.Rows)
{
if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
{
uRow.Cells["CHC"].Value = true;
}
}
}
///
/// 小时能力维护
///
private void DoModifyBaseMlPl()
{
UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow;
if (ugr == null)
{
return;
}
string ordLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString();
string plnDivideId = ugr.Cells["PlnDivideId"].Value.ToString();
FrmOrdProcessBasePl processBasePl = new FrmOrdProcessBasePl(ordLnDlyPk, plnDivideId, this.ob);
processBasePl.ShowDialog();
}
///
/// 合同行工艺文件
///
private void TechOrderLine()
{
UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow;
if (ugr == null)
{
return;
}
string ordLnPk = ugr.Cells["OrdLnPk"].Value.ToString();
string designKey = ugr.Cells["DesginKey"].Value.ToString();
string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&__bypagesize__=false&format=pdf&__embed__=true"
+ "&desgin_key=" + designKey + "&lnpk=" + ordLnPk;
FrmOutExcel outPut = new FrmOutExcel(url);
outPut.Show();
}
///
/// 修改排产月份
///
private void UpdateMonth()
{
try
{
ArrayList messageErr = new ArrayList();
ultraGridSaleOrderProc.UpdateData();
ArrayList list = new ArrayList();
IQueryable checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
foreach (UltraGridRow uRow in checkRows)
{
if (uRow.Cells["RollMonth"].Value.ToString().Equals(""))
{
MessageUtil.ShowTips("排产月份不能为空!");
return;
}
ArrayList param = new ArrayList();
param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
param.Add(uRow.Cells["PlnDivideId"].Value.ToString());
param.Add(uRow.Cells["RollMonth"].Text.ToString().Trim());
list.Add(param);
}
if (list.Count == 0)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]);
return;
}
PlanComm.WaitFromOpen(this.Cursor);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft";
ccp.MethodName = "updateMonth";
ccp.ServerParams = new object[] { list, UserInfo.GetUserName() };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp.ReturnCode == -1) return;
MessageUtil.ShowTips(ccp.ReturnInfo);
if (ccp.ReturnInfo.Equals("排产月份调整成功!"))
{
DoQuery(GetQueryCondition());
}
}
catch (Exception ex)
{
MessageUtil.ShowError("请输入正确的时间格式!");
//if (!(ex is MESException))
//{
// MessageUtil.ShowError(ex.Message);
//}
}
}
private void ultraGridSaleOrderProc_KeyUp(object sender, KeyEventArgs e)
{
PlanComm.setGridCopyActColumn(this.ultraGridSaleOrderProc, "CHC", e,
"RollMonth");
}
}
}