| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615 |
-
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Net;
- using System.Windows.Forms;
- using com.steering.mes.mcp.entity;
- using Core.Mes.Client.Comm.Format;
- using Core.Mes.Client.Comm.Server;
- using Core.Mes.Client.Comm.Tool;
- using Core.StlMes.Client.Mcp.Control;
- using Core.StlMes.Client.Mcp.Control.Common;
- using Core.StlMes.Client.Mcp.Control.Entity;
- using Core.StlMes.Client.Mcp.Mch.MchResult;
- using CoreFS.CA06;
- using Infragistics.Win;
- using Infragistics.Win.UltraWinGrid;
- namespace Core.StlMes.Client.Mcp.Mch
- {
- public partial class FrmCrackDetectResult :FrmMchBase
- {
- public FrmCrackDetectResult()
- {
- InitializeComponent();
- mchControlBase1 = new MchCrackControl();
- commonCrackDetection1.SetWorkUnit = true;
- /* {
- Dock = DockStyle.Fill
- };
- plnEdit.Controls.Add(mchControlBase1);*/
- }
-
- protected override UltraGridRow ActitveResultRow { get { return CrackDetectGrid.ActiveRow; } }
- protected override void OnLoad(EventArgs e)
- {
- base.OnLoad(e);
- EntityHelper.ShowGridCaption<HttCrackDetectionEtEntity>(CrackDetectGrid.DisplayLayout.Bands[0]);
- base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActCount"].Hidden = true;
- base.ultraGrid1.DisplayLayout.Bands[0].Columns["ActWeight"].Hidden = true;
- base.ultraGrid1.DisplayLayout.Bands[0].Columns["BatchGroudNo"].Hidden = true;
- CrackDetectGrid.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
- CrackDetectGrid.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
- ultraOptionSet2.Visible = false;
- commonCrackDetection1.Init(ob, GetMatNo);
- commonCrackDetection1.ChangeData += ChangeData;
- }
- private void ChangeData(HttCrackDetectionEtEntity data)
- {
- if (ActiveRow == null) return;
- //需要经过探伤的支数
- int NeedTest = mchControlBase1.OkPort.Count;
- String Typr = commonCrackDetection1.ReportType;
- List<HttCrackDetectionEtEntity> ProductionList =
- mchCrackDetectionEntityBindingSource.DataSource as List<HttCrackDetectionEtEntity>;
- //已经录过当前探伤种类的支数
- int TestedNum = (int)ProductionList.Where(p => p.ReportNo == Typr && p.MachineNo == data.MachineNo).Sum(p => p.TestingNum);
- //不属于该种类的废品( 该种类的废品已经包含在TestedNum)
- int WasteNum = (int)ProductionList.Sum(p => (p.EwasteNum??0) + (p.RejectNum??0) + (p.EwasteNumEt??0) ) ;
- data.TestingNum = NeedTest - TestedNum - WasteNum;
- if (data.TestingNum < 0)
- {
- int OffNum = GetReturnNum();
- data.TestingNum = NeedTest - TestedNum - WasteNum+ data.TestingNum + OffNum;
- if (data.TestingNum < 0)
- {
- data.TestingNum = 0;
- }
- }
- commonCrackDetection1.ChangeValue(data);
- }
- public List<PortMchBatchSampleResultEntityWithCheck> GetMatNo()
- {
- return
- EntityHelper.GetData<PortMchBatchSampleResultEntityWithCheck>(
- "com.steering.mes.mcp.common.PlanService.getQueryJGPortVrphot",
- new object[] { ActiveRow.HeatPlanNo, ActiveRow.BatchNo }, ob);
- }
- protected override void DoAdd()
- {
- if (ActiveRow != null)
- {
- if (MessageUtil.ShowYesNoAndQuestion("是否增加探伤实绩?") == DialogResult.No)
- return;
- string Message = "";
- if (!commonCrackDetection1.CheckNull(out Message))
- {
- MessageBox.Show(Message);
- return;
- }
- HttCrackDetectionEtEntity data = commonCrackDetection1.GetValue();
- data.TestingWt = GetWeight(portMchBatchControl1.Data, Gx,
- int.Parse(data.TestingNum.ToString3()),
- int.Parse(ActiveRow.ProCount.ToString3()));
- var para = commonCrackDetection1.GetPara();
- try
- {
- string sortcode = "";
- bool supervisor = false;
- var dt1 = ServerHelper.GetData(
- "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
- new object[] { "704101" }, ob);
- if (dt1 != null && dt1.Rows.Count > 0)
- {
- foreach (DataRow row in dt1.Rows)
- {
- if (row["BASENAME"].ToString() == para.ReportNo.ToString())
- {
- sortcode = row["BASECODE"].ToString();
- break;
- }
- }
- }
- var dt2 = ServerHelper.GetData(
- "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo",
- new object[] { sortcode }, ob);
- if (dt2 != null && dt2.Rows.Count > 0)
- {
- foreach (DataRow row in dt2.Rows)
- {
- if ((row["BASENAME"].ToString().Trim().ToUpper()) == data.PlineCode.ToString().Trim().ToUpper())
- {
- supervisor = true;
- break;
- }
- }
- }
- if (supervisor)
- {
- string type = para.ReportNo.ToString().Trim();
- if (type== "0"|| type == "15"||type == "10"||type == "1")
- {
- #region 探伤监督者管控
- if (!(para.SignatoryLevel.Trim() == "UT-2" || para.SignatoryLevel.Trim() == "UT-3"))
- {
- MessageBox.Show("签发等级只能为UT-2,UT-3!");
- return;
- }
- if (!(para.OperatorLevel.Trim() == "UT-2" || para.OperatorLevel.Trim() == "UT-1"))
- {
- MessageBox.Show("操作者等级只能是UT-2,UT-1!");
- return;
- }
- if (!(para.SupervisorLevel.Trim() == "UT-2" || para.SupervisorLevel.Trim().Length == 0 || para.SupervisorLevel.Trim() == "UT-3" || para.SupervisorLevel.Trim() == "/"))
- {
- MessageBox.Show("监督者等级只能是UT-2,UT-3!");
- return;
- }
- if (para.SignatoryLevel.Trim() == "UT-1")
- {
- MessageBox.Show("签发等级不能为UT-1");
- return;
- }
- if (para.Signatory.Trim() == "")
- {
- MessageBox.Show("签发者不能为空");
- return;
- }
- if (para.OperatorLevel == "UT-1")
- {
- if (!(para.SupervisorLevel.Trim() == "UT-2"))
- {
- MessageBox.Show("操作者等级为UT-1, 监督者等级必须为UT-2");
- return;
- }
- if (para.Supervisor.Trim() == "")
- {
- MessageBox.Show("操作者等级为UT-1,监督者不能为空");
- return;
- }
- }
- if (para.OperatorLevel == "UT-2")
- {
- if ((para.SupervisorLevel.Trim() != "" || para.Supervisor.Trim() != ""))
- {
- MessageBox.Show("操作者等级为UT-2,监督者和监督者等级必须为空");
- return;
- }
- }
- #endregion
- }
- if (type == "12" || type == "11") //MT 和UT 可以用Replace替换,合成一个方法,
- {
- # region 磁粉监督者管控
- if (!(para.SignatoryLevel.Trim() == "MT-2" || para.SignatoryLevel.Trim() == "MT-3"))
- {
- MessageBox.Show("签发等级只能为MT-2,MT-3!");
- return;
- }
- if (!(para.OperatorLevel.Trim() == "MT-2" || para.OperatorLevel.Trim() == "MT-1"))
- {
- MessageBox.Show("操作者等级只能是MT-2,MT-1!");
- return;
- }
- if (!(para.SupervisorLevel.Trim() == "MT-2" || para.SupervisorLevel.Trim().Length == 0 || para.SupervisorLevel.Trim() == "MT-3" || para.SupervisorLevel.Trim() == "/"))
- {
- MessageBox.Show("监督者等级只能是MT-2,MT-3!");
- return;
- }
- if (para.SignatoryLevel.Trim() == "MT-1")
- {
- MessageBox.Show("签发等级不能为MT-1");
- return;
- }
- if (para.Signatory.Trim() == "")
- {
- MessageBox.Show("签发者不能为空");
- return;
- }
- if (para.OperatorLevel == "MT-1")
- {
- if (!(para.SupervisorLevel.Trim() == "MT-2"))
- {
- MessageBox.Show("操作者等级为UT-1, 监督者等级必须为MT-2");
- return;
- }
- if (para.Supervisor.Trim() == "")
- {
- MessageBox.Show("操作者等级为MT-1,监督者不能为空");
- return;
- }
- }
- if (para.OperatorLevel == "MT-2")
- {
- if ((para.SupervisorLevel.Trim() != "" || para.Supervisor.Trim() != ""))
- {
- MessageBox.Show("操作者等级为MT-2,监督者和监督者等级必须为空");
- return;
- }
- }
- #endregion
- }
- }
- }
- catch { }
- List<HttCrackDetectionStandardEntity> stand = commonCrackDetection1.GetStand();
- var ccp = new CoreClientParam();
- ccp.ServerName = "com.steering.mes.mcp.Mch.FrmCrackDetectResult";
- ccp.MethodName = "DoAdd";
- ccp.ServerParams = new object[]
- {
- JSONFormat.Format(data),
- commonCrackDetection1.GetScrapList().Select(JSONFormat.Format).ToList(),
- commonCrackDetection1.GetSuspiciousList().Select(JSONFormat.Format).ToList(),
- commonCrackDetection1.GetUnPassList().Select(JSONFormat.Format).ToList(),
- JSONFormat.Format(commonCrackDetection1.GetPara()),
- commonCrackDetection1.GetProbe().Select(JSONFormat.Format).ToList(),
- stand.Select(JSONFormat.Format).ToList(),
- Gx
- };
- ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips(ccp.ReturnInfo);
- if (ccp.ReturnInfo.Equals("新增探伤成功!"))
- {
- Query();
- }
- }
- }
- }
- protected override void DoDelete()
- {
- {
- if (ActiveRow != null && ActitveResultRow != null)
- {
- if (MessageUtil.ShowYesNoAndQuestion("是否删除探伤实绩?") == DialogResult.No)
- return;
- var ccp = new CoreClientParam();
- ccp.ServerName = "com.steering.mes.mcp.Mch.FrmCrackDetectResult";
- ccp.MethodName = "DoDelete";
- ccp.ServerParams = new object[]
- {
- JSONFormat.Format(ActitveResultRow.ListObject), Gx
- };
- ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips(ccp.ReturnInfo);
- if (ccp.ReturnInfo.Equals("删除成功!"))
- {
- if (!string.IsNullOrEmpty(ActitveResultRow.Cells["Report"].Value.ToString2()))
- {
- try
- {
- FileHelper.Delete(ActitveResultRow.Cells["Report"].Value.ToString2());
- }
- catch (Exception)
- {
- MessageUtil.ShowTips("报告删除失败!");
- }
- }
- Query();
- }
- }
- }
- }
- }
- protected override void GetResultData()
- {
- base.GetResultData();
- GetData();
- var MchCrackControl = mchControlBase1 as MchCrackControl;
- if (MchCrackControl == null) return;
- var result = new HttCrackDetectionEtEntity()
- {
- HeatPlanNo = ActiveRow.HeatPlanNo,
- JudgeStoveNo = ActiveRow.JudgeStoveNo,
- BatchNo = ActiveRow.BatchNo,
- PlineCode = ActiveRow.PlineCode,
- PlineName = ActiveRow.PlineName,
- ColShift = UserInfo.GetUserOrder(),
- ColGroup = UserInfo.GetUserGroup(),
- ColUser = UserInfo.GetUserName(),
- ColTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
- ColEndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
- TestingNum = MchCrackControl.OkPort.Count > (ActiveRow.OperateCount ?? 0) ? MchCrackControl.OkPort.Count - (ActiveRow.OperateCount ?? 0) : 0,
- MachineNo = ActiveRow.PlineCode=="C091" || ActiveRow.PlineCode =="C092"?"2": "1",
- ProcessCode = "G"
- };
- DataTable Stand = ServerHelper.GetData("com.steering.mes.mcp.heatTreatment.FrmHttCrackDetectResult.getCrackStand", new object[] { ActiveRow.OrdLnDlyPk, ActiveRow.CraftSeq.ToString2(), ActiveRow.Dic, ActiveRow.Sic, ActiveRow.IndexSeq, "G" }, ob);
- commonCrackDetection1.DefaultCraftInfo(Stand);
- ChangeData(result);
-
- }
- private void GetData()
- {
- List<HttCrackDetectionEtEntity> list =
- EntityHelper.GetData<HttCrackDetectionEtEntity>(
- "com.steering.mes.mcp.Mch.FrmCrackDetectResult.getQueryExpandResult",
- new object[] {ActiveRow.HeatPlanNo, ActiveRow.BatchNo},
- ob);
- mchCrackDetectionEntityBindingSource.DataSource = list;
- commHelper.RefreshAndAutoSizeExceptColumns(CrackDetectGrid, "Report");
- #region 标记委外加工探伤实绩有数据的为红色
- var dt =
- ServerHelper.GetData(
- "com.steering.mes.mcp.Mch.FrmJgxReport.getHttEntrustInfo",
- new object[] { }, ob);
- List<string> lst = new List<string>();
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- if (dt.Rows[i][0].ToString().Length > 6)
- {
- if (dt.Rows[i][0].ToString().Contains("-"))
- {
- string[] sArray = dt.Rows[i][0].ToString().Split('-');
- lst.Add(sArray[0]);
- }
- }
- else
- {
- // string[] sArray = s.Split('a')
- lst.Add(dt.Rows[i][0].ToString());
- }
- }
- if ((lst != null) && lst.Any())
- foreach (
- var ultraGridRow in
- CrackDetectGrid.Rows.Where(
- p => lst.Any(q => q == p.Cells["judgeStoveNo"].Value.ToString2())))
- ultraGridRow.Appearance.BackColor = Color.Red;
- #endregion
- }
- private void utUpLoad1_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
- {
- var entity = CrackDetectGrid.ActiveRow.ListObject as HttCrackDetectionEtEntity;
- if (entity.ReportNo == "c")
- {
- MessageBox.Show("通用探伤回报无法查看或上传报告");
- return;
- }
- var ReportInfo =
- EntityHelper.GetData<HttReportEntity>(
- "com.steering.mes.mcp.Mch.FrmCrackDetectResult.GetReportCptName",
- new object[] { entity.PlineCode, entity.ReportNo, entity.MachineNo },
- ob);
- if (ReportInfo == null || ReportInfo.Count != 1)
- {
- MessageBox.Show("未维护报表编号信息");
- return;
- }
- if (string.IsNullOrEmpty(ReportInfo[0].ReportCpt))
- {
- MessageBox.Show("找不到报表模板信息");
- return;
- }
- if (entity == null) return;
- if (!entity.PlineName.Contains("天淮"))
- {
- if (CheckCraft(ReportInfo[0].ReportType, entity.ResultNo) == 0)//添加判断是否有工艺信息
- return;
- }
- var strurl = "";
- if (e.Button.Key == "VIEW")
- {
- strurl =
- "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=" + ReportInfo[0].ReportCpt + "&op=view&resultNo=" +
- entity.ResultNo + "&machineNo=" + entity.MachineNo;
- var fre = new FrmRepExcel(ob, strurl);
- fre.AutoSize = true;
- fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width,
- Screen.PrimaryScreen.WorkingArea.Height);
- fre.WindowState = FormWindowState.Maximized;
- fre.Show();
- }
- else if (e.Button.Key == "UPLOAD")
- {
- strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=" + ReportInfo[0].ReportCpt + "&format=pdf&resultNo=" + entity.ResultNo;
- var webClient = new WebClient();
- var listPdf = new List<FileBean>();
- var date = DateTime.Now.ToString("yyyyMMdd");
- var filePathNew = ""; //报告目录
- var reportNo = ""; //报告编号
- filePathNew = "Mch/CrackDetect/" + ActiveRow.JudgeStoveNo + "/" + entity.BatchNo + "/" + entity.HeatPlanNo + "/";
- reportNo = entity.ResultNo;
- var pdf = webClient.DownloadData(strurl);
- var fileBean = new FileBean();
- fileBean.setFile(pdf);
- fileBean.setFileName(reportNo + ".pdf");
- fileBean.setPathName(filePathNew);
- listPdf.Add(fileBean);
- webClient.Dispose();
- var a = FileHelper.Upload(listPdf);
- if (a)
- {
- ServerHelper.SetData("com.steering.mes.mcp.Mch.FrmCrackDetectResult.UpdatePath",
- new object[] { filePathNew + reportNo + ".pdf", entity.ResultNo }, ob);
- MessageUtil.ShowTips("上传报告成功!");
- GetData();
- }
- }
- else
- {
- MessageUtil.ShowError("系统生成PDF失败,请稍后再试!");
- }
- }
- private void CrackDetectGrid_InitializeRow(object sender, InitializeRowEventArgs e)
- {
- var HttCrackDetectionEtEntity = e.Row.ListObject as HttCrackDetectionEtEntity;
- e.Row.Cells["Report"].Appearance.BackColor = string.IsNullOrEmpty(HttCrackDetectionEtEntity.Report)
- ? Color.Red
- : Color.LightGreen;
- e.Row.Cells["Report"].EditorComponent = utUpLoad1;
- }
- protected override void DecisionRed(UltraGrid DataGrid )
- {
- #region 标记委外加工探伤实绩有数据的为红色
- var dt =
- ServerHelper.GetData(
- "com.steering.mes.mcp.Mch.FrmJgxReport.getHttEntrustInfo",
- new object[] { }, ob);
- List<string> lst = new List<string>();
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- if (dt.Rows[i][0].ToString().Length > 6)
- {
- if (dt.Rows[i][0].ToString().Contains("-"))
- {
- string[] sArray = dt.Rows[i][0].ToString().Split('-');
- lst.Add(sArray[0]);
- }
- }
- else
- {
- // string[] sArray = s.Split('a')
- lst.Add(dt.Rows[i][0].ToString());
- }
- }
- if ((lst != null) && lst.Any())
- foreach (
- var ultraGridRow in
- DataGrid.Rows.Where(
- p => lst.Any(q => q == p.Cells["JudgeStoveNo"].Value.ToString2())))
- ultraGridRow.Appearance.BackColor = Color.Red;
- #endregion
- }
- public static decimal GetWeight(List<PortMchBatchSampleResultEntity> PortData, string gx, int NUM, int Count1)
- {
- if (PortData == null || !PortData.Any()) return 0;
- List<PortMchBatchSampleResultEntity> OkList = PortData.Where(
- p =>
- (p.MatStatus == "00" || p.MatStatus == "合格") ||
- String.CompareOrdinal(p.OpProcess, gx) >= 0).ToList();
- if (!OkList.Any()) return 0;
- decimal AllWeight = (decimal)OkList.Sum(p => p.ActWeight);
- decimal Weight1 = (decimal)(NUM % OkList.Count > (OkList.Count - Count1 % OkList.Count)
- ? (OkList.Skip(Count1 % OkList.Count).Take(OkList.Count - Count1 % OkList.Count).Sum(p => p.ActWeight) +
- OkList.Take(NUM % OkList.Count - (OkList.Count - Count1 % OkList.Count))
- .Sum(p => p.ActWeight))
- : OkList.Skip(Count1 % OkList.Count).Take(NUM % OkList.Count).Sum(p => p.ActWeight));
- return AllWeight * (NUM / OkList.Count) + Weight1;
- }
- private int CheckCraft(string type, string result)//这个是验证是否有工艺信息的
- {
- if (type == "1")//1管端手探
- {
- var dt = ServerHelper.GetData(
- "com.steering.mes.mcp.Mch.FrmCrackDetectResult.CheckCraftJGX1",
- new object[] { result }, ob);
- if (dt.Rows.Count < 1)
- {
- MessageBox.Show("找不到有效工艺信息,请获取工艺信息!");
- return 0;
- }
- }
- if (type == "10")//10管端机探
- {
- var dt = ServerHelper.GetData(
- "com.steering.mes.mcp.Mch.FrmCrackDetectResult.CheckCraftJGX10",
- new object[] { result }, ob);
- if (dt.Rows.Count < 1)
- {
- MessageBox.Show("找不到有效工艺信息,请获取工艺信息!");
- return 0;
- }
- }
- return 1;
- }
- }
-
- }
|