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, IKanBanRepository { public KanBanRepository(DapperDbContext _dapperDbContext) : base(_dapperDbContext) { } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 获取车辆管理数据列表 /// 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 dataList = dbConn.Query("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", dataList); result.Add("totalCount", Params.Get("@TotalCount")); return result; } } /// /// 大件拉动界面 /// /// /// /// /// /// 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 dataList = dbConn.Query("Com_Pagination", Params, commandType: CommandType.StoredProcedure).ToList(); result.Add("dataList", dataList); result.Add("totalCount", dataList.Count); return result; } } /// /// 新增进厂订单数据 /// /// /// 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; } } /// /// 更新进厂订单数据 /// /// /// 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; } } /// /// 修改到达状态 /// /// /// /// /// 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; } } /// /// 修改厂内状态 /// /// /// /// /// 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; } } /// /// 获取供应商 /// /// public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } /// /// 获取收货看板 /// /// public List 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 dataList = dbConn.Query("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 dataList = dbConn.Query(strSql.ToString()).ToList(); return dataList; } } public List 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 dataList = dbConn.Query("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 dataList = dbConn.Query(strSql.ToString()).ToList(); return dataList; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(strSql.ToString()).ToList(); return result; } } public List 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 result = dbConn.Query(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; } } } }