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.

442 lines
25 KiB
C#

using Dapper;
using Estsh.Core.Base;
using Estsh.Core.Dapper;
using Estsh.Core.Model.Result;
using Estsh.Core.Repositories;
using System.Collections;
using System.Data;
using System.Text;
using System.Security.Cryptography;
using System.Text.Json;
using Estsh.Core.Models;
using Newtonsoft.Json.Linq;
using Estsh.Core.Repository.IRepositories;
using Estsh.Core.Model.EnumUtil;
namespace Estsh.Core.Repositories
{
public class KanBanRepository : BaseRepository<WmsCarArrive>, IKanBanRepository
{
public KanBanRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext)
{
}
public List<WmsCarArrive> getList(string strWhere, string filedOrder)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("select * from wms_car_arrive (nolock) ");
if (!strWhere.Trim().Equals(""))
{
strSql.Append(" where " + strWhere);
}
if (filedOrder != null && !filedOrder.Trim().Equals(""))
{
strSql.Append(" order by " + filedOrder);
}
List<WmsCarArrive> result = dbConn.Query<WmsCarArrive>(strSql.ToString()).ToList();
return result;
}
}
/// <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 Params = new DynamicParameters();
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@GroupColumn", "");
Params.Add("@Table", "wms_car_arrive");
Params.Add("@Column", "*");
Params.Add("@PageSize", PageSize);
Params.Add("@CurrentPage", PageIndex);
Params.Add("@Condition", strWhere);
Params.Add("@OrderColumn", OrderBy);
Params.Add("@Group", 0);
List<WmsCarArrive> dataList = dbConn.Query<WmsCarArrive>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", Params.Get<int>("@TotalCount"));
return result;
}
}
/// <summary>
/// 大件拉动界面
/// </summary>
/// <param name="PageSize"></param>
/// <param name="PageIndex"></param>
/// <param name="strWhere"></param>
/// <param name="OrderBy"></param>
/// <returns></returns>
public Hashtable MaterialgetListByPage(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
//select b.*, a.order_status,a.create_time,c.zone_desc from wms_move_header as a (nolock)left join(
// select order_no, sum(qty) qty, sum(pick_qty) pick_qty, dest_zone_name from wms_move_detail (nolock)
// group by order_no, dest_zone_name) as b on a.order_no = b.order_no left join sys_zone as c (nolock)on b.dest_zone_name = c.zone_name where a.order_status NOT IN('40', '50', '60') and a.enabled = 'Y' and a.ref_order_no != '成品下线大件拉动' order by a.create_time
Hashtable result = new Hashtable();
DynamicParameters Params = new DynamicParameters();
Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
Params.Add("@GroupColumn", "");
Params.Add("@Table", @"wms_move_header as a (nolock)left join( select order_no, sum(qty) qty, sum(pick_qty) pick_qty, dest_zone_name from wms_move_detail (nolock) group by order_no, dest_zone_name) as b on a.order_no = b.order_no left join sys_zone as c (nolock)on b.dest_zone_name = c.zone_name");
Params.Add("@Column", "b.*, a.order_status,a.create_time,c.zone_desc");
Params.Add("@PageSize", PageSize);
Params.Add("@CurrentPage", PageIndex);
Params.Add("@Condition", strWhere);
Params.Add("@OrderColumn", OrderBy);
Params.Add("@Group", 0);
List<WmsMoveHeader> dataList = dbConn.Query<WmsMoveHeader>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
result.Add("dataList", dataList);
result.Add("totalCount", dataList.Count);
return result;
}
}
/// <summary>
/// 新增进厂订单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int saveCarArrive(WmsCarArrive htParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("INSERT INTO dbo.wms_car_arrive( order_no ,car_no ,car_desc,car_driver,supplier_code , supplier_name, plan_arrive_time,real_arrive_time,arrive_status,car_in_plant_status,passageway,enabled,update_userid,update_time,create_userid,create_time,guid)VALUES ");
SqlStringBuilder.Append("( @orderNo ,@carNo ,@carDesc,@carDriver,@supplierCode , @supplierName, @planArriveTime,@realArriveTime,@arriveStatus,@carInPlantStatus,@passageway," +
"@enabled,@updateUserid, CONVERT(varchar(50), GETDATE(), 121), @createUserid, CONVERT(varchar(50), GETDATE(), 121),newid()) ");
int result = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
return result;
}
}
/// <summary>
/// 更新进厂订单数据
/// </summary>
/// <param name="htParams"></param>
/// <returns></returns>
public int updateCarArrive(WmsCarArrive htParams)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder SqlStringBuilder = new StringBuilder(1024);
SqlStringBuilder.Append("UPDATE wms_car_arrive SET ");
SqlStringBuilder.Append("car_no=@CarNo,car_desc=@CarDesc,car_driver=@CarDriver,passageway=@Passageway,enabled=@enabled ,update_userid = @updateUserId ,update_time=CONVERT(varchar(50), GETDATE(), 121) ");
SqlStringBuilder.Append("WHERE order_no=@orderNo ");
int result = dbConn.Execute(SqlStringBuilder.ToString(), htParams);
return result;
}
}
public int ChangeInPlantStatus(String orderNo, int loginId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_car_arrive set car_in_plant_status=@status,real_in_plant_time= CONVERT(varchar(50), GETDATE(), 121) ,update_userid=@update_userid,update_time=CONVERT(varchar(50), GETDATE(), 121) WHERE order_no = @orderNo";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@orderNo", orderNo);
htparams.Add("@update_userid", loginId);
htparams.Add("@status", (int)WmsEnumUtil.WmsCarInPlantStatus.INPLANT);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
public int ChangeOutPlantStatus(String orderNo, int loginId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_car_arrive set car_in_plant_status=@status,out_plant_time= CONVERT(varchar(50), GETDATE(), 121) ,update_userid=@update_userid,update_time=CONVERT(varchar(50), GETDATE(), 121) WHERE order_no = @orderNo";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@orderNo", orderNo);
htparams.Add("@update_userid", loginId);
htparams.Add("@status", (int)WmsEnumUtil.WmsCarInPlantStatus.OUTPLANT);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
public int ChangeWorkingStatus(String orderNo, int loginId)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_car_arrive set car_in_plant_status=@status,start_work_time= CONVERT(varchar(50), GETDATE(), 121) ,update_userid=@update_userid,update_time=CONVERT(varchar(50), GETDATE(), 121) WHERE order_no = @orderNo";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@orderNo", orderNo);
htparams.Add("@update_userid", loginId);
htparams.Add("@status", (int)WmsEnumUtil.WmsCarInPlantStatus.PROCESSING);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
/// <summary>
/// 修改到达状态
/// </summary>
/// <param name="orderNo"></param>
/// <param name="loginId"></param>
/// <param name="status"></param>
/// <returns></returns>
public int ChangeArriveStatus(String orderNo, int loginId, int status)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_car_arrive set arrive_status=@status,update_userid=@update_userid,update_time=CONVERT(varchar(50), GETDATE(), 21) WHERE order_no = @orderNo";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@orderNo", orderNo);
htparams.Add("@update_userid", loginId);
htparams.Add("@status", status);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
/// <summary>
/// 修改厂内状态
/// </summary>
/// <param name="orderNo"></param>
/// <param name="loginId"></param>
/// <param name="status"></param>
/// <returns></returns>
public int ChangeCarInPlantStatus(String orderNo, int loginId, int status)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_car_arrive set car_in_plant_status=@status,update_userid=@update_userid,update_time=CONVERT(varchar(50), GETDATE(), 21) WHERE order_no = @orderNo";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@orderNo", orderNo);
htparams.Add("@update_userid", loginId);
htparams.Add("@status", status);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
/// <summary>
/// 获取供应商
/// </summary>
/// <returns></returns>
public List<KeyValueResult> getSelectSupplier()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("select vendor_code as [value],vendor_name as [key] from sys_vendor (nolock) where Enabled = 'Y'");
List<KeyValueResult> result = dbConn.Query<KeyValueResult>(strSql.ToString()).ToList();
return result;
}
}
/// <summary>
/// 获取收货看板
/// </summary>
/// <returns></returns>
public List<WmsCarArrive> GetCarArriveList(int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
// Hashtable result = new Hashtable();
// DynamicParameters Params = new DynamicParameters();
// Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
// Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
// Params.Add("@GroupColumn", "");
// Params.Add("@Table", "( select a.order_no ,a.vendor_code supplier_code, "+
//"c.vendor_name supplier_name, a.se_date + a.se_time plan_arrive_time, b.real_arrive_time, c.dock passageway , isnull(b.arrive_status,0) arrive_status, " +
//"isnull(b.car_in_plant_status,10) car_in_plant_status,b.real_in_plant_time,b.start_work_time, isnull(b.is_print_out_plant_list, 'N') is_print_out_plant_list, " +
//"b.print_out_plant_list_time, b.out_plant_time, b.enabled from wms_purchase as a (nolock) " +
//"left join wms_car_arrive as b (nolock) on a.order_no = b.order_no " +
//"left join sys_vendor as c (nolock) on a.vendor_code = c.vendor_code where a.se_date = '" + DateTime.Now.ToString("yyyyMMdd") + "' ) as aa " +
//"left join sys_enum as bb (nolock) on Cast(aa.car_in_plant_status as nvarchar(50)) = bb.enum_value " +
//"left join ( select ref_order_no,min(reveice_time) real_scan_receive_time,max(qc_finish_time) real_qc_finish_time from sys_stock (nolock) where enabled='Y' group by ref_order_no ) as cc on aa.order_no=cc.ref_order_no ");
// Params.Add("@Column", @" aa.*,bb.enum_name,cc.*");
// Params.Add("@PageSize", PageSize);
// Params.Add("@CurrentPage", PageIndex);
// Params.Add("@Condition", " bb.enum_type = 'WmsCarInPlantStatus' and isnull(aa.car_in_plant_status, 0) != '60' ");
// Params.Add("@OrderColumn", " aa.plan_arrive_time,aa.order_no ");
// Params.Add("@Group", 0);
// List<WmsCarArrive> dataList = dbConn.Query<WmsCarArrive>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
StringBuilder strSql = new StringBuilder();
strSql.Append("select " +
"aa.*,bb.enum_name,cc.* " +
"from " +
"( select a.order_no ,a.vendor_code supplier_code, " +
" c.vendor_name supplier_name, a.se_date + a.se_time plan_arrive_time, b.real_arrive_time, c.dock passageway , isnull(b.arrive_status,0) arrive_status, " +
" isnull(b.car_in_plant_status,10) car_in_plant_status,b.real_in_plant_time,b.start_work_time, isnull(b.is_print_out_plant_list, 'N') is_print_out_plant_list, " +
" b.print_out_plant_list_time, b.out_plant_time, b.enabled from wms_purchase as a (nolock)" +
" left join wms_car_arrive as b (nolock) on a.order_no = b.order_no " +
" left join sys_vendor as c (nolock) on a.vendor_code = c.vendor_code where a.se_date = '" + DateTime.Now.ToString("yyyyMMdd") + "' ) as aa " +
" left join sys_enum as bb (nolock) on Cast(aa.car_in_plant_status as nvarchar(50)) = bb.enum_value " +
" left join ( select ref_order_no,min(reveice_time) real_scan_receive_time,max(qc_finish_time) real_qc_finish_time from sys_stock (nolock) where enabled='Y' group by ref_order_no ) as cc on aa.order_no=cc.ref_order_no " +
"where bb.enum_type = 'WmsCarInPlantStatus' and isnull(aa.car_in_plant_status, 0) != '60' " +
"order by aa.plan_arrive_time,aa.order_no ");
List<WmsCarArrive> dataList = dbConn.Query<WmsCarArrive>(strSql.ToString()).ToList();
return dataList;
}
}
public List<WmsCarArrive> GetCarArriveList(string docks, int PageSize, int PageIndex, string strWhere, string OrderBy)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
// Hashtable result = new Hashtable();
// DynamicParameters Params = new DynamicParameters();
// Params.Add("@TotalCount", 0, DbType.Int32, ParameterDirection.Output);
// Params.Add("@TotalPage", 0, DbType.Int32, ParameterDirection.Output);
// Params.Add("@GroupColumn", "");
// Params.Add("@Table", "( select a.order_no ,a.vendor_code supplier_code, " +
//"c.vendor_name supplier_name, a.se_date + a.se_time plan_arrive_time, b.real_arrive_time, c.dock passageway , isnull(b.arrive_status,0) arrive_status, " +
//"isnull(b.car_in_plant_status,10) car_in_plant_status,b.real_in_plant_time,b.start_work_time, isnull(b.is_print_out_plant_list, 'N') is_print_out_plant_list, " +
//"b.print_out_plant_list_time, b.out_plant_time, b.enabled from wms_purchase as a (nolock) " +
//"left join wms_car_arrive as b (nolock) on a.order_no = b.order_no " +
//"left join sys_vendor as c (nolock) on a.vendor_code = c.vendor_code where a.se_date = '" + DateTime.Now.ToString("yyyyMMdd") + "' and c.dock ) as aa " +
//"left join sys_enum as bb (nolock) on Cast(aa.car_in_plant_status as nvarchar(50)) = bb.enum_value " +
//"left join ( select ref_order_no,min(reveice_time) real_scan_receive_time,max(qc_finish_time) real_qc_finish_time from sys_stock (nolock) where enabled='Y' group by ref_order_no ) as cc on aa.order_no=cc.ref_order_no ");
// Params.Add("@Column", @" aa.*,bb.enum_name,cc.*");
// Params.Add("@PageSize", PageSize);
// Params.Add("@CurrentPage", PageIndex);
// Params.Add("@Condition", "bb.enum_type = 'WmsCarInPlantStatus' and isnull(aa.car_in_plant_status, 0) != '60' ");
// Params.Add("@OrderColumn", "aa.plan_arrive_time,aa.order_no");
// Params.Add("@Group", 0);
// List<WmsCarArrive> dataList = dbConn.Query<WmsCarArrive>("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList();
StringBuilder strSql = new StringBuilder();
strSql.Append("select " +
"aa.*,bb.enum_name,cc.* " +
"from " +
"( select a.order_no ,a.vendor_code supplier_code, " +
" c.vendor_name supplier_name, a.se_date + a.se_time plan_arrive_time, b.real_arrive_time, c.dock passageway , isnull(b.arrive_status,0) arrive_status, " +
" isnull(b.car_in_plant_status,10) car_in_plant_status,b.real_in_plant_time,b.start_work_time, isnull(b.is_print_out_plant_list, 'N') is_print_out_plant_list, " +
" b.print_out_plant_list_time, b.out_plant_time, b.enabled from wms_purchase as a (nolock)" +
" left join wms_car_arrive as b (nolock) on a.order_no = b.order_no " +
" left join sys_vendor as c (nolock) on a.vendor_code = c.vendor_code where a.se_date = '" + DateTime.Now.ToString("yyyyMMdd") + "' and c.dock in (" + docks + ") ) as aa " +
" left join sys_enum as bb (nolock) on Cast(aa.car_in_plant_status as nvarchar(50)) = bb.enum_value " +
" left join ( select ref_order_no,min(reveice_time) real_scan_receive_time,max(qc_finish_time) real_qc_finish_time from sys_stock (nolock) where enabled='Y' group by ref_order_no ) as cc on aa.order_no=cc.ref_order_no " +
"where bb.enum_type = 'WmsCarInPlantStatus' and isnull(aa.car_in_plant_status, 0) != '60' " +
"order by aa.plan_arrive_time,aa.order_no ");
List<WmsCarArrive> dataList = dbConn.Query<WmsCarArrive>(strSql.ToString()).ToList();
return dataList;
}
}
public List<WmsCarArrive> GetCarArriveTotal(string docks)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
// strSql.Append(@"select a.*,b.enum_name from wms_car_arrive as a left join sys_enum as b on a.car_in_plant_status = b.enum_value
//where a.enabled = 'Y' and isnull(a.car_in_plant_status,0) !='60' and b.enum_type = 'WmsCarInPlantStatus' and a.passageway in (" + docks + ") order by a.passageway");
strSql.Append(@" select * from wms_purchase as a (nolock)
left join sys_vendor as c (nolock) on a.vendor_code = c.vendor_code
left join ( select ref_order_no,min(reveice_time) real_scan_receive_time,max(qc_finish_time) real_qc_finish_time from sys_stock (nolock) where enabled='Y'
group by ref_order_no ) as cc on a.order_no=cc.ref_order_no
where a.se_date = '" + DateTime.Now.ToString("yyyyMMdd") + "' and c.dock in (" + docks + ") ");
List<WmsCarArrive> result = dbConn.Query<WmsCarArrive>(strSql.ToString()).ToList();
return result;
}
}
public List<WmsCarArrive> GetCarInDoor(string s_date)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append(@"select a.order_no ,a.vendor_code supplier_code,
c.vendor_name supplier_name,
a.se_date + a.se_time plan_arrive_time,
b.real_arrive_time,
c.dock passageway ,
isnull(b.arrive_status,0) arrive_status,
isnull(b.car_in_plant_status,10) car_in_plant_status,
b.real_in_plant_time,
b.start_work_time,
isnull(b.is_print_out_plant_list, 'N') is_print_out_plant_list,
b.print_out_plant_list_time,
b.out_plant_time,
b.enabled,
d.enum_name
from wms_purchase as a (nolock)
left join wms_car_arrive as b (nolock) on a.order_no = b.order_no
left join sys_vendor as c (nolock) on a.vendor_code = c.vendor_code
left join sys_enum as d (nolock) on Cast(isnull(b.car_in_plant_status,10) as nvarchar(50)) = Cast(d.enum_value as nvarchar(50))
where a.se_date = '" + s_date + "' and d.enum_type = 'WmsCarInPlantStatus' order by a.se_date + a.se_time ");
List<WmsCarArrive> result = dbConn.Query<WmsCarArrive>(strSql.ToString()).ToList();
return result;
}
}
public List<SysVendor> Getdock()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append(@" select distinct dock from [dbo].[sys_vendor] (nolock) where enabled='Y' and dock is not null ");
List<SysVendor> result = dbConn.Query<SysVendor>(strSql.ToString()).ToList();
return result;
}
}
public List<WmsMoveHeader> GetPreparation()
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append(@" select b.*, a.order_status,a.create_time,c.zone_desc from wms_move_header as a (nolock) left join (
select order_no, sum(qty) qty, sum(pick_qty) pick_qty, dest_zone_name from wms_move_detail (nolock)
group by order_no, dest_zone_name ) as b on a.order_no=b.order_no left join sys_zone as c (nolock) on b.dest_zone_name= c.zone_name where a.order_status NOT IN ('40','50','60') and a.enabled ='Y' and a.ref_order_no !='成品下线大件拉动' order by a.create_time ");
List<WmsMoveHeader> result = dbConn.Query<WmsMoveHeader>(strSql.ToString()).ToList();
return result;
}
}
public int UpdateReceipt40(String dockName)
{
using (IDbConnection dbConn = dapperDbContext.GetDbConnection())
{
dbConn.Open();
String delStr = "update wms_car_arrive set car_in_plant_status=@car_in_plant_status40,start_work_time=CONVERT(varchar(50), GETDATE(), 21) where passageway=@passageway and car_in_plant_status=@car_in_plant_status30";
DynamicParameters htparams = new DynamicParameters();
htparams.Add("@car_in_plant_status40", (int)(int)WmsEnumUtil.WmsCarInPlantStatus.PROCESSING);
htparams.Add("@passageway", dockName);
htparams.Add("@car_in_plant_status30", (int)WmsEnumUtil.WmsCarInPlantStatus.INPLANT);
int result = dbConn.Execute(delStr, htparams);
return result;
}
}
}
}