using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using DSWeb.Areas.TruckMng.DAL.TMSRPT; using DSWeb.Areas.TruckMng.Models; using DSWeb.Areas.TruckMng.Models.TMSRPT; using DSWeb.Areas.TruckMng.Models.Card; using DSWeb.TruckMng.Comm.Cookie; using DSWeb.TruckMng.Helper; using DSWeb.TruckMng.Helper.Repository; using HcUtility.Comm; using HcUtility.Core; using System.Text; using System.Data; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.CommMng.Models; using DSWeb.Areas.CommMng.DAL; using DSWeb.Areas.TruckMng.DAL.MsWlInsure; using System.IO; using System.Data.OleDb; using DSWeb.SoftMng.Filter; namespace DSWeb.Areas.TruckMng.Controllers { [JsonRequestBehavior] public class TMSRPTController : Controller { // // GET: /TruckMng/MsWlTruck public ActionResult MONTH_Index() { return View(); } // // GET: /TruckMng/MsWlTruck/Edit public ActionResult MONTH_Edit() { return View(); } public ActionResult MONTH_View() { return View(); } // // GET:/TruckMng/MsWlTruck/GetDataList [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult MONTH_GetDataList(int start, int limit, string sort, string condition) { var dataList = TMSRPTDAL.GetDataList(condition, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request), sort); var list = dataList.Skip(start).Take(limit); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); return new ContentResult() { Content = json }; } // // GET:/TruckMng/MsWlTruck/GetData/ [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult MONTH_GetData ( string handle, string condition ) { TMSRPT_MONTH head = null; if (handle == "edit") { var list = TMSRPTDAL.GetDataList(condition, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request)); if (list.Count > 0) head = list[0]; } if (head == null) { head = new TMSRPT_MONTH(); head.GID = System.Guid.NewGuid().ToString(); head.OP = Session["SHOWNAME"].ToString(); head.COMPANYID = Session["COMPANYID"].ToString(); head.ACCDATE = TMSRPTDAL.GetACCDATE(Session["COMPANYID"].ToString()); head.OPDATE = System.DateTime.Now.ToString("yyyy-MM-dd"); head.FUELPRICE = "0"; } var json = JsonConvert.Serialize( new { Success = true, Message = "查询成功", data = head }); return new ContentResult() { Content = json }; } public ContentResult Save ( string opstatus, string data, string body, string delbody ) { TMSRPT_MONTH head = JsonConvert.Deserialize(data); var bodyList = JsonConvert.Deserialize>(body); var bodyDelList = JsonConvert.Deserialize>(delbody); if (opstatus == "add") { head.DbOperationType = DbOperationType.DbotIns; head.ModelUIStatus = "I"; //head.OP = Convert.ToString(Session["SHOWNAME"]); //head.OPDATE = System.DateTime.Now.ToString("G"); //head.OrgCode = CookieConfig.GetCookie_OrgCode(Request); } else if (opstatus == "edit") { head.DbOperationType = DbOperationType.DbotUpd; head.ModelUIStatus = "E"; head.OP = Convert.ToString(Session["SHOWNAME"]); head.OPDATE = System.DateTime.Now.ToString("G"); } else { head.DbOperationType = DbOperationType.DbotDel; } var modb = new ModelObjectRepository(); DBResult result = modb.Save(head, ModelObjectConvert.ToModelObjectList(bodyList), ModelObjectConvert.ToModelObjectList(bodyDelList) ); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = TMSRPTDAL.GetData("GID='" + head.GID + "'", Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request)) }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult Delete(string data) { var head = JsonConvert.Deserialize(data); var modb = new ModelObjectDB(); DBResult result = modb.Delete(head, Session["USERID"].ToString(),true , "delete from TMSRPT_MONTH_TRUCKDETAIL where GID='"+head.GID+"'" ); var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetBodyList(int start, int limit, string condition) { var dataList = TMSRPTDAL.GetBodyList(condition); var list = dataList.Skip(start).Take(limit); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); return new ContentResult() { Content = json }; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetCompanyDetailList ( int start, int limit, string condition ) { var dataList = TMSRPTDAL.GetCompanyDetailList(condition); var list = dataList.Skip(start).Take(limit); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); return new ContentResult() { Content = json }; } /* #region 参照部分 public ContentResult GetDrvCodeList() { var list = MsWlTruckDAL.GetDrvCodeList(Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request)); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", data = list.ToList() }); return new ContentResult() { Content = json }; } #endregion // public ContentResult GetTruckMonthList ( string condition ) { var dataList = MsWlTruckDAL.GetTruckMonthList(condition); //var list = dataList.Skip(start).Take(limit); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = dataList.ToList() }); return new ContentResult() { Content = json }; } */ public ContentResult ReMake(string data) { TMSRPT_MONTH head = JsonConvert.Deserialize(data); 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(" delete from TMSRPT_MONTH_TRUCKDETAIL where LINKGID='" + head.GID + "' "); strSql.Append(" insert into TMSRPT_MONTH_TRUCKDETAIL(GID,LINKGID,COMPANYID,TRUCKNO,TEU,RATEDMIL,OVERLOADMIL,TONS,REALFUEL,RATEDFUEL,REMAINFUEL,AMOUNT,LQF,OTHERAMOUNT "); strSql.Append(" ,ZJF,BXF,FUELPRICE,FUELAMOUNT,REPAIRDAYS,REPAIRAMOUNT,TYREAMOUNT,TAX,TRUCKCOST,TRUCKPROFIT_M,CARDAYS,WORKDAYS,USABLEDAYS,USABLERATE,MILPERDAY,PcBillType,FUELAMOUNTRATE) "); strSql.Append(" exec [proc_TMSRPT_MONTH] '" + head.GID + "','" + head.COMPANYID + "'," + head.FUELPRICE + ",'" + head.ACCDATE + "','','" + head.EXPDATEBGN + "','" + head.EXPDATEEND + "' "); var cmdupdate = db.GetSqlStringCommand(strSql.ToString()); cmdupdate.Parameters.Clear(); db.ExecuteNonQuery(cmdupdate, tran); result = new DBResult(); result.Success = true; result.Message = "审核成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "审核错误,请重试或联系系统管理员"; } } if (result.Success == true) { MakeBX(data); } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult LoadBeforeFee(string data) { //从上个月份获取数据 TMSRPT_MONTH head = JsonConvert.Deserialize(data); var result = new DBResult(); var beforeACCDATE = TMSRPTDAL.GetBeforeACCDATE(head); if (beforeACCDATE != "") { Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var strSql = new StringBuilder(); strSql.Append(" update TMSRPT_MONTH_TRUCKDETAIL set "); strSql.Append(" zjf=(select top 1 isnull(ZJF,0) from TMSRPT_MONTH_TRUCKDETAIL T where T.TRUCKNO=TMSRPT_MONTH_TRUCKDETAIL.TRUCKNO and T.LINKGID=(select top 1 gid from TMSRPT_MONTH where ACCDATE='" + beforeACCDATE + "' and COMPANYID='" + head.COMPANYID + "' and isnull(isdelete,0)=0)) "); // strSql.Append(" ,SBF=(select top 1 isnull(SBF,0) from TMSRPT_MONTH_TRUCKDETAIL T where T.TRUCKNO=TMSRPT_MONTH_TRUCKDETAIL.TRUCKNO and T.LINKGID=(select top 1 gid from TMSRPT_MONTH where ACCDATE='" + beforeACCDATE + "' and COMPANYID='" + head.COMPANYID + "' and isnull(isdelete,0)=0)) "); // strSql.Append(" ,GJJ=(select top 1 isnull(GJJ,0) from TMSRPT_MONTH_TRUCKDETAIL T where T.TRUCKNO=TMSRPT_MONTH_TRUCKDETAIL.TRUCKNO and T.LINKGID=(select top 1 gid from TMSRPT_MONTH where ACCDATE='" + beforeACCDATE + "' and COMPANYID='" + head.COMPANYID + "' and isnull(isdelete,0)=0)) "); strSql.Append(" where LINKGID='"+head.GID+"' "); var cmdupdate = db.GetSqlStringCommand(strSql.ToString()); cmdupdate.Parameters.Clear(); db.ExecuteNonQuery(cmdupdate, tran); result = new DBResult(); result.Success = true; result.Message = "审核成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "审核错误,请重试或联系系统管理员"; } } } var jsonRespose = new JsonResponse { Success = false, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult MakeBX ( string data ) //生成保险费 { TMSRPT_MONTH head = JsonConvert.Deserialize(data); var result = new DBResult(); result.Success = true; result.Message = "没有保险数据"; var DetailList = TMSRPTDAL.GetBodyList("LINKGID='"+head.GID+"'"); var UPDList = TMSRPTDAL.GetBodyList("1=2"); foreach (var _D in DetailList) { var _FEE=0M; var BXList=MsWlInsureDAL.GetAllDataList(" TRUCKNO='" + _D.TRUCKNO + "' and (InsureEndDate between '" + head.EXPDATEBGN.Substring(0, 10) + "' and '" + head.EXPDATEEND.Substring(0, 10) + "'" + " or InsureBgnDate between '" + head.EXPDATEBGN.Substring(0, 10) + "' and '" + head.EXPDATEEND.Substring(0, 10) + "' " + " or '" + head.EXPDATEBGN.Substring(0, 10) + "' between InsureBgnDate and InsureEndDate " + " or '" + head.EXPDATEEND.Substring(0, 10) + "' between InsureBgnDate and InsureEndDate ) and isnull((select sum(isnull(insuretotal,0)) from tMsWlInsureBody b where b.BillNo=tMsWlInsurehead.BillNo),0)>0 "); var truckbgn=Convert.ToDateTime(head.EXPDATEBGN.Substring(0, 10)); var truckend=Convert.ToDateTime(head.EXPDATEEND.Substring(0, 10)); if (BXList.Count == 0) { continue; } foreach (var _B in BXList) { var insurebgn=Convert.ToDateTime(_B.InsureBgnDate); var insureend=Convert.ToDateTime(_B.InsureEndDate); //保险大于月内 以车时间为准 if (insurebgn <= truckbgn && insureend >= truckend) { TimeSpan _insuredays = insureend.Subtract(insurebgn); var insuredays = Convert.ToDecimal(_insuredays.Days.ToString()) + 1; var _dayFee = Convert.ToDecimal(_B.InsureTotal) / insuredays; TimeSpan _Truckdays = truckend.Subtract(truckbgn); var Truckdays = Convert.ToDecimal(_Truckdays.Days.ToString()) + 1; _FEE = _FEE + Truckdays * _dayFee; } else if (insurebgn <= truckbgn && insureend > truckbgn && insureend < truckend) //前交叉 车开始日期 在保险起止日期之间 { TimeSpan _insuredays = insureend.Subtract(insurebgn); var insuredays = Convert.ToDecimal(_insuredays.Days.ToString()) + 1; var _dayFee = Convert.ToDecimal(_B.InsureTotal) / insuredays; TimeSpan _Truckdays = insureend.Subtract(truckbgn); var Truckdays = Convert.ToDecimal(_Truckdays.Days.ToString()) + 1; _FEE = _FEE + Truckdays * _dayFee; } else if (insurebgn > truckbgn && insurebgn <= truckend && insureend > truckend) //后交叉 车结束日期 在保险起止日期之间 { TimeSpan _insuredays = insureend.Subtract(insurebgn); var insuredays = Convert.ToDecimal(_insuredays.Days.ToString()) + 1; var _dayFee = Convert.ToDecimal(_B.InsureTotal) / insuredays; TimeSpan _Truckdays = truckend.Subtract(insurebgn); var Truckdays = Convert.ToDecimal(_Truckdays.Days.ToString()) + 1; _FEE = _FEE + Truckdays * _dayFee; } else if (insurebgn >= truckbgn && insureend <= truckend ) //保险包含于车日之内 { TimeSpan _insuredays = insureend.Subtract(insurebgn); var insuredays = Convert.ToDecimal(_insuredays.Days.ToString()) + 1; var _dayFee = Convert.ToDecimal(_B.InsureTotal) / insuredays; TimeSpan _Truckdays = insureend.Subtract(insurebgn); var Truckdays = Convert.ToDecimal(_Truckdays.Days.ToString()) + 1; _FEE = _FEE + Truckdays * _dayFee; } } if (_FEE > 0) { //费用后台计算 _D.BXF = _FEE.ToString(); //保险费加入成本 _D.TRUCKCOST = Convert.ToString(Convert.ToDecimal(_D.TRUCKCOST) + _FEE); //计算:燃油费用占收入比 if (Convert.ToDecimal(_D.AMOUNT)!=0){ _D.FUELAMOUNTRATE = Convert.ToString(Convert.ToDecimal(_D.FUELAMOUNT) / Convert.ToDecimal(_D.AMOUNT)); } UPDList.Add(_D); } } if (UPDList.Count > 0) { var modb = new ModelObjectRepository(); result = modb.SaveComm( ModelObjectConvert.ToModelObjectList(DetailList) ); } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #region 审核 是否允许查看 public ContentResult StartAudit ( String USERID, String bill ) { var result = new DBResult(); var WorkFlowName = "TMSRPT_MONTHAudit"; var billList = bill.Split(','); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var billno in billList) { Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, billno, USERID,"",billno,""); if (WorkResult.Success == true) { var cmdupdate = db.GetSqlStringCommand("update TMSRPT_MONTH set BLSTATUS=1 where GID=@GID and BLSTATUS in(0,4) "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, billno); db.ExecuteNonQuery(cmdupdate, tran); } else { result.Success = false; result.Message = "审核错误!"; } } result = new DBResult(); result.Success = true; result.Message = "审核成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "审核错误,请重试或联系系统管理员"; //return result; } } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult ResetAudit ( String USERID, String bill ) { var result = new DBResult(); var WorkFlowName = "TMSRPT_MONTHAudit"; var billList = bill.Split(','); var _count = 0; Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var billno in billList) { Resultmb WorkResult = WorkFlowDAL.WorkFlowReset(WorkFlowName, billno, USERID); if (WorkResult.Success == true) { var cmdupdate = db.GetSqlStringCommand("update CRM_QUOTATION set BLSTATUS=1 where GID=@GID and BLSTATUS in()"); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, billno); _count = db.ExecuteNonQuery(cmdupdate, tran); } else { result.Success = false; result.Message = "审核错误!"; } } result = new DBResult(); if (_count > 0) { result.Success = true; result.Message = "撤回成功"; } else { result.Success = false; result.Message = "撤回失败"; } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "撤回失败,请重试或联系系统管理员"; //return result; } } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult Audit ( String USERID, String bill ) { var result = new DBResult(); var WorkFlowName = "TMSRPT_MONTHAudit"; var billList = bill.Split(','); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var billno in billList) { Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, billno, USERID,billno); if (WorkResult.Success == true) { var cmdupdate = db.GetSqlStringCommand("update TMSRPT_MONTH set BLSTATUS=2 where GID=@GID and BLSTATUS=1 "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, billno); db.ExecuteNonQuery(cmdupdate, tran); } else { result.Success = false; result.Message = "审核错误!"; } } result = new DBResult(); result.Success = true; result.Message = "审核成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "审核错误,请重试或联系系统管理员"; } } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult AuditBack ( String USERID, String bill ) { var result = new DBResult(); var WorkFlowName = "TMSRPT_MONTHAudit"; var billList = bill.Split(','); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var billno in billList) { Resultmb WorkResult = WorkFlowDAL.DeleteWorkFlowDo(WorkFlowName, billno, USERID, ""); if (WorkResult.Success == true) { var cmdupdate = db.GetSqlStringCommand("update TMSRPT_MONTH set BLSTATUS=4 where GID=@GID and BLSTATUS in(1,2) "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, billno); db.ExecuteNonQuery(cmdupdate, tran); } else { result.Success = false; result.Message = "审核错误!"; } } result = new DBResult(); result.Success = true; result.Message = "审核成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "审核错误,请重试或联系系统管理员"; } } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message, Data = null }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } #endregion [HttpPost] public ContentResult File ( ) { var jsonRespose = new JsonResponse { Success = false, Message = "" }; if (Request.Files.Count != 1) { jsonRespose.Success = false; jsonRespose.Message = "请选择上传的文件"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var file = Request.Files["file"]; var TMSRPT_GID = Request.Form["GID"].ToString().Trim(); //var AIRLINES = Request.Form["AIRLINES"].ToString().Trim(); if (file == null) { jsonRespose.Success = false; jsonRespose.Message = "上传文件发生未知错误,请重新上传"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } if (Convert.ToString(Session["COMPANYID"]).ToString().Trim() == "" || Convert.ToString(Session["USERID"]).ToString().Trim() == "" || Convert.ToString(Session["CODENAME"]).ToString().Trim() == "" || Convert.ToString(Session["SHOWNAME"]).ToString().Trim() == "" || Convert.ToString(Session["DEPTNAME"]).ToString().Trim() == "") { var jsonRespose2 = new JsonResponse { Success = false, Message = "登录超时,请退出系统重新登录!" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) }; } string ext = Path.GetExtension(file.FileName).ToLower(); if (ext == ".asp" || ext == ".aspx") { jsonRespose.Success = false; jsonRespose.Message = "不允许上传ASP或ASPX文件"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var path = Server.MapPath("../../UploadFiles/CtnTkDetail"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var size = file.ContentLength; var name = Path.GetFileName(file.FileName); //var bsno = Request.Form["bsno"]; var usercode = CookieConfig.GetCookie_UserCode(Request); string filename = path + "\\" + usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff") + name; if (System.IO.File.Exists(filename)) { System.IO.File.Delete(filename); } file.SaveAs(filename); if (!System.IO.File.Exists(filename)) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据01"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } List sheets = ExcelSheetName(filename); if (sheets.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据02"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } try { var sheetname = sheets[0]; string excelConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=Excel 8.0;"; if (filename.ToLower().IndexOf(".xlsx") > 0) { excelConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes\""; } OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "A1:AA]", excelConn); DataSet ds = new DataSet(); oada.Fill(ds); if (ds.Tables.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据03"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var table = ds.Tables[0]; if (table.Rows.Count == 0) { jsonRespose.Success = false; jsonRespose.Message = "上传的Excel不包含数据04"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var message = string.Empty; List headList; //if (customerFieldName == "委托单位") //{ var InsertCount = 0; var UpdateCount = 0; var UnKnowenTruckNo = ""; var isSucess = TMSRPTDAL.ImportExcelData(Request, table, out message, out InsertCount, out UpdateCount, TMSRPT_GID, out UnKnowenTruckNo, out headList); if (!isSucess) { jsonRespose.Success = false; jsonRespose.Message = message; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var json = JsonConvert.Serialize(new { success = true, Message = "上传成功,共处理" + Convert.ToString(headList.Count) + "条记录,其中更新" + Convert.ToString(UpdateCount) + "个。" + UnKnowenTruckNo, data = headList.ToList() }); return new ContentResult() { Content = json }; } catch (Exception) { jsonRespose.Success = false; jsonRespose.Message = "读取Excel文件出错,请确认文件正确性"; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } } public List ExcelSheetName ( string filepath ) { var al = new List(); try { string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;"; if (filepath.ToLower().IndexOf(".xlsx") > 0) { strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes\""; } OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); System.Data.DataTable sheetNames = conn.GetOleDbSchemaTable (System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); conn.Close(); foreach (DataRow dr in sheetNames.Rows) { al.Add(dr[2].ToString()); } } catch (Exception) { return new List(); } return al; } } }