|
|
using DSWeb.MvcShipping.DAL.MsCustComauth;
|
|
|
using DSWeb.MvcShipping.Helper;
|
|
|
using DSWeb.MvcShipping.Models.MsOpSeaeEdi;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Linq;
|
|
|
using System.Web;
|
|
|
using Microsoft.Practices.EnterpriseLibrary.Data;
|
|
|
using System.Data;
|
|
|
|
|
|
namespace DSWeb.Interface
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// CustSrv 的摘要说明
|
|
|
/// </summary>
|
|
|
public class CustSrv : IHttpHandler
|
|
|
{
|
|
|
|
|
|
public void ProcessRequest(HttpContext context)
|
|
|
{
|
|
|
context.Response.ContentType = "text/plain";
|
|
|
string rsp = "";
|
|
|
if (context.Request["ac"] == "sel")
|
|
|
{
|
|
|
string name = context.Request["name"];
|
|
|
rsp = GetSelDataWithName(name);
|
|
|
}
|
|
|
if (context.Request["ac"] == "emfstatus")
|
|
|
{
|
|
|
string blno = context.Request["blno"];
|
|
|
rsp = GetEMFSTATUS(blno);
|
|
|
}
|
|
|
if (context.Request["ac"]=="checkno")
|
|
|
{
|
|
|
int rst = CheckMBLNO(context);
|
|
|
rsp = rst.ToString();
|
|
|
}
|
|
|
string callbackFunName = context.Request["jsoncallback"];
|
|
|
if (callbackFunName==""||callbackFunName==null)
|
|
|
{
|
|
|
context.Response.Write(rsp);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
context.Response.Write(callbackFunName + "(" + rsp + ")");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public bool IsReusable
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public int CheckMBLNO(HttpContext context)
|
|
|
{
|
|
|
string mblno = context.Request["mblno"];
|
|
|
string carrierid = context.Request["carrierid"];
|
|
|
if (carrierid.IndexOf("-")>0)
|
|
|
{
|
|
|
carrierid = carrierid.Split('-')[0];
|
|
|
}
|
|
|
int isOK = 0;
|
|
|
string sql = "select rules,carrierid from op_seae_mblnocheck order by idx desc";
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
List<MBLNOCHECKModel> list = new List<MBLNOCHECKModel>();
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
MBLNOCHECKModel m = new MBLNOCHECKModel();
|
|
|
m.rules = reader["rules"].ToString();
|
|
|
m.carrierid = reader["carrierid"].ToString();
|
|
|
list.Add(m);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//匹配失败次数
|
|
|
int cntfaild = 0;
|
|
|
|
|
|
foreach (var m in list)
|
|
|
{
|
|
|
|
|
|
|
|
|
//匹配标识1:匹配成功 0:不成功
|
|
|
int rst = 0;
|
|
|
if (m.carrierid == "YML")
|
|
|
{
|
|
|
string fnt1 = mblno.Substring(0, 1);
|
|
|
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[A-Za-z]+$");
|
|
|
bool check1 = reg1.IsMatch(fnt1);
|
|
|
if (check1)
|
|
|
{
|
|
|
string fnt2 = mblno.Substring(1, 3);
|
|
|
if (fnt2 == "24")
|
|
|
{
|
|
|
rst = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
rst = 0;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
rst = 0;
|
|
|
}
|
|
|
} else if (m.carrierid=="PIL") {
|
|
|
string fnt1 = mblno.Substring(0, 2);
|
|
|
if (fnt1 == "TA")
|
|
|
{
|
|
|
string fnt2 = mblno.Substring(2, 1);
|
|
|
if (fnt2 != "O")
|
|
|
{
|
|
|
rst = 1;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
string rules = m.rules.ToString();
|
|
|
if (rules.IndexOf("/") > 0)
|
|
|
{
|
|
|
string[] ruleslist = rules.Split('/');
|
|
|
foreach (string item in ruleslist)
|
|
|
{
|
|
|
string fnt = mblno.Substring(0, item.Length);
|
|
|
if (fnt == item)
|
|
|
{
|
|
|
rst = 1;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
string fnt = mblno.Substring(0, rules.Length);
|
|
|
if (fnt == rules)
|
|
|
{
|
|
|
rst = 1;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (rst==1)
|
|
|
{
|
|
|
if (m.carrierid == carrierid)
|
|
|
{
|
|
|
isOK = 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
isOK = 0;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
cntfaild++;
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (isOK==1||cntfaild>=list.Count)
|
|
|
{
|
|
|
return 1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
public string GetSelDataWithName(string name)
|
|
|
{
|
|
|
var dataList = MsCustComauthDAL.GetSelDataWithName(name);
|
|
|
var jsonRespose = new JSONRSB { Success = true, Data = dataList };
|
|
|
return JsonConvert.Serialize(jsonRespose);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询舱单状态
|
|
|
/// </summary>
|
|
|
/// <param name="mblno"></param>
|
|
|
/// <param name="userid"></param>
|
|
|
/// <returns></returns>
|
|
|
public string GetEMFSTATUS(string mblno)
|
|
|
{
|
|
|
//判断主单号分单号
|
|
|
string sql = @"select t1.MBLNO, t0.statustext,t0.statustime from op_seae_edi_status t0
|
|
|
join op_seae_edi t1 on t0.mfno = t1.MFNO
|
|
|
where t1.mblno = '" + mblno + "' or t1.hblno ='" + mblno + "' order by t0.statustime desc";
|
|
|
List<EDIStatusModeli> list = new List<EDIStatusModeli>();
|
|
|
Database db = DatabaseFactory.CreateDatabase();
|
|
|
try
|
|
|
{
|
|
|
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
|
|
|
{
|
|
|
while (reader.Read())
|
|
|
{
|
|
|
EDIStatusModeli v = new EDIStatusModeli();
|
|
|
v.status = reader["statustext"].ToString();
|
|
|
v.statustime = reader["statustime"].ToString();
|
|
|
v.blno = reader["mblno"].ToString();
|
|
|
list.Add(v);
|
|
|
}
|
|
|
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
var jsonRespose = new JSONRSB { Success = true, Data = list };
|
|
|
return JsonConvert.Serialize(jsonRespose);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public class MBLNOCHECKModel {
|
|
|
public string rules { get; set; }
|
|
|
public string carrierid { get; set; }
|
|
|
}
|
|
|
} |