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.

295 lines
13 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.IRepositories;
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
* 描述采购日程单维护DAL层
* 修改时间2022.06.22
* 修改日志:系统迭代升级
*
**************************************************************************************************/
namespace Estsh.Core.Repositories
{
public class PurchaseScheduleSingleRepository : BaseRepository<SysStock>, IPurchaseScheduleSingleRepository
{
public PurchaseScheduleSingleRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
/// <summary>
/// 根据查询条件得出日程单收货数据结果集
/// </summary>
/// <param name="aWhere">查询条件</param>
/// <returns>符合条件的结果集</returns>
public Hashtable GetQuery(string aWhere)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable hs = new Hashtable();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.* , ");
SqlStringBuilder.Append(" b.type_name , ");
SqlStringBuilder.Append(" c.vendor_name , ");
SqlStringBuilder.Append(" d.part_no , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" e.factory_name , ");
SqlStringBuilder.Append(" f.enum_desc AS day_status , ");
SqlStringBuilder.Append(" g.enum_desc AS day_type ");
SqlStringBuilder.Append("FROM dbo.g_buy_day_fact a ");
SqlStringBuilder.Append(" LEFT JOIN sys_model_type b ON a.type_id = b.type_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_vendor c ON a.vendor_id = c.vendor_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part d ON a.part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_factory e ON a.factory_id = e.factory_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum f ON a.status = f.enum_value ");
SqlStringBuilder.Append(" AND f.enum_type = 'g_buy_day_fact_status' ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum g ON a.type = g.enum_value ");
SqlStringBuilder.Append(" AND g.enum_type = 'g_buy_day_fact_type' WHERE a.enabled = 'Y' ");
if (!string.IsNullOrEmpty(aWhere))
{
SqlStringBuilder.Append(aWhere);
}
List<GBuyDayFact> result = dbConn.Query<GBuyDayFact>(SqlStringBuilder.ToString()).ToList();
hs.Add("data", result);
hs.Add("dataList", result);
return hs;
}
}
public List<PurchaseScheduleSingle> getTableListByPage(string aWhere)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable hs = new Hashtable();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELECT a.* , ");
SqlStringBuilder.Append(" b.type_name , ");
SqlStringBuilder.Append(" c.vendor_name , ");
SqlStringBuilder.Append(" d.part_no , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" e.factory_name , ");
SqlStringBuilder.Append(" f.enum_desc AS day_status , ");
SqlStringBuilder.Append(" g.enum_desc AS day_type ");
SqlStringBuilder.Append("FROM dbo.g_buy_day_fact a ");
SqlStringBuilder.Append(" LEFT JOIN sys_model_type b ON a.type_id = b.type_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_vendor c ON a.vendor_id = c.vendor_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part d ON a.part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_factory e ON a.factory_id = e.factory_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum f ON a.status = f.enum_value ");
SqlStringBuilder.Append(" AND f.enum_type = 'g_buy_day_fact_status' ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum g ON a.type = g.enum_value ");
SqlStringBuilder.Append(" AND g.enum_type = 'g_buy_day_fact_type' WHERE a.enabled = 'Y' ");
if (!string.IsNullOrEmpty(aWhere))
{
SqlStringBuilder.Append(aWhere);
}
List<PurchaseScheduleSingle> result = dbConn.Query<PurchaseScheduleSingle>(SqlStringBuilder.ToString()).ToList();
return result;
}
}
/// <summary>
/// 根据单号和车型查询库存明细
/// </summary>
/// <param name="orderNo">单据号</param>
/// <param name="typeName">车型名称</param>
/// <returns></returns>
public Hashtable GetStockDetail(string orderNo, string typeName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
Hashtable hs = new Hashtable();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("SELEC a.* , ");
SqlStringBuilder.Append(" b.type_name , ");
SqlStringBuilder.Append(" c.vendor_name , ");
SqlStringBuilder.Append(" d.part_no as part_no1 , ");
SqlStringBuilder.Append(" d.part_spec , ");
SqlStringBuilder.Append(" e.factory_name , ");
SqlStringBuilder.Append(" f.enum_desc AS stock_status , ");
SqlStringBuilder.Append(" g.enum_desc AS stock_type , ");
SqlStringBuilder.Append(" j.locate_name ");
SqlStringBuilder.Append("FROM dbo.sys_stock a ");
SqlStringBuilder.Append(" LEFT JOIN sys_model_type b ON a.type_id = b.type_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_vendor c ON a.vendor_id = c.vendor_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_part d ON a.part_id = d.part_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_factory e ON a.factory_id = e.factory_id ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum f ON a.status = f.enum_value ");
SqlStringBuilder.Append(" AND f.enum_type = 'sys_stock_status' ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_enum g ON a.type = g.enum_value ");
SqlStringBuilder.Append(" AND g.enum_type = 'g_buy_day_fact_type' ");
SqlStringBuilder.Append(" LEFT JOIN dbo.sys_locate j ON a.locate_id = j.locate_id ");
SqlStringBuilder.Append("WHERE a.enabled = 'Y' and a.order_no=@order_no and b.type_name=@type_name ");
DynamicParameters values = new DynamicParameters();
values.Add("@order_no", orderNo);
values.Add("@type_name", typeName);
List<SysStock> result = dbConn.Query<SysStock>(SqlStringBuilder.ToString(), values).ToList();
hs.Add("data", result);
hs.Add("dataList", result);
return hs;
}
}
/// <summary>
/// 获取所有的零件号
/// </summary>
/// <returns></returns>
public List<KeyValueResult> GetPart(string part_no)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "select part_no as [value],part_no as [key] from sys_part where enabled = 'Y' AND part_type=0 AND part_no LIKE '" + part_no + "%'";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(SqlString).ToList();
return result;
}
}
/// <summary>
/// 获取所有的供应商名称
/// </summary>
/// <returns></returns>
public List<KeyValueResult> GetVendor(string key)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = " select vendor_name as [value],vendor_name as [key] from sys_vendor where enabled = 'Y' and vendor_name LIKE '" + key + "%'";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(SqlString).ToList();
return result;
}
}
/// <summary>
/// 获取所有的厂区名称
/// </summary>
/// <returns></returns>
public List<KeyValueResult> GetFactory()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = " select factory_name as [value],factory_name as [key] from sys_factory where enabled = 'Y' ";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(SqlString).ToList();
return result;
}
}
/// <summary>
/// 获取所有的车型名称
/// </summary>
/// <returns></returns>
public List<KeyValueResult> GetType()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = " select type_name as [value] ,type_name as [key] from sys_model_type where enabled='Y' ";
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(SqlString).ToList();
return result; ;
}
}
/// <summary>
/// 更新日程收获数据的is_close字段
/// </summary>
/// <param name="ruid">编号</param>
/// <returns></returns>
public bool UpdateIsClose(string ruid)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = " update g_buy_day_fact set is_closed='Y' where ruid = @ruid";
DynamicParameters values = new DynamicParameters();
values.Add("@ruid", ruid);
int result = dbConn.Execute(SqlString, values);
return result > 0;
}
}
/// <summary>
///更改可用状态
/// </summary>
/// <param name="status">true or false</param>
/// <param name="dr">当前行</param>
/// <returns></returns>
public bool ChangeDetailStatus(bool status, DataRow dr)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string guid = dr["cust_pdline_id"].ToString();
string enabled = string.Empty;
//string partID = GetPartMessage(partNo).Rows[0][0].ToString();
string SqlString = "update dbo.sys_cust_pdline set enabled=@status where cust_pdline_id=@part_id";
if (status)
{
enabled = "Y";
}
else
{
enabled = "N";
}
DynamicParameters values = new DynamicParameters();
values.Add("@status", enabled);
values.Add("@part_id", guid);
int result = dbConn.Execute(SqlString, values);
return result > 0;
}
}
public bool DeleteDetail(DataRow dr)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
//string partID = GetPartMessage(dr[0].ToString()).Rows[0][0].ToString();
string guid = dr["cust_pdline_id"].ToString();
String delStr = "update sys_cust_pdline set Enabled='N' where cust_pdline_id = @guid";
DynamicParameters values = new DynamicParameters();
values.Add("@guid", guid);
int result = dbConn.Execute(delStr, values);
return result > 0;
}
}
/// <summary>
/// 获取采购订单关闭的密码
/// </summary>
/// <returns>密码</returns>
public string GetSysBase()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
string SqlString = "select top 1 param_value from sys_base where param_name='CloseOrderPassWord' and enabled = 'Y' ";
object obj = dbConn.ExecuteScalar(SqlString);
if (obj==null)
{
return "";
}
return obj.ToString();
}
}
}
}