BaoKai_202508-Wms-Jingwang..../WMS.SqlServerData/BaseData/StorageAreaData.cs
2025-08-24 09:35:55 +08:00

307 lines
15 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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