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; } } } }