using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using CoreFS.CA06;
using CoreFS.SA06;
using Infragistics.Win.UltraWinGrid;
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Windows.Forms;
namespace Core.StlMes.Client.Qcm
{
class MscMsc_BackLog
{
public static DataTable Query(FrmProPSCMSC2 frm)
{
if (frm.ControlMsc.GridMsc.ActiveRow == null) return null;
string msc = "";//如果选择的是接箍,那么msc字段保存接箍码。否则保存msc。
if (frm.ControlMsc.GridMsc.ActiveRow.ChildBands != null)
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["MSC"].Value.ToString();
}
else
{
UltraGridRow activeRow = frm.ControlMsc.GridMsc.ActiveRow;
msc = activeRow.GetValue("KEY_JG");
}
ArrayList list = new ArrayList();
list.Add(msc);
list.Add(frm.ckbDeleteFilter.Checked ? "0" : "1");
DataTable dt = null;
try
{
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMscBackLog",
new object[] { list }, frm.ob);
}
catch
{
return null;
}
return dt;
}
public static bool Insert(FrmProPSCMSC2 frm)
{
if (CheckData(frm, "Insert") == false) return false;
frm.UltraGrid5.UpdateData();
if (MessageUtil.ShowYesNoAndQuestion("是否新增所选择的记录?") == DialogResult.No)
{
return false;
}
string strMaxMscPline = GetMaxMscPline(frm);
string[] strWhole_BackLogs = GetWhole_BackLog(frm);
string msc = "";//如果选择的是接箍,那么msc字段保存接箍码。否则保存msc。
string processNo = "";
string memo = "";
string autoCraft = "";
string activeMscPlie = "";
if (frm.UltraGrid4.ActiveRow != null)
{
processNo = frm.UltraGrid4.GetActiveRowValue("PROCESS_NO");
memo = frm.UltraGrid4.GetActiveRowValue("Memo");
autoCraft = frm.UltraGrid4.GetActiveRowValue("AUTO_CRAFT");
activeMscPlie = frm.UltraGrid4.GetActiveRowValue("MSC_PLINE");
}
if (frm.ControlMsc.GridMsc.ActiveRow.ChildBands != null)
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["MSC"].Value.ToString();
}
else
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["KEY_JG"].Value.ToString();
}
ArrayList list1 = new ArrayList();
list1.Add(msc);
list1.Add(strMaxMscPline);
list1.Add(strWhole_BackLogs[0]);
list1.Add(strWhole_BackLogs[1]);
list1.Add(frm.UserInfo.GetUserName());
list1.Add(processNo);
list1.Add(memo);
list1.Add(autoCraft);
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();
foreach (UltraGridRow row in frm.UltraGrid5.Rows)
{
string strDeleteFlag = "";
string cic = row.GetValue("CIC");
string pic = row.GetValue("PIC");
string dic = row.GetValue("DIC");
string sic = row.GetValue("SIC");
string wic = row.GetValue("WIC");
string gic = row.GetValue("GIC");
string processCode = row.Cells["PROCESS_CODE"].Value.ToString();
if (row.Cells["CHK"].Value.ToString() == "False")
{
strDeleteFlag = "DELETE";
}
else
{
if (frm._dicMscStation.ContainsKey(processCode))
{
UltraGrid ultraGridSta2 = frm._dicMscStation[processCode];
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403201" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
cic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403202" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
pic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403203" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
sic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403204" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
dic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403205" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
wic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403208" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
gic = "";
}
}
}
string MaxMscProBkLog_seq = QueryMaxMscProBkLog_seq(frm, strMaxMscPline);
ArrayList listProcess = new ArrayList();
listProcess.AddRange(
strDeleteFlag, msc, strMaxMscPline,
MaxMscProBkLog_seq, frm.UserInfo.GetUserName(), row.GetValue("PROCESS_CODE"),
row.GetValue("PROCESS_DESC"), row.GetValue("MINUTE_PRODUCT"), row.GetValue("MINUTE_WAITE"),
row.GetValue("BATCH_WAITE"), row.GetValue("MINUTE_PRODUCT_OUT"), row.GetValue("MINUTE_WAITE_OUT"),
row.GetValue("BATCH_WAITE_OUT"), row.GetValue("COST"), cic, pic, sic, dic, wic,
gic, row.GetValue("MEMO"), row.GetValue("PROCESS_CODE_C"),
row.GetText("PROCESS_CODE_C"), row.GetValue("ICOUNT"), "");
list2.Add(listProcess);
if (frm._dicMscStation.ContainsKey(processCode) == false)
{
if (row.Cells["CHK"].Value.ToString() == "True")
{
ArrayList listSub = new ArrayList();
listSub.Add(processCode);
listSub.Add(frm.UserInfo.GetUserName());
listSub.Add(msc);
listSub.Add(strMaxMscPline);
listSub.Add(row.GetValue("PROCESS_CODE_C"));
listSub.Add(row.GetValue("ICOUNT"));
list3.Add(listSub);
}
continue;
}
UltraGrid ultraGridSta = frm._dicMscStation[processCode];
foreach (UltraGridRow rowSta in ultraGridSta.Rows)
{
//如果工序选择的二级工序和工序点选择的不一致,则不对工序点进行保存,只保存工序。
if (rowSta.GetValue("PROCESS_CODE_C") != row.GetValue("PROCESS_CODE_C"))
{
continue;
}
ArrayList listSub = new ArrayList();
string strDeleteFlag2 = "";
if (rowSta.Cells["UCCHOOSE"].Value.ToString() == "False")
{
strDeleteFlag2 = "DELETE";
}
listSub.Add(strDeleteFlag2);//0
listSub.Add(msc);//最终保存的时候赋值。1
listSub.Add(strMaxMscPline);//2
listSub.Add(rowSta.GetValue("BACKLOG_SEQ"));//3
listSub.Add(rowSta.GetValue("PROCESS_CODE"));//4
listSub.Add(rowSta.GetValue("PROCESS_DESC"));//5
listSub.Add(rowSta.GetValue("STATION_CODE"));//6
listSub.Add(rowSta.GetValue("STATION_DESC"));//7
listSub.Add(rowSta.GetValue("STATION_TYPE_CODE"));//8
listSub.Add(rowSta.GetValue("STATION_ID"));//9
listSub.Add(rowSta.GetValue("COST"));//10
listSub.Add(rowSta.GetValue("CHOOSE") == "True" ? "1" : "0");//11
listSub.Add(rowSta.GetValue("RETURN_RESULT") == "True" ? "1" : "0");//12
listSub.Add(rowSta.GetValue("SEND_CHECKPLAN") == "True" ? "1" : "0");//13
listSub.Add(frm.UserInfo.GetUserName());//14
listSub.Add(rowSta.GetValue("PROCESS_SEQ"));//15
listSub.Add(rowSta.GetValue("MEMO"));//16
listSub.Add(rowSta.GetValue("PROCESS_CODE_C"));
listSub.Add(rowSta.GetValue("PROCESS_DESC_C"));
list3.Add(listSub);
}
//foreach (ArrayList listStation in listStations)
//{
// listStation[1] = frm.ultraGrid2.ActiveRow.Cells["MSC"].Value.ToString();
// listStation[2] = strMaxMscPline;
// list3.Add(listStation);
//}
}
try
{
ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.insertMscBackLog",
new object[] { list1, list2, list3 }, frm.ob);
}
catch
{
return false;
}
MessageUtil.ShowTips("新增成功!");
return true;
}
///
/// 修改工艺文件路径
///
///
///
public static void UpdateCraftPath(FrmProPSCMSC2 frm)
{
UltraGridRow row = frm.UltraGrid4.ActiveRow;
ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.updateCraftPath",
new object[] { row.GetValue("MSC"), row.GetValue("MSC_PLINE"), row.Cells["CRAFT_PATH"].Tag.ToString2() }, frm.ob);
}
///
/// 修改工艺贴图
///
///
public static void UpdateProcessFile(string processFile, string msc, string mscPline, string processCode, OpeBase ob)
{
ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.updateProcessFile",
new object[] { new string[] { processFile, msc, mscPline, processCode } }, ob);
}
public static bool Update(FrmProPSCMSC2 frm)
{
if (CheckData(frm, "Update") == false) return false;
frm.UltraGrid5.UpdateData();
if (MessageUtil.ShowYesNoAndQuestion("是否修改所选择的记录?") == DialogResult.No)
{
return false;
}
string[] strWhole_BackLogs = GetWhole_BackLog(frm);
string msc = "";//如果选择的是接箍,那么msc字段保存接箍码。否则保存msc。
if (frm.ControlMsc.GridMsc.ActiveRow.ChildBands != null)
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["MSC"].Value.ToString();
}
else
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["KEY_JG"].Value.ToString();
}
ArrayList list1 = new ArrayList();
list1.Add(strWhole_BackLogs[0]);
list1.Add(strWhole_BackLogs[1]);
list1.Add(frm.UserInfo.GetUserName());
list1.Add(frm.UltraGrid4.GetActiveRowValue("PROCESS_NO"));
list1.Add(frm.UltraGrid4.ActiveRow.Cells["MEMO"].Value.ToString());
list1.Add(frm.UltraGrid4.ActiveRow.Cells["AUTO_CRAFT"].Value.ToString());
list1.Add(msc);
list1.Add(frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString());
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();
foreach (UltraGridRow row in frm.UltraGrid5.Rows)
{
string strDeleteFlag = "";
string cic = row.GetValue("CIC");
string pic = row.GetValue("PIC");
string dic = row.GetValue("DIC");
string sic = row.GetValue("SIC");
string wic = row.GetValue("WIC");
string gic = row.GetValue("GIC");
string processCode = row.Cells["PROCESS_CODE"].Value.ToString();
if (row.Cells["CHK"].Value.ToString() == "False")
{
strDeleteFlag = "DELETE";
}
else
{
if (frm._dicMscStation.ContainsKey(processCode))
{
UltraGrid ultraGridSta2 = frm._dicMscStation[processCode];
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403201" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
cic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403202" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
pic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403203" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
sic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403204" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
dic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403205" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
wic = "";
}
if (ultraGridSta2.Rows.Where(a => a.GetValue("STATION_TYPE_CODE") == "403208" && a.GetValue("UCCHOOSE") == "True").Count() == 0)
{
gic = "";
}
}
}
//string MaxMscProBkLog_seq = QueryMaxMscProBkLog_seq(frm, strMaxMscPline);
ArrayList listProcess = new ArrayList();
listProcess.Add(strDeleteFlag);
listProcess.Add(msc);
listProcess.Add(frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString());
listProcess.Add(row.Cells["BACKLOG_SEQ"].Value.ToString());
listProcess.Add(frm.UserInfo.GetUserName());
listProcess.Add(row.Cells["PROCESS_CODE"].Value.ToString());
listProcess.Add(row.Cells["PROCESS_DESC"].Value.ToString());
listProcess.Add(row.Cells["MINUTE_PRODUCT"].Value.ToString());
listProcess.Add(row.Cells["MINUTE_WAITE"].Value.ToString());
listProcess.AddRange(row.GetValue("BATCH_WAITE"), row.GetValue("MINUTE_PRODUCT_OUT"),
row.GetValue("MINUTE_WAITE_OUT"), row.GetValue("BATCH_WAITE_OUT"));
listProcess.Add(row.Cells["COST"].Value.ToString());
listProcess.Add(cic);
listProcess.Add(pic);
listProcess.Add(sic);
listProcess.Add(dic);
listProcess.Add(wic);
listProcess.Add(gic);
listProcess.Add(row.Cells["MEMO"].Value.ToString());
listProcess.Add(row.GetValue("PROCESS_CODE_C"));
listProcess.Add(row.GetText("PROCESS_CODE_C"));
listProcess.Add(row.GetValue("ICOUNT"));
listProcess.Add(row.GetValue("PROCESS_FILE"));
list2.Add(listProcess);
if (frm._dicMscStation.ContainsKey(processCode) == false) continue;
UltraGrid ultraGridSta = frm._dicMscStation[processCode];
foreach (UltraGridRow rowSta in ultraGridSta.Rows)
{
//如果工序选择的二级工序和工序点选择的不一致,则不对工序点进行保存,只保存工序。
if (rowSta.GetValue("PROCESS_CODE_C") != row.GetValue("PROCESS_CODE_C"))
{
continue;
}
ArrayList listSub = new ArrayList();
string strDeleteFlag2 = "";
if (rowSta.Cells["UCCHOOSE"].Value.ToString() == "False")
{
strDeleteFlag2 = "DELETE";
}
listSub.Add(strDeleteFlag2);//0
listSub.Add(msc);//最终保存的时候赋值。1
listSub.Add(frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString());//2
listSub.Add(rowSta.Cells["BACKLOG_SEQ"].Value.ToString());//3
listSub.Add(rowSta.Cells["PROCESS_CODE"].Value.ToString());//4
listSub.Add(rowSta.Cells["PROCESS_DESC"].Value.ToString());//5
listSub.Add(rowSta.Cells["STATION_CODE"].Value.ToString());//6
listSub.Add(rowSta.Cells["STATION_DESC"].Value.ToString());//7
listSub.Add(rowSta.Cells["STATION_TYPE_CODE"].Value.ToString());//8
listSub.Add(rowSta.Cells["STATION_ID"].Value.ToString());//9
listSub.Add(rowSta.Cells["COST"].Value.ToString());//10
listSub.Add(rowSta.Cells["CHOOSE"].Value.ToString() == "True" ? "1" : "0");//11
listSub.Add(rowSta.Cells["RETURN_RESULT"].Value.ToString() == "True" ? "1" : "0");//12
listSub.Add(rowSta.Cells["SEND_CHECKPLAN"].Value.ToString() == "True" ? "1" : "0");//13
listSub.Add(frm.UserInfo.GetUserName());//14
listSub.Add(rowSta.Cells["PROCESS_SEQ"].Value.ToString());//15
listSub.Add(rowSta.Cells["MEMO"].Value.ToString());//16
listSub.Add(rowSta.GetValue("PROCESS_CODE_C"));
listSub.Add(rowSta.GetValue("PROCESS_DESC_C"));
list3.Add(listSub);
}
}
try
{
ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.updateMscBackLog",
new object[] { list1, list2, list3, frm.OrdLnPk }, frm.ob);
}
catch
{
return false;
}
MessageUtil.ShowTips("修改成功!");
return true;
}
private static string GetMaxMscPline(FrmProPSCMSC2 frm)
{
string msc = "";//如果选择的是接箍,那么msc字段保存接箍码。否则保存msc。
if (frm.ControlMsc.GridMsc.ActiveRow.ChildBands != null)
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["MSC"].Value.ToString();
}
else
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["KEY_JG"].Value.ToString();
}
ArrayList list = new ArrayList();
list.Add(msc);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMaxMscBackLogPline",
new object[] { list }, frm.ob);
if (dt != null)
{
return dt.Rows[0][0].ToString();
}
return "";
}
private static string[] GetWhole_BackLog(FrmProPSCMSC2 frm)
{
string[] strWhole_BackLogs = new string[] { "", "" };
int i = 0;
foreach (UltraGridRow row in frm.UltraGrid5.Rows)
{
if (row.Cells["CHK"].Value.ToString() == "True")
{
if (i == 0)
{
strWhole_BackLogs[0] += row.Cells["PROCESS_CODE"].Value.ToString();
strWhole_BackLogs[1] += row.GetValue("PROCESS_DESC") + "【" + row.GetText("PROCESS_CODE_C") + "】";
}
else
{
strWhole_BackLogs[0] += "-" + row.Cells["PROCESS_CODE"].Value.ToString();
strWhole_BackLogs[1] += "-" + row.GetValue("PROCESS_DESC") + "【" + row.GetText("PROCESS_CODE_C") + "】";
}
i++;
}
}
return strWhole_BackLogs;
}
private static string QueryMaxMscProBkLog_seq(FrmProPSCMSC2 frm, string strMaxMscPline)
{
string msc = "";//如果选择的是接箍,那么msc字段保存接箍码。否则保存msc。
if (frm.ControlMsc.GridMsc.ActiveRow.ChildBands != null)
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["MSC"].Value.ToString();
}
else
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["KEY_JG"].Value.ToString();
}
ArrayList list = new ArrayList();
list.Add(msc);
list.Add(strMaxMscPline);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryMaxMscProBkLog_seq",
new object[] { list }, frm.ob);
if (dt != null)
{
return dt.Rows[0][0].ToString();
}
return "";
}
public static bool Delete(FrmProPSCMSC2 frm)
{
string msc = frm.UltraGrid4.ActiveRow.Cells["MSC"].Value.ToString();
string mscPline = frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString();
//if (IsExistProcess(frm, msc, mscPline))
//{
// MessageUtil.ShowWarning("请先作废制程下面的工序,然后再进行操作!");
// return false;
//}
//if (IsExistGrade(frm, msc, mscPline))
//{
// MessageUtil.ShowWarning("请先作废制程下面的钢种,然后再进行操作!");
// return false;
//}
return DeleteOrResume(frm, "0");
}
public static bool Resume(FrmProPSCMSC2 frm)
{
return DeleteOrResume(frm, "1");
}
private static bool DeleteOrResume(FrmProPSCMSC2 frm, string validFlag)
{
string strAction = validFlag == "1" ? "Resume" : "Delete";
if (CheckData(frm, strAction) == false) return false;
if (MessageUtil.ShowYesNoAndQuestion("是否" + (validFlag == "1" ? "恢复" : "作废") + "所选择的记录?")
== DialogResult.No)
{
return false;
}
ArrayList list = new ArrayList();
list.Add(validFlag);
list.Add(frm.UltraGrid4.ActiveRow.Cells["MSC"].Value.ToString());
list.Add(frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString());
list.Add(frm.UserInfo.GetUserName());
try
{
ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.deleteOrResumeMscBackLog",
new object[] { list }, frm.ob);
}
catch
{
return false;
}
MessageUtil.ShowTips(validFlag == "1" ? "恢复" : "作废" + "成功!");
return true;
}
private static bool IsExistProcess(FrmProPSCMSC2 frm, string msc, string mscPline)
{
ArrayList list = new ArrayList();
list.AddRange(msc, mscPline);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isExistProcess",
new object[] { list }, frm.ob);
if (dt.Rows[0][0].ToString() != "0")
{
return true;
}
return false;
}
private static bool IsExistGrade(FrmProPSCMSC2 frm, string msc, string mscPline)
{
ArrayList list = new ArrayList();
list.AddRange(msc, mscPline);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isExistGrade",
new object[] { list }, frm.ob);
if (dt.Rows[0][0].ToString() != "0")
{
return true;
}
return false;
}
private static DataTable GetMscTabByMsc(string msc, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
new object[] { msc }, ob);
return dt;
}
private static bool CheckData(FrmProPSCMSC2 frm, string strAction)
{
UltraGridRow[] rows = GridHelper.GetRowsWithKey(frm.UltraGrid5,
new string[] { "CHK" }, new string[] { "True" });
if (frm.ControlMsc.GridMsc.ActiveRow == null)
{
MessageUtil.ShowWarning("选择一条冶金规范码后再进行操作!");
frm.ultraTabControl1.Tabs["MSC"].Selected = true;
return false;
}
else if (frm.ControlMsc.MscRow.Cells["MSC"].Value.ToString() == "")
{
MessageUtil.ShowWarning("请先新增冶金规范码后再进行操作!");
frm.ultraTabControl1.Tabs["MSC"].Selected = true;
return false;
}
string msc = frm.ControlMsc.MscRow.Cells["MSC"].Value.ToString();
if (strAction == "Insert")
{
if (isExistBackLog(msc, "1", GetWhole_BackLog(frm)[1], frm) == true)
{
MessageUtil.ShowWarning("系统已存在相同的制程!");
return false;
}
}
if ((strAction == "Update" || strAction == "Delete" || strAction == "Resume") && frm.UltraGrid4.ActiveRow == null)
{
MessageUtil.ShowWarning("选择一条制程后再进行操作!");
return false;
}
DataTable dtMsc = GetMscTabByMsc(msc, frm.ob);
//if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != CoreUserInfo.UserInfo.GetDeptid()
// && CoreUserInfo.UserInfo.GetUserID() != "admin" && frm._dicMscStation.Count > 0)
//{
// MessageUtil.ShowWarning("该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!");
// return false;
//}
if (strAction == "Update")
{
if (isExistBackLog(msc, frm.UltraGrid4.ActiveRow.GetValue("MSC_PLINE"),
GetWhole_BackLog(frm)[1], frm) == true)
{
MessageUtil.ShowWarning("系统已存在相同的制程!");
return false;
}
}
//if (strAction == "Insert" || strAction == "Update")
//{
// string mscPline = frm.UltraGrid4.ActiveRow == null ? "" : frm.UltraGrid4.ActiveRow.GetValue("MSC_PLINE");
// string backLogDesc = GetWhole_BackLog(frm)[1];
// if(GetBackLogDescCnt(msc, backLogDesc, strAction,
// "", frm.ob) > 0)
// {
// MessageUtil.ShowWarning("系统已存在该全程途径描述!");
// return false;
// }
//}
if (strAction == "Update")
{
DataTable comMscBackLog = QueryComMscBacklogByPk(frm.UltraGrid4.ActiveRow.GetValue("MSC"),
frm.UltraGrid4.ActiveRow.GetValue("MSC_PLINE"), frm);
if (comMscBackLog.Rows[0]["VALIDFLAG"].ToString2() != "1")
{
MessageUtil.ShowWarning("只能修改录入状态的制程!");
return false;
}
//if (GetDesignBomCnt(msc, frm.UltraGrid4.ActiveRow.GetValue("MSC_PLINE"), frm.ob) > 0)
//{
// MessageUtil.ShowWarning("该制程已生成物料信息,不允许修改!");
// return false;
//}
}
if (strAction == "Delete" && frm.UltraGrid4.ActiveRow.GetValue("VALIDFLAG") != "1")
{
MessageUtil.ShowWarning("只能作废录入状态的制程!");
return false;
}
if (strAction == "Update" || strAction == "Insert")
{
foreach (UltraGridRow row in rows)
{
if (row.Cells["MINUTE_PRODUCT"].Value.ToString() == "")
{
MessageUtil.ShowWarning("自炼生产时间不能为空!");
row.Cells["MINUTE_PRODUCT"].Activate();
return false;
}
else if (row.Cells["MINUTE_PRODUCT"].Value.ToString().TryParseDecimal() == false)
{
MessageUtil.ShowWarning("请输入合法的自炼生产时间!");
row.Cells["MINUTE_PRODUCT"].Activate();
return false;
}
if (row.Cells["MINUTE_WAITE"].Value.ToString() == "")
{
MessageUtil.ShowWarning("自炼等待时间不能为空!");
row.Cells["MINUTE_WAITE"].Activate();
return false;
}
else if (row.Cells["MINUTE_WAITE"].Value.ToString().TryParseDecimal() == false)
{
MessageUtil.ShowWarning("请输入合法的自炼等待时间!");
row.Cells["MINUTE_WAITE"].Activate();
return false;
}
if (row.Cells["BATCH_WAITE"].Value.ToString() == "")
{
MessageUtil.ShowWarning("自炼批量等待时间不能为空!");
row.Cells["BATCH_WAITE"].Activate();
return false;
}
else if (row.Cells["BATCH_WAITE"].Value.ToString().TryParseDecimal() == false)
{
MessageUtil.ShowWarning("请输入合法的自炼批量等待时间!");
row.Cells["BATCH_WAITE"].Activate();
return false;
}
if (row.Cells["MINUTE_PRODUCT_OUT"].Value.ToString() == "")
{
MessageUtil.ShowWarning("外购生产时间不能为空!");
row.Cells["MINUTE_PRODUCT_OUT"].Activate();
return false;
}
else if (row.Cells["MINUTE_PRODUCT_OUT"].Value.ToString().TryParseDecimal() == false)
{
MessageUtil.ShowWarning("请输入合法的外购生产时间!");
row.Cells["MINUTE_PRODUCT_OUT"].Activate();
return false;
}
if (row.Cells["MINUTE_WAITE_OUT"].Value.ToString() == "")
{
MessageUtil.ShowWarning("外购等待时间不能为空!");
row.Cells["MINUTE_WAITE_OUT"].Activate();
return false;
}
else if (row.Cells["MINUTE_WAITE_OUT"].Value.ToString().TryParseDecimal() == false)
{
MessageUtil.ShowWarning("请输入合法的外购等待时间!");
row.Cells["MINUTE_WAITE_OUT"].Activate();
return false;
}
if (row.Cells["BATCH_WAITE_OUT"].Value.ToString() == "")
{
MessageUtil.ShowWarning("外购批量等待时间不能为空!");
row.Cells["BATCH_WAITE_OUT"].Activate();
return false;
}
else if (row.Cells["BATCH_WAITE_OUT"].Value.ToString().TryParseDecimal() == false)
{
MessageUtil.ShowWarning("请输入合法的外购批量等待时间!");
row.Cells["BATCH_WAITE_OUT"].Activate();
return false;
}
if (row.Cells["COST"].Value.ToString() == "")
{
MessageUtil.ShowWarning("工序成本不能为空!");
row.Cells["COST"].Activate();
return false;
}
if (row.Cells["PROCESS_CODE_C"].Value.ToString() == "")
{
MessageUtil.ShowWarning("请选择二级工序!");
row.Cells["PROCESS_CODE_C"].Activate();
return false;
}
if (isExistStation(frm, row) == true)
{
if (row.GetValue("PROCESS_SEQ_OLD") != "" && row.GetValue("PROCESS_SEQ_OLD") != row.GetValue("ICOUNT"))
{
MessageUtil.ShowWarning("工序[" + row.GetValue("PROCESS_DESC") + "]的循环次数被修改,请重新选择该工序的工序点!");
row.SetCellActive("BTN");
return false;
}
if (row.GetValue("PROCESS_CODE_C_OLD") != row.GetValue("PROCESS_CODE_C"))
{
MessageUtil.ShowWarning("工序[" + row.GetValue("PROCESS_DESC") + "]的二级工序被修改,请重新选择该工序的工序点!");
row.SetCellActive("BTN");
return false;
}
}
}
//检查内控标准维护是否和工序点的类型一致。
//string processCode = row.Cells["PROCESS_CODE"].Value.ToString();
//if (frm._dicMscStation.ContainsKey(processCode) == false)
//{
// if (CheckStationType2(row, frm, processCode) == false)
// {
// return false;
// }
//}
//else
//{
// UltraGrid ultraGridSta = frm._dicMscStation[processCode];
// if (CheckStationType(row, ultraGridSta) == false)
// {
// return false;
// }
//}
}
return true;
}
private static int GetBackLogDescCnt(string msc, string backLogDesc, string strAction, string mscPline, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getBackLogDescCnt",
new object[] { backLogDesc, msc, strAction, mscPline }, ob);
return int.Parse(dt.Rows[0][0].ToString());
}
private static int GetDesignBomCnt(string msc, string mscPline, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getDesignBomCnt",
new object[] { msc, mscPline }, ob);
return int.Parse(dt.Rows[0][0].ToString());
}
private static bool isExistStation(FrmProPSCMSC2 frm, UltraGridRow row)
{
DataTable dt = null;
ArrayList list = new ArrayList();
list.Add(row.Cells["PROCESS_CODE"].Value.ToString());
list.Add(row.GetValue("PROCESS_CODE_C"));
try
{
dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryBaseStation",
new object[] { list }, frm.ob);
}
catch
{
return false;
}
if (dt.Rows.Count > 0)
{
return true;
}
return false;
}
private static bool CheckStationType(UltraGridRow row, UltraGrid ultraGridSta)
{
string[] strCic = row.Cells["CIC"].Value.ToString().Split(',');
string[] strPic = row.Cells["PIC"].Value.ToString().Split(',');
string[] strSic = row.Cells["SIC"].Value.ToString().Split(',');
string[] strDic = row.Cells["DIC"].Value.ToString().Split(',');
string[] strWic = row.Cells["WIC"].Value.ToString().Split(',');
if (IsSelectStandPay(ultraGridSta, "403201", "成分标准", strCic) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(ultraGridSta, "403202", "理化标准", strPic) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(ultraGridSta, "403203", "公差标准", strSic) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(ultraGridSta, "403204", "探伤标准", strDic) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(ultraGridSta, "403205", "水压标准", strWic) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
return true;
}
private static bool IsSelectStandPay(UltraGrid ultraGridSta, string typeCode, string typeName, string[] strIc)
{
UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGridSta,
new string[] { "UCCHOOSE", "STATION_TYPE_CODE" }, new string[] { "True", typeCode });
if (rows.Length == 0)
{
if (strIc[0] != "" && strIc.Length > 0)
{
MessageUtil.ShowWarning(string.Format("由于所选择的工序点类型中,不包含{0}标准,所以不能选择{0}内控标准!", typeName));
return false;
}
}
else
{
if (strIc[0] == "")
{
MessageUtil.ShowWarning(string.Format("请选择一条{0}内控标准!", typeName));
return false;
}
}
return true;
}
private static bool CheckStationType2(UltraGridRow row, FrmProPSCMSC2 frm, string processCode)
{
string[] strCic = row.Cells["CIC"].Value.ToString().Split(',');
string[] strPic = row.Cells["PIC"].Value.ToString().Split(',');
string[] strSic = row.Cells["SIC"].Value.ToString().Split(',');
string[] strDic = row.Cells["DIC"].Value.ToString().Split(',');
string[] strWic = row.Cells["WIC"].Value.ToString().Split(',');
if (IsSelectStandPay(frm, "403201", "成分标准", strCic, processCode) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(frm, "403202", "理化标准", strPic, processCode) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(frm, "403203", "公差标准", strSic, processCode) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(frm, "403204", "探伤标准", strDic, processCode) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
else if (IsSelectStandPay(frm, "403205", "水压标准", strWic, processCode) == false)
{
row.Cells["BTN2"].Activate();
return false;
}
return true;
}
private static bool IsSelectStandPay(FrmProPSCMSC2 frm, string typeCode, string typeName, string[] strIc, string processCode)
{
string msc = "";
if (frm.UltraGrid4.ActiveRow == null) return true;
if (frm.ControlMsc.GridMsc.ActiveRow.ChildBands != null)
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["MSC"].Value.ToString();
}
else
{
msc = frm.ControlMsc.GridMsc.ActiveRow.Cells["KEY_JG"].Value.ToString();
}
ArrayList list = new ArrayList();
list.Add(msc);
list.Add(frm.UltraGrid4.ActiveRow.Cells["MSC_PLINE"].Value.ToString());
list.Add(typeCode);
list.Add(processCode);
list.Add(typeCode);
list.Add(processCode);
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.querySttnTypeCnt", new object[] { list }, frm.ob);
if (dt.Rows[0][0].ToString() == "0")
{
if (strIc[0] != "" && strIc.Length > 0)
{
MessageUtil.ShowWarning(string.Format("由于所选择的工序点类型中,不包含{0}标准,所以不能选择{0}内控标准!", typeName));
return false;
}
}
else
{
if (strIc[0] == "")
{
MessageUtil.ShowWarning(string.Format("请选择一条{0}内控标准!", typeName));
return false;
}
}
return true;
}
public static bool CopyBackLog(string msc, FrmProPSCMSC2 frm, string copyMsc, string mscPline)
{
if (frm.ControlMsc.GridMsc.ActiveRow == null)
{
MessageUtil.ShowWarning("选择一条冶金规范码后再进行操作!");
frm.ultraTabControl1.Tabs["MSC"].Selected = true;
return false;
}
else if (frm.ControlMsc.MscRow.Cells["MSC"].Value.ToString() == "")
{
MessageUtil.ShowWarning("请先新增冶金规范码后再进行操作!");
frm.ultraTabControl1.Tabs["MSC"].Selected = true;
return false;
}
if (String.IsNullOrEmpty(mscPline) && ExistBackLog(msc, frm) == true)
{
MessageUtil.ShowWarning("该MSC下存在制程,不能使用复制功能!");
return false;
}
else if(!String.IsNullOrEmpty(mscPline)){
DataTable comMscBackLog = QueryComMscBacklogByPk(msc, mscPline, frm);
if (comMscBackLog.Rows.Count > 0)
{
MessageUtil.ShowWarning("该MSC下 " + mscPline + " 存在制程,不能使用复制功能!");
return false;
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否复制" + copyMsc + "下 " + mscPline + "制程?") == DialogResult.No)
{
return false;
}
ServerHelper.SetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.CopyBackLog",
new object[] { msc, CoreUserInfo.UserInfo.GetUserName(), copyMsc.ToString2(), mscPline.ToString2() }, frm.ob);
MessageUtil.ShowTips("复制成功!\r\n复制的数据为无效状态,请核实后再进行恢复操作!");
Query(frm);
return true;
}
private static bool ExistBackLog(string msc, FrmProPSCMSC2 frm)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryExistBackLog",
new object[] { msc }, frm.ob);
if (dt.Rows.Count > 0)
{
return true;
}
else
{
return false;
}
}
private static DataTable QueryComMscBacklogByPk(string msc, string mscPline, FrmProPSCMSC2 frm)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryComMscBacklogByPk",
new object[] { msc, mscPline }, frm.ob);
return dt;
}
///
/// 通过主键查询二级工序
///
///
///
///
public static DataTable QueryComBaseProcessCByPk(string processCodeC, FrmProPSCMSC2 frm)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.queryComBaseProcessCByPk",
new object[] { processCodeC }, frm.ob);
return dt;
}
///
/// 是否存在全程途径码
///
///
///
///
///
public static bool isExistBackLog(string msc, string mscPline, string wholeBacklogDesc, FrmProPSCMSC2 frm)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.isExistsBackLog",
new object[] { msc, mscPline, wholeBacklogDesc }, frm.ob);
if (dt.Rows[0][0].ToString() == "0")
{
return false;
}
else
{
return true;
}
}
}
}