|
|
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
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// BOM管理数据访问类
|
|
|
/// </summary>
|
|
|
public class BOMSearchRepository : BaseRepository<SysBom>, IBOMSearchRepository
|
|
|
{
|
|
|
public BOMSearchRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取分页数据列表
|
|
|
/// </summary>
|
|
|
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<SysBom> depts = dbConn.Query<SysBom>("Com_Pagination", parameters, commandType: CommandType.StoredProcedure).ToList();
|
|
|
result.Add("dataList", depts);
|
|
|
result.Add("totalCount", parameters.Get<int>("@TotalCount"));
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<SysPart> 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<SysPart> result = dbConn.Query<SysPart>(sql).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<BOMDefine> 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<BOMDefine> result = dbConn.Query<BOMDefine>(SqlStringBuilder.ToString(), parameters).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<BOMDefine> 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<BOMDefine> result = dbConn.Query<BOMDefine>(SqlStringBuilder.ToString(), parameters).ToList();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|