旧版报表、仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

413 lines
15 KiB

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<dynamic> 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<dynamic> 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<dynamic> 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<config_products>();
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<dynamic> 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<dynamic>(" 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<dynamic> 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<dynamic> QueryPalletStockInfoByConatiner(string container)
{
using (var context = new whMSModel())
{
//context.Database.SqlQuery<dynamic>(" 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<dynamic> QueryPalletAndProduct(string pallets)
{
using (var context = new mesModel())
{
//var res = context.Database.SqlQuery<string>(" 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<tcontainerpallet> 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<dynamic> 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();
}
}
}
}