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.OA.Models.RptVwWmsStocktakeEntity; using DSWeb.Areas.CommMng.Models; using DSWeb.TruckMng.Helper; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.EntityDA; using System.IO; using DSWeb.SoftMng.Filter; namespace DSWeb.Areas.OA.Controllers { /// /// 应收应付明细 /// public class RptWmsController : Controller { // // GET: /Import/RptImportFeedetail/ // 库存分段盘点 public ActionResult RptVwWmsStocktakeIndex() { return View(); } public ActionResult RptVwWmsStocktakeEdit() { return View(); } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetDataList(int start, int limit, string sort, string condition, string condition2, string condition3, string condition4) { var dataList = GetDataList(condition, condition2, condition3, condition4, 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 防注入过滤器 private static List GetDataList(string strCondition, string strCondition2, string strCondition3, string strCondition4, string sort) { //原仓储查询语句 //strSql.Append(" SELECT NID,CUSTOMERNAME,STORAGENAME,WMSDATE,BLNO,CONTRACTNO,CUSTOMNO,GOODSGRADE,GOODSNAME,GOODSMODEL,GOODSSTANDARD,GOODSSLICE" //+ ",hj_GOODSPACK,hj_GOODSPACKACTUAL,hj_GOODSPACKPFSL,hj_GOODSPACKSTOCK" //+ ",hj_GOODSRKSL,hj_GOODSRKSLACTUAL,hj_GOODSPFSL_OUT,hj_GOODSSTOCK" //+ ",CHARGEUNIT FROM VW_WMS_STOCKTAKE "); ////WHERE 1=1 " + ViewState["hid_sel"].ToString().Trim() ////+ " ORDER BY CUSTOMERNAME,STORAGENAME,WMSDATE,BLNO,GOODSNAME,GOODSMODEL "); //原程序 //var strSql = new StringBuilder(); //strSql.Append(" select * from vw_wms_stocktake"); //if (!string.IsNullOrEmpty(strCondition)) //{ // strSql.Append(" where " + strCondition); //} if (!string.IsNullOrEmpty(strCondition)) { strCondition = " and " + strCondition; } if (!string.IsNullOrEmpty(strCondition2)) { strCondition2 = " and " + strCondition2; } if (!string.IsNullOrEmpty(strCondition3)) { strCondition3 = " and " + strCondition3; } if (!string.IsNullOrEmpty(strCondition4)) { strCondition4 = " and " + strCondition4; } String strSql = "select GID, WMSDATE, CUSTOMERNAME, BLNO, STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, (SELECT CONTRACTNO FROM op_seai WHERE BSNO = A.ASSOCIATEDNO) CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, ISNULL(GOODSSLICE, 0) AS GOODSSLICE, GOODSSTANDARD, '' AS REMARK" + ", ISNULL(sum(GOODSRKSL), 0) AS hj_GOODSRKSL"//入库量 + ", ISNULL(SUM(GOODSPFSL), 0) AS hj_GOODSPFSL_OUT"//出库量 + ", ISNULL(SUM(GOODSPFSL_MONTH), 0) AS hj_GOODSPFSL_MONTH"//出库量_区间 + ", ISNULL((ISNULL(sum(GOODSRKSL), 0)-ISNULL(SUM(GOODSPFSL), 0)),0) AS hj_GOODSSTOCK"//入库量-出库量=库存量 + ", ISNULL(sum(GOODSPACK), 0) AS hj_GOODSPACK"//入库件数 + ", ISNULL(SUM(GOODSPACKPFSL), 0) AS hj_GOODSPACKPFSL"//出库件数 + ", ISNULL(SUM(GOODSPACKPFSL_MONTH), 0) AS hj_GOODSPACKPFSL_MONTH"//出库件数_区间 + ", ISNULL((ISNULL(sum(GOODSPACK), 0)-ISNULL(SUM(GOODSPACKPFSL), 0)),0) AS hj_GOODSPACKSTOCK"//入库件数-出库件数=剩余件数 + ", ISNULL(sum(GOODSPACKACTUAL), 0) AS hj_GOODSPACKACTUAL"//实际件数 + ", ISNULL(sum(GOODSRKSLACTUAL), 0) AS hj_GOODSRKSLACTUAL"//实际数量 + " from (" + "SELECT GID, CONVERT(char(10), WMSDATE, 120) AS WMSDATE, CUSTOMERNAME, BLNO, STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSSTANDARD, '' AS REMARK, '' as GOODSGRADE, 0 as GOODSSLICE" + ", GOODSRKSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition4 + "),0) as GOODSPFSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition2 + "),0) as GOODSPFSL_MONTH" + ", GOODSPACK" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition4 + "),0) as GOODSPACKPFSL" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition2 + "),0) as GOODSPACKPFSL_MONTH" + ", GOODSPACKACTUAL, GOODSRKSLACTUAL, CORPID " + " FROM wms WHERE CHARGEUNIT <> 'CBM' AND ISDELETE = 0 " + strCondition + ") as A where 1=1 " + strCondition3 + " GROUP BY GID,CUSTOMERNAME, STORAGENAME, AREANAME, BLNO, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, GOODSSLICE, GOODSSTANDARD, GOODSRKSL, GOODSPACK, GOODSPACKACTUAL, GOODSRKSLACTUAL, WMSDATE" + " UNION ALL " + "select GID, WMSDATE, CUSTOMERNAME, BLNO, STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, ISNULL(GOODSSLICE, 0) AS GOODSSLICE, GOODSSTANDARD, '' AS REMARK" + ", ISNULL(sum(GOODSRKSL), 0) AS hj_GOODSRKSL"//入库量 + ", ISNULL(SUM(GOODSPFSL), 0) AS hj_GOODSPFSL_OUT"//出库量 + ", ISNULL(SUM(GOODSPFSL_MONTH), 0) AS hj_GOODSPFSL_MONTH"//出库量_区间 + ", ISNULL((ISNULL(sum(GOODSRKSL), 0)-ISNULL(SUM(GOODSPFSL), 0)),0) AS hj_GOODSSTOCK"//入库量-出库量=库存量 + ", ISNULL(sum(GOODSPACK), 0) AS hj_GOODSPACK"//入库件数 + ", ISNULL(SUM(GOODSPACKPFSL), 0) AS hj_GOODSPACKPFSL"//出库件数 + ", ISNULL(SUM(GOODSPACKPFSL_MONTH), 0) AS hj_GOODSPACKPFSL_MONTH"//出库件数_区间 + ", ISNULL((ISNULL(sum(GOODSPACK), 0)-ISNULL(SUM(GOODSPACKPFSL), 0)),0) AS hj_GOODSPACKSTOCK"//入库件数-出库件数=剩余件数 + ", ISNULL(sum(GOODSPACKACTUAL), 0) AS hj_GOODSPACKACTUAL"//实际件数 + ", ISNULL(sum(GOODSRKSLACTUAL), 0) AS hj_GOODSRKSLACTUAL"//实际数量 + " from (" + "SELECT i.GID, CONVERT(char(10), w.WMSDATE, 120) AS WMSDATE" + ", w.CUSTOMERNAME, w.BLNO, w.STORAGENAME, w.AREANAME, w.GOODSNAME, i.GOODSMODEL, w.ASSOCIATEDNO, w.CONTRACTNO, w.CHARGEUNIT, w.CUSTOMNO, i.GOODSGRADE, i.GOODSSLICE, i.GOODSSTANDARD, '' as REMARK" + ", i.GOODSRKSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=i.GID " + strCondition4 + "),0) as GOODSPFSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=i.GID " + strCondition2 + "),0) as GOODSPFSL_MONTH" + ", i.GOODSPACK" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=i.GID " + strCondition4 + "),0) as GOODSPACKPFSL" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=i.GID " + strCondition2 + "),0) as GOODSPACKPFSL_MONTH" + ", i.GOODSPACKACTUAL, i.GOODSRKSLACTUAL, w.CORPID " + " FROM wms_in AS i LEFT OUTER JOIN wms AS w ON i.ASSOCIATEDNO = w.GID WHERE i.CHARGEUNIT = 'CBM' AND i.ISDELETE = 0 " + strCondition + ") as A where 1=1 " + strCondition3 + " GROUP BY GID,CUSTOMERNAME, STORAGENAME, AREANAME, BLNO, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, GOODSSLICE, GOODSSTANDARD, GOODSRKSL, GOODSPACK, GOODSPACKACTUAL, GOODSRKSLACTUAL, WMSDATE"; var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql += " order by " + sortstring; } else { strSql += " order by CUSTOMERNAME,STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, WMSDATE, BLNO"; } return SetData(strSql); } private static List SetData(String strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql)) { while (reader.Read()) { var data = new RptVwWmsStocktakeEntity(); #region Set DB data to Object data.WMSDATE = Convert.ToString(reader["WMSDATE"]); data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); data.BLNO = Convert.ToString(reader["BLNO"]); data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]); data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]); data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]); data.hj_GOODSRKSL = Convert.ToString(reader["hj_GOODSRKSL"]); data.hj_GOODSPFSL_OUT = Convert.ToString(reader["hj_GOODSPFSL_OUT"]); data.hj_GOODSPFSL_MONTH = Convert.ToString(reader["hj_GOODSPFSL_MONTH"]); data.hj_GOODSSTOCK = Convert.ToString(reader["hj_GOODSSTOCK"]); data.hj_GOODSPACK = Convert.ToString(reader["hj_GOODSPACK"]); data.hj_GOODSPACKPFSL = Convert.ToString(reader["hj_GOODSPACKPFSL"]); data.hj_GOODSPACKPFSL_MONTH = Convert.ToString(reader["hj_GOODSPACKPFSL_MONTH"]); data.hj_GOODSPACKSTOCK = Convert.ToString(reader["hj_GOODSPACKSTOCK"]); data.GID = Convert.ToString(reader["GID"]); data.ASSOCIATEDNO = Convert.ToString(reader["ASSOCIATEDNO"]); data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]); data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]); data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]); data.GOODSGRADE = Convert.ToString(reader["GOODSGRADE"]); data.GOODSSLICE = Convert.ToString(reader["GOODSSLICE"]); data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.hj_GOODSPACKACTUAL = Convert.ToString(reader["hj_GOODSPACKACTUAL"]); data.hj_GOODSRKSLACTUAL = Convert.ToString(reader["hj_GOODSRKSLACTUAL"]); data.AREANAME = Convert.ToString(reader["AREANAME"]); #endregion headList.Add(data); } reader.Close(); } return headList; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetVwWmsDetailDataList(string condition, string sort) { var dataList = GetVwWmsDetailDataList2(condition, sort); var list = dataList.Skip(0).Take(20); var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); return new ContentResult() { Content = json }; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 private static List GetVwWmsDetailDataList2(string strCondition, string sort) { var strSql = new StringBuilder(); strSql.Append(" SELECT NID,BLNO,CUSTOMNO,CUSTOMERNAME,STORAGENAME,GOODSNAME,GOODSSTANDARD,GOODSMODEL,WMSNO,OUTBSNO_OUT,BSNO_OUT,WMSDATE,DODATE_OUT,GOODSRKSL,GOODSRKSLACTUAL,GOODSPFSL_OUT,GOODSSTOCK,CHARGEUNIT,GOODSOUTFEE_OUT, GOODSOUTFEEAP_OUT,ARFEE, APFEE,ARFEE_OUT,APFEE_OUT,FREESTORAGEPERIOD,CONTRACTNO,GOODSPACK,TRUCKNO_OUT,REMARK_OUT,MODIFIEDUSER,MODIFIEDTIME,CREATEUSER_OUT,CREATETIME_OUT FROM VW_WMS_DETAIL "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } return SetDetailData(strSql); } private static List SetDetailData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { var data = new WMSDetailmb(); #region Set DB data to Object data.NID = Convert.ToString(reader["NID"]); data.BLNO = Convert.ToString(reader["BLNO"]); data.CUSTOMNO = Convert.ToString(reader["CUSTOMNO"]); data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); data.STORAGENAME = Convert.ToString(reader["STORAGENAME"]); data.GOODSNAME = Convert.ToString(reader["GOODSNAME"]); data.GOODSSTANDARD = Convert.ToString(reader["GOODSSTANDARD"]); data.GOODSMODEL = Convert.ToString(reader["GOODSMODEL"]); data.WMSNO = Convert.ToString(reader["WMSNO"]); data.OUTBSNO_OUT = Convert.ToString(reader["OUTBSNO_OUT"]); data.BSNO_OUT = Convert.ToString(reader["BSNO_OUT"]); data.WMSDATE = Convert.ToString(reader["WMSDATE"]); data.DODATE_OUT = Convert.ToString(reader["DODATE_OUT"]); data.GOODSRKSL = Convert.ToString(reader["GOODSRKSL"]); data.GOODSRKSLACTUAL = Convert.ToString(reader["GOODSRKSLACTUAL"]); data.GOODSPFSL_OUT = Convert.ToString(reader["GOODSPFSL_OUT"]); data.GOODSSTOCK = Convert.ToString(reader["GOODSSTOCK"]); data.CHARGEUNIT = Convert.ToString(reader["CHARGEUNIT"]); data.GOODSOUTFEE_OUT = Convert.ToString(reader["GOODSOUTFEE_OUT"]); data.GOODSOUTFEEAP_OUT = Convert.ToString(reader["GOODSOUTFEEAP_OUT"]); data.ARFEE = Convert.ToString(reader["ARFEE"]); data.APFEE = Convert.ToString(reader["APFEE"]); data.ARFEE_OUT = Convert.ToString(reader["ARFEE_OUT"]); data.APFEE_OUT = Convert.ToString(reader["APFEE_OUT"]); data.FREESTORAGEPERIOD = Convert.ToString(reader["FREESTORAGEPERIOD"]); data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]); data.GOODSPACK = Convert.ToString(reader["GOODSPACK"]); data.TRUCKNO_OUT = Convert.ToString(reader["TRUCKNO_OUT"]); data.REMARK_OUT = Convert.ToString(reader["REMARK_OUT"]); data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]); data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]); data.CREATEUSER_OUT = Convert.ToString(reader["CREATEUSER_OUT"]); data.CREATETIME_OUT = Convert.ToString(reader["CREATETIME_OUT"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #region 获取List合计数 [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult GetDataListSum(int start, int limit, string sort, string condition, string condition2, string condition3, string condition4) { var dataList = GetDataListSum(condition, condition2, condition3, condition4, 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 防注入过滤器 private static List GetDataListSum(string strCondition, string strCondition2, string strCondition3, string strCondition4, string sort) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = " and " + strCondition; } if (!string.IsNullOrEmpty(strCondition2)) { strCondition2 = " and " + strCondition2; } if (!string.IsNullOrEmpty(strCondition3)) { strCondition3 = " and " + strCondition3; } if (!string.IsNullOrEmpty(strCondition4)) { strCondition4 = " and " + strCondition4; } String strSql = "select newid() as GID" + ", ISNULL(sum(hj_GOODSRKSL), 0) AS hj_GOODSRKSL"//入库量 + ", ISNULL(SUM(hj_GOODSPFSL_OUT), 0) AS hj_GOODSPFSL_OUT"//出库量 + ", ISNULL(SUM(hj_GOODSPFSL_MONTH), 0) AS hj_GOODSPFSL_MONTH"//出库量_区间 + ", ISNULL(sum(hj_GOODSSTOCK), 0) AS hj_GOODSSTOCK"//入库量-出库量=库存量 + ", ISNULL(sum(hj_GOODSPACK), 0) AS hj_GOODSPACK"//入库件数 + ", ISNULL(SUM(hj_GOODSPACKPFSL), 0) AS hj_GOODSPACKPFSL"//出库件数 + ", ISNULL(SUM(hj_GOODSPACKPFSL_MONTH), 0) AS hj_GOODSPACKPFSL_MONTH"//出库件数_区间 + ", ISNULL(SUM(hj_GOODSPACKSTOCK), 0) AS hj_GOODSPACKSTOCK"//入库件数-出库件数=剩余件数 + ", ISNULL(sum(hj_GOODSPACKACTUAL), 0) AS hj_GOODSPACKACTUAL"//实际件数 + ", ISNULL(sum(hj_GOODSRKSLACTUAL), 0) AS hj_GOODSRKSLACTUAL"//实际数量 + " from (select newid() as GID, WMSDATE, CUSTOMERNAME, BLNO, STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, ISNULL(GOODSSLICE, 0) AS GOODSSLICE, GOODSSTANDARD, '' AS REMARK" + ", ISNULL(sum(GOODSRKSL), 0) AS hj_GOODSRKSL"//入库量 + ", ISNULL(SUM(GOODSPFSL), 0) AS hj_GOODSPFSL_OUT"//出库量 + ", ISNULL(SUM(GOODSPFSL_MONTH), 0) AS hj_GOODSPFSL_MONTH"//出库量_区间 + ", ISNULL((ISNULL(sum(GOODSRKSL), 0)-ISNULL(SUM(GOODSPFSL), 0)),0) AS hj_GOODSSTOCK"//入库量-出库量=库存量 + ", ISNULL(sum(GOODSPACK), 0) AS hj_GOODSPACK"//入库件数 + ", ISNULL(SUM(GOODSPACKPFSL), 0) AS hj_GOODSPACKPFSL"//出库件数 + ", ISNULL(SUM(GOODSPACKPFSL_MONTH), 0) AS hj_GOODSPACKPFSL_MONTH"//出库件数_区间 + ", ISNULL((ISNULL(sum(GOODSPACK), 0)-ISNULL(SUM(GOODSPACKPFSL), 0)),0) AS hj_GOODSPACKSTOCK"//入库件数-出库件数=剩余件数 + ", ISNULL(sum(GOODSPACKACTUAL), 0) AS hj_GOODSPACKACTUAL"//实际件数 + ", ISNULL(sum(GOODSRKSLACTUAL), 0) AS hj_GOODSRKSLACTUAL"//实际数量 + " from (" + "SELECT GID, CONVERT(char(10), WMSDATE, 120) AS WMSDATE, CUSTOMERNAME, BLNO, STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSSTANDARD, '' AS REMARK, '' as GOODSGRADE, 0 as GOODSSLICE" + ", GOODSRKSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition4 + "),0) as GOODSPFSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition2 + "),0) as GOODSPFSL_MONTH" + ", GOODSPACK" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition4 + "),0) as GOODSPACKPFSL" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=wms.GID " + strCondition2 + "),0) as GOODSPACKPFSL_MONTH" + ", GOODSPACKACTUAL, GOODSRKSLACTUAL, CORPID " + " FROM wms WHERE CHARGEUNIT <> 'CBM' AND ISDELETE = 0 " + strCondition + ") as A where 1=1 " + strCondition3 + " GROUP BY CUSTOMERNAME, STORAGENAME, AREANAME, BLNO, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, GOODSSLICE, GOODSSTANDARD, GOODSRKSL, GOODSPACK, GOODSPACKACTUAL, GOODSRKSLACTUAL, WMSDATE" + " UNION ALL " + "select newid() as GID, WMSDATE, CUSTOMERNAME, BLNO, STORAGENAME, AREANAME, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, ISNULL(GOODSSLICE, 0) AS GOODSSLICE, GOODSSTANDARD, '' AS REMARK" + ", ISNULL(sum(GOODSRKSL), 0) AS hj_GOODSRKSL"//入库量 + ", ISNULL(SUM(GOODSPFSL), 0) AS hj_GOODSPFSL_OUT"//出库量 + ", ISNULL(SUM(GOODSPFSL_MONTH), 0) AS hj_GOODSPFSL_MONTH"//出库量_区间 + ", ISNULL((ISNULL(sum(GOODSRKSL), 0)-ISNULL(SUM(GOODSPFSL), 0)),0) AS hj_GOODSSTOCK"//入库量-出库量=库存量 + ", ISNULL(sum(GOODSPACK), 0) AS hj_GOODSPACK"//入库件数 + ", ISNULL(SUM(GOODSPACKPFSL), 0) AS hj_GOODSPACKPFSL"//出库件数 + ", ISNULL(SUM(GOODSPACKPFSL_MONTH), 0) AS hj_GOODSPACKPFSL_MONTH"//出库件数_区间 + ", ISNULL((ISNULL(sum(GOODSPACK), 0)-ISNULL(SUM(GOODSPACKPFSL), 0)),0) AS hj_GOODSPACKSTOCK"//入库件数-出库件数=剩余件数 + ", ISNULL(sum(GOODSPACKACTUAL), 0) AS hj_GOODSPACKACTUAL"//实际件数 + ", ISNULL(sum(GOODSRKSLACTUAL), 0) AS hj_GOODSRKSLACTUAL"//实际数量 + " from (" + "SELECT i.GID, CONVERT(char(10), w.WMSDATE, 120) AS WMSDATE" + ", w.CUSTOMERNAME, w.BLNO, w.STORAGENAME, w.AREANAME, w.GOODSNAME, i.GOODSMODEL, w.ASSOCIATEDNO, w.CONTRACTNO, w.CHARGEUNIT, w.CUSTOMNO, i.GOODSGRADE, i.GOODSSLICE, i.GOODSSTANDARD, '' as REMARK" + ", i.GOODSRKSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=i.GID " + strCondition4 + "),0) as GOODSPFSL" + ", isnull((select sum(GOODSPFSL) as GOODSPFSL from wms_out_detail where INBSNO=i.GID " + strCondition2 + "),0) as GOODSPFSL_MONTH" + ", i.GOODSPACK" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=i.GID " + strCondition4 + "),0) as GOODSPACKPFSL" + ", isnull((select sum(GOODSPACKPFSL) as GOODSPACKPFSL from wms_out_detail where INBSNO=i.GID " + strCondition2 + "),0) as GOODSPACKPFSL_MONTH" + ", i.GOODSPACKACTUAL, i.GOODSRKSLACTUAL, w.CORPID " + " FROM wms_in AS i LEFT OUTER JOIN wms AS w ON i.ASSOCIATEDNO = w.GID WHERE i.CHARGEUNIT = 'CBM' AND i.ISDELETE = 0 " + strCondition + ") as A where 1=1 " + strCondition3 + " GROUP BY CUSTOMERNAME, STORAGENAME, AREANAME, BLNO, GOODSNAME, GOODSMODEL, ASSOCIATEDNO, CONTRACTNO, CHARGEUNIT, CUSTOMNO, GOODSGRADE, GOODSSLICE, GOODSSTANDARD, GOODSRKSL, GOODSPACK, GOODSPACKACTUAL, GOODSRKSLACTUAL, WMSDATE) as B"; return SetDataSum(strSql); } private static List SetDataSum(String strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql)) { while (reader.Read()) { var data = new RptVwWmsStocktakeEntity(); #region Set DB data to Object data.hj_GOODSRKSL = Convert.ToString(reader["hj_GOODSRKSL"]); data.hj_GOODSRKSLACTUAL = Convert.ToString(reader["hj_GOODSRKSLACTUAL"]); data.hj_GOODSPFSL_OUT = Convert.ToString(reader["hj_GOODSPFSL_OUT"]); data.hj_GOODSPFSL_MONTH = Convert.ToString(reader["hj_GOODSPFSL_MONTH"]); data.hj_GOODSSTOCK = Convert.ToString(reader["hj_GOODSSTOCK"]); data.hj_GOODSPACK = Convert.ToString(reader["hj_GOODSPACK"]); data.hj_GOODSPACKACTUAL = Convert.ToString(reader["hj_GOODSPACKACTUAL"]); data.hj_GOODSPACKPFSL = Convert.ToString(reader["hj_GOODSPACKPFSL"]); data.hj_GOODSPACKPFSL_MONTH = Convert.ToString(reader["hj_GOODSPACKPFSL_MONTH"]); data.hj_GOODSPACKSTOCK = Convert.ToString(reader["hj_GOODSPACKSTOCK"]); data.GID = Convert.ToString(reader["GID"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion // } }