using System; using System.Collections.Generic; using System.Linq; using System.Web; using DSWeb.Areas.MvcShipping.Models.Disport; using System.Data; using Microsoft.Practices.EnterpriseLibrary.Data; using HcUtility.Comm; using System.Text.RegularExpressions; using System.Text; using DSWeb.Areas.MvcShipping.Models.MsCodeVesselSetModel; using DSWeb.MvcShipping.DAL.MsInfoClient; using DSWeb.MvcShipping.DAL.MsOpSeaeDAL; namespace DSWeb.Areas.MvcShipping.DAL.code_vesselModelDal { public class code_vessel { //查询code_vessel语句 static public List GetVesselList(string condition) { StringBuilder sb = new StringBuilder("select z.vsid,z.vessel,z.cname,z.carrier,z.edicode,z.SHIPAGENCY from code_vessel "); sb.Append(" as z "); if (!string.IsNullOrEmpty(condition)) { sb.Append(" where " + condition); } sb.Append(" order by vsid"); return SetData(sb); } #region 根据ID进行查询 static public List GetVesselByID(object headData) { StringBuilder sb = new StringBuilder("select z.vsid,z.vessel,z.cname,z.carrier,z.edicode,z.SHIPAGENCY from code_vessel "); sb.Append(" as z where z.vsid='"+headData+"'"); return SetData(sb); } #endregion private static List SetData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { code_vesselModel data = new code_vesselModel(); #region Set DB data to Object data.vsid = Convert.ToString(reader["vsid"]); data.vessel = Convert.ToString(reader["vessel"]); data.cname = Convert.ToString(reader["cname"]); data.carrier = Convert.ToString(reader["carrier"]); data.edicode = Convert.ToString(reader["edicode"]); data.SHIPAGENCY = Convert.ToString(reader["SHIPAGENCY"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #region 查询code_voyno 航次资料 static public List GetVoynoList(string headData) { string sql = "select *,(select VESSEL from code_vessel where vsid=code_voyno.vsid) as a,(select TOP 1 PORT from code_loadport where EDICODE=code_voyno.PORTLOAD) as PORTLOADREF " + ",(select TOP 1 PORT from code_disport where EDICODE=code_voyno.PORTDISCHARGE) as PORTDISCHARGEREF,(select TOP 1 PORT from code_disport where EDICODE=code_voyno.ENTREPORT) as ENTREPORTREF from code_voyno where vsid='" + headData + "'"; return SetFootData(sql); } static public List GetVoynoListById(string headData) { string sql = "select *,(select VESSEL from code_vessel where vsid=code_voyno.vsid) as a,(select TOP 1 PORT from code_loadport where EDICODE=code_voyno.PORTLOAD) as PORTLOADREF " + ",(select TOP 1 PORT from code_disport where EDICODE=code_voyno.PORTDISCHARGE) as PORTDISCHARGEREF,(select TOP 1 PORT from code_disport where EDICODE=code_voyno.ENTREPORT) as ENTREPORTREF from code_voyno where VOID='" + headData + "'"; return SetFootData(sql); } private static List SetFootData(string strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { code_voynoModel data = new code_voynoModel(); #region Set DB data to Object data.VOID = Convert.ToString(reader["VOID"]); data.VSID = Convert.ToString(reader["VSID"]); data.VOYNO = Convert.ToString(reader["VOYNO"]); data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]); data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]); data.PORTLOADREF = Convert.ToString(reader["PORTLOADREF"]); data.PORTDISCHARGEREF = Convert.ToString(reader["PORTDISCHARGEREF"]); data.ETD = cltime(Convert.ToString(reader["ETD"])); data.CLOSINGDATE = clminute(Convert.ToString(reader["CLOSINGDATE"])); data.ETA = cltime(Convert.ToString(reader["ETA"])); data.CORPID = Convert.ToString(reader["CORPID"]); data.YARDID = Convert.ToString(reader["YARDID"]); data.ENTREPORT = Convert.ToString(reader["ENTREPORT"]); data.ENTREPORTREF = Convert.ToString(reader["ENTREPORTREF"]); data.VESSEL = Convert.ToString(reader["a"]); data.ATD = cltime(Convert.ToString(reader["ATD"])); data.CLOSEDOCDATE = clminute(Convert.ToString(reader["CLOSEDOCDATE"])); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 删除 public static DBResult DeleteDetail(code_vesselModel headData) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmd = db.GetSqlStringCommand("delete from code_vessel where vsid='" + headData.vsid + "'"); db.ExecuteNonQuery(cmd, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "删除出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "删除成功"; return result; } #endregion #region 删除航次 public static DBResult DeleteDetailFoot(code_voynoModel headData) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmd = db.GetSqlStringCommand("delete from code_voyno where void='" + headData.VOID + "'"); db.ExecuteNonQuery(cmd, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "删除出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "删除成功"; return result; } #endregion #region 插入code_vessel表 public static DBResult InsertDetail(code_vesselModel headData) { var result = new DBResult(); try { string csql = "select count(vessel) as c from code_vessel where vessel='"+headData.vessel+"'"; int findresult = Convert.ToInt32(findname(csql)); if (findresult > 0) { result.Success = false; result.Message = "添加失败,船名英文名称不可重复添加!"; return result; } } catch (Exception) { result.Success = false; result.Message = "添加出现错误,请重试或联系系统管理员"; return result; } result.Success = true; result.Message = "添加成功"; return result; } #endregion #region 查询是否有重复的船名 public static DBResult InsertVessel(code_voynoModel headData) { var result = new DBResult(); try { string csql = "select count(VOYNO) as c from code_voyno where VSID='" + headData.VSID + "' and VOYNO='" + headData.VOYNO + "'"; int findresult = Convert.ToInt32(findname(csql)); if (findresult > 0) { result.Success = false; result.Message = "添加失败,同一船名航次不可重复添加!"; return result; } } catch (Exception e) { result.Success = false; result.Message = "添加出现错误,请重试或联系系统管理员"; return result; throw; } result.Success = true; result.Message = "添加成功"; return result; } public static DBResult UpdateBsVesselVoy(code_voynoModel headData) { var result = new DBResult(); var mblnos = ""; Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var bslist = MsOpSeaeDAL.GetFenList(" BSSTATUS=0 and VESSEL='" + headData.VESSEL + "' and VOYNO='" + headData.VOYNO + "' and PORTLOADID='" + headData.PORTLOAD + "'","","","",null,false); if (bslist != null) { foreach (var enumValue in bslist) { if (headData.ETD != "" && enumValue.CUSTOMERNAME != "")// headData.STLDATE == "" && { //根据客户、开船日计算账期 var _dmb = MsInfoClientDAL.GetSTLDATE(enumValue.CUSTOMERNAME, "海运出口", headData.ETD, enumValue.SALE); var STLNAME = _dmb.STLNAME; var STLDATE = _dmb.STLDATE; if (_dmb.STLNAME == "") { STLNAME = "现结买单"; STLDATE = headData.ETD; } var cmdupdate = db.GetSqlStringCommand(@"update op_seae set ETD='" + headData.ETD + "',ATD='" + headData.ATD + "',STLNAME='" + STLNAME + "',STLDATE='" + STLDATE + "' where BSNO='" + enumValue.BSNO + "'"); db.ExecuteNonQuery(cmdupdate, tran); } else { var cmdupdate = db.GetSqlStringCommand(@"update op_seae set ETD='" + headData.ETD + "',ATD='" + headData.ATD + "' where BSNO='" + enumValue.BSNO + "'"); db.ExecuteNonQuery(cmdupdate, tran); } } } tran.Commit(); var strSql = new StringBuilder(); strSql.Append("SELECT MBLNO FROM op_seae where BSSTATUS=1 and VESSEL='" + headData.VESSEL + "' and VOYNO='" + headData.VOYNO + "' and PORTLOADID='" + headData.PORTLOAD + "'"); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { mblnos = mblnos + Convert.ToString(reader["MBLNO"])+";"; } } } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "更新出现错误,请重试或联系系统管理员"; return result; } } if (mblnos == "") mblnos = "更新成功"; else mblnos = "提单号:" + mblnos + " 已业务锁定,无法更新!"; result.Success = true; result.Message = mblnos; return result; } #endregion #region 插入code_vessel表 public static DBResult InsertVoyno(code_voynoModel headData) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { //var cmdDelete = db.GetSqlStringCommand("delete from code_voyno where vessel='" + headData.vessel + "'"); //db.ExecuteNonQuery(cmdDelete, tran); string sql = string.Format(" insert into code_voyno values('{0}','{1}','{2}','{3}','{4}',{5},{6},{7},'{8}','{9}','{10}','" + headData.VESSEL + "'," + sqlnull(headData.ATD) + ",'"+headData.CLOSEDOCDATE+"')", headData.DM_ID, headData.VSID, headData.VOYNO, headData.PORTLOAD, headData.PORTDISCHARGE, sqlnull(headData.ETD), sqlnull(headData.CLOSINGDATE), sqlnull(headData.ETA), headData.CORPID, headData.YARDID, headData.ENTREPORT); var cmd = db.GetSqlStringCommand(sql); db.ExecuteNonQuery(cmd, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } #endregion #region 读取数据库返回结果 private static string findname(string strSql) { string c = ""; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { #region Set DB data to Object c = Convert.ToString(reader["c"]); #endregion } reader.Close(); } return c; } #endregion #region 获取航次列表 static public List GetVoynotList() { string sql = "select voyno from code_voyno"; return SetVoynoData(sql); } private static List SetVoynoData(string strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { code_voynoModel data = new code_voynoModel(); #region Set DB data to Object data.VOYNO = Convert.ToString(reader["voyno"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion public static DBResult SDetail(code_vesselModel headData) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdDelete = db.GetSqlStringCommand("delete from code_vessel where vsid='" + headData.vsid + "'"); db.ExecuteNonQuery(cmdDelete, tran); string sql = string.Format("insert into code_vessel values('{0}','{1}','{2}','{3}','{4}','{5}')", headData.DM_ID, headData.vessel, headData.cname, headData.carrier, headData.edicode,headData.SHIPAGENCY); var cmd = db.GetSqlStringCommand(sql); db.ExecuteNonQuery(cmd, tran); tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } static public string cltime(string s) { if (s==""||s==null) { return s; } else { string sa = Convert.ToDateTime(s).ToString("yyyy-MM-dd"); return sa; } } static public string clminute(string s) { if (s == "" || s == null) { return s; } else { string sa = Convert.ToDateTime(s).ToString("yyyy-MM-dd HH:mm"); return sa; } } static public object sqlnull(string s) { if (s == "" || s == null) { return "null"; } else { return "\'" + s + "\'"; } } } }