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 --插件描述
//
//插件编码 | 插件描述 | 插件条码 |
//C04000000879 | PSL640U-AC.A-A-24 5A | 225810015862 | | |
//C04000000494 | 母板模件:PSL641U-MB | 225810002168 | | |
//C04000000159 | 面板模件:E03-PNL | 225911062034 | | |
//C04000000339 | CPU模件:E03-CPU.B-A-20/COM.I-A-01 | 224352003379 | | |
//C04000001235 | TRIP模件:PSL641U-TPIP.E-A-02 | 224352003379 | | |
//C04000000076 | POWER模件: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();
}
}