using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using DSWeb.Areas.CommMng.DAL;
using DSWeb.Areas.RptMng.Comm;
using DSWeb.TruckMng.Comm.Cookie;
using DSWeb.TruckMng.Helper;
using DSWeb.TruckMng.Helper.Repository;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.CommMng.Models;
using DSWeb.Areas.TruckMng.Models.MsWlBs;
using DSWeb.Areas.TruckMng.Models.Comm;
using HcUtility.Comm;
using HcUtility.Core;
using DSWeb.Areas.TruckMng.DAL.MsWlBs;
using DSWeb.Areas.TruckMng.DAL.MsWlPc;
using DSWeb.MvcShipping.DAL.MsChFeeDAL;
using DSWeb.SoftMng.Filter;
namespace DSWeb.Areas.TruckMng.Controllers
{
///
/// 路单查询
///
[JsonRequestBehavior]
public class MsWl_HaierController : Controller
{
//
// GET: /RptMng/MsRptPcHeadQry
public ActionResult Index()
{
return View();
}
public ActionResult Edit()
{
return View();
}
//
// GET:/RptMng/MsRptPcHeadQry/QryData
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
public ContentResult QryData(int start, int limit, string condition,string sort)
{
var strDa = GetRangDAStr("index", Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), CookieConfig.GetCookie_OrgCode(Request));
if (!string.IsNullOrEmpty(strDa))
{
if (!string.IsNullOrEmpty(condition))
{
condition = condition + " and " + strDa;
}
else
{
condition = strDa;
}
}
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append("A.BILLNO,A.GID,A.LRDATE,A.JzDate,A.USERCODE,A.USERNAME,A.ORGCODE,A.ORGNAME,A.TRUCKNO,A.MBLNO,");
strSql.Append("(SELECT TRUCKNO FROM TMSWLTRUCK WHERE TRUCKNO=A.TRUCKNO) AS TRUCKNO_REF,DRVNAME,");
strSql.Append("(SELECT DRVNAME FROM TMSWLDRIVER WHERE DRVCODE=A.DRVNAME) AS DRVNAME_REF,A.MOBILE,dbo.trimdate(A.ExpDate) ExpDate,A.CONTAINERTYPE,");
strSql.Append("(SELECT CtnName FROM VMSTRUCKCTN WHERE CTNCODE=A.CONTAINERTYPE) AS CONTAINERTYPE_REF,A.CONTAINERQTY,A.VOYVEG, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKVOYINFO WHERE VOYCODE=A.VOYVEG) AS VOYVEG_REF,A.ETDATE,A.ENDPORTDATE,A.MBLNO,A.YARDCODE,");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKCLIENT WHERE CUSTCODE=A.YARDCODE) AS YARDCODE_REF,A.YARDNAME,A.RTNYARDCODE, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKCLIENT WHERE CUSTCODE=A.RTNYARDCODE) AS RTNYARDCODE_REF,A.RTNYARDNAME,A.BSTYPE,");
strSql.Append("(SELECT ENUMVALUENAME FROM TSYSENUMVALUE WHERE LANGID=0 AND ENUMTYPEID=99025 AND ENUMVALUEID=A.BSTYPE) AS BSTYPE_REF,A.DSTAREA,A.DETINATION,A.FactoryAddr,A.LINKTEL,A.LINKMAN,A.RATEDMIL,A.RATEDFUEL ");
strSql.Append(",A.FUELQTY,A.REALMIL,A.REALFUEL,A.NOLOADMIL,A.OVERLOADMIL,A.TON,A.AROUNDTON,A.LOADCOUNT,A.ArriveDate,A.DDCODE, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKUSER WHERE USERCODE=A.DDCODE) AS DDCODE_REF,A.DDNAME,A.RETURNDATE,A.REFBILLNO,A.REMARK,A.ISDOUBLE,A.REFBILLNOSE,A.CONTAINERTYPESE, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKCTN WHERE CTNCODE=A.CONTAINERTYPESE) AS CONTAINERTYPESE_REF,A.CONTAINERQTYSE,A.MBLNOSE,A.VOYVEGSE, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKVOYINFO WHERE VOYCODE=A.VOYVEGSE) AS VOYVEGSE_REF,A.ETDATESE,A.ENDPORTDATESE,A.YARDCODESE, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKCLIENT WHERE CUSTCODE=A.YARDCODESE) AS YARDCODESE_REF,A.YARDNAMESE,A.DSTAREASE,A.FACTORYADDRSE,A.DETINATIONSE,A.LINKMANSE,A.LINKTELSE,A.RTNYARDCODESE, ");
strSql.Append("(SELECT CODEANDNAME FROM VMSTRUCKCLIENT WHERE CUSTCODE=A.RTNYARDCODESE) AS RTNYARDCODESE_REF,A.RTNYARDNAMESE,A.BILLSTATUS, ");
strSql.Append("(SELECT ENUMVALUENAME FROM TSYSENUMVALUE WHERE LANGID=0 AND ENUMTYPEID=99026 AND ENUMVALUEID=A.BILLSTATUS) AS BILLSTATUS_REF,A.FEESTATUS, ");
strSql.Append("(SELECT ENUMVALUENAME FROM TSYSENUMVALUE WHERE LANGID=0 AND ENUMTYPEID=99027 AND ENUMVALUEID=A.FEESTATUS) AS FEESTATUS_REF,A.GID,A.TOTALMIL,A.LOADPLACE,A.LOADFUEL,A.NOLOADFUEL ");
strSql.Append(",A.ARRIVETIME,A.RETURNTIME,A.CUSTLIKEMANCODE,A.CUSTLIKEMANNAME,A.CUSTTEL,A.DRVCODE,A.REFBILLNO");
strSql.Append(",A.CustCode,A.CustName,A.DETINATION,A.CONTAINERNO,A.SEALNO,A.Ton,A.ActualWeight,case A.isdouble when 1 then '是' else '否' end IsDoubleREF ");
strSql.Append(" ,convert(bigint ,A.TimeMark) as TimeMark ");
strSql.Append("from tMsWlPcHead A ");
strSql.Append(" where A.PcBillType='0' ");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" and " + condition);
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else {
strSql.Append(" order by A.TRUCKNO,A.LRDATE DESC");
}
var dbparams = new List();
var paramps_sSQL = new CustomDbParamter();
paramps_sSQL.ParameterName = "@sSQL";
paramps_sSQL.DbType = DbType.String;
paramps_sSQL.Direction = ParameterDirection.Input;
paramps_sSQL.Value = strSql.ToString();
dbparams.Add(paramps_sSQL);
var dbRptResult = PubSysDAL.GetMsSqlPrcDataSet("sMsExesqlQry", dbparams, "Result_Set");
var json = RptHelper.GetRptJsonResult(start, limit, dbRptResult, "Result_Set", true);
return new ContentResult() { Content = json };
}
public static string GetRangDAStr(string tb, string userid, string usercode, string orgcode)
{
string str = "";
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(" VISIBLERANGE,OPERATERANGE ");
strSql.Append(" from VW_User_Authority ");
strSql.Append(" where [NAME]='modTruckBs' and USERID='" + userid + "' and ISDELETE=0");
string visiblerange = "4";
string operaterange = "4";
Database db = DatabaseFactory.CreateDatabase();
DataSet ds = new DataSet();
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 = "1=2";
}
else if (visiblerange == "3")
{
if (tb == "index")
{
str = " A.UserCode='" + usercode + "'";
}
else
{
str = " UPPER(A.OrgCode)='" + orgcode + "'";
}
}
else if (visiblerange == "2")
{
if (tb == "index")
{
var rangeDa = new RangeDA();
var companyid = rangeDa.GetCORPID(userid);
var deptname = rangeDa.GetDEPTNAME(userid);
var userstr = new StringBuilder();
userstr.Append(" select codename from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')");
Database userdb = DatabaseFactory.CreateDatabase();
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
{
str = "";
while (reader.Read())
{
if (str == "")
{
str = "(A.usercode='" + Convert.ToString(reader["codename"]) + "'";
}
else
{
str = str+ " or A.usercode='" + Convert.ToString(reader["codename"]) + "'";
};
}
str =str+ ")";
reader.Close();
}
}
else
{
str = " UPPER(A.OrgCode)='" + orgcode + "'";
}
}
else if (visiblerange == "1")
{
str = " UPPER(A.OrgCode)='" + orgcode + "'";
}
return str;
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
public ContentResult GetDataList(int start, int limit, string sort, string condition)
{
var dataList = GetDataList(condition, 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 };
}
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
static public List GetDataList( string condition,string sort)
{
var strSql = new StringBuilder();
strSql.Append(" SELECT BILLNO,GID,DdCode,DdName,CustCode,CustName,TRUCKNO,MBLNO,DrvCode,ArriveDate ");
strSql.Append(" ,(SELECT DRVNAME FROM TMSWLDRIVER WHERE DRVCODE=A.DrvCode) AS DRVNAME ");
strSql.Append(" ,FactoryAddr,ChangedFuel,OverLoadMil,NoLoadMil,RealMil,TotalMil,convert(bigint ,A.TimeMark) as TimeMark, ");
strSql.Append(" (SELECT CODEANDNAME FROM VMSTRUCKUSER WHERE USERCODE=A.DDCODE) AS DDCODE_REF,RealFuel,feestatus ");
strSql.Append(" ,(select sum(amount) from ch_fee where bsno=A.BillNo and feename='路桥费(重驶)' and feetype=1 ) ZSLQF");
strSql.Append(" ,(select sum(amount) from ch_fee where bsno=A.BillNo and feename='路桥费(空驶)' and feetype=1 ) KSLQF");
strSql.Append(" ,(select sum(amount) from ch_fee where bsno=A.BillNo and (feename='路桥费(空驶)' or feename='路桥费(重驶)') and feetype=1 ) LQF");
strSql.Append(" from tmswlpchead A ");
if (!string.IsNullOrEmpty(condition))
{
strSql.Append(" where " + condition.Replace("~", ""));//str.Replace("b","**");
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by billno ");
}
return SetData(strSql);
}
/*
public ContentResult GetData(string condition)
{
MsWlPcHead head = null;
var _t = "";
var list = GetDataList(condition, _t);
if (list.Count > 0)
head = list[0];
if (head == null)
{
head = new MsWlPcHead();
}
var json = JsonConvert.Serialize(
new { Success = true, Message = "查询成功", data = head });
return new ContentResult() { Content = json };
}*/
[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器
static public MsWlPcHead GetData(string condition)
{
var _t = "";
var list = GetDataList(condition, _t);
if (list.Count > 0)
return list[0];
return new MsWlPcHead();
}
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())
{
MsWlPcHead data = new MsWlPcHead();
#region Set DB data to Object
data.BillNo = Convert.ToString(reader["BILLNO"]);
data.GId = Convert.ToString(reader["GID"]);
data.DdCode = Convert.ToString(reader["DdCode"]);
data.DdCode_Ref = Convert.ToString(reader["DDCODE_REF"]);
data.DdName = Convert.ToString(reader["DdName"]);
data.CustCode = Convert.ToString(reader["CustCode"]);
data.CustName = Convert.ToString(reader["CustName"]);
data.TruckNo = Convert.ToString(reader["TRUCKNO"]);
data.MblNo = Convert.ToString(reader["MBLNO"]);
data.DrvCode = Convert.ToString(reader["DrvCode"]);
data.DrvName = Convert.ToString(reader["DrvName"]);
data.ArriveDate = Convert.ToString(reader["ArriveDate"]);
data.FactoryAddr = Convert.ToString(reader["FactoryAddr"]);
data.TimeMark = Convert.ToDecimal(reader["TimeMark"]);
data.ChangedFuel = Convert.ToDecimal(reader["ChangedFuel"]);
data.OverLoadMil = Convert.ToDecimal(reader["OverLoadMil"]);
data.NoLoadMil = Convert.ToDecimal(reader["NoLoadMil"]);
data.RealMil = Convert.ToDecimal(reader["RealMil"]);
data.TotalMil = Convert.ToDecimal(reader["TotalMil"]);
data.FEESTATUS = Convert.ToString(reader["FeeStatus"]);
data.ZSLQF = Convert.ToString(reader["ZSLQF"]);
data.KSLQF = Convert.ToString(reader["KSLQF"]);
data.LQF = Convert.ToString(reader["LQF"]);
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
public ContentResult CreatePC(string data)
{
var head = JsonConvert.Deserialize(data);
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
head.BillNo = PubSysDAL.GetBillNo("0111"); //获取路单号
head.RefBillNo = head.BillNo;
if (!string.IsNullOrEmpty(head.ArriveDate))
{
head.ArriveDate = head.ArriveDate.Substring(0, 10);
}
//head.PcBillType = '0';
var modb = new ModelObjectRepository();
DBResult result = modb.Save(head);
//var USERID = Convert.ToString(CookieConfig.GetCookie_UserId(Request));
//var USERCODE = Convert.ToString(CookieConfig.GetCookie_UserCode(Request));
//var ORGCODE = Convert.ToString(CookieConfig.GetCookie_OrgCode(Request));
//刷新父窗口上的父节点
var _r = GetData(" billno= '" + head.BillNo + "'") ;
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = _r
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
////建立维修派车单
///
/// 将派车单的开头字母WL改成WX
///
///
///
public ContentResult CreateWXPC(string data)
{
var head = JsonConvert.Deserialize(data);
head.DbOperationType = DbOperationType.DbotIns;
head.ModelUIStatus = "I";
head.BillNo = PubSysDAL.GetBillNo("0111"); //获取路单号
head.BillNo = head.BillNo.Replace("WL", "WX");
head.RefBillNo = head.BillNo;
if (!string.IsNullOrEmpty(head.ArriveDate))
{
head.ArriveDate = head.ArriveDate.Substring(0, 10);
}
//head.PcBillType = '0';
var modb = new ModelObjectRepository();
DBResult result = modb.Save(head);
//var USERID = Convert.ToString(CookieConfig.GetCookie_UserId(Request));
//var USERCODE = Convert.ToString(CookieConfig.GetCookie_UserCode(Request));
//var ORGCODE = Convert.ToString(CookieConfig.GetCookie_OrgCode(Request));
//刷新父窗口上的父节点
var _r = GetData(" billno= '" + head.BillNo + "'");
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = _r
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult DeletePC(string data)
{
var head = JsonConvert.Deserialize(data);
head.DbOperationType = DbOperationType.DbotDel;
head.ModelUIStatus = "D";
var modb = new ModelObjectDB();
DBResult result = modb.Delete(head);
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = null
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult SavePC(string data)
{
var head = JsonConvert.Deserialize(data);
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
if (!string.IsNullOrEmpty(head.ArriveDate))
{
head.ArriveDate=head.ArriveDate.Substring(0,10);
}
var modb = new ModelObjectRepository();
DBResult result = modb.Save(head);
//var USERID = Convert.ToString(CookieConfig.GetCookie_UserId(Request));
//var USERCODE = Convert.ToString(CookieConfig.GetCookie_UserCode(Request));
//var ORGCODE = Convert.ToString(CookieConfig.GetCookie_OrgCode(Request));
//刷新父窗口上的父节点
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = GetData(" gid= '" + head.GId + "'")
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public int SetFee(string GIDList,string FeeName,string Amount, string Type)
{
var strSql = new StringBuilder();
var userid = Convert.ToString(Session["USERID"]);
var _GIDList = JsonConvert.Deserialize>(GIDList);
var _count = 0;
if (Type == "1")
{
foreach (var GID in _GIDList)
{
strSql.Append(" if ((select count(*) _count from ch_fee where FEETYPE=1 ");
strSql.Append(" and FEENAME='" + FeeName + "' and amount=" + Amount + " and bsno='" + GID + "')=0) ");
strSql.Append(" BEGIN ");
strSql.Append(" insert into ch_fee (gid,bsno,feetype,feename,unitprice,quantity,AMOUNT,customername,remark,enteroperator) ");
strSql.Append(" VALUES(newid(),'" + GID + "',1,'" + FeeName + "'," + Amount + ",1," + Amount + ",'华泰',dbo.trimdate(getdate())+'批量添加','" + userid + "') ");
strSql.Append(" END ");
_count = _count + DoSQL(strSql);
}
}
else if (Type == "0")
{
foreach (var GID in _GIDList)
{
strSql.Append(" delete from ch_fee where FEENAME='" + FeeName + "' and amount=" + Amount + " and bsno='" + GID + "' ");
_count = _count + DoSQL(strSql);
}
}
return _count;//ExecuteNonQuery
}
private static int DoSQL(StringBuilder strSql)
{
var _count = 0;
Database db = DatabaseFactory.CreateDatabase();
_count = db.ExecuteNonQuery(CommandType.Text, strSql.ToString());
return _count;
}
public ContentResult SaveCHFEE(string ChFeeBody, string ChFeeDelBody, string ChFee_YFBody, string ChFee_YFDelBody)
{
var ChFeeBodyList = JsonConvert.Deserialize>(ChFeeBody);
var ChFeeDelBodyList = JsonConvert.Deserialize>(ChFeeDelBody);
var ChFee_YFBodyList = JsonConvert.Deserialize>(ChFee_YFBody);
var ChFee_YFDelBodyList = JsonConvert.Deserialize>(ChFee_YFDelBody);
var modb = new ModelObjectRepository();
DBResult result = modb.SaveComm(
ModelObjectConvert.ToModelObjectList(ChFeeBodyList),
ModelObjectConvert.ToModelObjectList(ChFeeDelBodyList),
ModelObjectConvert.ToModelObjectList(ChFeeBodyList),
ModelObjectConvert.ToModelObjectList(ChFeeDelBodyList)
);
//刷新父窗口上的父节点
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
//Data = XXHDAL.GetData("M.ContractNo='" + head.ContractNo + "'")
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
#region 参照部分
#endregion
public ContentResult DeleteYDHZ ( string data )
{
var head = JsonConvert.Deserialize(data);
head.DbOperationType = DbOperationType.DbotDel;
head.ModelUIStatus = "D";
var modb = new ModelObjectDB();
DBResult result = modb.Delete(head);
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = null
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
public ContentResult SaveYDHZ ( string data )
{
var head = JsonConvert.Deserialize(data);
head.DbOperationType = DbOperationType.DbotUpd;
head.ModelUIStatus = "E";
//if (!string.IsNullOrEmpty(head.ArriveDate))
//{
// head.ArriveDate=head.ArriveDate.Substring(0,10);
//}
var modb = new ModelObjectRepository();
DBResult result = modb.Save(head);
//var USERID = Convert.ToString(CookieConfig.GetCookie_UserId(Request));
//var USERCODE = Convert.ToString(CookieConfig.GetCookie_UserCode(Request));
//var ORGCODE = Convert.ToString(CookieConfig.GetCookie_OrgCode(Request));
//刷新父窗口上的父节点
var jsonRespose = new JsonResponse
{
Success = result.Success,
Message = result.Message,
Data = GetData(" M.gid= '" + head.GID + "'")
};
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
}