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
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|