using DevExpress.XtraGrid.Columns;
using Gs.DevApp.Entity;
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Dynamic;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace Gs.DevApp.DevFrm.Work
{
public partial class Frm_Work01 : DevExpress.XtraEditors.XtraForm
{
string _webServiceName = "WorkCollect/";
string dianJianPath = "";//电检取值路径
string goodTag = "√";
string badTag = "×";
string fGxTouRu = "G001:投入";
string fGxDianJian = "G002:电检";
string fGxShouJian = "G003:水检";
string fGxZhongJian = "G004:终检";
///
///
///
/// 工序
/// 班次
/// 目前为电检路径
public Frm_Work01(string _fGx, string _fBc, string _strinOther)
{
InitializeComponent();
txt_gx.Text = _fGx;
txt_bc.Text = _fBc;
txt_dianJianPath.Text = _strinOther;
dianJianPath= _strinOther;
this.Text = "工序采集【" + _fGx + " - " + _fBc + "】";
addColumn();
txt_barCode.KeyDown += (s, e) =>
{
if (e.KeyCode == Keys.Enter) { addModel(goodTag); };
};
btnGood.Click += (s, e) =>
{
addModel(goodTag);
};
btnBad.Click += (s, e) =>
{
UcDictionarySelect frm = new UcDictionarySelect("工序不良描述", " a.s_type='工序不良描述' and pid<>'00000000-0000-0000-0000-000000000000'");
frm.UpdateParent += (ss, ee) =>
{
System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
var lst = ee.DynamicList;
foreach (dynamic dym in lst)
{
if (stringBuilder.Length > 0)
stringBuilder.Append("|");
stringBuilder.Append(dym.dicTxt);
}
string _txt = stringBuilder.ToString();
if (string.IsNullOrEmpty(_txt))
{
Toast vm = new Toast(-1, "~当为不良时,请选择不良项目~");
vm.Show();
}
else
addModel(badTag, _txt);
};
frm.ShowDialog();
};
}
///
/// 根据工序,构造不同类型的实体
///
/// 条码
/// 结果
/// 不良描述
///
private dynamic getObj(string _barCode, string _checkResult, string _badDescription = "")
{
dynamic _obj = new ExpandoObject();
_obj.barCode = _barCode;
_obj.checkResult = _checkResult;//检测结果
_obj.processNo = txt_gx.Text.Trim();//工序
_obj.banCi = txt_bc.Text.Trim();//班次
_obj.gongWei = txt_gw.Text.Trim();//工位
_obj.badDescription = _badDescription.Trim();//不良描述
if (txt_gx.Text.Trim() == fGxTouRu)
{
return _obj;
}
if (txt_gx.Text.Trim() == fGxDianJian)
{
string TM = "";
string JD = "";
string JY = "";
string JN = "";
string XL = "";
string GV = "";
string JDV = "";
string JYV = "";
string JNV = "";
string XLV = "";
string GVV = "";
string myStr = File.ReadAllText(dianJianPath, Encoding.Default);
if (myStr == "")
{
return null;
}
JArray dsTemp = JArray.Parse(myStr);
foreach (var ss in dsTemp) //查找某个字段与值
{
TM = (((JObject)ss)["TiaoMa"] == null) ? "" : ((JObject)ss)["TiaoMa"].ToString();
JD = (((JObject)ss)["JieDi"] == null) ? "" : ((JObject)ss)["JieDi"]["state"].ToString();
JY = (((JObject)ss)["JueYuan"] == null) ? "" : ((JObject)ss)["JueYuan"]["state"].ToString();
JN = (((JObject)ss)["JiaoNai"] == null) ? "" : ((JObject)ss)["JiaoNai"]["state"].ToString();
XL = (((JObject)ss)["XieLou"] == null) ? "" : ((JObject)ss)["XieLou"]["state"].ToString();
GV = (((JObject)ss)["GongLv"] == null) ? "" : ((JObject)ss)["GongLv"]["state"].ToString();
JDV = (((JObject)ss)["JieDi"] == null) ? "" : ((JObject)ss)["JieDi"]["value"].ToString().Replace(" ", ",");
JYV = (((JObject)ss)["JueYuan"] == null) ? "" : ((JObject)ss)["JueYuan"]["value"].ToString().Replace(" ", ", ");
JNV = (((JObject)ss)["JiaoNai"] == null) ? "" : ((JObject)ss)["JiaoNai"]["value"].ToString().Replace(" ", ", ");
XLV = (((JObject)ss)["XieLou"] == null) ? "" : ((JObject)ss)["XieLou"]["value"].ToString().Replace(" ", ", ");
GVV = (((JObject)ss)["GongLv"] == null) ? "" : ((JObject)ss)["GongLv"]["value"].ToString().Replace(" ", ", ");
}
_obj.t001 = TM;
_obj.t002 = JD;
_obj.t003 = JY;
_obj.t004 = JN;
_obj.t005 = XL;
_obj.t006 = GV;
_obj.t007 = JDV;
_obj.t008 = JYV;
_obj.t009 = JNV;
_obj.t010 = XLV;
_obj.t011 = GVV;
// File.WriteAllText(dianJianPath, "");
return _obj;
}
if (txt_gx.Text.Trim() == fGxShouJian)
{
string strCsl1 = "strCsl1";
string strSw1 = "strSw1";
string strCsl2 = "strCsl2";
string strSw2 = "strSw2";
string strCsl3 = "strCsl3";
string strSw3 = "strSw3";
string strCsl4 = "strCsl4";
string strSw4 = "strSw4";
string strCsl5 = "strCsl5";
string strSw5 = "strSw5";
string SJJG = "";
_obj.t002 = strCsl1;
_obj.t003 = strSw1;
_obj.t004 = strCsl2;
_obj.t005 = strSw2;
_obj.t006 = strCsl3;
_obj.t007 = strSw3;
_obj.t008 = strCsl4;
_obj.t009 = strSw4;
_obj.t010 = strCsl5;
_obj.t011 = strSw5;
// _obj.t012 = SJJG;这个待确定
return _obj;
}
if (txt_gx.Text.Trim() == fGxZhongJian)
{
return _obj;
}
return null;
}
///
/// 上报实体
///
/// 结果:√
/// 不良描述
private void addModel(string _checkResult, string _badDescription = "")
{
string _barCode = txt_barCode.Text.Trim();
if (string.IsNullOrEmpty(_barCode))
{
Toast vm = new Toast(-1, "~请先扫追溯码~");
vm.Show();
return;
}
dynamic _obj = getObj(_barCode, _checkResult, _badDescription);
if (_obj == null)
{
Toast vm = new Toast(-1, "~读取数据失败,请检查设备~");
vm.Show();
return;
}
try
{
string strJson = UtilityHelper.HttpPost("", _webServiceName + "GetModel", JsonConvert.SerializeObject(_obj));
ReturnModel _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson);
if (_rtn.rtnCode > 0)
{
dynamic dy = _rtn.rtnData;
//表头和汇总
UtilityHelper.SetValueByObj(this.layoutMx1.Controls, dy, false);
lbSum1.Text = dy.lbSum1;
lbSum2.Text = dy.lbSum2;
lbSum3.Text = dy.lbSum3;
lbSum4.Text = dy.lbSum4;
prog1.Position = dy.jd;
//良品列表
txt_barCode.ReadOnly = false;
JObject _job = JObject.Parse(strJson);
JArray array = new JArray();
foreach (var a in _job["rtnData"]["list"])
{
array.Add(a);
}
DataTable dt = JsonConvert.DeserializeObject(array.ToString());
if (dt.Rows.Count > 0)
{
gcMx1.BindingContext = new BindingContext();
gcMx1.DataSource = dt;
gcMx1.ForceInitialize();
gvMx1.BestFitColumns();
Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx1);
}
else
{
Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx1, gvMx1);
}
//不良品列表
JArray array2 = new JArray();
foreach (var a in _job["rtnData"]["list2"])
{
array2.Add(a);
}
DataTable dt2 = JsonConvert.DeserializeObject(array2.ToString());
if (dt2.Rows.Count > 0)
{
gcMx2.BindingContext = new BindingContext();
gcMx2.DataSource = dt2;
gcMx2.ForceInitialize();
gvMx2.BestFitColumns();
Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx2);
}
else
{
Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx2, gvMx2);
}
string _msg = _rtn.rtnMsg;
if (!string.IsNullOrEmpty(_msg))
{
Toast vm = new Toast((goodTag == "√" ? 1 : -1), _msg);
vm.Show();
};
}
else
{
Toast vm = new Toast(-1, _rtn.rtnMsg);
vm.Show();
}
}
catch (Exception ex)
{
Toast vm = new Toast(-1, ex.Message);
vm.Show();
}
}
///
/// 增加电检取数的列
///
public void addColumn()
{
List _lst = new List();
if (txt_gx.Text.Trim() == fGxDianJian)
{
_lst.Add(new
{
ziduan = "t002",
wenben = "接地",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t004",
wenben = "交耐",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t005",
wenben = "泄漏",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t006",
wenben = "功率",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t007",
wenben = "接地结果",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t009",
wenben = "交耐结果",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t010",
wenben = "泄漏结果",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t011",
wenben = "功率结果",
kejian = true,
visibleIndex = 1,
});
}
if (txt_gx.Text.Trim() == fGxShouJian)
{
_lst.Add(new
{
ziduan = "t002",
wenben = "出水量1",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t003",
wenben = "水温1",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t004",
wenben = "出水量2",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t005",
wenben = "水温2",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t006",
wenben = "出水量3",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t007",
wenben = "水温3",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t008",
wenben = "出水量4",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t009",
wenben = "水温4",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t010",
wenben = "出水量5",
kejian = true,
visibleIndex = 1,
});
_lst.Add(new
{
ziduan = "t011",
wenben = "水温5",
kejian = true,
visibleIndex = 1,
});
}
foreach (var item in _lst)
{
GridColumn newColumn = new GridColumn();
newColumn.FieldName = item.ziduan; // 设置与数据源对应的字段名
newColumn.Caption = item.wenben; // 设置列的标题
//newColumn.Visible = item.visibleIndex; // 设置列是否可见
newColumn.VisibleIndex = item.visibleIndex; // 设置列的显示顺序
gvMx1.Columns.Add(newColumn);
}
}
}
}