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.
 
 
 
 
 

776 lines
34 KiB

using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using NFine.Code;
using NFine.Data.Extensions;
using NFine.Domain._03_Entity.SRM;
using NFine.Repository;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Reflection.Emit;
using NFine.Application.WMS;
using System.Net;
using System.IO;
using System.Reflection;
using System.Data.SqlClient;
namespace NFine.Application.DHAY
{
public class ICSMOIssueAPP : RepositoryFactory<ICSVendor>
{
public static DataTable Invmes = new DataTable();
PickMaterialApp App = new PickMaterialApp();
ICSAccessoriesMOIApplyApp iCSAccessoriesMOIApplyApp = new ICSAccessoriesMOIApplyApp();
#region 删除超额领料单
public string DeleteICSMOIssue(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.ICSMOIssue WHERE IssueCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
#endregion
#region 保存发料信息
public string SaveICSMOIssue(string ICSASN)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string msg = "";
List<JsonData> parsedData = JsonConvert.DeserializeObject<List<JsonData>>(ICSASN);
string sql = "";
string Colspan = "";
string str1 = "";
List<string> ExtensionIDList = new List<string>();
// 获取解析后的数据
JsonData data = parsedData[0];
foreach (var detail in data.Detail)
{
//获取物料的可用数量,判断当前创建单据数量
decimal invCount = iCSAccessoriesMOIApplyApp.GetInvCodeCount(detail.InvCode, "", "");
if (invCount < detail.Quantity)
{
throw new Exception($"物料{detail.InvCode}创建单据数量:{detail.Quantity}不能大于库存可用量:{invCount}");
}
Colspan ="~" + detail.Batch + "~~~~~~~~~~~~";
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 item in ExtensionIDList)
{
if (item == 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, "", detail.Batch, "", "", "", "", "", "", "", "", "", "", "", "",
data.User, UserName, WorkPoint);
}
else if (ExtensionID != null)
{
str1 = ExtensionID.ToString();
}
ExtensionIDList.Add(Colspan + WorkPoint);
sql += "INSERT INTO ICSMOIssue(ID,IssueCode,WHCode,Sequence,InvCode,Quantity,CreatePerson,CreateDateTime,WorkPoint,Status,IssueID,IssueDetailID,ExtensionID,MUSER,MUSERName,MTIME,EATTRIBUTE,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE10,SourceCode,Type,EATTRIBUTE8,EATTRIBUTE9,IssueQuantity)" +
" select '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}',newID(),newID(),'{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','1','{23}','{24}',0";
sql = string.Format(sql, detail.ID, data.Code, detail.WHCode, detail.Sequence, detail.InvCode, detail.Quantity, data.User, data.MTIME, WorkPoint, '1', str1, data.User, UserName, data.MTIME, data.Dept, data.CodeType, data.ApplyNegCode, data.Custmer, data.Remarks, detail.DetailReamrk, detail.SYproject, "超额领料", detail.SourceCode, data.Remarks2, detail.DetailReamrk2);
}
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
}
catch (Exception ex)
{
msg=ex.Message;
}
return msg;
}
#region 超额领料单主表信息查询
public DataTable GetICSMOIssue(ref Pagination jqgridparam, string queryJson)
{
DataTable dt = new DataTable();
List<DbParameter> parameter = new List<DbParameter>();
var queryParam = queryJson.ToJObject();
string sql = @" SELECT DISTINCT
a.IssueCode
,a.Status
,a.CreatePerson
,a.CreateDateTime
,a.MUSER
,a.MUSERName
,a.WHCode
--,a.SourceCode
,a.EATTRIBUTE
,LYdep.Name as LYDep
,a.EATTRIBUTE2
,a.EATTRIBUTE3
,a.EATTRIBUTE4
,a.EATTRIBUTE5
,a.EATTRIBUTE7
,a.EATTRIBUTE8
--,a.EATTRIBUTE9
,a.EATTRIBUTE10
,case when c.Quantity=Isnull(c.IssueQuantity,0) then '1' else '2' END as FLStatus
from dbo.ICSMOIssue a
INNER JOIN (SELECT Sum(a.Quantity) AS Quantity,
Sum(Isnull(a.IssueQuantity,0)) AS IssueQuantity,a.IssueCode,a.WorkPoint FROM ICSMOIssue a GROUP BY a.IssueCode,a.WorkPoint ) c ON a.IssueCode=c.IssueCode AND a.WorkPoint=c.workpoint
left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
left JOIN (SELECT b.F_ItemName as Name,b.F_ItemCode as Code FROM [dbo].[Sys_SRM_Items] a
INNER JOIN Sys_SRM_ItemsDetail b ON b.F_ItemId = a.F_Id
WHERE F_EnCode = 'LYDep') LYdep ON Code=a.EATTRIBUTE
where a.Status='1' ";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
{
sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CreatedBy"].ToString()))
{
sql += " and a.CreatePerson like '%" + queryParam["CreatedBy"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
{
sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["WHCode"].ToString()))
{
sql += " and a.WHCode like '%" + queryParam["WHCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["Status"].ToString()))
{
if (queryParam["Status"].ToString()=="1")
{
sql += " and c.Quantity=Isnull(c.IssueQuantity,0) and Isnull(c.IssueQuantity,0) <> 0";
}
else if(queryParam["Status"].ToString() == "2")
{
sql += "and c.Quantity<>Isnull(c.IssueQuantity,0) ";
}
}
if (!string.IsNullOrWhiteSpace(queryParam["DocType"].ToString()))
{
sql += " and a.EATTRIBUTE2 like '%" + queryParam["DocType"].ToString() + "%' ";
}
}
sql = string.Format(sql);
DataTable dttest = Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
#endregion
#region 超额领料单主表信息查询
public DataTable GetICSMOIssueByIssueCode(string IssueCode)
{
DataTable dt = new DataTable();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" SELECT DISTINCT
a.IssueCode
,a.Status
,a.CreatePerson
,a.CreateDateTime
,a.MUSER
,a.MUSERName
,a.SourceCode
,a.EATTRIBUTE as DepCode
,a.SourceCode as MOCode
,a.EATTRIBUTE2
,a.EATTRIBUTE3
,a.EATTRIBUTE4
,a.EATTRIBUTE5
,a.EATTRIBUTE7
,a.EATTRIBUTE8
,a.EATTRIBUTE9
,a.EATTRIBUTE10
from dbo.ICSMOIssue a
left join ICSWarehouse b on a.WHCode=b.WarehouseCode and a.WorkPoint=b.WorkPoint
WHERE a.IssueCode='{0}'";
sql = string.Format(sql, IssueCode);
return Repository().FindTableBySql(sql.ToString());
}
#endregion
#region 主页面子表信息查询
public DataTable GetICSMOIssueDetail(string IssueCode, string queryJson, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
//var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" select a.ID
,a.IssueCode
,a.Sequence
,a.InvCode
,a.SourceCode as MOCode
,b.InvName
,b.InvStd
,b.EATTRIBUTE5 as OldInvCode
,a.Quantity
,a.Amount
,a.ExtensionID
,a.MUSER
,a.MUSERName
,a.MTIME
,a.WHCode
,c.WarehouseName as WHName
,a.SourceCode
,IssueQuantity
,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
,a.EATTRIBUTE
,a.EATTRIBUTE2
,a.EATTRIBUTE3
,a.EATTRIBUTE4
,a.EATTRIBUTE5
,a.EATTRIBUTE6
,a.EATTRIBUTE7
,a.EATTRIBUTE8
,a.EATTRIBUTE9
,a.EATTRIBUTE10
from ICSMOIssue a
LEFT JOIN ICSInventory b ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
left join ICSWarehouse c On c.WarehouseCode= a.WHCode AND c.WorkPoint=a.WorkPoint
WHERE a.IssueCode='" + IssueCode + "' ";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
{
sql += " and a.IssueCode like '%" + queryParam["POCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
sql += " and a.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CreatedBy"].ToString()))
{
sql += " and a.CreatePerson like '%" + queryParam["CreatedBy"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeFrom"].ToString()))
{
sql += " and convert(nvarchar(20),a.CreateDateTime,23) >= '" + queryParam["TimeFrom"].ToString() + "' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["TimeArrive"].ToString()))
{
sql += " and convert(nvarchar(20),a.CreateDateTime,23) <= '" + queryParam["TimeArrive"].ToString() + "' ";
}
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
#endregion
public string DeleteICSMOIssueByCode(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(@"IF EXISTS( select ID from ICSMOIssue where IssueCode IN ({0}) and WorkPoint ='{1}' AND IssueQuantity>0)
BEGIN
RAISERROR('该单据已发料,不能删除!',16,1);
RETURN
END;
DELETE FROM dbo.ICSMOIssue WHERE IssueCode IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
#region 获取物料信息
public DataTable GetItemList(string queryJson, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName.TrimEnd(',');
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.INVCODE,c.INVNAME,c.InvStd,b.MOCode FROM ICSMOPick a
INNER JOIN ICSMO b ON a.MODetailID=b.MODetailID AND a.WorkPoint=b.WorkPoint
LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode AND a.WorkPoint=c.WorkPoint
WHERE a.Quantity=a.IssueQuantity";
if (!string.IsNullOrEmpty(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["INVCODE"].ToString()))
sql += " and c.INVCODE like '%" + queryParam["INVCODE"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["INVNAME"].ToString()))
sql += " and c.INVNAME like '%" + queryParam["INVNAME"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["MOCode"].ToString()))
sql += " and b.MOCode like '%" + queryParam["MOCode"].ToString() + "%'";
}
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
sql += " and a.WorkPoint=('" + WorkPoint + "') ";
if (NFine.Code.OperatorProvider.Provider.GetCurrent().RoleEnCode != "admin")
{
sql += " AND b.CreatePerson='" + UserName + "'";
}
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
#endregion
public DataTable GetItemListCount(string queryJson, ref Pagination jqgridparam)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"SELECT a.INVCODE,a.INVNAME,ISnull(c.Quantity,0)-ISnull(b.Quantity,0) + ISnull(d.Quantity,0) AS Quantity,a.EATTRIBUTE2,a.InvStd
FROM ICSInventory a
LEFT JOIN
(SELECT Sum(ISnull(Quantity,0)) as Quantity,WorkPoint,INVCode FROM (SELECT ISNUll(sum(ISNULL(Quantity,0))-sum(ISNULL(OutQuantity, 0)),0) as Quantity,WorkPoint,INVCode FROM ICSOtherOut GROUP BY WorkPoint,INVCode
UNION ALL
SELECT ISNUll(sum(ISNULL(Quantity,0))-sum(ISNULL(IssueQuantity, 0)),0) as Quantity,WorkPoint,INVCode FROM ICSMOIssue GROUP BY WorkPoint,INVCode
UNION ALL
SELECT ISNUll(sum(ISNULL(Quantity,0))-sum(ISNULL(SDNQuantity, 0)),0) as Quantity,WorkPoint,INVCode FROM ICSSDN GROUP BY WorkPoint,INVCode
UNION ALL
SELECT ISNUll(sum(ISNULL(Quantity,0))-sum(ISNULL(IssueQuantity, 0)),0) as Quantity,WorkPoint,INVCode from ICSMOIssue
GROUP BY WorkPoint,INVCode )d
GROUP BY d.INVCode,d.WorkPoint) b
ON a.InvCode=b.InvCode AND a.WorkPoint=b.WorkPoint
left JOIN( SELECT Sum(ISnull(Quantity,0)) AS Quantity,InvCode, WorkPoint FROM ICSWareHouseLotInfo where Freeze<>1 GROUP BY InvCode, WorkPoint) c ON c.InvCode=a.INVCode AND c.WorkPoint=a.WorkPoint
left join ICSMOIssue d ON d.InvCode=a.InvCode AND a.WorkPoint=d.WorkPoint
where 1=1";
if (!string.IsNullOrEmpty(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["INVCODE"].ToString()))
sql += " and a.INVCODE like '%" + queryParam["INVCODE"].ToString() + "%'";
if (!string.IsNullOrWhiteSpace(queryParam["IssueCode"].ToString()))
sql += " and d.IssueCode like '%" + queryParam["IssueCode"].ToString() + "%'";
}
//string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
sql += " and a.WorkPoint=('" + WorkPoint + "') ";
return SqlHelper.CmdExecuteDataTable(sql);
}
#endregion
#region 获取领料部门
public DataTable GetLYDep()
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string sql = @"SELECT b.F_ItemName as Name,b.F_ItemCode as Code FROM [dbo].[Sys_SRM_Items] a
INNER JOIN Sys_SRM_ItemsDetail b ON b.F_ItemId = a.F_Id
WHERE F_EnCode = 'LYDep'";
return SqlHelper.CmdExecuteDataTable(sql);
}
#endregion
#region 获取单据类型
/// <summary>
/// 获取U9单据类型
/// </summary>
/// <returns></returns>
public string GetU9CodeType(string type)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string result=String.Empty;
try
{
TypeModel model = new TypeModel
{
TypeName = type,
OrgCode = WorkPoint
};
string Inputstr = JsonConvert.SerializeObject(model);
string APIURL = ConfigurationManager.ConnectionStrings["ERPAPIURL"].ConnectionString + "GetU9DocType ";
result = HttpPost(APIURL, Inputstr);
}
catch (Exception ex)
{
result = ex.Message;
}
return result;
}
#endregion
/// <summary>
/// 获取单号
/// </summary>
/// <param name="WorkPoint"></param>
/// <returns></returns>
public string GetBidCode(string WorkPoint)
{
WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string BidCide = string.Empty;
if (!string.IsNullOrEmpty(WorkPoint))
{
string DateString = DateTime.Now.ToString("yyyyMMdd");
string Pre = "EM" + DateString;
BidCide = GetSerialCode(WorkPoint, "ICSMOIssue", "IssueCode", Pre, 4);
}
if (!string.IsNullOrWhiteSpace(BidCide))
{
string sqlISHave = @"SELECT IssueCode FROM ICSMOIssue a
WHERE a.IssueCode = '{0}'";
sqlISHave = string.Format(sqlISHave, BidCide);
DataTable dtIsHave = SqlHelper.GetDataTableBySql(sqlISHave);
if (dtIsHave.Rows.Count > 0)
{
throw new Exception("单号已存在!");
}
}
return BidCide;
}
public string GetSerialCode(string workPointCode, string tbName, string colName, string Pre, int numLen)
{
string sql = "EXEC Addins_GetSerialCode '{0}','{1}','{2}','{3}',{4}";
sql = string.Format(sql, new object[] { workPointCode, tbName, colName, Pre, numLen });
return SqlHelper.ExecuteScalar(sql).ToString();
}
/// <summary>
/// 修改单据
/// </summary>
/// <param name="ICSASN"></param>
/// <returns></returns>
public string UpdateICSMOIssue(string ICSASN)
{
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location.TrimEnd(',');
string UserName = NFine.Code.OperatorProvider.Provider.GetCurrent().UserName;
string msg = "";
try
{
// 获取解析后的数据
JsonData data = JsonConvert.DeserializeObject<JsonData>(ICSASN);
string sql = $@"
DECLARE @CreatedCode VARCHAR(50);
DECLARE @CreatedName VARCHAR(50);
SET @CreatedCode =(SELECT top 1 MUSER from ICSMOIssue where IssueCode = '{data.Code}' and WorkPoint ='{WorkPoint}');
SET @CreatedName=(SELECT top 1 MUSERName from ICSMOIssue where IssueCode = '{data.Code}' and WorkPoint ='{WorkPoint}') ;
delete from ICSMOIssue where IssueCode = '{data.Code}'; ";
string str1 = "";
List<string> ExtensionIDList = new List<string>();
foreach (var detail in data.Detail)
{
//获取物料的可用数量,判断当前创建单据数量
decimal invCount = iCSAccessoriesMOIApplyApp.GetInvCodeCount(detail.InvCode, "", "");
if (invCount < detail.Quantity)
{
throw new Exception($"物料{detail.InvCode}创建单据数量:{detail.Quantity}不能大于库存可用量:{invCount}");
}
string Colspan = "~" + detail.Batch + "~~~~~~~~~~~~";
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 item in ExtensionIDList)
{
if (item == 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, "", detail.Batch, "", "", "", "", "", "", "", "", "", "", "", "",
data.User, UserName, WorkPoint);
}
else if (ExtensionID != null)
{
str1 = ExtensionID.ToString();
}
ExtensionIDList.Add(Colspan + WorkPoint);
sql += "INSERT INTO ICSMOIssue(ID,IssueCode,WHCode,Sequence,InvCode,Quantity,CreatePerson,CreateDateTime,WorkPoint,Status,IssueID,IssueDetailID,ExtensionID,MUSER,MUSERName,MTIME,EATTRIBUTE,EATTRIBUTE2,EATTRIBUTE3,EATTRIBUTE4,EATTRIBUTE5,EATTRIBUTE6,EATTRIBUTE7,EATTRIBUTE10,SourceCode,Type,EATTRIBUTE8,EATTRIBUTE9,IssueQuantity)" +
" select '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}',newID(),newID(),'{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','1','{23}','{24}',0";
sql = string.Format(sql, detail.ID, data.Code, detail.WHCode, detail.Sequence, detail.InvCode, detail.Quantity, data.User, data.MTIME, WorkPoint, '1', str1, data.User, UserName, data.MTIME, data.Dept, data.CodeType, data.ApplyNegCode, data.Custmer, data.Remarks, detail.DetailReamrk, detail.SYproject, "超额领料", detail.SourceCode, data.Remarks2, detail.DetailReamrk2);
}
if (SqlHelper.CmdExecuteNonQueryLi(sql) > 0)
{
}
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
public DataTable GetICSReturnTemporary(string rfqno)
{
string sql = @"SELECT
a.ID,
a.IssueCode,
a.InvCode,
b.InvName as INVNAME,
b.InvStd,
a.Quantity,
a.SourceCode as MOCode,
a.WHCode,
a.WHCode as WHCodeHHH,
a.EATTRIBUTE6,
a.EATTRIBUTE9,
a.SourceCode,
a.Quantity
,f.BatchCode as Batch
,c.WarehouseName as WHCodeName
FROM ICSMOIssue a
LEFT JOIN ICSInventory b ON a.InvCode = b.InvCode
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.ICSWarehouse c ON a.WHCode=c.WarehouseCode AND a.WorkPoint=c.WorkPoint
where a.IssueCode='" + rfqno + "'";
DataTable table = Repository().FindDataSetBySql(sql).Tables[0];
DataTable dtCloned = table.Clone();
foreach (DataColumn col in dtCloned.Columns)
{
col.DataType = typeof(string);
}
foreach (DataRow row in table.Rows)
{
DataRow newrow = dtCloned.NewRow();
foreach (DataColumn column in dtCloned.Columns)
{
newrow[column.ColumnName] = row[column.ColumnName].ToString();
}
dtCloned.Rows.Add(newrow);
}
if (Invmes.Rows.Count > 0)
{
dtCloned.Merge(Invmes, false);
}
return dtCloned;
}
//接口api解析
public static string HttpPost(string url, string body)
{
try
{
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
{
return reader.ReadToEnd();
}
}
catch (WebException ex)
{
throw new Exception(ex.Message);
}
}
// 定义一个类来表示 JSON 数据的结构
public class JsonData
{
public string Dept { get; set; }
public string LYDept { get; set; }
public string CodeType { get; set; }
public string ApplyNegCode { get; set; }
public string Custmer { get; set; }
public string Remarks { get; set; }
public string Remarks2 { get; set; }
public string Remarks3 { get; set; }
public string Code { get; set; }
public string MTIME { get; set; }
public string User { get; set; }
public List<JsonDetail> Detail { get; set; }
}
public class JsonDetail
{
public string ID;
public int Sequence { get; set; }
public string InvCode { get; set; }
public decimal Quantity { get; set; }
public string SYproject { get; set; }
public string WHCode { get; set; }
/// <summary>
/// 工单号
/// </summary>
public string SourceCode { get; set; }
public string DetailReamrk { get; set; }
public string DetailReamrk2 { get; set; }
public string Batch { get; set; }
}
/// <summary>
/// 材料出库
/// </summary>
public class LOTStockModel
{
/// <summary>
/// 源头单据号
/// </summary>
public string TransCode { get; set; }
/// <summary>
/// 源头单据行号
/// </summary>
public string TransSequence { get; set; }
/// <summary>
/// 数量
/// </summary>
public string Quantity { get; set; }
/// <summary>
/// 辅计量数量
/// </summary>
public string Amount { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public string TransType { get; set; } = "生产发料-领料申请单";
/// <summary>
/// 操作人
/// </summary>
public string User { get; set; }
/// <summary>
/// 操作时间
/// </summary>
public string MTime { get; set; }
public string WorkPoint { get; set; }
public List<LOTStockModelList> Detail { get; set; }
}
public class LOTStockModelList
{
/// <summary>
/// 源头单据行号
/// </summary>
public string TransSequence { get; set; }
/// <summary>
/// 条码
/// </summary>
public string LotNo { get; set; }
/// <summary>
/// 数量
/// </summary>
public string CurrentQuantity { get; set; }
/// <summary>
/// 辅计量数量
/// </summary>
public string CurrentAmount { get; set; }
public string Sequence { get; set; }
/// <summary>
/// 仓库代码
/// </summary>
public string WarehouseCode { get; set; }
/// <summary>
/// 库位代码
/// </summary>
public string LocationCode { get; set; }
/// <summary>
/// LogID
/// </summary>
public string LogID { get; set; }
}
public class TypeModel
{
/// <summary>
/// 名称
/// </summary>
public string TypeName { get; set; }
/// <summary>
/// 组织
/// </summary>
public string OrgCode { get; set; }
}
}
}