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.
 
 
 
 
 

404 lines
19 KiB

using NFine.Data.Extensions;
using System;
using System.Collections.Generic;
using System.Data;
using NFine.Code;
using NFine.Repository;
using System.Data.Common;
using NFine.Domain._03_Entity.SRM;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace NFine.Application.WMS
{
public class ICSApplyApp : RepositoryFactory<ICSVendor>
{
/// 主表查询
public DataTable SearchICSApply(string queryJson, ref Pagination jqgridparam)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" select a.ID ,a.ApplyCode ,a.WHCode ,c.WarehouseName,
case when a.Status ='1' then '开立' when a.Status ='2' then '审核' else '关闭' end as Status
,a.Type ,b.Name ,a.Memo ,a.CreatePerson ,a.CreateDateTime ,a.MUSER ,a.MUSERName ,a.MTIME ,a.WorkPoint ,
a.EATTRIBUTE1 ,a.EATTRIBUTE2 ,a.EATTRIBUTE3 ,a.EATTRIBUTE4 ,a.EATTRIBUTE5 ,a.EATTRIBUTE6 ,a.EATTRIBUTE7 ,a.EATTRIBUTE8 ,a.EATTRIBUTE9 ,a.EATTRIBUTE10
from dbo.ICSApply a
left join ICSType b on a.Type=b.Code and b.TableCode='ICSApply' and b.ColumnCode='Type' and a.WorkPoint=b.WorkPoint
left join dbo.ICSWarehouse c on a.WHCode=c.WarehouseCode and a.WorkPoint=b.WorkPoint";
//sql = string.Format(sql);
//DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["Code"].ToString()))
{
sql += " and a.ApplyCode like '%" + queryParam["Code"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["UserCode"].ToString()))
{
sql += " and a.MUSER like '%" + queryParam["UserCode"].ToString() + "%' ";
}
//if (!string.IsNullOrWhiteSpace(queryParam["selShow"].ToString()))
//{
// string POStatus = queryParam["selShow"].ToString();
// if (POStatus == "1")
// {
// sql += " and a.Status='1' ";
// }
// else if (POStatus == "2")
// {
// sql += " and a.Status='2' ";
// }
// else if (POStatus == "3")
// {
// sql += " and a.Status='3' ";
// }
// else
// {
// }
//}
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
//子表查询
public DataTable SeachICSApplyDetail(string Code, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"select a.ID ,a.ApplyCode ,a.Sequence ,a.InvCode ,a.Quantity ,a.Amount , a.ApplyQuantity ,a.ExtensionID ,a.MUSER ,a.MUSERName ,a.MTIME , a.WorkPoint ,
a.EATTRIBUTE1 ,a.EATTRIBUTE2 , a.EATTRIBUTE3 , a.EATTRIBUTE4 ,a.EATTRIBUTE5 ,a.EATTRIBUTE6 , a.EATTRIBUTE7 ,a.EATTRIBUTE8 ,a.EATTRIBUTE9 , a.EATTRIBUTE10 ,
f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
from ICSApplyDetail a
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
WHERE a.ApplyCode='" + Code + "' ";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetINV(string invcode, string Code, string Invstd, string EATTRIBUTE2, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
List<DbParameter> parameter = new List<DbParameter>();
DataTable table = new DataTable();
string wherestr = "";
if (!string.IsNullOrEmpty(invcode))
{
wherestr += " and a.InvCode like '%" + invcode + "%'";
}
//if (!string.IsNullOrEmpty(Code))
//{
// wherestr += " and c.MOCode like '%" + Code + "%'";
//}
if (!string.IsNullOrEmpty(Invstd))
{
wherestr += " and b.InvStd like '%" + Invstd + "%'";
}
//if (!string.IsNullOrEmpty(EATTRIBUTE2))
//{
// wherestr += " and a.EATTRIBUTE2 like '%" + EATTRIBUTE2 + "%'";
//}
string sql = @"select InvCode,InvName,InvDesc,InvUnit,InvStd from dbo.ICSInventory
where WorkPoint = '" + WorkPoint + "'" + wherestr;
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
public DataTable GetDocumentType()
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string sql = @"
select '' as Code,'' as Name
union all
select Code,Name from dbo.ICSType where TableCode='ICSApply' and ColumnCode='Type' and Enable='1' and WorkPoint='{0}'
";
sql = string.Format(sql, WorkPoint);
DataTable dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
public DataTable GetICSApplyDetail(string ApplyCode, ref Pagination jqgridparam)
{
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT
a.ID,
a.ID as SQZID,
a.ApplyCode,
a.InvCode,
a.Quantity,
a.Amount,
b.InvName,
b.InvStd,
b.InvUnit,
a.ApplyQuantity,
a.ExtensionID
,f.Colspan ,f.ProjectCode ,f.BatchCode ,f.Version ,f.Brand ,f.cFree1 ,f.cFree2 ,f.cFree3 ,f.cFree4
,f.cFree5 ,f.cFree6 ,f.cFree7 ,f.cFree8 ,f.cFree9 ,f.cFree10
FROM
ICSApplyDetail a
LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
where a.ApplyCode='" + ApplyCode + "'";
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
//DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
//return table;
}
public string SaveICSApply(string ICSASN)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string msg = "";
string SeachCode;
string sql = string.Empty;
string Colspan = "";
string str1 = "";
List<string> ExtensionIDList = new List<string>();
//获取单号
SeachCode = @"DECLARE @MaxNO INT,@date varchar(20)='AP'+SUBSTRING(CONVERT(varchar(8), GETDATE(), 112), 1, 8)
SELECT @MaxNO=SUBSTRING(MAX(ApplyCode),LEN(@date)+1,LEN(MAX(ApplyCode))-LEN(@date))+1 FROM ICSApply
WHERE SUBSTRING(ApplyCode, 1, LEN(@date))=@date
IF @MaxNO IS NULL
BEGIN
SELECT @date+'00001' AS Code
END
ELSE
BEGIN
SELECT @date+REPLICATE('0',5-LEN(@MaxNO))+CAST(@MaxNO AS nvarchar(10)) AS Code
END ";
object Code = SqlHelper.ExecuteScalar(SeachCode);
JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
foreach (var item in res)
{
JObject jo = (JObject)item;
//创建主表
sql += @"insert into ICSApply( ID,ApplyCode,WHCode,Status,Type,Memo,CreatePerson,CreateDateTime,MUSER,MUSERName,MTIME,WorkPoint)
VALUES (NEWID(),'{0}','{1}','1','{2}','{3}','{4}',getdate(),'{4}','{5}',getdate(),'{6}')";
sql = string.Format(sql, Code,jo["WHCode"].ToString(), jo["Type"].ToString(), jo["Memo"].ToString(), MUSER, MUSERNAME, WorkPoint);
JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
foreach (var detail in resdetail)
{
JObject det = (JObject)detail;
Colspan = det["ProjectCode"].ToString() + "~" + det["BatchCode"].ToString() + "~" + det["Version"].ToString() + "~" + det["Brand"].ToString() + "~" + det["cFree1"].ToString() + "~" + det["cFree2"].ToString() + "~" + det["cFree3"].ToString() + "~" + det["cFree4"].ToString() + "~" + det["cFree5"].ToString() + "~" + det["cFree6"].ToString() + "~" + det["cFree7"].ToString() + "~" + det["cFree8"].ToString() + "~" + det["cFree9"].ToString() + "~" + det["cFree10"].ToString();
string sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
bool flag = true;
foreach (var itemE in ExtensionIDList)
{
if (itemE == Colspan + WorkPoint)
{
flag = false;
}
}
if (ExtensionID == null && flag == true)
{
str1 = Guid.NewGuid().ToString();
sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
str1, Colspan, det["ProjectCode"].ToString(), det["BatchCode"].ToString(), det["Version"].ToString(), det["Brand"].ToString(), det["cFree1"].ToString(), det["cFree2"].ToString(), det["cFree3"].ToString(), det["cFree4"].ToString(), det["cFree5"].ToString(), det["cFree6"].ToString(), det["cFree7"].ToString(), det["cFree8"].ToString(), det["cFree9"].ToString(), det["cFree10"].ToString(),
MUSER, MUSERNAME, WorkPoint);
}
else if (ExtensionID != null)
{
str1 = ExtensionID.ToString();
}
ExtensionIDList.Add(Colspan + WorkPoint);
sql += @"insert into ICSApplyDetail( ID,ApplyCode,Sequence,InvCode,Quantity,Amount,ApplyQuantity,ExtensionID,MUSER,MUSERName,MTIME,WorkPoint)
VALUES (NEWID(),'{0}','{1}','{2}','{3}','{4}','0','{5}','{6}','{7}',getdate(),'{8}')";
sql = string.Format(sql, Code, det["Sequence"].ToString(), det["InvCode"].ToString(), det["Quantity"].ToString(),
det["Amount"].ToString(), str1, MUSER, MUSERNAME, WorkPoint);
}
}
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
else
{
msg = "新增失败";
}
}
catch (Exception ex)
{
msg=ex.Message;
}
return msg;
}
public string UpdateICSApply(string ICSASN)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string MUSER = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
string MUSERNAME = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string msg = "";
string sql = string.Empty;
string Colspan = "";
string str1 = "";
string idss = "";
string Code = "";
List<string> ExtensionIDList = new List<string>();
JArray res = (JArray)JsonConvert.DeserializeObject(ICSASN);
foreach (var item in res)
{
JObject jo = (JObject)item;
//创建主表
sql += @"update ICSApply set WHCode='{0}' ,Memo='{1}' ,MUSER='{2}',MUSERName='{3}',MTIME=getdate() where ApplyCode='{4}'";
sql = string.Format(sql, jo["WHCode"].ToString(), jo["Memo"].ToString(), MUSER, MUSERNAME, jo["Code"].ToString());
Code = jo["Code"].ToString();
JArray resdetail = (JArray)JsonConvert.DeserializeObject(jo["Detail"].ToString());
foreach (var detail in resdetail)
{
JObject det = (JObject)detail;
Colspan = det["ProjectCode"].ToString() + "~" + det["BatchCode"].ToString() + "~" + det["Version"].ToString() + "~" + det["Brand"].ToString() + "~" + det["cFree1"].ToString() + "~" + det["cFree2"].ToString() + "~" + det["cFree3"].ToString() + "~" + det["cFree4"].ToString() + "~" + det["cFree5"].ToString() + "~" + det["cFree6"].ToString() + "~" + det["cFree7"].ToString() + "~" + det["cFree8"].ToString() + "~" + det["cFree9"].ToString() + "~" + det["cFree10"].ToString();
string sqls = string.Format(@"select ID from ICSExtension where Colspan='{0}' and WorkPoint='{1}'", Colspan, WorkPoint);
object ExtensionID = SqlHelper.ExecuteScalar(sqls);
bool flag = true;
foreach (var itemE in ExtensionIDList)
{
if (itemE == Colspan + WorkPoint)
{
flag = false;
}
}
if (ExtensionID == null && flag == true)
{
str1 = Guid.NewGuid().ToString();
sql += string.Format(@"Insert into ICSExtension(ID, Colspan, ProjectCode, BatchCode, Version, Brand, cFree1, cFree2, cFree3, cFree4, cFree5, cFree6, cFree7, cFree8, cFree9, cFree10, MTIME, MUSER, MUSERName, WorkPoint)
Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}',getdate(),'{16}','{17}','{18}' )",
str1, Colspan, det["ProjectCode"].ToString(), det["BatchCode"].ToString(), det["Version"].ToString(), det["Brand"].ToString(), det["cFree1"].ToString(), det["cFree2"].ToString(), det["cFree3"].ToString(), det["cFree4"].ToString(), det["cFree5"].ToString(), det["cFree6"].ToString(), det["cFree7"].ToString(), det["cFree8"].ToString(), det["cFree9"].ToString(), det["cFree10"].ToString(),
MUSER, MUSERNAME, WorkPoint);
}
else if (ExtensionID != null)
{
str1 = ExtensionID.ToString();
}
ExtensionIDList.Add(Colspan + WorkPoint);
if (string.IsNullOrWhiteSpace(det["SQZID"].ToString()))
{
string DetailID = Guid.NewGuid().ToString();
sql += @"insert into ICSApplyDetail( ID,ApplyCode,Sequence,InvCode,Quantity,Amount,ApplyQuantity,ExtensionID,MUSER,MUSERName,MTIME,WorkPoint)
VALUES ('{9}','{0}','{1}','{2}','{3}','{4}','0','{5}','{6}','{7}',getdate(),'{8}')";
sql = string.Format(sql, jo["Code"].ToString(), det["Sequence"].ToString(), det["InvCode"].ToString(), det["Quantity"].ToString(),
det["Amount"].ToString(), str1, MUSER, MUSERNAME, WorkPoint, DetailID);
idss += "'" + DetailID + "',";
}
else
{
//子表修改
sql += @"update ICSApplyDetail set InvCode='{0}' ,Quantity='{1}',Amount='{2}',MUSER='{3}',MUSERName='{4}',MTIME=getdate() where ID='{5}' and WorkPoint='{6}'";
sql = string.Format(sql, det["InvCode"].ToString(), det["Quantity"].ToString(), det["Amount"].ToString(), MUSER, MUSERNAME, det["SQZID"].ToString(), WorkPoint);
idss += "'" + det["SQZID"].ToString() + "',";
}
}
}
sql += @"DELETE from ICSApplyDetail where ApplyCode ='{0}' and id not in ({1})";
sql = string.Format(sql, Code, idss.Substring(0, idss.Length - 1));
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
else
{
msg = "修改失败";
}
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
public string DeleteICSApply(string keyValue)
{
//站点信息
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
sql += string.Format(@"DELETE FROM dbo.ICSApply WHERE ApplyCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
sql += string.Format(@"DELETE FROM dbo.ICSApplyDetail WHERE ApplyCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
public string AuditICSApply(string keyValue)
{
//站点信息
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string msg = "";
keyValue = keyValue.Substring(1, keyValue.Length - 2);
string sql = string.Empty;
sql += string.Format(@"update dbo.ICSApply set Status='2' WHERE ApplyCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
}
catch (Exception ex)
{
msg=ex.Message;
}
return msg;
}
}
}