using System.Collections; using Estsh.Core.Dapper; using Estsh.Core.Models; using System.Data; using System.Text; using Dapper; using Estsh.Core.Repository.IRepositories; using Estsh.Core.Model.Result; using Estsh.Core.Model.ExcelModel; /*************************************************************************************************** * * 更新人:sitong.dong * 描述:BOM管理数据访问类 * 修改时间:2022.06.22 * 修改日志:系统迭代升级 * **************************************************************************************************/ namespace Estsh.Core.Repositories { /// /// BOM管理数据访问类 /// public class BOMSearchRepository : BaseRepository, IBOMSearchRepository { public BOMSearchRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } /// /// 获取分页数据列表 /// public Hashtable getListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); Hashtable result = new Hashtable(); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output); parameters.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output); parameters.Add("@Table", " sys_bom a left join sys_bom_detail b on a.bom_id=b.bom_id left join sys_part c on b.part_no=c.part_no left join sys_part d on b.item_part_no=d.part_no "); parameters.Add("@Column", " a.bom_id,a.part_no,c.part_spec,c.part_spec2,a.unit,a.remark,a.start_ymd,b.item_part_id,b.item_part_no,d.part_spec as item_part_spec,d.part_spec2 as item_part_spec2,b.item_qty, " + " b.item_unit,b.version,a.factory_code,b.create_time,b.enabled "); parameters.Add("@OrderColumn", OrderBy); parameters.Add("@GroupColumn", ""); parameters.Add("@PageSize", PageSize); parameters.Add("@CurrentPage", PageIndex); parameters.Add("@Group", 0); parameters.Add("@Condition", strWhere); List depts = dbConn.Query("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", depts); result.Add("totalCount", parameters.Get("@TotalCount")); return result; } } public List GetPartInfo(string part_no) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); string sql = "SELECT part_id,part_no,part_spec,default_box_qty FROM sys_part (NOLOCK) WHERE enabled='Y' AND part_no LIKE '" + part_no + "%' ORDER BY part_no"; List result = dbConn.Query(sql).ToList(); return result; } } public List getExpotBOMList(String bomType, String partId, String sort, String direction) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append("SELECT "); SqlStringBuilder.Append(" d.part_no as part_no_f ");//父阶零件号 SqlStringBuilder.Append(" , e.part_no as part_no_z ");//子阶零件号 SqlStringBuilder.Append(" , a.bom_type ");//BOM类型 SqlStringBuilder.Append(" , '' as 'ItemGroup' ");//分组 SqlStringBuilder.Append(" , b.location ");//位置 SqlStringBuilder.Append(" , '' as 'Version' ");//版本 SqlStringBuilder.Append(" , c.process_name ");//工站 SqlStringBuilder.Append(" , b.step_type ");//工步序号 SqlStringBuilder.Append(" , 'N' as 'virtual_order' ");//虚阶 SqlStringBuilder.Append(" , d.part_spec AS 'part_spec_f' ");//父阶零件号描述 SqlStringBuilder.Append(" , e.part_spec AS 'part_spec_z' ");//子阶零件号描述 //SqlStringBuilder.Append(" , c.process_name AS '流程名称' "); //SqlStringBuilder.Append(" , b.location AS '显示位置' "); SqlStringBuilder.Append("FROM sys_bom a, sys_bom_detail b "); SqlStringBuilder.Append(" LEFT JOIN sys_process c ON b.process_id = c.process_id, sys_part d, sys_part e "); SqlStringBuilder.Append("WHERE a.part_id = d.part_id "); SqlStringBuilder.Append(" AND b.item_part_id = e.part_id "); SqlStringBuilder.Append(" AND a.bom_id = b.bom_id "); SqlStringBuilder.Append(" AND d.part_id = @part_id "); SqlStringBuilder.Append(" AND a.bom_type = @bom_type "); SqlStringBuilder.Append(" AND a.enabled = 'Y' "); SqlStringBuilder.Append("ORDER BY e.part_no "); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@part_id", partId); parameters.Add("@bom_type", bomType); List result = dbConn.Query(SqlStringBuilder.ToString(), parameters).ToList(); return result; } } public List exportALL(String bomType, String sort, String direction) { using (IDbConnection dbConn = dapperDbContext.GetDbConnection()) { dbConn.Open(); StringBuilder SqlStringBuilder = new StringBuilder(1024); SqlStringBuilder.Append(" d.part_no_f ");//父阶零件号 SqlStringBuilder.Append(" , e.part_no_z ");//子阶零件号 SqlStringBuilder.Append(" , a.bom_type ");//BOM类型 SqlStringBuilder.Append(" , '' as 'ItemGroup' ");//分组 SqlStringBuilder.Append(" , b.location ");//位置 SqlStringBuilder.Append(" , '' as 'Version' ");//版本 SqlStringBuilder.Append(" , c.process_name ");//工站 SqlStringBuilder.Append(" , b.step_type ");//工步序号 SqlStringBuilder.Append(" , 'N' as 'virtual_order' ");//虚阶 SqlStringBuilder.Append(" , d.part_spec AS 'part_spec_f' ");//父阶零件号描述 SqlStringBuilder.Append(" , e.part_spec AS 'part_spec_z' ");//子阶零件号描述 SqlStringBuilder.Append("FROM sys_bom a , "); SqlStringBuilder.Append("sys_bom_detail b "); SqlStringBuilder.Append("LEFT JOIN sys_process c ON b.process_id = c.process_id , "); SqlStringBuilder.Append("sys_part d , "); SqlStringBuilder.Append("sys_part e "); SqlStringBuilder.Append("WHERE a.part_id = d.part_id "); SqlStringBuilder.Append("AND b.item_part_id = e.part_id "); SqlStringBuilder.Append("AND a.bom_id = b.bom_id "); SqlStringBuilder.Append("AND a.bom_type = @bom_type "); //lvf 20210317 加入过滤条件,过滤禁用的BOM SqlStringBuilder.Append(" AND a.enabled = 'Y' and d.enabled = 'Y' "); SqlStringBuilder.Append("ORDER BY d.part_no , "); SqlStringBuilder.Append("e.part_no "); DynamicParameters parameters = new DynamicParameters(); parameters.Add("@bom_type", bomType); List result = dbConn.Query(SqlStringBuilder.ToString(), parameters).ToList(); return result; } } } }