using System; using System.Collections.Generic; using System.Linq; using System.Web; using Warehouse.Models.mesModel; //using Warehouse.Models; using System.Data.Entity.Validation; using Warehouse.Models.whMS; namespace Warehouse.DAL.LCL { public class LCLMSDal { //判断用户密码 public List AffirmInfo(string Email) { using (var context = new whMSModel()) { string sql = @"select Password from [wh].[dbo].[tusers] where Username = '"+ Email+"'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //查找用户页面权限 public List SearchUserAuth(string Email) { using (var context = new whMSModel()) { string strWhere = string.Empty; strWhere += "and d.Username = '" + Email + "' "; string sql = @"SELECT a.PermissionName FROM [wh].[dbo].[tpermission] a left join [wh].[dbo].[trolepermissions] b on a.PermissionId =b.PermissionId left join [wh].[dbo].[tuserroles] c on b.RoleId =c.RoleId left join [wh].[dbo].[tusers] d on c.UserId = d.UserId where 1=1 " + strWhere; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } //修改密码 public List ChangePassword(string Email,string affirmPassword) { using (var context = new whMSModel()) { string strWhere = string.Empty; strWhere += "and Username = '" + Email + "' "; string sql = @"update [wh].[dbo].[tusers] set Password = "+affirmPassword+@" where 1=1 " + strWhere; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } public dynamic QueryPallet(string Pallet) { using (var context = new mesModel()) { //var res = from a in context.pack_pallets // from b in context.wo_mfg.Where(b => b.workorder == a.workorder).DefaultIfEmpty() // from c in context.config_products.Where(c=>c.product_code == a.product_code).DefaultIfEmpty() // where (a.pallet_nbr == Pallet) // select new { a.pallet_nbr, a.power_grade, a.current_grade, a.mod_color, a.cell_crys_type_id, a.final_grade, b.area_code,bartype=c.crys_type_value,modulespec = c.mod_spec_desc,cellqty =c.cell_qty}; //return res.FirstOrDefault(); string sql = @"select a.id ,isnull( a.containerno,'') container ,e.pallet_nbr ,a.createuser ,a.createtime ,isnull(a.status,'') status ,a.subid,b.id stockid,isnull(b.status,'') stockstatus,b.storagelocationid,c.locationname,d.Count,b.storagelocationconditionid ,b.createtime stocktime ,e.power_grade ,e.final_grade ,e.current_grade as igrade ,e.cell_crys_type_id ,e.mod_color ,f.crys_type_id as bartype ,f.mod_spec_id as modulespec ,f.cell_qty as cellqty ,isnull( e.oba_spot_check,'') obaspotcheck from mes_main.dbo.pack_pallets e left join wh.dbo.tcontainerpallet a on a.palletno = e.pallet_nbr left join mes_main.dbo.config_products f on e.product_code=f.product_code left join wh.dbo.tstockinlog b on e.pallet_nbr=b.palletno and b.id = (select max(id) from wh.dbo.tstockinlog d where d.palletno=e.pallet_nbr) left JOIN wh.dbo.tstoragelocation c on c.id = b.storagelocationid left join wh.dbo.tcontainer d on a.ContainerNo=d.ContainerNo where e.pallet_nbr='" + Pallet + "' ORDER BY a.createtime desc"; var res = context.DynamicListFromSql(sql, null); return res.FirstOrDefault(); } } public config_products QueryProduct(string ProductCode) { using (var mescontext = new mesModel()) { var res = mescontext.config_products.Where(a => a.product_code == ProductCode).FirstOrDefault(); return res; } } //pallet isLCL public tcontainerpallet QueryContainerBindPallet(string pallet) { using (var whcontext = new whMSModel()) { //var res = whcontext.tcontainerpallets.Count(a => a.palletno == pallet); //if (res > 0) //{ // return true; //} //else //{ // return false; //} //return whcontext.tcontainerpallets.Join(whcontext.tcontainers, a => a.ContainerNo, g => g.ContainerNo, (a, g) => new { a.ContainerNo,a.palletno,g.bartype,g.cellqty,g.color,g.Count,g.finalgrade,g.igrade,g.powergrade,g.modulespec }); return whcontext.tcontainerpallets.Where(a => a.palletno == pallet).FirstOrDefault(); } } public List QueryStockInfoByPallet(string pallet) { using (var context = new whMSModel()) { string sql = @"select a.id as stockinlogid ,a.palletno,a.storagelocationid ,createtime,b.locationname,a.status,a.storagelocationconditionid from wh.dbo.tstockinlog a left join wh.dbo.tstoragelocation b on a.storagelocationid = b.id where a.id = (select max(id) from tstockinlog where palletno = '" + pallet+"' )"; //context.Database.SqlQuery(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(sql, null); if (res != null) { return res.ToList(); } else { return null; } } } //查询柜号的包装信息和入库信息 add by xue lei on 2019-9-15 public List QueryPalletinfoAndStockInfo(string Container) { using (var context = new whMSModel()) { //柜号条件显示实际值 modify by xue lei on 2019-11-11 string sql = @"select a.id ,a.containerno container ,a.palletno ,a.createuser ,a.createtime as lcltime ,a.status ,a.subid,isnull(b.id,0) stockid,b.status stockstatus,b.storagelocationid,c.locationname,d.Count ,e.power_grade as powergrade ,e.final_grade as finalgrade ,e.current_grade as igrade ,e.cell_crys_type_id ,e.mod_color as color ,f.crys_type_value as bartype ,f.mod_spec_value as modulespec ,f.cell_qty as cellqty ,[customno] ,[materialcompany] ,[plateno] ,[driver] ,[driverphone] ,[drivertype] ,[driveno] ,[shipmentuser] ,[billlading] ,[shipmentcarton] ,[powergrade] as containerpowergrade ,[color] as containercolor ,[igrade] as containerigrade ,[celltype] as containercelltype ,[finalgrade] as containerfinalgrade ,[cellqty] as containercellqty ,[frame] as containerframe ,[jbox] as containerjbox ,[bartype] as containerbartype ,case when bartype=null then f.crys_type_value else bartype end as containerbartypevalue ,[modulespec] as containermodulespec ,case when modulespec =null then f.mod_spec_value else modulespec end containermodulespecvalue from mes_main.dbo.pack_pallets e left join wh.dbo.tcontainerpallet a on a.palletno = e.pallet_nbr left join mes_main.dbo.config_products f on e.product_code=f.product_code left join wh.dbo.tstockinlog b on a.palletno=b.palletno and b.id = (select max(id) from wh.dbo.tstockinlog d where d.palletno=a.palletno ) left JOIN wh.dbo.tstoragelocation c on c.id = b.storagelocationid inner join wh.dbo.tcontainer d on a.ContainerNo=d.ContainerNo where a.ContainerNo='" + Container+"' ORDER BY a.createtime desc"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } public List QueryPalletStockInfoByConatiner(string container) { using (var context = new whMSModel()) { //context.Database.SqlQuery(" call prGetPalletOfContainer('" + container + "') ").ToList(); var res = context.DynamicListFromSql(@" select a.id ,a.containerno ContainerNo ,a.palletno ,a.createuser ,a.createtime ,a.status ,a.subid,b.id stockid,b.status stockstatus,b.storagelocationid,c.locationname,d.Count from wh.dbo.tcontainerpallet a left join wh.dbo.tstockinlog b on a.palletno=b.palletno and b.id = (select max(id) from wh.dbo.tstockinlog d where d.palletno=a.palletno ) left JOIN wh.dbo.tstoragelocation c on c.id = b.storagelocationid inner join wh.dbo.tcontainer d on a.ContainerNo=d.ContainerNo where a.ContainerNo="+container+" ORDER BY a.createtime desc ;", null); if (res.Count() != 0) { return res.ToList(); } else { return null; } } //return null; } public List QueryPalletAndProduct(string pallets) { using (var context = new mesModel()) { //var res = context.Database.SqlQuery(" EXEC [dbo].[prGetPalletAndPriduct] @pallets = N'"+pallets+"'"); //return res.ToList(); var res = context.DynamicListFromSql(@"select a.[pallet_nbr]as palletno ,a.[wks_id] ,a.[pallet_qty] ,a.[pack_date] ,a.[product_code] ,a.[workorder] ,a.[mark_label] ,a.[power_grade]as powergrade ,a.[final_grade]as finalgrade ,a.[current_grade]as igrade ,a.[cell_color] ,a.[tpt_type] ,a.[is_bond] ,a.[bonded_code] ,a.[pitch_hole] ,a.[jbox_type] ,a.[cell_crys_type_id] ,a.[pallet_status] ,a.[container_nbr] ,a.[shelve_code] ,a.[workorder_original] ,a.[packrule_string] ,a.[product_code_original] ,a.[shift_type] ,a.[power_grade_group_id] ,a.[mod_color]as color ,a.[end_time] ,a.[check_nbr] ,a.[pallet_station] ,b.crys_type_id bartype ,b.mod_spec_id modulespec,b.cell_qty cellqty from pack_pallets a inner join config_products b on a.product_code=b.product_code where a.pallet_nbr in (select * from Split('"+pallets+"',',') );", null); //if (res.Count()!= 0) //{ return res.ToList(); //} //else //{ // return null; //} } } public List QueryAllPalletOfConatiner(string container) { using (var whcontext = new whMSModel()) { var res = whcontext.tcontainerpallets.Where(a => a.containerno == container); if (res != null) { return res.ToList(); } else { return null; } } } public bool UpdateContainerStatus(string container, string status) { using (var whcontext = new whMSModel()) { var containerres = whcontext.tcontainers.Where(a => a.containerno == container).FirstOrDefault(); containerres.state = "complete"; var res = whcontext.tcontainerpallets.Where(a => a.containerno == container); foreach (var item in res) { item.status = "complete"; } var saveres = whcontext.SaveChanges(); if (saveres > 0) { return true; } else { return false; } } } public dynamic QueryContainer(string container) { using (var whcontext = new whMSModel()) { var res = from a in whcontext.tcontainerpallets join b in whcontext.tcontainers on a.containerno equals b.containerno where (a.containerno == container) group new { a, b } by new {b.count, b.containerno, b.state, b.bartype, b.cellqty, b.color, b.finalgrade, b.igrade, b.powergrade, b.modulespec } into g select new { g.Key.count,g.Key.containerno, g.Key.state, g.Key.bartype, g.Key.cellqty, g.Key.color, g.Key.finalgrade, g.Key.igrade, g.Key.powergrade, g.Key.modulespec, maxsubid = g.Select(x => x.a.subid).Max() }; //return whcontext.tcontainers.Where(a => a.containerno == container).FirstOrDefault(); return res.FirstOrDefault(); } } public bool CreateContainer(tcontainer container) { try { using (var whcontext = new whMSModel()) { //var res = whcontext.tcontainerpallets.Count(a => a.palletno == pallet); whcontext.tcontainers.Add(container); var res = whcontext.SaveChanges(); if (res > 0) { return true; } else { return false; } } } catch (DbEntityValidationException dbEx) { var a = dbEx.EntityValidationErrors; throw dbEx; } } public bool CreateContainerBindPallet(tcontainerpallet containpallet) { using (var whcontext = new whMSModel()) { //var res = whcontext.tcontainerpallets.Count(a => a.palletno == pallet); whcontext.tcontainerpallets.Add(containpallet); var res = whcontext.SaveChanges(); if (res > 0) { return true; } else { return false; } } } public string CreateContanier(ContainerNo ContainerObj) { using (var context = new whMSModel()) { var res = context.tcontainers.Where(a => a.createtime.Year == DateTime.Now.Year && a.createtime.Month == DateTime.Now.Month).Count(); ContainerObj.Sequence = (res+1).ToString("0000"); ContainerCodeRules Rule = new ContainerCodeRules(); Rule.Part1 = ContainerObj.OriginPalce + ContainerObj.Department; Rule.Part2 = ContainerObj.Date + ContainerObj.Sequence; Rule.Part3 = ContainerObj.Power; Rule.Part4 = ContainerObj.SaleOrder; return Rule.Part1 + "_" + Rule.Part2 + "_" + Rule.Part3 + "_" + Rule.Part4; } } //OBA扣留看柜号状态 public List ifContainerDetain(string Containerno) { using (var context = new whMSModel()) { //柜号条件显示实际值 modify by xue lei on 2019-11-11 string sql = @"select * from [wh].[dbo].[tcontainer] where containerno = '"+ Containerno+"'"; var res = context.DynamicListFromSql(sql, null); return res.ToList(); } } } }