307 lines
15 KiB
C#
307 lines
15 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using WMS.IData;using Oracle.ManagedDataAccess.Client;
|
|||
|
|
using System.Data;
|
|||
|
|
|
|||
|
|
using WMS.DBUtility;
|
|||
|
|
using WMS.Model.Base;
|
|||
|
|
using WMS.IData.IBase;
|
|||
|
|
using System.Text.RegularExpressions;
|
|||
|
|
|
|||
|
|
namespace WMS.SqlServerData.BaseData
|
|||
|
|
{
|
|||
|
|
public class StorageAreaData : IStorageArea
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取库区信息结果集
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="areaInfoModel">库区信息</param>
|
|||
|
|
/// <returns>库区信息结果集</returns>
|
|||
|
|
public DataTable GetAreaInfoDS(StorageAreaModel areaInfoModel, string parentAreaName)
|
|||
|
|
{
|
|||
|
|
StringBuilder sqlBuilder = new StringBuilder();
|
|||
|
|
|
|||
|
|
sqlBuilder.AppendLine("select ");
|
|||
|
|
sqlBuilder.AppendLine(" a.storage_area_id, --库区编号 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.storage_area_name, --库区名称 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.storage_area_short_name, --库区简称 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.py_name, --拼音简称 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.storage_id, --所属仓库编号 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.sort, --排序 ");
|
|||
|
|
sqlBuilder.AppendLine(" ( case a.status when '1' then '停用' when '0' then '正常' else'其他' end) status, --Status 0:正常 1:停用 ");
|
|||
|
|
sqlBuilder.AppendLine(" ISNULL(a.remark,' ') remark, --备注 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.version, --版本号 ");
|
|||
|
|
sqlBuilder.AppendLine(" b.STORAGE_NAME, --所属仓库 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.PARENT_ID, --父编号 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.operatorid, --操作人 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.operatedate, --操作日期 ");
|
|||
|
|
sqlBuilder.AppendLine(" a.edit --可否编辑 ");
|
|||
|
|
sqlBuilder.AppendLine("from ");
|
|||
|
|
sqlBuilder.AppendLine(" T_BASE_STORAGE_AREA a left join t_base_storageinfo b ");
|
|||
|
|
sqlBuilder.AppendLine(" on a.STORAGE_id = b.STORAGE_id ");
|
|||
|
|
sqlBuilder.AppendLine("where 1 = 1 ");
|
|||
|
|
|
|||
|
|
if (areaInfoModel != null)
|
|||
|
|
{
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.STORAGE_ID))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and a.STORAGE_ID = '" + areaInfoModel.STORAGE_ID + "'");
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.STORAGE_AREA_ID))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and a.storage_area_id = '" + areaInfoModel.STORAGE_AREA_ID + "'");
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.STORAGE_AREA_NAME))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and a.storage_area_name = '" + areaInfoModel.STORAGE_AREA_NAME + "'");
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.PARENT_ID))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and a.PARENT_ID = '" + areaInfoModel.PARENT_ID + "'");
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.EDIT))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and a.edit = '" + areaInfoModel.EDIT + "'");
|
|||
|
|
}
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.STATUS))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and a.STATUS = '" + areaInfoModel.STATUS + "'");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//sqlBuilder.AppendLine(" order by a.SORT,PARENT_ID,a.storage_area_id");
|
|||
|
|
return SystemDataObject.Instance.GetDataTable(sqlBuilder.ToString());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取库区信息结果集(编号、名称)
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="areaInfoModel">库区信息</param>
|
|||
|
|
/// <returns>库区信息结果集(编号、名称)</returns>
|
|||
|
|
public DataTable GetAreaInfoDSIdName(StorageAreaModel areaInfoModel)
|
|||
|
|
{
|
|||
|
|
StringBuilder sqlBuilder = new StringBuilder();
|
|||
|
|
|
|||
|
|
sqlBuilder.AppendLine("select ");
|
|||
|
|
sqlBuilder.AppendLine(" storage_area_id, --库区编号 ");
|
|||
|
|
sqlBuilder.AppendLine(" storage_area_name, --库区名称 ");
|
|||
|
|
sqlBuilder.AppendLine("from ");
|
|||
|
|
sqlBuilder.AppendLine(" T_BASE_STORAGE_AREA ");
|
|||
|
|
sqlBuilder.AppendLine("where 1=1 ");
|
|||
|
|
|
|||
|
|
if (!string.IsNullOrEmpty(areaInfoModel.STORAGE_ID))
|
|||
|
|
{
|
|||
|
|
sqlBuilder.AppendLine(" and STORAGE_ID = '" + areaInfoModel.STORAGE_ID + "'");
|
|||
|
|
}
|
|||
|
|
sqlBuilder.AppendLine(" order by SORT");
|
|||
|
|
return SystemDataObject.Instance.GetDataTable(sqlBuilder.ToString());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 新增或修改库区信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="areaInfoModel"></param>
|
|||
|
|
/// <param name="flag">flag 操作标示符 0:新增 1:修改</param>
|
|||
|
|
public string InsOrUpdAreaInfo(StorageAreaModel areaInfoModel, int flag)
|
|||
|
|
{
|
|||
|
|
string str = "select NEXT VALUE FOR seq_BASE_STORAGE_AREA ";
|
|||
|
|
DataSet ds = SystemDataObject.Instance.GetDataSet(str);
|
|||
|
|
string seq = ds.Tables[0].Rows[0][0].ToString();
|
|||
|
|
|
|||
|
|
|
|||
|
|
//新增
|
|||
|
|
if (0 == flag)
|
|||
|
|
{
|
|||
|
|
if (string.IsNullOrEmpty(areaInfoModel.STORAGE_AREA_ID))
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (string.IsNullOrEmpty(areaInfoModel.STORAGE_ID))
|
|||
|
|
{
|
|||
|
|
areaInfoModel.STORAGE_AREA_ID = "KQ" + areaInfoModel.STORAGE_ID + seq;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
areaInfoModel.STORAGE_AREA_ID = "KQ" + Regex.Replace(areaInfoModel.STORAGE_ID, "[a-z,A-Z]", "", RegexOptions.IgnoreCase) + seq;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
string sqlstr =@"insert into
|
|||
|
|
T_BASE_STORAGE_AREA (STORAGE_AREA_ID,STORAGE_AREA_NAME,STORAGE_AREA_SHORT_NAME,PY_NAME,STORAGE_ID,SORT,REMARK,PARENT_ID,OPERATORID)
|
|||
|
|
values
|
|||
|
|
('" + areaInfoModel.STORAGE_AREA_ID + "', '" + areaInfoModel.STORAGE_AREA_NAME + "','" + areaInfoModel.STORAGE_AREA_SHORT_NAME + "',"
|
|||
|
|
+ " '" + areaInfoModel.PY_NAME + "','" + areaInfoModel.STORAGE_ID + "' ,'" + areaInfoModel.SORT + "','" + areaInfoModel.REMARK + "',"
|
|||
|
|
+ " '" + areaInfoModel.PARENT_ID + "','" + areaInfoModel.OPERATORID + "')";
|
|||
|
|
|
|||
|
|
|
|||
|
|
SystemDataObject.Instance.ExecuteSql(sqlstr);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//修改
|
|||
|
|
else if (1 == flag)
|
|||
|
|
{
|
|||
|
|
string sqlstr =@"
|
|||
|
|
update
|
|||
|
|
T_BASE_STORAGE_AREA
|
|||
|
|
set
|
|||
|
|
storage_area_name =:storage_area_name, --库区名称
|
|||
|
|
storage_area_short_name =:storage_area_short_name, --库区简称
|
|||
|
|
py_name =:py_name, --拼音简称
|
|||
|
|
storage_id =:storage_id, --所属仓库编号
|
|||
|
|
sort =:sort, --排序
|
|||
|
|
status =:status, --Status
|
|||
|
|
remark =:remark, --备注
|
|||
|
|
version =:version, --版本号
|
|||
|
|
PARENT_ID =:PARENT_ID, --父编号
|
|||
|
|
operatorid =:operatorid, --操作人
|
|||
|
|
operatedate =getdate(), --操作日期
|
|||
|
|
edit =:edit --可否编辑
|
|||
|
|
where
|
|||
|
|
storage_area_id =:storage_area_id --库区编号
|
|||
|
|
";
|
|||
|
|
OracleParameter[] parameter = new OracleParameter[]
|
|||
|
|
{
|
|||
|
|
new OracleParameter(":storage_area_name",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":storage_area_short_name",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":py_name",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":storage_id",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":sort",OracleDbType.Decimal),
|
|||
|
|
new OracleParameter(":status",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":remark",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":version",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":PARENT_ID",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":operatorid",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":edit",OracleDbType.Varchar2),
|
|||
|
|
new OracleParameter(":storage_area_id",OracleDbType.Varchar2),
|
|||
|
|
};
|
|||
|
|
parameter[0].Value = areaInfoModel.STORAGE_AREA_NAME;
|
|||
|
|
parameter[1].Value = areaInfoModel.STORAGE_AREA_SHORT_NAME;
|
|||
|
|
parameter[2].Value = areaInfoModel.PY_NAME;
|
|||
|
|
parameter[3].Value = areaInfoModel.STORAGE_ID;
|
|||
|
|
parameter[4].Value = areaInfoModel.SORT;
|
|||
|
|
parameter[5].Value = areaInfoModel.STATUS;
|
|||
|
|
parameter[6].Value = areaInfoModel.REMARK;
|
|||
|
|
parameter[7].Value = areaInfoModel.VERSION;
|
|||
|
|
parameter[8].Value = areaInfoModel.PARENT_ID;
|
|||
|
|
parameter[9].Value = areaInfoModel.OPERATORID;
|
|||
|
|
parameter[10].Value = areaInfoModel.EDIT;
|
|||
|
|
parameter[11].Value = areaInfoModel.STORAGE_AREA_ID;
|
|||
|
|
|
|||
|
|
SystemDataObject.Instance.ExecuteSql(sqlstr, parameter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return areaInfoModel.STORAGE_AREA_ID;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除库区信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="strAreaInfoID"></param>
|
|||
|
|
public void DeleteAreaInfo(string strAreaInfoID)
|
|||
|
|
{
|
|||
|
|
string sqlstr =@"delete from T_BASE_STORAGE_AREA where storage_area_id =:storage_area_id";
|
|||
|
|
OracleParameter[] parameter = new OracleParameter[]{
|
|||
|
|
new OracleParameter(":storage_area_id",OracleDbType.Varchar2),
|
|||
|
|
};
|
|||
|
|
parameter[0].Value = strAreaInfoID;
|
|||
|
|
SystemDataObject.Instance.ExecuteSql(sqlstr, parameter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除属于某仓库的库区信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="strStorageInfoID">某仓库编号</param>
|
|||
|
|
public void DeleteAreaInfoByStorageInfoID(string strStorageInfoID)
|
|||
|
|
{
|
|||
|
|
string sqlstr =@"delete from T_BASE_STORAGE_AREA where storage_id =:storage_id";
|
|||
|
|
OracleParameter[] parameter = new OracleParameter[]{
|
|||
|
|
new OracleParameter(":storage_id",OracleDbType.Varchar2),
|
|||
|
|
};
|
|||
|
|
parameter[0].Value = strStorageInfoID;
|
|||
|
|
SystemDataObject.Instance.ExecuteSql(sqlstr, parameter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除属于某仓库分类的库区信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="strStorageTypeID">某仓库分类</param>
|
|||
|
|
public void DeleteAreaInfoByStorageTypeID(string strStorageTypeID)
|
|||
|
|
{
|
|||
|
|
string sqlstr =@"delete
|
|||
|
|
from
|
|||
|
|
T_BASE_STORAGE_AREA
|
|||
|
|
where
|
|||
|
|
storage_id
|
|||
|
|
in
|
|||
|
|
(
|
|||
|
|
select
|
|||
|
|
STORAGE_ID
|
|||
|
|
from
|
|||
|
|
T_BASE_STORAGEINFO
|
|||
|
|
where
|
|||
|
|
STORAGE_TYPE_ID =:STORAGE_TYPE_ID
|
|||
|
|
)";
|
|||
|
|
OracleParameter[] parameter = new OracleParameter[]{
|
|||
|
|
new OracleParameter(":STORAGE_TYPE_ID",OracleDbType.Varchar2),
|
|||
|
|
};
|
|||
|
|
parameter[0].Value = strStorageTypeID;
|
|||
|
|
SystemDataObject.Instance.ExecuteSql(sqlstr, parameter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 根据仓库编号停用或启用某库区
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="strStorageInfoID">某仓库编号</param>
|
|||
|
|
/// <param name="flag">0停用1正常</param>
|
|||
|
|
public void CloseAreaInfoByStorageInfoID(string strStorageInfoID, int flag)
|
|||
|
|
{
|
|||
|
|
string sqlstr =@"update T_BASE_STORAGE_AREA set status = '" + flag + "' where storage_id =:storage_id";
|
|||
|
|
OracleParameter[] parameter = new OracleParameter[]{
|
|||
|
|
new OracleParameter(":storage_id",OracleDbType.Varchar2),
|
|||
|
|
};
|
|||
|
|
parameter[0].Value = strStorageInfoID;
|
|||
|
|
SystemDataObject.Instance.ExecuteSqlCommit(sqlstr, parameter);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 通过用户信息 获得用户所属库区
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="model"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public DataTable GetStorageAreaByUserIDandStorageID(UserDataModel model)
|
|||
|
|
{
|
|||
|
|
StringBuilder strSql = new StringBuilder();
|
|||
|
|
strSql.Append(@" select t.*,
|
|||
|
|
a.storage_area_name AREA_NAME,
|
|||
|
|
s.storage_id,
|
|||
|
|
s.storage_name,
|
|||
|
|
d.vc_dictionary_name WORKKIND_NAME
|
|||
|
|
from T_BASE_USERAREA t
|
|||
|
|
left join t_Base_Storage_Area a
|
|||
|
|
on t.area_id = a.storage_area_id
|
|||
|
|
left join t_Base_Userinfo u
|
|||
|
|
on t.user_id = u.user_id
|
|||
|
|
left join t_Base_Storageinfo s
|
|||
|
|
on u.storage_id = s.storage_id
|
|||
|
|
left join t_Sys_Dictionary_Tab d
|
|||
|
|
on t.workkind_id = d.vc_char_value
|
|||
|
|
where d.vc_dictionary_type = 'workkind_type'");
|
|||
|
|
strSql.Append(" and t.user_id = '" + model.USER_ID + "' ");
|
|||
|
|
return SystemDataObject.Instance.GetDataTable(strSql.ToString());
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更新仓库的名称
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="stroAge_id"></param>
|
|||
|
|
/// <param name="STORAGE_AREA_NAME"></param>
|
|||
|
|
public void UpdateAreaDataName(string stroAge_id,string STORAGE_AREA_NAME)
|
|||
|
|
{
|
|||
|
|
string sqlStr = "update T_BASE_STORAGE_AREA set STORAGE_AREA_NAME='"+ STORAGE_AREA_NAME + "' where STORAGE_AREA_ID='" + stroAge_id + "'";
|
|||
|
|
SystemDataObject.Instance.ExecuteSql(sqlStr);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|