using Dapper;
using Estsh.Core.Dapper;
using Estsh.Core.Model.ExcelModel;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repository.IRepositories;
using System.Collections;
using System.Data;
using System.Text;
/***************************************************************************************************
*
* 更新人:sitong.dong
* 描述:半成品库存查询
* 修改时间:2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
///
/// 收货查询补打模块的业务数据
///
public class FinishedHalfInventoryQueryRepository : BaseRepository, IFinishedHalfInventoryQueryRepository
{
public FinishedHalfInventoryQueryRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
///
/// 根据分页条件获取列表
///
///
///
///
///
///
public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" (select part_no from mes_out_pdline (nolock) where product_type = '20' group by part_no) as a ");
SqlStringBuilder.Append(" left join(select part_no, count(1) rejectsY from sys_stock (nolock) where status = '50' " + strWhere + " group by part_no) as b ");
SqlStringBuilder.Append(" on a.part_no = b.part_no ");
SqlStringBuilder.Append(" left join(select part_no, count(1) rejectsN from sys_stock (nolock) where status = '90' " + strWhere + " group by part_no) as c ");
SqlStringBuilder.Append(" on a.part_no = c.part_no ");
SqlStringBuilder.Append(" left join sys_part s on a.part_no = s.part_no " );
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
parameters.Add("@Table", SqlStringBuilder.ToString());
parameters.Add("@Column", @" a.part_no,s.part_spec,s.part_spec2,isnull(b.rejectsY, 0) rejectsY,isnull(c.rejectsN, 0) rejectsN ");
parameters.Add("@OrderColumn", OrderBy);
parameters.Add("@GroupColumn", "");
parameters.Add("@PageSize", PageSize);
parameters.Add("@CurrentPage", PageIndex);
parameters.Add("@Group", 0);
parameters.Add("@Condition", " isnull(b.rejectsY,0) !=0 or isnull(c.rejectsN,0)!=0 ");
Hashtable result = new Hashtable();
List dataList = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", parameters.Get("@TotalCount"));
return result;
}
}
public List getExportList(string strWhere, string orderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append(" select a.part_no,s.part_spec,s.part_spec2,isnull(b.rejectsY, 0) rejectsY,isnull(c.rejectsN, 0) rejectsN from (select part_no from mes_out_pdline (nolock) where product_type = '20' group by part_no) as a ");
SqlStringBuilder.Append(" left join(select part_no, count(1) rejectsY from sys_stock (nolock) where status = '50' " + strWhere + " group by part_no) as b ");
SqlStringBuilder.Append(" on a.part_no = b.part_no ");
SqlStringBuilder.Append(" left join(select part_no, count(1) rejectsN from sys_stock (nolock) where status = '90' " + strWhere + " group by part_no) as c ");
SqlStringBuilder.Append(" on a.part_no = c.part_no ");
SqlStringBuilder.Append(" left join sys_part s on a.part_no = s.part_no where isnull(b.rejectsY,0) !=0 or isnull(c.rejectsN,0)!=0 order by" + orderBy);
List dataList = dbConn.Query(SqlStringBuilder.ToString()).ToList();
return dataList;
}
}
}
}