using System; using System.Data; using System.Data.Common; using System.Collections; using System.Collections.Generic; using System.Text; using DSWeb.MvcShipping.Models.MsOpExpress; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.EntityDA; using DSWeb.Areas.CommMng.Models; using HcUtility.Comm; using System.Data.SqlClient; using DSWeb.DataAccess; using System.IO; using HcUtility.Core; using DSWeb.Areas.CommMng.DAL; using DotNet4.Utilities; using DSWeb.SoftMng.DBUtility; namespace DSWeb.MvcShipping.DAL.MsOpExpressDAL { public class MsOpExpressDAL { #region 查询 static public List GetDataList(string strCondition, string userid, string usercode, string companyid, string sort = null, string load = null) { var rangstr = GetRangDAStr("index", userid, usercode, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } var strSql = new StringBuilder(); strSql.Append("SELECT GID,EXNO,BILLDATE,BILLSTATUS,BILLTYPE,EXPRESSCORP,SENDERCUST,SENDERATTN,SENDERCITY,"); strSql.Append("SENDER,SENDERADDR,SENDERPOST,SENDERTEL,RECEIVECUST,RECEIVEATTN,BILLFEE,SENDERPROVINCE,RECEIVEPROVINCE,"); strSql.Append("RECEIVECITY,[RECEIVE],RECEIVEADDR,RECEIVEPOST,RECEIVETEL,GOODSNAME,REMARKS,CREATEUSER,isnull(EXCOUNT,0)EXCOUNT"); strSql.Append(",(select top 1 showname from [user] where GID=OP_EXPRESS.CREATEUSER) as CREATEUSERREF,CREATETIME"); strSql.Append(" from OP_EXPRESS "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } // var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by BILLDATE desc"); } return SetData(strSql); } static public MsOpExpress GetData(string condition) { var strSql = new StringBuilder(); strSql.Append("SELECT GID,EXNO,BILLDATE,BILLSTATUS,BILLTYPE,EXPRESSCORP,SENDERCUST,SENDERATTN,SENDERCITY,"); strSql.Append("SENDER,SENDERADDR,SENDERPOST,SENDERTEL,RECEIVECUST,RECEIVEATTN,BILLFEE,isnull(EXCOUNT,0)EXCOUNT,"); strSql.Append("RECEIVECITY,[RECEIVE],RECEIVEADDR,RECEIVEPOST,RECEIVETEL,GOODSNAME,REMARKS,CREATEUSER,SENDERPROVINCE,RECEIVEPROVINCE"); strSql.Append(",(select top 1 showname from [user] where GID=OP_EXPRESS.CREATEUSER) as CREATEUSERREF,CREATETIME"); strSql.Append(" from OP_EXPRESS "); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" where " + condition); } var list=SetData(strSql); if (list.Count > 0) return list[0]; return new MsOpExpress(); } 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()) { MsOpExpress data = new MsOpExpress(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]);//业务编号 data.EXNO = Convert.ToString(reader["EXNO"]);//委托方式 if (reader["BILLDATE"] != DBNull.Value) data.BILLDATE = Convert.ToDateTime(reader["BILLDATE"]).ToString("yyyy-MM-dd");//到港日期 data.BILLSTATUS = Convert.ToString(reader["BILLSTATUS"]);// data.BILLTYPE = Convert.ToString(reader["BILLTYPE"]);// data.EXPRESSCORP = Convert.ToString(reader["EXPRESSCORP"]);//主编号 data.SENDERCUST = Convert.ToString(reader["SENDERCUST"]);//委托编号 data.SENDERATTN = Convert.ToString(reader["SENDERATTN"]);//主提单号 data.SENDERCITY = Convert.ToString(reader["SENDERCITY"]);//分提单号 data.SENDER = Convert.ToString(reader["SENDER"]);// 业务状态 data.SENDERADDR = Convert.ToString(reader["SENDERADDR"]);// 费用状态 data.SENDERPOST = Convert.ToString(reader["SENDERPOST"]);//会计期间 data.SENDERTEL = Convert.ToString(reader["SENDERTEL"]);//委托单位 data.RECEIVECUST = Convert.ToString(reader["RECEIVECUST"]);//业务来源 data.RECEIVEATTN = Convert.ToString(reader["RECEIVEATTN"]);//来源明细 data.RECEIVECITY = Convert.ToString(reader["RECEIVECITY"]);//录入人 data.RECEIVE = Convert.ToString(reader["RECEIVE"]);//操作员 data.RECEIVEADDR = Convert.ToString(reader["RECEIVEADDR"]);//客服员 data.RECEIVEPOST = Convert.ToString(reader["RECEIVEPOST"]);//揽货人 data.RECEIVETEL = Convert.ToString(reader["RECEIVETEL"]);//分公司代码 data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]);//所属部门 data.REMARKS = Convert.ToString(reader["REMARKS"]);//创建时间 data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);//创建时间 data.CREATEUSERREF = Convert.ToString(reader["CREATEUSERREF"]);//创建时间 data.SENDERPROVINCE = Convert.ToString(reader["SENDERPROVINCE"]);//发件人省份 data.RECEIVEPROVINCE = Convert.ToString(reader["RECEIVEPROVINCE"]);//收件人省份 if (reader["CREATETIME"] != DBNull.Value) data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]).ToString("yyyy-MM-dd HH:mm:ss"); data.BILLFEE = reader["BILLFEE"].ToString();//快递费 data.EXCOUNT = Convert.ToDecimal(reader["EXCOUNT"]);//寄托物数量 #endregion headList.Add(data); } reader.Close(); } return headList; } public static DBResult RefreshExpressSTATUSList(List bodyList, string status) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdInsert = db.GetSqlStringCommand( @"update OP_EXPRESS set BILLSTATUS=@BILLSTATUS WHERE GID=@GID "); if (bodyList != null) { foreach (var enumValue in bodyList) { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@BILLSTATUS", DbType.String, status); db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID); 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 RefreshExpressSTATUS(string expid,string status) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdInsert = db.GetSqlStringCommand( @"update OP_EXPRESS set BILLSTATUS=@BILLSTATUS WHERE GID=@GID "); cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@BILLSTATUS", DbType.String, status); db.AddInParameter(cmdInsert, "@GID", DbType.String, expid); 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 UpdateSFExpress(string expid,string mailno, string status) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdInsert = db.GetSqlStringCommand( @"update OP_EXPRESS set BILLSTATUS=@BILLSTATUS,EXNO =@EXNO WHERE GID=@GID "); cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@BILLSTATUS", DbType.String, status); db.AddInParameter(cmdInsert, "@EXNO", DbType.String, mailno); db.AddInParameter(cmdInsert, "@GID", DbType.String, expid); 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; } #region 快递动态 static public DBResult GetExpressStatusList(string expno, string expcorpid,string expid) { var result = new DBResult(); result.Success = true; try { HttpHelper http = new HttpHelper(); HttpItem item = new HttpItem() { URL = "http://www.kuaidi100.com/autonumber/autoComNum?text="+expno,//URL这里都是测试 必需项 Referer = "http://www.kuaidi100.com/", Encoding = null,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别 Host = "www.kuaidi100.com", UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", Accept = "application/json, text/javascript, */*",// 可选项有默认值 ContentType = "text/html", Method = "POST",//URL 可选项 默认为Get }; HttpResult resulthtml = http.GetHtml(item); var mycookie = resulthtml.Cookie; item = new HttpItem() { URL = "http://www.kuaidi100.com/query?type="+expcorpid+"&postid="+expno+"&id=1&valicode=&temp=0.07429930970249981",//URL这里都是测试 必需项 Referer = "http://www.kuaidi100.com/", Encoding = null,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别 Cookie = mycookie, Host = "www.kuaidi100.com", UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)", Accept = "text/html, application/xhtml+xml, */*",// 可选项有默认值 ContentType = "application/x-www-form-urlencoded", Method = "GET",//URL 可选项 默认为Get }; resulthtml = http.GetHtml(item); result.Message = resulthtml.Html; var alltext = result.Message; alltext = alltext.Replace(" ",""); if (alltext.IndexOf("已签收")>=0){ RefreshExpressSTATUS(expid,"已收件"); } } catch { result.Success = false; result.Message = "提取数据过程中发生错误,请联系系统管理员!"; } // bodyList=SumBodyList(bodyList); return result; } #endregion #endregion #region 查询费用数据 static public List GetExpressDocList(string strCondition, string userid, string username, string companyid,string sort=null) { //var rangstr = GetRangDAStr(userid, username, companyid); //if (!string.IsNullOrEmpty(rangstr)) //{ // if (!string.IsNullOrEmpty(strCondition)) // { // strCondition = strCondition + " and " + rangstr; // } // else // { // strCondition = rangstr; // } //} StringBuilder strSql = new StringBuilder(); strSql.Append("select e.GID,d.GID DOCID,e.DOCTYPE, d.TRANCNO, d.ISREPEAT, d.REPEAT_MAN, convert(char(10),d.REPEAT_DATE,20) as REPEAT_DATE, d.ISRECEIVE,"); strSql.Append("d.RETURN_MAN, convert(char(10),d.RETURN_DATE,20) as RETURN_DATE, d.RETURN_TRANCER, d.RETURN_TRANCNO, d.REMARK, "); strSql.Append("d.BSNO, d.CORPID, d.CREATEUSER, d.CREATETIME, d.MODIFIEDUSER, d.MODIFIEDTIME, d.RECEIPTNO, d.RECEIPTTYPE, d.RECEIVE_MAN,"); strSql.Append("convert(char(10),d.RECEIVE_DATE,20) as RECEIVE_DATE, d.SEND_MAN, convert(char(10),d.SEND_DATE,20) as SEND_DATE, d.TRANCER"); strSql.Append(",b.CUSTNO,b.MBLNO,b.CUSTOMERNAME,b.OPLBNAME,d.RECEIPTTYPE + '-' + d.RECEIPTNO AS RECEIPTTYPENO,b.OP,b.SALE"); strSql.Append(" from op_express_doc e left join op_receipt d on (d.GID=e.DOCID) "); strSql.Append("left join v_op_bs b on (b.BSNO=d.BSNO) "); if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } if (!string.IsNullOrEmpty(sort)) { strSql.Append(" order by " + sort); } else { strSql.Append(" order by CREATETIME desc"); } return SetExpressDocData(strSql); } private static List SetExpressDocData(StringBuilder strSql) { var bodyList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsOpReceiptEntity data = new MsOpReceiptEntity(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]);//惟一编号 data.DOCID = Convert.ToString(reader["DOCID"]);//惟一编号 data.DOCTYPE = Convert.ToString(reader["DOCTYPE"]);//惟一编号 data.BSNO = Convert.ToString(reader["BSNO"]);//关联编号/业务编号BSNO data.RECEIPTNO = Convert.ToString(reader["RECEIPTNO"]);//单据编号 data.RECEIPTTYPE = Convert.ToString(reader["RECEIPTTYPE"]);//单据类型 data.RECEIPTTYPENO = Convert.ToString(reader["RECEIPTTYPENO"]);//单据类型 data.RECEIVE_MAN = Convert.ToString(reader["RECEIVE_MAN"]);//接单人 data.RECEIVE_DATE = Convert.ToString(reader["RECEIVE_DATE"]);//接单日期 //if (reader["RECEIVE_DATE"] != DBNull.Value) // data.RECEIVE_DATE = Convert.ToDateTime(reader["RECEIVE_DATE"]);//接单日期 data.SEND_MAN = Convert.ToString(reader["SEND_MAN"]);//送单人 data.SEND_DATE = Convert.ToString(reader["SEND_DATE"]);//接单日期 //if (reader["SEND_DATE"] != DBNull.Value) // data.SEND_DATE = Convert.ToDateTime(reader["SEND_DATE"]);//送单日期 data.TRANCER = Convert.ToString(reader["TRANCER"]);//送单的快递公司 data.TRANCNO = Convert.ToString(reader["TRANCNO"]);//送单的快递单号 if (reader["ISREPEAT"] != DBNull.Value) data.ISREPEAT = Convert.ToString(reader["ISREPEAT"]);//是否回单 if (data.ISREPEAT == "0") data.ISREPEAT = "否"; else data.ISREPEAT = "是"; data.REPEAT_MAN = Convert.ToString(reader["REPEAT_MAN"]);//回单人 data.REPEAT_DATE = Convert.ToString(reader["REPEAT_DATE"]);//回单日期 //if (reader["REPEAT_DATE"] != DBNull.Value) // data.REPEAT_DATE = Convert.ToDateTime(reader["REPEAT_DATE"]);//回单日期 if (reader["ISRECEIVE"] != DBNull.Value) data.ISRECEIVE = Convert.ToString(reader["ISRECEIVE"]);//是否还单 if (data.ISRECEIVE == "0") data.ISRECEIVE = "否"; else data.ISRECEIVE = "是"; data.RETURN_MAN = Convert.ToString(reader["RETURN_MAN"]);//还单人 data.RETURN_DATE = Convert.ToString(reader["RETURN_DATE"]);//还单日期 //if (reader["RETURN_DATE"] != DBNull.Value) // data.RETURN_DATE = Convert.ToDateTime(reader["RETURN_DATE"]);//还单日期 data.RETURN_TRANCER = Convert.ToString(reader["RETURN_TRANCER"]);//还单的快递公司 data.RETURN_TRANCNO = Convert.ToString(reader["RETURN_TRANCNO"]);//还单的快递单号 data.REMARK = Convert.ToString(reader["REMARK"]);//备注 data.CORPID = Convert.ToString(reader["CORPID"]);//分公司代码 data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);//创建人GID data.CREATETIME = Convert.ToString(reader["CREATETIME"]);//创建时间 //if (reader["CREATETIME"] != DBNull.Value) // data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间 data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);//更改操作人GID data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);//更改操作时间 data.CUSTNO = Convert.ToString(reader["CUSTNO"]);//更改操作时间 data.MBLNO = Convert.ToString(reader["MBLNO"]);//更改操作时间 data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);//更改操作时间 data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);//更改操作时间 data.OP = Convert.ToString(reader["OP"]);//更改操作时间 data.SALE = Convert.ToString(reader["SALE"]);//更改操作时间 //if (reader["MODIFIEDTIME"] != DBNull.Value) // data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//更改操作时间 #endregion bodyList.Add(data); } reader.Close(); } return bodyList; } private static List SetAddressData(StringBuilder strSql) { var bodyList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsOpAddress data = new MsOpAddress(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]);//惟一编号 data.NAME = Convert.ToString(reader["NAME"]);//收件人姓名 data.CORPNAME = Convert.ToString(reader["CORPNAME"]);//公司名称 data.ADDRESS = Convert.ToString(reader["ADDRESS"]);//收件地址 data.DESTI = Convert.ToString(reader["DESTI"]);//收件城市 data.TEL = Convert.ToString(reader["TEL"]);//电话 data.POSTCODE = Convert.ToString(reader["POSTCODE"]);//邮编 data.CORPNAMERV = Convert.ToString(reader["CORPNAMERV"]);//实际收件公司名称 data.PROVINCE = Convert.ToString(reader["PROVINCE"]);//收件省份 #endregion bodyList.Add(data); } reader.Close(); } return bodyList; } static public List GetDocList(string strCondition, string userid, string username, string companyid,string doctype ,string sort=null) { StringBuilder strSql = new StringBuilder(); if (doctype == "发票") { strSql.Append("select top 10 NEWID() GID,'*' DOCID,'发票' DOCTYPE,'' TRANCNO, null ISREPEAT, '' REPEAT_MAN,null REPEAT_DATE, null ISRECEIVE,"); strSql.Append("'' RETURN_MAN, null RETURN_DATE, '' RETURN_TRANCER, '' RETURN_TRANCNO, '' REMARK, "); strSql.Append("'' BSNO, '' CORPID, '' CREATEUSER,'' CREATETIME, '' MODIFIEDUSER, '' MODIFIEDTIME,INVOICENO RECEIPTNO,'' RECEIPTTYPE, '' RECEIVE_MAN,"); strSql.Append("null RECEIVE_DATE, '' SEND_MAN,null SEND_DATE, '' TRANCER"); strSql.Append(",'' CUSTNO,'' MBLNO,'' CUSTOMERNAME,'' OPLBNAME,'' AS RECEIPTTYPENO,'' SALE,'' OP"); strSql.Append(" from ch_fee_invoice "); } else { strSql.Append("select d.GID,d.GID DOCID,'1' DOCTYPE,d.TRANCNO, d.ISREPEAT, d.REPEAT_MAN, convert(char(10),d.REPEAT_DATE,20) as REPEAT_DATE, d.ISRECEIVE,"); strSql.Append("d.RETURN_MAN, convert(char(10),d.RETURN_DATE,20) as RETURN_DATE, d.RETURN_TRANCER, d.RETURN_TRANCNO, d.REMARK, "); strSql.Append("d.BSNO, d.CORPID, d.CREATEUSER, d.CREATETIME, d.MODIFIEDUSER, d.MODIFIEDTIME, d.RECEIPTNO, d.RECEIPTTYPE, d.RECEIVE_MAN,"); strSql.Append("convert(char(10),d.RECEIVE_DATE,20) as RECEIVE_DATE, d.SEND_MAN, convert(char(10),d.SEND_DATE,20) as SEND_DATE, d.TRANCER"); strSql.Append(",b.CUSTNO,b.MBLNO,b.CUSTOMERNAME,b.OPLBNAME,d.RECEIPTTYPE + '-' + d.RECEIPTNO AS RECEIPTTYPENO,b.SALE,b.OP "); strSql.Append(" from op_receipt d "); strSql.Append("left join v_op_bs b on (b.BSNO=d.BSNO) "); } if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } if (!string.IsNullOrEmpty(sort)) { strSql.Append(" order by " + sort); } else { strSql.Append(" order by CREATETIME desc"); } return SetExpressDocData(strSql); } static public MsOpReceiptEntity GetDoc(string condition) { var strSql = new StringBuilder(); strSql.Append("select d.GID,d.GID DOCID,'1' DOCTYPE,d.TRANCNO, d.ISREPEAT, d.REPEAT_MAN, convert(char(10),d.REPEAT_DATE,20) as REPEAT_DATE, d.ISRECEIVE,"); strSql.Append("d.RETURN_MAN, convert(char(10),d.RETURN_DATE,20) as RETURN_DATE, d.RETURN_TRANCER, d.RETURN_TRANCNO, d.REMARK, "); strSql.Append("d.BSNO, d.CORPID, d.CREATEUSER, d.CREATETIME, d.MODIFIEDUSER, d.MODIFIEDTIME, d.RECEIPTNO, d.RECEIPTTYPE, d.RECEIVE_MAN,"); strSql.Append("convert(char(10),d.RECEIVE_DATE,20) as RECEIVE_DATE, d.SEND_MAN, convert(char(10),d.SEND_DATE,20) as SEND_DATE, d.TRANCER"); strSql.Append(",b.CUSTNO,b.MBLNO,b.CUSTOMERNAME,b.OPLBNAME,d.RECEIPTTYPE + '-' + d.RECEIPTNO AS RECEIPTTYPENO,b.SALE,b.OP"); strSql.Append(" from op_receipt d "); strSql.Append("left join v_op_bs b on (b.BSNO=d.BSNO) "); var list = SetExpressDocData(strSql); if (list.Count > 0) return list[0]; return new MsOpReceiptEntity(); } static public List GetAddressList(string strCondition, string userid, string username, string companyid, string sort = null) { StringBuilder strSql = new StringBuilder(); strSql.Append("select GID,NAME,CORPNAME,ADDRESS,DESTI,PROVINCE,TEL,POSTCODE,CORPNAMERV "); strSql.Append(" from op_express_address "); if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } if (!string.IsNullOrEmpty(sort)) { strSql.Append(" order by " + sort); } else { strSql.Append(" order by NAME desc"); } return SetAddressData(strSql); } public static DBResult SaveDetail(MsOpExpress bill, List bodyList, string companyid, string username, string userid) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdInsert = db.GetSqlStringCommand( @"insert into op_express_doc (GID,EXPID,DOCID) values (@GID,@EXPID,@DOCID) "); var cmdInsertDoc = db.GetSqlStringCommand( @"insert into op_receipt (GID,BSNO,RECEIPTNO,RECEIPTTYPE,SEND_MAN,SEND_DATE, TRANCER,TRANCNO,RETURN_MAN,RETURN_DATE,RETURN_TRANCER,RETURN_TRANCNO,CORPID,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME,REMARK) values (@GID,@BSNO,@RECEIPTNO,@RECEIPTTYPE,@SEND_MAN,@SEND_DATE, @TRANCER,@TRANCNO,@RETURN_MAN,@RETURN_DATE,@RETURN_TRANCER,@RETURN_TRANCNO,@CORPID,@CREATEUSER,@CREATETIME,@MODIFIEDUSER,@MODIFIEDTIME,@REMARK) "); if (bodyList != null) { foreach (var enumValue in bodyList) { var DOCID = ""; if (enumValue.DOCID == "*") { DOCID = Guid.NewGuid().ToString(); cmdInsertDoc.Parameters.Clear(); db.AddInParameter(cmdInsertDoc, "@GID", DbType.String, DOCID); db.AddInParameter(cmdInsertDoc, "@BSNO", DbType.String, enumValue.BSNO); db.AddInParameter(cmdInsertDoc, "@RECEIPTNO", DbType.String, enumValue.RECEIPTNO); db.AddInParameter(cmdInsertDoc, "@RECEIPTTYPE", DbType.String, enumValue.RECEIPTTYPE); db.AddInParameter(cmdInsertDoc, "@CORPID", DbType.String, companyid); db.AddInParameter(cmdInsertDoc, "@CREATEUSER", DbType.String,userid); db.AddInParameter(cmdInsertDoc, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdInsertDoc, "@CREATETIME", DbType.String, DateTime.Now); db.AddInParameter(cmdInsertDoc, "@MODIFIEDTIME", DbType.String, DateTime.Now); if (bill.BILLTYPE == "送单") { db.AddInParameter(cmdInsertDoc, "@SEND_MAN", DbType.String,username); db.AddInParameter(cmdInsertDoc, "@SEND_DATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.AddInParameter(cmdInsertDoc, "@TRANCER", DbType.String,bill.EXPRESSCORP); db.AddInParameter(cmdInsertDoc, "@TRANCNO", DbType.String,bill.EXNO); db.AddInParameter(cmdInsertDoc, "@RETURN_MAN", DbType.String, ""); db.AddInParameter(cmdInsertDoc, "@RETURN_DATE", DbType.String,null); db.AddInParameter(cmdInsertDoc, "@RETURN_TRANCER", DbType.String,""); db.AddInParameter(cmdInsertDoc, "@RETURN_TRANCNO", DbType.String,""); } else if (bill.BILLTYPE == "还单") { db.AddInParameter(cmdInsertDoc, "@SEND_MAN", DbType.String,enumValue.SEND_MAN); db.AddInParameter(cmdInsertDoc, "@SEND_DATE", DbType.String,enumValue.SEND_DATE); db.AddInParameter(cmdInsertDoc, "@TRANCER", DbType.String,enumValue.TRANCER); db.AddInParameter(cmdInsertDoc, "@TRANCNO", DbType.String,enumValue.TRANCNO); db.AddInParameter(cmdInsertDoc, "@RETURN_MAN", DbType.String, username); db.AddInParameter(cmdInsertDoc, "@RETURN_DATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.AddInParameter(cmdInsertDoc, "@RETURN_TRANCER", DbType.String, bill.EXPRESSCORP); db.AddInParameter(cmdInsertDoc, "@RETURN_TRANCNO", DbType.String, bill.EXNO); } else { db.AddInParameter(cmdInsertDoc, "@SEND_MAN", DbType.String, enumValue.SEND_MAN); db.AddInParameter(cmdInsertDoc, "@SEND_DATE", DbType.String, enumValue.SEND_DATE); db.AddInParameter(cmdInsertDoc, "@TRANCER", DbType.String, enumValue.TRANCER); db.AddInParameter(cmdInsertDoc, "@TRANCNO", DbType.String, enumValue.TRANCNO); db.AddInParameter(cmdInsertDoc, "@RETURN_MAN", DbType.String,enumValue.RETURN_MAN); db.AddInParameter(cmdInsertDoc, "@RETURN_DATE", DbType.String,enumValue.RETURN_DATE); db.AddInParameter(cmdInsertDoc, "@RETURN_TRANCER", DbType.String,enumValue.RETURN_TRANCER); db.AddInParameter(cmdInsertDoc, "@RETURN_TRANCNO", DbType.String,enumValue.RETURN_TRANCNO); } db.AddInParameter(cmdInsertDoc, "@REMARK", DbType.String, enumValue.REMARK); db.ExecuteNonQuery(cmdInsertDoc, tran); } else { DOCID = enumValue.DOCID; if (bill.BILLTYPE == "送单") { var cmdUpdateDoc = db.GetSqlStringCommand( @"update op_receipt set SEND_MAN=@SEND_MAN,SEND_DATE=@SEND_DATE,TRANCER=@TRANCER,TRANCNO=@TRANCNO,REMARK=@REMARK where GID=@DOCID "); db.AddInParameter(cmdUpdateDoc, "@SEND_MAN", DbType.String, username); db.AddInParameter(cmdUpdateDoc, "@SEND_DATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.AddInParameter(cmdUpdateDoc, "@TRANCER", DbType.String, bill.EXPRESSCORP); db.AddInParameter(cmdUpdateDoc, "@TRANCNO", DbType.String, bill.EXNO); db.AddInParameter(cmdUpdateDoc, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdUpdateDoc, "@DOCID", DbType.String, DOCID); db.ExecuteNonQuery(cmdUpdateDoc, tran); } else { var cmdUpdateDoc = db.GetSqlStringCommand( @"update op_receipt set RETURN_MAN=@RETURN_MAN,RETURN_DATE=@RETURN_DATE,RETURN_TRANCER=@RETURN_TRANCER,RETURN_TRANCNO=@RETURN_TRANCNO,REMARK=@REMARK where GID=@DOCID "); db.AddInParameter(cmdUpdateDoc, "@RETURN_MAN", DbType.String, username); db.AddInParameter(cmdUpdateDoc, "@RETURN_DATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.AddInParameter(cmdUpdateDoc, "@RETURN_TRANCER", DbType.String, bill.EXPRESSCORP); db.AddInParameter(cmdUpdateDoc, "@RETURN_TRANCNO", DbType.String, bill.EXNO); db.AddInParameter(cmdUpdateDoc, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdUpdateDoc, "@DOCID", DbType.String, DOCID); db.ExecuteNonQuery(cmdUpdateDoc, tran); } } if (enumValue.EXPID == "*") { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@EXPID", DbType.String, bill.GID); db.AddInParameter(cmdInsert, "@DOCID", DbType.String, DOCID); 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 AddBill(string billno, List 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( @"insert into op_express_doc (GID,EXPID,DOCID) values (@GID,@EXPID,@DOCID) "); if (bodyList != null) { foreach (var enumValue in bodyList) { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@EXPID", DbType.String, billno); db.AddInParameter(cmdInsert, "@DOCID", DbType.String, enumValue.GID); 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 DelBill(List boday) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { if (boday != null) { var cmddelete = db.GetSqlStringCommand("delete from op_express_doc where GID=@GID"); foreach (var enumValue in boday) { cmddelete.Parameters.Clear(); db.AddInParameter(cmddelete, "@GID", DbType.String, enumValue.GID); db.ExecuteNonQuery(cmddelete, tran); } } result = new DBResult(); result.Success = true; result.Message = "成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } #endregion public static string GetRangDAStr(string tb, string userid, string username, string companyid) { string str = ""; var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(" VISIBLERANGE,OPERATERANGE "); strSql.Append(" from VW_User_Authority "); strSql.Append(" where [NAME]='modOpExpress' and USERID='" + userid + "' and ISDELETE=0"); string visiblerange = "4"; string operaterange = "4"; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { visiblerange = Convert.ToString(reader["VISIBLERANGE"]); operaterange = Convert.ToString(reader["OPERATERANGE"]); break; } reader.Close(); } if (visiblerange == "4") { str = " CREATEUSER='" + userid + "' "; } else if (visiblerange == "3") { str = " CREATEUSER='" + userid + "' "; } else if (visiblerange == "2") { var rangeDa = new RangeDA(); var deptname = rangeDa.GetDEPTNAME(userid); str = " CREATEUSER in (select USERID from user_company where COMPANYID='" + companyid + "') and CREATEUSER in (select userid from user_baseinfo where DEPTNAME='" + deptname + "') "; } else if (visiblerange == "1") { str = " CORPID='" + companyid + "' "; } else if (visiblerange == "0") { str = " 1=1 "; } return str; } #region 获取顺丰下单号 public static string GetSFOrderID() { SqlParameter[] parameters = { new SqlParameter("@BillType", SqlDbType.VarChar,4), new SqlParameter("@BillDate", SqlDbType.VarChar, 8), }; parameters[0].Value = "0501"; parameters[1].Value = DateTime.Now.ToString("yyyyMMdd"); int num = DbHelperSQL.ExcuteScalarProc("Proc_EIP_OrderNO", parameters); StringBuilder strNo = new StringBuilder(); strNo.Append("QDLH"); strNo.Append(DateTime.Now.ToString("yyyyMMdd")); strNo.Append(String.Format("{0:000}", num)); return strNo.ToString(); } #endregion } }