using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Collections; using System.Data; using eMIS; using eMIS.Data; using System.Web.Services; using System.Security.Cryptography; using Newtonsoft.Json.Linq; using Newtonsoft.Json; /// /// WebServiceWx 的摘要说明 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 [System.Web.Script.Services.ScriptService] public class WebServiceWx : System.Web.Services.WebService { const string mycode = "@1234"; public string userId = "0"; public string gzyy = "反措"; public WebServiceWx () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string UpLoadData(string source, string rwdh, string bdz, string code) { if (code != mycode) { return "校验失败!"; } string eee = ""; try { DateTime n = DateTime.Now; DataManager dm = new DataManager(); eDbOperator dbo = dm.Operator; //JArray ja = JArray.Parse(source); JObject cjcd = JObject.Parse(source); string newCode = cjcd["newCode"].ToString(); string oldCode = cjcd["oldCode"].ToString(); gzyy = cjcd["gzyy"].ToString(); eee = "3"; string equ_code = cjcd["oldZZ"].ToString(); eee = "4"; //更新[SC_装置信息_插件]旧插件信息 string[] a = UpdatePuData(dm, equ_code, oldCode, newCode); string PU_ORDER = a[0]; userId = cjcd["ryid"].ToString(); string rwdid = "";//工程服务报告ID string stationid = "";//变电站ID string sql = "select id,BDZ_ID from GC_工程服务报告单 where bh = '" + rwdh + "'"; DataTable table = dbo.ExecuteTable(sql); if (table.Rows.Count != 0) { rwdid = table.Rows[0][0].ToString(); stationid = table.Rows[0][1].ToString(); } if (stationid != "") dbo.ExecuteNonQuery("update SC_装置信息 set STATION_ID="+ stationid + " where CODE_BAR='"+ equ_code + "'"); eee = "5"; //table = dbo.ExecuteTable("select next value for seq_id as ID,CODE_BAR,UNIT, IP, STATION_ID,(select top 1 pack_str FROM ERP_工单信息 where GDBH=SC_装置信息.WIP_ENTITY_NAME) as projname,ID as equid from SC_装置信息 where CODE_BAR='" + equ_code + "'"); //string rid = table.Rows[0][0].ToString(); //string UNIT = table.Rows[0]["UNIT"].ToString(); //string IP = table.Rows[0]["IP"].ToString(); //string STATION_ID = table.Rows[0]["STATION_ID"].ToString(); //STATION_ID = (STATION_ID == stationid ? "是" : "否"); //string desc = table.Rows[0]["projname"].ToString(); //string equid = table.Rows[0]["equid"].ToString(); string rid = Create_Service_Data(dm, rwdid, userId, equ_code, stationid); if (rid == "") { return "装置条码:"+ equ_code + "不存在!"; } string bg = cjcd["bg"].ToString() == "true" ? "是" : "否"; eee = "6"; dbo.BeginTrans(); //dbo.ExecuteNonQuery("insert into SC_装置信息_服务 (ID,CODE_BAR,EQU_ID,PID,USERID,间隔名称,本站设备,装置地址,工程名称) values ('" + rid + "','" + equ_code + "','" + equid + "','" + pid + "','" + cjcd["ryid"].ToString() + "','" + UNIT + "','" + STATION_ID + "','" + IP + "','" + desc + "')"); string id; DataTable dt2 = dbo.ExecuteTable("select id from GC_工程服务_硬件故障 where pid=" + rid + " and 板卡条形码='" + oldCode + "'"); if (dt2.Rows.Count == 0) { id = dbo.ExecuteTable("select next value for seq_id").Rows[0][0].ToString(); sql = "insert into GC_工程服务_硬件故障(ID,pid,gid,板卡类别,板卡条形码,故障现象类型,是否需要报告,上传附件,故障现象描述,更换人,处理时间,板卡条形码2,识别代码,故障原因) values('" + id + "','" + rid + "','" + rwdid + "','" + cjcd["bklb"].ToString() + "','" + oldCode + "','" + cjcd["gz"].ToString() + "','" + bg + "','" + cjcd["imageListStr"].ToString().TrimEnd('|') + "','" + cjcd["gzms"].ToString() + "','" + cjcd["ryid"].ToString() + "','" + cjcd["time"].ToString() + "','" + newCode + "','" + equ_code + "',?)"; dbo.ExecuteNonQuery(sql, gzyy); } else { id=dt2.Rows[0][0].ToString(); } eee = "7"; Create_PU_Data(dm, id, newCode, equ_code, oldCode, PU_ORDER); dbo.CommitTrans(); return "ok"; } catch (Exception ee) { return eee+" : "+ee.Message; } } public string GetEqu_Code(DataManager dm, string puCode) { string equ_code = ""; DataTable dt = dm.ExecuteTable("select equ_code FROM SC_装置信息_插件 where pu_code = '" + puCode + "'"); if (dt.Rows.Count != 0) { equ_code = dt.Rows[0][0].ToString(); } return equ_code; } private string[] UpdatePuData(DataManager dm, string equCode,string oldCode, string newCode) { DataTable dt = dm.ExecuteTable("select * FROM SC_装置信息_插件 where pu_code = '" + oldCode + "'"); string[] r = new string[] { "0", "" }; string PU_ORDER = "0"; string equ_code = "";//装置条码 if (dt.Rows.Count != 0) { //旧编号作废 DataRow dr = dt.Rows[0]; if (dr["equ_code"].ToString() != "000000000000") { equ_code = dr["EQU_CODE"].ToString(); PU_ORDER = dr["PU_ORDER"].ToString(); dr["EQU_CODE"] = "000000000000"; dr["EQU_CODE2"] = equCode; //dr["equ_code2"] = equ_code; dr["REPLACE_CODE"] = newCode; dr["REPLACED"] = 1; dr["REPLACE_TIME"] = DateTime.Now; dm.Operator.Write(dt, "SC_装置信息_插件", "id"); r[1] = equ_code; r[0] = PU_ORDER; } } return r; } //创建[SC_装置信息_插件] private void Create_PU_Data(DataManager dm, string pid, string pu_code, string equ_code, string old_pu_code, string PU_ORDER) { //插件视图:cux_here_pu_v //cp.pu_code --插件条码 //cp.equ_code --用于装置条码 //msi.segment1 --插件编码 //msi.description --插件描述 // // // // // // // // //
插件编码插件描述插件条码
C04000000879PSL640U-AC.A-A-24 5A225810015862
C04000000494母板模件:PSL641U-MB225810002168
C04000000159面板模件:E03-PNL225911062034
C04000000339CPU模件:E03-CPU.B-A-20/COM.I-A-01224352003379
C04000001235TRIP模件:PSL641U-TPIP.E-A-02224352003379
C04000000076POWER模件:EDP03-PWR.A-A
//CJ_CLASS: 板卡类别/用途 //ATTRIBUTE4:板卡型号 //SEGMENT1:板卡编码 DataManager dm1 = new DataManager("1"); DataTable dt = dm1.ExecuteTable("select SEGMENT1,DESCRIPTION,PU_CODE,CJ_CLASS,ATTRIBUTE4,SLOT_NUMB,to_char(COMPELETE_DATE,'yyyy-mm-dd hh24:mi:ss') as COMPELETE_DATE,to_char(LAST_UPDATE_DATE,'yyyy-mm-dd hh24:mi:ss') as LAST_UPDATE_DATE from cux.cux_gw_pu_v where PU_CODE='" + pu_code + "'"); if (dt.Rows.Count != 0) { string SEGMENT1 = dt.Rows[0]["SEGMENT1"].ToString(); string DESCRIPTION = dt.Rows[0]["DESCRIPTION"].ToString(); string PU_CODE = dt.Rows[0]["PU_CODE"].ToString(); string CJ_CLASS = dt.Rows[0]["CJ_CLASS"].ToString(); string ATTRIBUTE4 = dt.Rows[0]["ATTRIBUTE4"].ToString(); string SLOT_NUMB = dt.Rows[0]["SLOT_NUMB"].ToString(); string COMPELETE_DATE = dt.Rows[0]["COMPELETE_DATE"].ToString(); string LAST_UPDATE_DATE = dt.Rows[0]["LAST_UPDATE_DATE"].ToString(); if (COMPELETE_DATE == "") COMPELETE_DATE = null; if (LAST_UPDATE_DATE == "") LAST_UPDATE_DATE = null; string sql = "insert into SC_装置信息_插件(PU_ORDER, PU_CODE, EQU_CODE, CJ_CLASS, SEGMENT1, ATTRIBUTE4, DESCRIPTION, SLOT_NUMB, COMPELETE_DATE, LAST_UPDATE_DATE, OLD_CODE) values(?,?,?,?,?,?,?,?,?,?,?)"; dm.ExecuteNonQuery(sql, PU_ORDER, PU_CODE, equ_code, CJ_CLASS, SEGMENT1, ATTRIBUTE4, DESCRIPTION, SLOT_NUMB, COMPELETE_DATE, LAST_UPDATE_DATE, old_pu_code); DataTable dt2 = dm.ExecuteTable("select CJ_CLASS, SEGMENT1, ATTRIBUTE4, DESCRIPTION, SLOT_NUMB, COMPELETE_DATE, LAST_UPDATE_DATE from SC_装置信息_插件 where PU_CODE='" + old_pu_code + "'"); bool exists = dt2.Rows.Count != 0; if (!exists) { dt2 = dm1.ExecuteTable("select SEGMENT1,DESCRIPTION,PU_CODE,CJ_CLASS,ATTRIBUTE4,SLOT_NUMB,to_char(COMPELETE_DATE,'yyyy-mm-dd hh24:mi:ss') as COMPELETE_DATE,to_char(LAST_UPDATE_DATE,'yyyy-mm-dd hh24:mi:ss') as LAST_UPDATE_DATE from cux.cux_gw_pu_v where PU_CODE='" + old_pu_code + "'"); exists = dt2.Rows.Count != 0; } if(exists) { string SEGMENT1_1 = dt2.Rows[0]["SEGMENT1"].ToString(); string DESCRIPTION_1 = dt2.Rows[0]["DESCRIPTION"].ToString(); string CJ_CLASS_1 = dt2.Rows[0]["CJ_CLASS"].ToString(); string ATTRIBUTE4_1 = dt2.Rows[0]["ATTRIBUTE4"].ToString(); string COMPELETE_DATE_1 = dt2.Rows[0]["COMPELETE_DATE"].ToString(); dm.ExecuteNonQuery("update GC_工程服务_硬件故障 set STATE=1,板卡类别2=?, 板卡编码2=?, 板卡型号2=?, 板卡生成日期2=?,板卡描述2=?,板卡描述=?,板卡类别=?,板卡编码=?, 板卡型号=?, 板卡生成日期=?,更换人=?,处理时间=getdate(),故障原因=? where id=" + pid, CJ_CLASS, SEGMENT1, ATTRIBUTE4, COMPELETE_DATE, DESCRIPTION, DESCRIPTION_1, CJ_CLASS_1, SEGMENT1_1, ATTRIBUTE4_1, COMPELETE_DATE_1, userId,gzyy); } else { dm.ExecuteNonQuery("update GC_工程服务_硬件故障 set STATE=1,板卡类别2=?, 板卡编码2=?, 板卡型号2=?, 板卡生成日期2=?,板卡描述2=?,更换人=?,处理时间=getdate(),故障原因 where id=" + pid, CJ_CLASS, SEGMENT1, ATTRIBUTE4, COMPELETE_DATE, DESCRIPTION, userId,gzyy); } } } //创建[SC_装置信息_服务]记录 private string Create_Service_Data(DataManager dm, string parentid, string userId, string equbcode, string stationid) { DataTable dt = dm.ExecuteTable("select id,CODE_BAR from SC_装置信息_服务 where CODE_BAR=? and PID=?", equbcode, parentid); string rid="", CODE_BAR; if (dt.Rows.Count != 0) { rid = dt.Rows[0][0].ToString(); CODE_BAR = dt.Rows[0][1].ToString(); } else { dt = dm.ExecuteTable("select next value for seq_id as ID,CODE_BAR,UNIT, IP, STATION_ID,(select top 1 pack_str FROM ERP_工单信息 where GDBH=SC_装置信息.WIP_ENTITY_NAME) as projname,ID as equid from SC_装置信息 where CODE_BAR=?", equbcode); if (dt.Rows.Count != 0) { rid = dt.Rows[0][0].ToString(); CODE_BAR = dt.Rows[0][1].ToString(); string UNIT = dt.Rows[0]["UNIT"].ToString(); string IP = dt.Rows[0]["IP"].ToString(); string STATION_ID = dt.Rows[0]["STATION_ID"].ToString(); STATION_ID = (STATION_ID == stationid ? "是" : "否"); string desc = dt.Rows[0]["projname"].ToString(); string equid = dt.Rows[0]["equid"].ToString(); dm.ExecuteNonQuery("insert into SC_装置信息_服务 (ID,CODE_BAR,EQU_ID,PID,USERID,间隔名称,本站设备,装置地址,工程名称) values (?,?,?,?,?,?,?,?,?)", rid, CODE_BAR, equid, parentid, userId, UNIT, STATION_ID, IP, desc); } } return rid; } //[WebMethod] //public string UpLoadAllData(string source, string rwdh, string bdz,string pageindex, string code) //{ // if (code != mycode) // { // return "校验失败!"; // } // int pageSize = 5; // try // { // eDbManager dm = new eDbManager(System.Configuration.ConfigurationManager.AppSettings["emisdb0"].ToString()); // eDbOperator dbo = dm.CreateDbOperator(); // JArray ja = JArray.Parse(source); // JObject cjcd = JObject.Parse(source); // string oldCode = cjcd["oldCode"].ToString(); // string newCode = cjcd["newCode"].ToString(); // DataTable dt = dbo.ExecuteTable("select * FROM SC_装置信息_插件 where pu_code = '" + oldCode + "'"); // string equ_code = "";//装置条码 // if (dt.Rows.Count > 0) // { // DataRow dr = dt.Rows[0]; // equ_code = dr["EQU_CODE"].ToString(); // dr["equ_code"] = "000000000000"; // dr["REPLACE_CODE"] = newCode; // } // string pid = "";//工程服务报告ID // string stationid = "";//变电站ID // string sql = "select id,BDZ_ID from GC_工程服务报告单 where bh = '" + rwdh + "'"; // DataTable table = dbo.ExecuteTable(sql); // if (table.Rows.Count > 0) // { // pid = table.Rows[0][0].ToString(); // stationid = table.Rows[0][1].ToString(); // } // table = dbo.ExecuteTable("select next value for seq_id as ID,CODE_BAR,UNIT, IP, STATION_ID,(select top 1 pack_str FROM ERP_工单信息 where GDBH=SC_装置信息.WIP_ENTITY_NAME) as projname,ID as equid from SC_装置信息 where CODE_BAR='" + equ_code + "'"); // string rid = table.Rows[0][0].ToString(); // string UNIT = table.Rows[0]["UNIT"].ToString(); // string IP = table.Rows[0]["IP"].ToString(); // string STATION_ID = table.Rows[0]["STATION_ID"].ToString(); // STATION_ID = (STATION_ID == stationid ? "是" : "否"); // string desc = table.Rows[0]["projname"].ToString(); // string equid = table.Rows[0]["equid"].ToString(); // string bg = cjcd["bg"].ToString() == "true" ? "是" : "否"; // dbo.BeginTrans(); // dbo.Write(dt, "SC_装置信息_插件", "id"); // dbo.ExecuteNonQuery("insert into SC_装置信息_插件(pu_code,equ_code,equ_code2,old_code) values('" + newCode + "','" + equ_code + "','" + equ_code + "','"+ oldCode + "')"); // dbo.ExecuteNonQuery("insert into SC_装置信息_服务 (ID,CODE_BAR,EQU_ID,PID,USERID,间隔名称,本站设备,装置地址,工程名称) values ('" + rid + "','" + equ_code + "','" + equid + "','" + pid + "','" + cjcd["ryid"].ToString() + "','" + UNIT + "','" + STATION_ID + "','" + IP + "','" + desc + "')"); // string id = dbo.ExecuteTable("select next value for seq_id").Rows[0][0].ToString(); // sql = "insert into GC_工程服务_硬件故障(ID,pid,gid,板卡类别,板卡条形码,故障现象类型,是否需要报告,上传附件,故障现象描述,更换人,处理时间,识别代码) values('" + id + "','" + pid + "','" + rid + "','" + cjcd["bklb"].ToString() + "','" + oldCode + "','" + cjcd["gz"].ToString() + "','" + bg + "','','" + cjcd["gzms"].ToString() + "','" + cjcd["ryid"].ToString() + "','" + cjcd["time"].ToString() + "','" + equ_code + "')"; // dbo.ExecuteNonQuery(sql); // dbo.CommitTrans(); // return "ok"; // } // catch (Exception ee) // { // return ee.Message; // } //} [WebMethod] public string getRWDH(string userid, string code) { if (code != mycode) { return "校验失败!"; } eDbManager dm = new eDbManager(System.Configuration.ConfigurationManager.AppSettings["emisdb0"].ToString()); eDbOperator dbo = dm.CreateDbOperator(); ArrayList result = new ArrayList(); ArrayList bh = new ArrayList(); ArrayList bdz = new ArrayList(); string sql; if (userid== "400955") sql = "select top 10 bh, (select bdzmc from gc_变电站 where id=a.BDZ_ID) as bdzmc from GC_工程服务报告单 a where bh='T2018050127'"; else sql = "select top 10 bh, (select bdzmc from gc_变电站 where id=a.BDZ_ID) as bdzmc from GC_工程服务报告单 a where fwfzrid ='" + userid + "' and ztz like '%N2A%' order by cjsj desc"; DataTable dt = dbo.ExecuteTable(sql); foreach (DataRow dr in dt.Rows) { bh.Add(dr[0].ToString()); string bdzmc = ""; if (dr[1] != null) { bdzmc = dr[1].ToString(); } bdz.Add(bdzmc); } result.Add(bh); result.Add(bdz); return Newtonsoft.Json.JsonConvert.SerializeObject(result); } [WebMethod] public string getUserName(string openid, string code) { if (code != mycode) { return "校验失败!"; } ArrayList user = new ArrayList(); string nt = ""; try { eDbManager dm = new eDbManager(System.Configuration.ConfigurationManager.AppSettings["emisdb0"].ToString()); eDbOperator dbo = dm.CreateDbOperator(); string sql = "Select * from com_yhb where openid = '" + openid + "'"; DataTable dt = dbo.ExecuteTable(sql); if (dt.Rows.Count > 0) { DataRow row = dt.Rows[0]; user.Add(row["id"].ToString()); user.Add(row["xingming"].ToString()); nt = "ok!"+ Newtonsoft.Json.JsonConvert.SerializeObject(user); } else { nt = "不存在此用户!"; } } catch (Exception ex) { nt = ex.Message; } return nt; } [WebMethod] public string userLogin(string login, string pwd, string openid, string code) { if (code != mycode) { return "校验失败!"; } string result = ""; try { eDbManager dm = new eDbManager(System.Configuration.ConfigurationManager.AppSettings["emisdb0"].ToString()); eDbOperator dbo = dm.CreateDbOperator(); string password = md5(pwd); string sql = "select * from com_yhb where login = '" + login + "' and password = '" + password + "'"; DataTable table = dbo.ExecuteTable(sql); if(table.Rows.Count > 0) { table.Rows[0]["openid"] = openid; dbo.Write(table,"com_yhb","id"); result = "ok!"; }else{ result = "不存在该用户!"; } }catch(Exception ex) { result = ex.Message; } return result; } [WebMethod] public string DownLoadData(string bdzname, string code) { if (code != mycode) { return "校验失败!"; } Hashtable ht = new Hashtable(); try { eDbManager dm = new eDbManager(System.Configuration.ConfigurationManager.AppSettings["emisdb0"].ToString()); eDbOperator dbo = dm.CreateDbOperator(); string sql = "select top 500 * from [SC_装置信息] a, [SC_装置信息_插件] b where a.CODE_BAR = b.EQU_CODE and a.STATION_ID = '319382221'"; DataTable dt = dbo.ExecuteTable(sql); foreach (DataRow dr in dt.Rows) { string[] dataStr = { "", "", "", "", "" }; dataStr[0] = dr["item_description"].ToString(); dataStr[1] = dr["co_project"].ToString(); dataStr[2] = dr["cj_class"].ToString(); dataStr[3] = dr["description"].ToString(); dataStr[4] = ""; ht.Add(dr["pu_code"].ToString(),dataStr); } } catch (Exception e) { return e.Message; } string nt = Newtonsoft.Json.JsonConvert.SerializeObject(ht); return nt; } private String md5(String s) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] bytes = System.Text.Encoding.UTF8.GetBytes(s); bytes = md5.ComputeHash(bytes); md5.Clear(); string ret = ""; for (int i = 0; i < bytes.Length; i++) { ret += Convert.ToString(bytes[i], 16).PadLeft(2, '0'); } return ret.PadLeft(32, '0').ToUpper(); } }