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.
281 lines
11 KiB
281 lines
11 KiB
using NFine.Repository;
|
|
using NFine.Domain._03_Entity.SRM;
|
|
using NFine.Data.Extensions;
|
|
using System;
|
|
using Newtonsoft.Json.Linq;
|
|
using Newtonsoft.Json;
|
|
using System.Data.SqlClient;
|
|
using System.Data;
|
|
using NFine.Code;
|
|
|
|
namespace NFine.Application.PNWMS
|
|
{
|
|
public class BasicSettingsApp : RepositoryFactory<ICSVendor>
|
|
{
|
|
|
|
public string DeleteStack(string keyValue)
|
|
{
|
|
//站点信息
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = "";
|
|
JArray res = (JArray)JsonConvert.DeserializeObject(keyValue);
|
|
//keyValue = keyValue.Substring(1, keyValue.Length - 2);
|
|
string sql = string.Empty;
|
|
foreach (var item in res)
|
|
{
|
|
JObject jo = (JObject)item;
|
|
sql = string.Format(@"
|
|
IF EXISTS(SELECT * FROM dbo.ICSWareHouseLotInfo a
|
|
LEFT JOIN dbo.ICSLocation b ON a.LocationCode=b.LocationCode and a.WorkPoint=b.WorkPoint
|
|
where b.ID = '{0}' and a.Quantity>0)
|
|
BEGIN
|
|
RAISERROR('选中库位{2}在库存中已经有库存,请先确认!',16,1);
|
|
RETURN
|
|
END
|
|
DELETE FROM dbo.ICSLocation WHERE ID = '{0}' and WorkPoint ='{1}'", jo["ID"].ToString(), WorkPoint, jo["LocationCode"].ToString());
|
|
try
|
|
{
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
//throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
|
|
|
|
return msg;
|
|
}
|
|
|
|
//库位导入
|
|
public string SetData_PR(String savePath)
|
|
{
|
|
//数据获取
|
|
try
|
|
{
|
|
int index = 1;
|
|
string msg = "";
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
SqlConnection conn = SqlHelper.GetDataCenterConn();
|
|
string sql = "";
|
|
int count = 0;
|
|
DataTable data = FileToExcel.ExcelToTable(savePath);
|
|
foreach (DataRow dr in data.Rows)
|
|
{
|
|
index++;
|
|
var StackCode = "";
|
|
var StackName = "";
|
|
//string GUID = Guid.NewGuid().ToString();
|
|
string KuFang = dr["库房编码"].ToString().Trim().ToUpper();
|
|
string Qu = dr["区"].ToString().Trim().ToUpper();
|
|
string Pai = dr["排"].ToString().Trim().ToUpper();
|
|
string Jia = dr["货架"].ToString().Trim().ToUpper();
|
|
string Ceng = dr["层"].ToString().Trim().ToUpper();
|
|
string Ge = dr["格"].ToString().Trim().ToUpper();
|
|
if (KuFang == "" || KuFang == null)
|
|
{
|
|
throw new Exception("第 " + index + " 行库房编码不能为空!");
|
|
}
|
|
if (Qu == "" && Pai == "" && Jia == "" && Ceng == "" && Ge == "")
|
|
{
|
|
throw new Exception("第 " + index + " 区、排、货架、层、格至少填写一项!");
|
|
}
|
|
string sqlWH = @"select ID from ICSWarehouse where WarehouseCode='{0}' and WorkPoint='{1}'";
|
|
sqlWH = string.Format(sqlWH, KuFang, WorkPoint);
|
|
DataTable dd = SqlHelper.CmdExecuteDataTable(sqlWH);
|
|
if (dd == null || dd.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("库房编码: " + KuFang + " 不存在!");
|
|
}
|
|
string WHID = dd.Rows[0]["ID"].ToString();
|
|
StackCode = KuFang;
|
|
StackName = KuFang + "仓库";
|
|
if (Qu != "")
|
|
{
|
|
StackCode += "-" + Qu;
|
|
StackName += Qu + "区";
|
|
}
|
|
if (Pai != "")
|
|
{
|
|
StackCode += "-" + Pai;
|
|
StackName += Pai + "排";
|
|
}
|
|
if (Jia != "")
|
|
{
|
|
StackCode += "-" + Jia;
|
|
StackName += Jia + "货架";
|
|
}
|
|
if (Ceng != "")
|
|
{
|
|
StackCode += "-" + Ceng;
|
|
StackName += Ceng + "层";
|
|
}
|
|
if (Ge != "")
|
|
{
|
|
StackCode += "-" + Ge;
|
|
StackName += Ge + "格";
|
|
}
|
|
string sqls = @"select LocationCode from ICSLocation where LocationCode='{0}' and WorkPoint='{1}'";
|
|
sqls = string.Format(sqls, StackCode, WorkPoint);
|
|
DataTable dnum = SqlHelper.CmdExecuteDataTable(sqls);
|
|
if (dnum != null && dnum.Rows.Count > 0)
|
|
{
|
|
throw new Exception("库位: " + StackCode + " 已存在!");
|
|
}
|
|
else
|
|
{
|
|
sql += @"Insert INto ICSLocation
|
|
( ID, LocationCode, LocationName, WHID, MUSER, MUSERName, MTIME, WorkPoint, EATTRIBUTE1, Region, Row, GoodsShelf, Tier, Grid)
|
|
Values (newid(),'{0}','{1}','{2}','{3}','{4}',getdate(),'{5}','','{6}','{7}','{8}','{9}','{10}')";
|
|
}
|
|
sql = string.Format(sql, StackCode, StackName, WHID, MUSER, MUSERNAME, WorkPoint, Qu, Pai, Jia, Ceng, Ge);
|
|
|
|
}
|
|
count = SqlHelper.CmdExecuteNonQueryLi(sql);
|
|
if (count > 0)
|
|
{
|
|
msg = "导入成功";
|
|
}
|
|
else
|
|
{
|
|
return "无有效的导入数据。";
|
|
|
|
}
|
|
return msg;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return ex.Message;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取库房信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DataTable GetWarehouse()
|
|
{
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string sql = @"
|
|
select '' as WarehouseCode,'' as WarehouseName
|
|
union all
|
|
SELECT [WarehouseCode],[WarehouseName] FROM [ICSWarehouse] WITH (NOLOCK) WHERE 1=1 ";
|
|
//string role = NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode;
|
|
//if (role != "admin")
|
|
//{
|
|
// sql += " and b.WorkPoint='" + WorkPoint + "'";
|
|
//}
|
|
sql += " and WorkPoint='" + WorkPoint + "'";
|
|
DataTable dt = SqlHelper.GetDataTableBySql(sql);
|
|
return dt;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 修改库位
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <returns></returns>
|
|
public string UpdateStack(string keyValue)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = "";
|
|
string StackSql = @"select * from ICSWarehouse where WarehouseCode='{0}'";
|
|
StackSql = string.Format(StackSql, queryParam["Warehouse"].ToString());
|
|
DataTable dt = SqlHelper.GetDataTableBySql(StackSql);
|
|
string sql = string.Empty;
|
|
sql = @"UPDATE dbo.ICSLocation set LocationCode='{0}',LocationName='{1}',WHID='{2}',MUSER='{3}',MUSERName='{4}',MTIME=GETDATE(),WorkPoint='{5}',Region='{7}',Row='{8}',GoodsShelf ='{9}',Tier='{10}',Grid='{11}' WHERE ID='{6}'";
|
|
sql = string.Format(sql, queryParam["StackCode"].ToString(), queryParam["StackName"].ToString(), dt.Rows[0]["ID"].ToString(), MUSER, MUSERNAME, WorkPoint, queryParam["ID"].ToString(), queryParam["Qu"].ToString(), queryParam["Pai"].ToString(), queryParam["Jia"].ToString(), queryParam["Ceng"].ToString(), queryParam["Ge"].ToString());
|
|
try
|
|
{
|
|
if (SqlHelper.ExecuteNonQuery(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "修改失败";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 新增库位
|
|
/// </summary>
|
|
/// <param name="queryJson"></param>
|
|
/// <returns></returns>
|
|
public string InsertStack(string keyValue)
|
|
{
|
|
var queryParam = keyValue.ToJObject();
|
|
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
|
|
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
|
|
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
|
|
string msg = "";
|
|
string StackSql = @"select * from ICSWarehouse where WarehouseCode='{0}' and WorkPoint='{1}'";
|
|
StackSql = string.Format(StackSql, queryParam["Warehouse"].ToString(), WorkPoint);
|
|
DataTable dt = SqlHelper.GetDataTableBySql(StackSql);
|
|
string sql = string.Empty;
|
|
sql = @"IF ((SELECT 1 FROM ICSLocation WHERE LocationCode='{0}' AND LocationName='{1}' AND WHID='{2}' AND WorkPoint='{5}' ) IS NULL)
|
|
BEGIN
|
|
INSERT INTO dbo.ICSLocation
|
|
( ID ,LocationCode ,LocationName ,WHID ,MUSER ,
|
|
MUSERName ,MTIME ,WorkPoint ,Region,Row,GoodsShelf ,Tier,Grid) Values(NEWID(),'{0}','{1}','{2}','{3}','{4}',GETDATE(),'{5}','{6}','{7}','{8}','{9}','{10}')
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
RAISERROR('库位已存在',16,1);
|
|
END ";
|
|
sql = string.Format(sql, queryParam["StackCode"].ToString(), queryParam["StackName"].ToString(), dt.Rows[0]["ID"].ToString(), MUSER, MUSERNAME, WorkPoint, queryParam["Qu"].ToString(), queryParam["Pai"].ToString(), queryParam["Jia"].ToString(), queryParam["Ceng"].ToString(), queryParam["Ge"].ToString());
|
|
try
|
|
{
|
|
if (SqlHelper.ExecuteNonQuery(sql) > 0)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
msg = "新增失败";
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
msg = ex.Message;
|
|
return msg;
|
|
}
|
|
|
|
return msg;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|