You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Areas/MvcShipping/DAL/MsOpCtnStatus/MsOpCtnStatusDAL.cs

965 lines
40 KiB
C#

2 years ago

using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.MsOpCtnStatus;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using HcUtility.Comm;
using System.Web;
using System.Text.RegularExpressions;
using System.Data.Common;
namespace DSWeb.Areas.MvcShipping.DAL
{
public class MsOpCtnStatusDAL
{
#region 集装箱资料
static public List<MsCtn> GetCtnList(string strCondition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append("[cntrid],[cntrno],selltime,[cntrowner],[cntype],[cnsource],[buytime],[rent_begintime],[rent_endtime]");
strSql.Append(",[status],[position],[positionName],[REMARK],[vessel],[Voyage],beginpostion");
strSql.Append(",(case when status=1 then '可用' when status=2 then '已用' when status=3 then '维修' when status=4 then '停用' when status=5 then '退租' when status=6 then '灭失' when status=7 then '卖出' end) statusref");
strSql.Append(",(select port from code_disport where portid=container_info.position) positioncname");
strSql.Append(",(select port from code_disport where portid=container_info.beginpostion) beginpostionref");
strSql.Append(" from container_info ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" order by cntrid ");
return SetData(strSql);
}
static public MsCtn GetData(string condition)
{
var list = GetCtnList(condition);
if (list.Count > 0)
return list[0];
return new MsCtn();
}
private static List<MsCtn> SetData(StringBuilder strSql)
{
var headList = new List<MsCtn>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCtn data = new MsCtn();
#region Set DB data to Object
data.cntrid = Convert.ToInt16(reader["cntrid"]);
data.cntrno = Convert.ToString(reader["cntrno"]);
data.cntrowner = Convert.ToString(reader["cntrowner"]);
data.cntype = Convert.ToString(reader["cntype"]);
data.cnsource = Convert.ToString(reader["cnsource"]);
if (reader["buytime"] != DBNull.Value)
{
data.buytime = Convert.ToDateTime(reader["buytime"]).ToString("yyyy-MM-dd");
}
if (reader["rent_begintime"] != DBNull.Value)
{
data.rent_begintime = Convert.ToDateTime(reader["rent_begintime"]).ToString("yyyy-MM-dd");
}
if (reader["rent_endtime"] != DBNull.Value)
{
data.rent_endtime = Convert.ToDateTime(reader["rent_endtime"]).ToString("yyyy-MM-dd");
}
if (reader["selltime"] != DBNull.Value)
{
data.selltime = Convert.ToDateTime(reader["selltime"]).ToString("yyyy-MM-dd");
}
if (reader["status"] != DBNull.Value)
data.status = Convert.ToInt16(reader["status"]);
data.statusref = Convert.ToString(reader["statusref"]);
data.position = Convert.ToString(reader["position"]);
data.positioncname = Convert.ToString(reader["positioncname"]);
data.positionname = Convert.ToString(reader["positionName"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.vessel = Convert.ToString(reader["vessel"]);
data.voyage = Convert.ToString(reader["Voyage"]);
data.beginpostion = Convert.ToString(reader["beginpostion"]);
data.beginpostionref = Convert.ToString(reader["beginpostionref"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 业务状态保存,删除
public static DBResult SaveCtn(MsCtn Ctn)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var ctnnum = GetRdCtn(Ctn.cntrno);
if (ctnnum== 0)
{
var cmdInsert =
db.GetSqlStringCommand(
@"insert into container_info (cntrno,cntrowner,cntype,cnsource,buytime,rent_begintime,rent_endtime,status,position,vessel,voyage,positionName,REMARK,beginpostion)
values (@cntrno,@cntrowner,@cntype,@cnsource,@buytime,@rent_begintime,@rent_endtime,@status,@position,@vessel,@voyage,@positionName,@REMARK,@beginpostion) ");
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@cntrno", DbType.String, Ctn.cntrno);
db.AddInParameter(cmdInsert, "@cntrowner", DbType.String, Ctn.cntrowner);
db.AddInParameter(cmdInsert, "@cntype", DbType.String, Ctn.cntype);
db.AddInParameter(cmdInsert, "@cnsource", DbType.String, Ctn.cnsource);
db.AddInParameter(cmdInsert, "@buytime", DbType.String, Ctn.buytime);
db.AddInParameter(cmdInsert, "@rent_begintime", DbType.String, Ctn.rent_begintime);
db.AddInParameter(cmdInsert, "@rent_endtime", DbType.String, Ctn.rent_endtime);
db.AddInParameter(cmdInsert, "@status", DbType.Int16, Ctn.status);
db.AddInParameter(cmdInsert, "@position", DbType.String, Ctn.position);
db.AddInParameter(cmdInsert, "@vessel", DbType.String, Ctn.vessel);
db.AddInParameter(cmdInsert, "@voyage", DbType.String, Ctn.voyage);
db.AddInParameter(cmdInsert, "@positionName", DbType.String, Ctn.positionname);
db.AddInParameter(cmdInsert, "@REMARK", DbType.String, Ctn.REMARK);
db.AddInParameter(cmdInsert, "@beginpostion", DbType.String, Ctn.beginpostion);
db.ExecuteNonQuery(cmdInsert, tran);
}
else {
var cmdUpdate =
db.GetSqlStringCommand(
@"update container_info set cntrno=@cntrno,cntrowner=@cntrowner,cntype=@cntype,cnsource=@cnsource,
buytime=@buytime,rent_begintime=@rent_begintime,rent_endtime=@rent_endtime,status=@status,position=@position,
vessel=@vessel,voyage=@voyage,positionName=@positionName,REMARK=@REMARK,beginpostion=@beginpostion where cntrid=@cntrid");
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@cntrid", DbType.String, Ctn.cntrid);
db.AddInParameter(cmdUpdate, "@cntrno", DbType.String, Ctn.cntrno);
db.AddInParameter(cmdUpdate, "@cntrowner", DbType.String, Ctn.cntrowner);
db.AddInParameter(cmdUpdate, "@cntype", DbType.String, Ctn.cntype);
db.AddInParameter(cmdUpdate, "@cnsource", DbType.String, Ctn.cnsource);
db.AddInParameter(cmdUpdate, "@buytime", DbType.String, Ctn.buytime);
db.AddInParameter(cmdUpdate, "@rent_begintime", DbType.String, Ctn.rent_begintime);
db.AddInParameter(cmdUpdate, "@rent_endtime", DbType.String, Ctn.rent_endtime);
db.AddInParameter(cmdUpdate, "@status", DbType.Int16, Ctn.status);
db.AddInParameter(cmdUpdate, "@position", DbType.String, Ctn.position);
db.AddInParameter(cmdUpdate, "@vessel", DbType.String, Ctn.vessel);
db.AddInParameter(cmdUpdate, "@voyage", DbType.String, Ctn.voyage);
db.AddInParameter(cmdUpdate, "@positionName", DbType.String, Ctn.positionname);
db.AddInParameter(cmdUpdate, "@REMARK", DbType.String, Ctn.REMARK);
db.AddInParameter(cmdUpdate, "@beginpostion", DbType.String, Ctn.beginpostion);
db.ExecuteNonQuery(cmdUpdate, tran);
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "保存出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "保存成功" + result.Message;
return result;
}
static public int GetRdCtn(string CtnNo)
{
var strSql = new StringBuilder();
strSql.Append("SELECT Count(cntrno) AS CT from container_info where cntrno='"+CtnNo+"'");
var ct = 0;
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
ct = Convert.ToInt16(reader["CT"]);
}
reader.Close();
}
return ct;
}
public static DBResult DeleteCtn(List<MsCtn> bodyList)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsert =
db.GetSqlStringCommand(
@"delete from container_info where cntrid=@cntrid ");
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@cntrid", DbType.String, enumValue.cntrid);
db.ExecuteNonQuery(cmdInsert, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "删除出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "删除成功" + result.Message;
return result;
}
#endregion
#region 集装箱动态
static public List<MsCtnStatus> GetDataStatusList(string strCondition,string orderby="")
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append("[b_id],[box_no],[blno],[vessel],[voyage],[etd],[reachtime],[opertime],sdzt");
strSql.Append(",[state],[position],[operman],[fobport],[Remarks],ONEWAY");
strSql.Append(",jcyy,cz,cctime,jctime,(case when state='1' then '空箱' when state='2' then '重箱' end) stateref");//
strSql.Append(",fobportname,positionname");
strSql.Append(",(select cnsource from container_info where cntrno=container_business.box_no) cnsource");
strSql.Append(",(select cntype from container_info where cntrno=container_business.box_no) cntrsize");
strSql.Append(",(select TEU from op_ctn where CNTRNO = 'TCNU5968130') TEU ");
strSql.Append(" from container_business ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition);
}
if (orderby=="")
{
strSql.Append(" order by box_no, opertime ");
}
else
{
strSql.Append(" "+orderby);
}
return SetStatusData(strSql);
}
static public MsCtnStatus GetStatusData(string condition)
{
var list = GetDataStatusList(condition);
if (list.Count > 0)
return list[0];
return new MsCtnStatus();
}
private static List<MsCtnStatus> SetStatusData(StringBuilder strSql)
{
var headList = new List<MsCtnStatus>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsCtnStatus data = new MsCtnStatus();
#region Set DB data to Object
data.b_id = Convert.ToInt32(reader["b_id"]);
data.box_no = Convert.ToString(reader["box_no"]);
data.blno = Convert.ToString(reader["blno"]);
data.vessel = Convert.ToString(reader["vessel"]);
data.sdzt = Convert.ToString(reader["sdzt"]);
data.voyage = Convert.ToString(reader["voyage"]);
if (reader["etd"] != DBNull.Value)
data.etd = Convert.ToDateTime(reader["etd"]).ToString("yyyy-MM-dd");
if (reader["reachtime"] != DBNull.Value)
data.reachtime = Convert.ToDateTime(reader["reachtime"]).ToString("yyyy-MM-dd");
if (reader["opertime"] != DBNull.Value)
data.opertime = string.Format("{0:d}", Convert.ToDateTime(reader["opertime"]));
if (reader["state"] != DBNull.Value)
data.state = Convert.ToString(reader["state"]);
data.stateref = Convert.ToString(reader["stateref"]);
data.position = Convert.ToString(reader["position"]);
data.positionname = Convert.ToString(reader["positionname"]);
data.operman = Convert.ToString(reader["operman"]);
data.fobport = Convert.ToString(reader["fobport"]);
data.fobportname = Convert.ToString(reader["fobportname"]);
data.ONEWAY = Convert.ToString(reader["ONEWAY"]);
data.Remarks = Convert.ToString(reader["Remarks"]);
data.cnsource = Convert.ToString(reader["cnsource"]);
data.cntrsize = Convert.ToString(reader["cntrsize"]);
data.jcyy = Convert.ToString(reader["jcyy"]);
data.cz = Convert.ToString(reader["cz"]);
data.cctime = Convert.ToString(reader["cctime"]);
if (data.cctime == null || data.cctime == "")
{
}
else
{
if (Convert.ToDateTime(data.cctime).ToString("HH:mm:ss")=="00:00:00")
{
data.cctime = Convert.ToDateTime(data.cctime).ToString("yyyy-MM-dd");
}
else
{
data.cctime = Convert.ToDateTime(data.cctime).ToString();
}
}
data.jctime = Convert.ToString(reader["jctime"]);
if (data.jctime == null || data.jctime == "")
{
}
else
{
string a = Convert.ToDateTime(data.jctime).ToString("HH:mm:ss");
if (Convert.ToDateTime(data.jctime).ToString("HH:mm:ss") == "00:00:00")
{
data.jctime = Convert.ToDateTime(data.jctime).ToString("yyyy-MM-dd");
}
else
{
data.jctime = Convert.ToDateTime(data.jctime).ToString();
}
}
data.TEU = Convert.ToString(reader["TEU"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#region 锁定业务
public static DBResult sdyw(List<MsCtnStatus> bodyList,string type)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
string aaa = "";
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
string sql = "";
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
if (type=="1")
{
sql = "update container_business set sdzt='锁定' where b_id='"+enumValue.b_id+"'";
aaa = "锁定";
}
else
{
sql = "update container_business set sdzt='' where b_id='" + enumValue.b_id + "'";
aaa = "解锁";
}
var cmdmx = db.GetSqlStringCommand(sql);
db.ExecuteNonQuery(cmdmx, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = aaa+"出现错误,请联系管理员";
return result;
}
}
result.Success = true;
result.Message = aaa+"成功" + result.Message;
return result;
}
#endregion
public static DBResult DeleteStatus(List<MsCtnStatus> bodyList)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsert =
db.GetSqlStringCommand(
@"delete from container_business where b_id=@b_id ");
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@b_id", DbType.String, enumValue.b_id);
db.ExecuteNonQuery(cmdInsert, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "删除出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "删除成功" + result.Message;
return result;
}
public static DBResult ModifyStatus(List<MsCtnStatus> bodyList,MsCtnStatus modifydata)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var strSql = new StringBuilder();
strSql.Append("update container_business set blno=blno ");
if (modifydata.vessel != "" && modifydata.vessel != null)
strSql.Append(",Vessel=@Vessel");
if (modifydata.voyage != "" && modifydata.voyage != null)
strSql.Append(",Voyage=@Voyage");
if (modifydata.etd != "" && modifydata.etd != null)
strSql.Append(",Etd=@Etd");
if (modifydata.state !="0")
strSql.Append(",State=@State");
if (modifydata.position != "" && modifydata.position != null)
strSql.Append(",Position=@Position");
if (modifydata.reachtime != "" && modifydata.reachtime != null)
strSql.Append(",ReachTime=@ReachTime");
if (modifydata.fobport != "" && modifydata.fobport != null)
strSql.Append(",fobport=@fobport");
if (modifydata.Remarks != "" && modifydata.Remarks != null)
strSql.Append(",Remarks=@Remarks");
strSql.Append(" where b_id=@b_id ");
var cmdupdate =
db.GetSqlStringCommand(strSql.ToString());
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdupdate.Parameters.Clear();
if (modifydata.vessel != "" && modifydata.vessel != null)
db.AddInParameter(cmdupdate, "@Vessel", DbType.String, modifydata.vessel);
if (modifydata.voyage != "" && modifydata.voyage != null)
db.AddInParameter(cmdupdate, "@Voyage", DbType.String, modifydata.voyage);
if (modifydata.etd != "" && modifydata.etd != null)
db.AddInParameter(cmdupdate, "@Etd", DbType.String, modifydata.etd);
if (modifydata.state !="0")
db.AddInParameter(cmdupdate, "@State", DbType.String, modifydata.state);
if (modifydata.position != "" && modifydata.position != null)
db.AddInParameter(cmdupdate, "@Position", DbType.String, modifydata.position);
if (modifydata.reachtime != "" && modifydata.reachtime != null)
db.AddInParameter(cmdupdate, "@ReachTime", DbType.String, modifydata.reachtime);
if (modifydata.fobport != "" && modifydata.fobport != null)
db.AddInParameter(cmdupdate, "@fobport", DbType.String, modifydata.fobport);
if (modifydata.Remarks != "" && modifydata.Remarks != null)
db.AddInParameter(cmdupdate, "@Remarks", DbType.String, modifydata.Remarks);
db.AddInParameter(cmdupdate, "@b_id", DbType.String, enumValue.b_id);
db.ExecuteNonQuery(cmdupdate, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "修改出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "修改成功" + result.Message;
return result;
}
public static DBResult ModifyCtn(List<MsCtn> bodyList, MsCtn modifydata)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var strSql = new StringBuilder();
strSql.Append("update container_info set cntrno=cntrno ");
if (modifydata.status != 0)
strSql.Append(",status=@status");
if (modifydata.rent_begintime != "" && modifydata.rent_begintime != null)
strSql.Append(",rent_begintime=@rent_begintime");
if (modifydata.rent_endtime != "" && modifydata.rent_endtime != null)
strSql.Append(",rent_endtime=@rent_endtime");
strSql.Append(" where cntrid=@cntrid ");
var cmdupdate =
db.GetSqlStringCommand(strSql.ToString());
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdupdate.Parameters.Clear();
if (modifydata.status != 0)
db.AddInParameter(cmdupdate, "@status", DbType.String, modifydata.status);
if (modifydata.rent_begintime != "" && modifydata.rent_begintime != null)
db.AddInParameter(cmdupdate, "@rent_begintime", DbType.String, modifydata.rent_begintime);
if (modifydata.rent_endtime != "" && modifydata.rent_endtime != null)
db.AddInParameter(cmdupdate, "@rent_endtime", DbType.String, modifydata.rent_endtime);
db.AddInParameter(cmdupdate, "@cntrid", DbType.String, enumValue.cntrid);
db.ExecuteNonQuery(cmdupdate, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "修改出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "修改成功" + result.Message;
return result;
}
public static string importBox(MsCtnStatus headdata,string username)
{
string str = "";
if (isCntrNO(headdata.box_no))
{
try
{
T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA();
DataSet ds = T_ALL_DA.GetAllSQL("select * from container_business where vessel='" + headdata.vessel + "' and Voyage='" + headdata.voyage + "' and Box_No='" +headdata.box_no+ "'");
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdupdate = db.GetSqlStringCommand("update container_business set BLNO=@BLNO,Etd=@Etd,State=@State,positionname=@positionname,ReachTime=@ReachTime,fobportname=@fobportname,operman=@operman ,opertime=@opertime,Remarks=@Remarks,OneWay=@OneWay where Vessel=@Vessel and Voyage=@Voyage and Box_No=@Box_No");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BLNO", DbType.String, headdata.blno);
db.AddInParameter(cmdupdate, "@Vessel", DbType.String, headdata.vessel);
db.AddInParameter(cmdupdate, "@Voyage", DbType.String, headdata.voyage);
db.AddInParameter(cmdupdate, "@Box_No", DbType.String, headdata.box_no);
db.AddInParameter(cmdupdate, "@Etd", DbType.String, sqlnull(headdata.etd));
db.AddInParameter(cmdupdate, "@State", DbType.String, headdata.state);
db.AddInParameter(cmdupdate, "@positionname", DbType.String, headdata.positionname);
db.AddInParameter(cmdupdate, "@ReachTime", DbType.String, sqlnull(headdata.reachtime));
db.AddInParameter(cmdupdate, "@fobportname", DbType.String, headdata.fobportname);
db.AddInParameter(cmdupdate, "@operman", DbType.String, username);
db.AddInParameter(cmdupdate, "@opertime", DbType.String, headdata.etd);
db.AddInParameter(cmdupdate, "@Remarks", DbType.String, headdata.Remarks);
db.AddInParameter(cmdupdate, "@OneWay", DbType.String, headdata.ONEWAY);
db.ExecuteNonQuery(cmdupdate, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
}
}
}
else
{
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdupdate = db.GetSqlStringCommand("insert into container_business (BLNO,Vessel,Voyage,Box_No,Etd,State,positionname,ReachTime,fobportname,operman,opertime,oneway)values(@BLNO,@Vessel,@Voyage,@Box_No,@Etd,@State,@positionname,@ReachTime,@fobportname,@operman,@opertime,@oneway)");
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BLNO", DbType.String, headdata.blno);
db.AddInParameter(cmdupdate, "@Vessel", DbType.String, headdata.vessel);
db.AddInParameter(cmdupdate, "@Voyage", DbType.String, headdata.voyage);
db.AddInParameter(cmdupdate, "@Box_No", DbType.String, headdata.box_no);
db.AddInParameter(cmdupdate, "@Etd", DbType.String, sqlnull(headdata.etd));
db.AddInParameter(cmdupdate, "@State", DbType.String, headdata.state);
db.AddInParameter(cmdupdate, "@positionname", DbType.String, headdata.positionname);
db.AddInParameter(cmdupdate, "@ReachTime", DbType.String,sqlnull( headdata.reachtime));
db.AddInParameter(cmdupdate, "@fobportname", DbType.String, headdata.fobportname);
db.AddInParameter(cmdupdate, "@operman", DbType.String, username);
db.AddInParameter(cmdupdate, "@opertime", DbType.String, headdata.etd);
db.AddInParameter(cmdupdate, "@oneway", DbType.String, headdata.ONEWAY);
db.ExecuteNonQuery(cmdupdate, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
}
}
}
// BaseClass.db.SetSqlStrNonQuery("update container_info set status=" + setFE(dr["ISFULL"].ToString()) + ",Position='" + posi + "',positionname='" + posiname + "',Vessel='" + vsl + "',Voyage='" + val + "' where CntrNo='" + dr["CNTR NO"].ToString().Trim() + "'");
}
catch { }
}
else
{
str += headdata.box_no + ",";
}
if (!string.IsNullOrEmpty(str.TrimEnd(',')))
{
str = "已导入,以下箱号不合法未能导入:\\n" + str.TrimEnd(',');
}
else
str += "导入成功";
return str;
}
//public static string getPosition(string position)
//{
// string str = "";
// try
// {
// str = BaseClass.db.GetSqlStrScalar("select portid from code_disport where cname='" + position + "'").ToString();
// }
// catch { }
// return str;
//}
public static string getDate(string date)
{
string str = null;
try
{
str = DateTime.Parse(date).ToString("yyyy-MM-dd");
}
catch { }
return str;
}
public static string getStatus(string s)
{
string str = null;
switch (s)
{
case "可用":
str = "1";
break;
case "已用":
str = "2";
break;
case "维修":
str = "3";
break;
case "停用":
str = "4";
break;
case "退租":
str = "5";
break;
case "灭失":
str = "6";
break;
case "卖出":
str = "7";
break;
}
return str;
}
public static string setFE(string s)
{
string str = null;
if (s.ToUpper() == "F")
str = "2";
else if (s.ToUpper() == "E")
str = "1";
return str;
}
public static bool isCntrNO(string no)
{
String regex = @"^[a-zA-Z]{4}\d{7}$";
if (Regex.IsMatch(no, regex))
{
return true;
}
else
{
return false;
}
}
#region 查询当前登录用户
static public string getuser(string userid)
{
string sql = "select showname from [user] where gid='" + userid + "'";
return SetUser(sql);
}
private static string SetUser(string sb)
{
string s = "";
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sb.ToString()))
{
while (reader.Read())
{
#region Set DB data to Object
s= Convert.ToString(reader["showname"]);
#endregion
}
reader.Close();
}
return s;
}
#endregion
#endregion
#region 导入Excel
public static DBResult ImportCtnDetailData(string data, HttpRequestBase request, DataTable table, out string msg, out List<MsCtnStatus> headList,string userid)
{
var result = new DBResult();
StringBuilder sb = new StringBuilder("");
msg = "";
headList = new List<MsCtnStatus>();
if (table == null) throw new ArgumentNullException("table");
var billNoList = new List<string>();
Database db = DatabaseFactory.CreateDatabase();
using (DbConnection connection = db.CreateConnection())
{
connection.Open();
DbTransaction T = connection.BeginTransaction();
try
{
string jcyy = string.Empty;
string vessel = string.Empty;
string voyage = string.Empty;
string blno = string.Empty;
string state = string.Empty;
string jctime = string.Empty;
string cctime = string.Empty;
foreach (DataRow row in table.Rows)
{
if (isCntrNO(row["箱号"].ToString())==false)
{
sb.Append(row["箱号"].ToString()+",");
}
else
{
if (data == "1")//what happend?
{
jcyy = Convert.ToString(row["进场原因"]).Trim();
vessel = Convert.ToString(row["进场船名"]).Trim();
voyage = Convert.ToString(row["进场航次"]).Trim();
blno = Convert.ToString(row["进场提单号"]).Trim();
state = Convert.ToString(row["进场箱况"]).Trim();
jctime = sqlnull(row["进场日期"].ToString());
cctime = "null";
}
else
{
jcyy = Convert.ToString(row["出场性质"]).Trim();
vessel = Convert.ToString(row["出场船名"]).Trim();
voyage = Convert.ToString(row["出场航次"]).Trim();
blno = Convert.ToString(row["出场提单号"]).Trim();
cctime = sqlnull(row["出场日期时间"].ToString());
jctime = "null";
}
string sql = " update container_info set cntype='" + Convert.ToString(row["箱型"]).Trim() + "' where cntrno='" + Convert.ToString(row["箱号"]).Trim() + "'";
var cmd = db.GetSqlStringCommand(sql);
int a = db.ExecuteNonQuery(cmd, T);
if (a == 0)
{
sb.Append(Convert.ToString(row["箱号"]).Trim() + ",");
}
else
{
string sqlmx = string.Format("insert into container_business(jcyy,box_no,CNTROWNER,jctime,vessel,"
+ "voyage,blno,[state],cz,operman,opertime,cctime) values('{0}','{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}','{9}','{10}'," + cctime + ")", jcyy,
Convert.ToString(row["箱号"]).Trim(), Convert.ToString(row["箱属"]).Trim(), jctime
, vessel, voyage, blno, state, Convert.ToString(row["场站名"]).Trim(), getuser(userid), DateTime.Now.ToString("yyyy-MM-dd"));
var cmdmx = db.GetSqlStringCommand(sqlmx);
db.ExecuteNonQuery(cmdmx, T);
}
}
}
T.Commit();
string nmsg = sb.ToString();
if (nmsg!="")
{
result.Message = "导入成功,以下箱号不存在,故未能导入:</br>" + nmsg;
}
else
{
result.Message = "导入成功";
}
result.Success = true;
}
catch (Exception exception)
{
T.Rollback();
result.Success = false;
result.Message = exception.Message;
}
}
return result;
}
public static string DTS(string s)
{
if (s == "" || s == null)
{
s = "0";
}
return s;
}
static public string sqlnull(string s)
{
if (s == "" || s == null)
{
return "null";
}
else
{
return "\'" + s + "\'";
}
}
#endregion
#region 参照部分
#endregion
}
}