using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMS.IData.IBase;
using System.Data;
using WMS.IData;using Oracle.ManagedDataAccess.Client;
using WMS.Model.Base;
namespace WMS.SqlServerData.BaseData
{
public class BaseCtlGoodsData : IBaseCtlGoods
{
///
/// 查询数据
///
/// 容器管理Model
///
public DataTable GetDataByID(BaseCtlGoodsModel model)
{
StringBuilder str = new StringBuilder();
#region SQL语句
str.Append(@"select
p.GOODS_ID, --商品编号
g.goods_name, --商品名称
g.gvolume, --商品体积
g.price, --商品价格
g.gross_weight, --商品毛重
g.net_weight, --商品净重
p.CTL_PALLET_ID, --Pallet Num
p.OPERATORID, --录入人
p.OPERATEDATE,--录入日期
(case pa.status when '0' then '空闲' when '1' then '占用' end) status, --容器Status
pa.volume, --容器体积
pa.bearweight, --容器承受重量
p.VC_DICTIONARY_ID, --事务类型(上架,下架,盘点,收货码盘)
t.vc_dictionary_name, --事务类型名称
u.NAME OPERATORNAME --录入人姓名
from T_BASE_CTL_GOODS p --容器详细表
left outer join T_BASE_PALLET pa --容器表
on p.ctl_pallet_id = pa.pallet_id
left outer join T_BASE_GOODS g --商品明细表
on p.goods_id = g.goods_id
left outer join t_Sys_Dictionary_Tab t --字典明细表
on p.vc_dictionary_id = t.vc_dictionary_id
left outer join T_base_UserInfo u --用户表
on p.Operatorid = u.User_ID
where 1 = 1 ");
#endregion
#region 查询条件
if (model != null)
{
//托盘编号
if (!string.IsNullOrEmpty(model.CTL_PALLET_ID))
{
str.Append(" and CTL_PALLET_ID like '%" + model.CTL_PALLET_ID + "%'");
}
//事务类型编号
if (!string.IsNullOrEmpty(model.VC_DICTIONARY_ID))
{
str.Append(" and p.VC_DICTIONARY_ID like '%" + model.VC_DICTIONARY_ID + "%'");
}
//搬运人
if (!string.IsNullOrEmpty(model.User_ID))
{
str.Append("and p.User_ID like '%" + model.User_ID + "%'");
}
str.Append(" order by p.OPERATEDATE desc ");
}
#endregion
DataTable dt = SystemDataObject.Instance.GetDataTable(str.ToString());
return dt;
}
#region 操作
///
/// 操作容器
///
/// 容器管理Model
/// 0: 新增 1:修改
public void Operator(List list, int flag)
{
List sqlstrlist = new List();
List sqlpara = new List();
string strPallet = string.Empty;
#region 批量
if (flag == 0)
{
foreach (BaseCtlGoodsModel bcgoods in list)
{
strPallet =@"insert into T_BASE_CTL_GOODS
(CTL_PALLET_ID,
GOODS_ID,
VC_DICTIONARY_ID,
VC_TYPE,
USER_ID,
OPERATORID,
OPERATEDATE)
values
(:CTL_PALLET_ID,
:GOODS_ID,
:VC_DICTIONARY_ID,
:VC_TYPE,
:USER_ID,
:OPERATORID,
:OPERATEDATE)";
OracleParameter[] param = new OracleParameter[] {
new OracleParameter(":CTL_PALLET_ID",OracleDbType.Varchar2),
new OracleParameter(":GOODS_ID",OracleDbType.Varchar2),
new OracleParameter(":VC_DICTIONARY_ID",OracleDbType.Varchar2),
new OracleParameter(":VC_TYPE",OracleDbType.Varchar2),
new OracleParameter(":USER_ID",OracleDbType.Varchar2),
new OracleParameter(":OPERATORID",OracleDbType.Varchar2),
new OracleParameter(":OPERATEDATE",OracleDbType.Date)
};
param[0].Value = bcgoods.CTL_PALLET_ID;
param[1].Value = bcgoods.GOODS_ID;
param[2].Value = bcgoods.VC_DICTIONARY_ID;
param[3].Value = bcgoods.VC_TYPE;
param[4].Value = bcgoods.User_ID;
param[5].Value = bcgoods.OPERATORID;
param[6].Value = bcgoods.OPERATEDATE;
sqlstrlist.Add(strPallet);
sqlpara.Add(param);
}
SystemDataObject.Instance.ExecuteList(sqlstrlist, sqlpara);
}
#endregion
#region 更换容器 替换编号
else if (flag == 1)
{
foreach (BaseCtlGoodsModel model in list)
{
strPallet =@" update T_BASE_CTL_GOODS
set
OPERATORID =:OPERATORID,
OPERATEDATE =:OPERATEDATE,
VC_DICTIONARY_ID =:VC_DICTIONARY_ID,
CTL_PALLET_ID =:CTL_PALLET_ID
where
CTL_PALLET_ID =:CTL_PALLET_ID
and GOODS_ID =:GOODS_ID";
OracleParameter[] param = new OracleParameter[] {
new OracleParameter(":OPERATORID",OracleDbType.Varchar2),
new OracleParameter(":OPERATEDATE",OracleDbType.Date),
new OracleParameter(":VC_DICTIONARY_ID",OracleDbType.Varchar2),
new OracleParameter(":CTL_PALLET_ID",OracleDbType.Varchar2),
new OracleParameter(":CTL_PALLET_ID",OracleDbType.Varchar2),
new OracleParameter(":GOODS_ID",OracleDbType.Varchar2)
};
param[0].Value = model.OPERATORID;
param[1].Value = model.OPERATEDATE;
param[2].Value = model.VC_DICTIONARY_ID;
param[3].Value = model.PALLET_NEWID;
param[4].Value = model.CTL_PALLET_ID;
param[5].Value = model.GOODS_ID;
sqlstrlist.Add(strPallet);
sqlpara.Add(param);
}
SystemDataObject.Instance.ExecuteList(sqlstrlist, sqlpara);
}
#endregion
}
#endregion
#region 删除(解除绑定)
///
/// 删除数据(解除绑定)
///
/// 容器Model
public void DeleteData(BaseCtlGoodsModel model)
{
string strPalletdel;
strPalletdel =@"delete from
T_BASE_CTL_GOODS --容器表
where
CTL_PALLET_ID =:CTL_PALLET_ID --托盘编号";
OracleParameter[] param = new OracleParameter[] {
new OracleParameter(":CTL_PALLET_ID",OracleDbType.Varchar2)
};
param[0].Value = model.CTL_PALLET_ID;
SystemDataObject.Instance.ExecuteSqlCommit(strPalletdel, param);
}
#endregion
#region 删除多条(解除绑定)
///
/// 删除多条数据(解除绑定)
///
/// 容器Model
public void DeleteMoreData(List list)
{
string strPalletdel;
List strlistadd = new List();
List strparamadd = new List();
foreach (BaseCtlGoodsModel ctlmodel in list)
{
strPalletdel =@"delete from
T_BASE_CTL_GOODS --容器表
where
CTL_PALLET_ID =:CTL_PALLET_ID --托盘编号";
OracleParameter[] param = new OracleParameter[] {
new OracleParameter(":CTL_PALLET_ID",OracleDbType.Varchar2)
};
param[0].Value = ctlmodel.CTL_PALLET_ID;
strlistadd.Add(strPalletdel);
strparamadd.Add(param);
}
SystemDataObject.Instance.ExecuteList(strlistadd, strparamadd);
}
#endregion
#region 废弃 ->删除数据写入到备份表中(T_BASE_CTL_GOODS_BACK未建立)
///
/// 删除数据写入到备份表中
///
/// 容器管理Model集合
//public void InsertBaseCtlGoodsBack(List list)
//{
// string strSql = string.Empty;
// List delsqlstrlist = new List();
// List delsqlpara = new List();
// foreach (BaseCtlGoodsModel model in list)
// {
// strSql = "insert into T_BASE_CTL_GOODS_BACK select * from T_BASE_CTL_GOODS where CTL_PALLET_ID =:CTL_PALLET_ID";
// OracleParameter[] param = new OracleParameter{
// new OracleParameter(":CTL_PALLET_ID",OracleDbType.Varchar2)};
// param[0].Value = model.CTL_PALLET_ID;
// delsqlstrlist.Add(strSql);
// delsqlpara.Add(param);
// }
// SystemDataObject.Instance.ExecuteList(delsqlstrlist, delsqlpara);
//}
#endregion
}
}