You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
4.9 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
/// <summary>
/// 收货查询补打模块的业务数据
/// </summary>
public class FinishedHalfInventoryQueryRepository : BaseRepository<MesOutPdline>, IFinishedHalfInventoryQueryRepository
{
public FinishedHalfInventoryQueryRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
/// <summary>
/// 根据分页条件获取列表
/// </summary>
/// <param name="PageSize"></param>
/// <param name="PageIndex"></param>
/// <param name="strWhere"></param>
/// <param name="OrderBy"></param>
/// <returns></returns>
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<MesOutPdline> dataList = dbConn.Query<MesOutPdline>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
return result;
}
}
public List<FinishedHalfInventory> 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<FinishedHalfInventory> dataList = dbConn.Query<FinishedHalfInventory>(SqlStringBuilder.ToString()).ToList();
return dataList;
}
}
}
}