纽威
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.
 
 
 
 
 

700 lines
37 KiB

using NFine.Data.Extensions;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NFine.Code;
using NFine.Repository;
using System.Data.Common;
using NFine.Domain._03_Entity.SRM;
using ICS.Application.Entity;
using Newtonsoft.Json;
using System.Configuration;
using System.Data.SqlClient;
using ICS.Data;
using Newtonsoft.Json.Linq;
using NFine.Domain._03_Entity.WMS;
using System.Net;
using System.IO;
namespace NFine.Application.WMS
{
public class ICSRCVIQCsApp:RepositoryFactory<ICSVendor>
{
/// <summary>
/// 采购
/// </summary>
/// <param name="jqgridparam"></param>
/// <returns></returns>
public DataTable GetICSInspection(ref Pagination jqgridparam, string queryJson)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" select
a.ID as DHID,
d.ID ,
h.ID as JYID,
a.DNCode ,
a.Sequence ,
a.ASNCode ,
l.POCode,
c.InvCode ,
c.InvName ,
c.INVSTD ,
c.ClassName,
CAST(b.DNQuantity as decimal(18,4)) as AllNumber,
CAST(ISNULL(h.QualifiedQuantity, b.DNQuantity)as decimal(18,4))as YLOTQTY ,
CAST(ISNULL(h.UnqualifiedQuantity, 0) as decimal(18,4)) as NLOTQTY,
CAST(ISNULL(h.WaiveQuantity, 0) as decimal(18,4)) as SpecialQTY,
c.InvUnit ,
b.LotNo ,
g.BadReasonDesc as BadReasonDesc ,
g.BadReasonCode as BRCodeValue,
j.BadCode as BCCodeValue,
j.BadDesc as BadDesc,
k.ContainerID,
isnull(h.MUSERName,'开发者') MUSERName,
CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime,
CONVERT(VARCHAR(100),a.CreateDateTime,23) as CreateDateTime,
CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState,
a.VenCode,
m.VenName,
isnull(h.MUSER,'') as Surveyor,
h.MUSERName as ProvingTime
,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 ICSDeliveryNotice a
inner JOIN ICSASNDetail b ON a.ASNCode=b.ASNCode AND a.WorkPoint=b.WorkPoint
LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
inner JOIN ICSInventoryLot d ON b.LotNo=d.LotNo AND a.InvCode=d.InvCode AND b.WorkPoint=d.WorkPoint
left join ICSInventoryLotDetail e on d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSInspection h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint
left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
LEFT JOIN ICSContainerLot k ON b.LotNo=k.LotNo AND b.WorkPoint=k.WorkPoint
inner JOIN ICSPurchaseOrder l ON e.TransCode =l.POCode AND e.TransSequence=l.Sequence AND a.PODetailID=l.PODetailID AND d.WorkPoint=l.WorkPoint
left join ICSExtension f on l.ExtensionID=f.ID and l.WorkPoint=f.WorkPoint
left join dbo.ICSVendor m on a.VenCode=m.VenCode and a.WorkPoint=m.WorkPoint
where b.LotNo is not null and a.DNType='1' {0}
";
#region 无srm逻辑
// sql = @"UNION all
//select
// a.ID as DHID,
// d.ID ,
// h.ID as JYID,
// a.DNCode ,
// a.Sequence ,
// a.ASNCode ,
// c.InvCode ,
// c.InvName ,
// c.INVSTD ,
// c.ClassName,
// f.BatchCode ,
// CAST(d.Quantity as decimal(18,4)) as AllNumber,
// CAST(ISNULL(h.QualifiedQuantity, d.Quantity)as decimal(18,4))as YLOTQTY ,
// CAST(ISNULL(h.UnqualifiedQuantity, 0) as decimal(18,4)) as NLOTQTY,
// CAST(ISNULL(h.WaiveQuantity, 0) as decimal(18,4)) as SpecialQTY,
// c.InvUnit ,
// d.LotNo ,
// g.BadReasonDesc as BadReasonDesc ,
// g.BadReasonCode as BRCodeValue,
// j.BadCode as BCCodeValue,
// j.BadDesc as BadDesc,
// k.ContainerID,
// isnull(h.MUSERName,'开发者') MUSERName,
// CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime,
// CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
// CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState
// FROM ICSDeliveryNotice a
// inner join ICSInventoryLotDetail e on e.TransCode =a.DNCode AND e.TransSequence=a.Sequence AND e.WorkPoint=a.WorkPoint
// inner JOIN ICSInventoryLot d ON d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
// LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
// LEFT JOIN dbo.ICSInspection h ON h.LotNo=d.LotNo AND h.WorkPoint=d.WorkPoint
// left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
// left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
// LEFT JOIN ICSContainerLot k ON d.LotNo=k.LotNo AND d.WorkPoint=k.WorkPoint
// left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
// where a.DNType='1' {0}";
#endregion
string wheresql = "";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
{
wheresql += " and a.DNCode like '%" + queryParam["POCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ASNCode"].ToString()))
{
wheresql += " and a.ASNCode like '%" + queryParam["ASNCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CaiGouCode"].ToString()))
{
wheresql += " and l.POCode like '%" + queryParam["CaiGouCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
wheresql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
{
wheresql += " and m.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
wheresql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
{
wheresql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
{
wheresql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
{
string ReleaseState = queryParam["ReleaseState"].ToString();
if (ReleaseState == "1")
wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='已检验'";
else if (ReleaseState == "0")
wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='未检验'";
}
}
sql = string.Format(sql, wheresql);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
//委外
public DataTable GetICSInspection2(ref Pagination jqgridparam, string queryJson)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @" select
a.ID as DHID,
d.ID ,
h.ID as JYID,
a.ODNCode as DNCode ,
a.Sequence ,
a.OASNCode ,
l.OOCode,
c.InvCode ,
c.InvName ,
c.INVSTD ,
c.ClassName,
f.BatchCode ,
CAST(b.ODNQuantity as NUMERIC(10,4)) as AllNumber,
CAST(ISNULL(h.QualifiedQuantity, b.ODNQuantity)as NUMERIC(10,4))as YLOTQTY ,
CAST(ISNULL(h.UnqualifiedQuantity, 0) as NUMERIC(10,4)) as NLOTQTY,
CAST(ISNULL(h.WaiveQuantity, 0) as NUMERIC(10,4)) as SpecialQTY,
c.InvUnit ,
b.LotNo ,
g.BadReasonDesc as BadReasonDesc ,
g.BadReasonCode as BRCodeValue,
j.BadCode as BCCodeValue,
j.BadDesc as BadDesc,
k.ContainerID,
isnull(h.MUSERName,'开发者') MUSERName,
CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime,
CONVERT(VARCHAR(100),a.CreateDateTime,23) as CreateDateTime,
CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState,
a.VenCode,
m.VenName,
isnull(h.MUSER,'') as Surveyor,
h.MUSERName as ProvingTime
FROM ICSODeliveryNotice a
LEFT JOIN ICSOASNDetail b ON a.OASNCode=b.OASNCode AND a.WorkPoint=b.WorkPoint
LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
inner JOIN ICSInventoryLot d ON b.LotNo=d.LotNo AND a.InvCode=d.InvCode AND b.WorkPoint=d.WorkPoint
left join ICSInventoryLotDetail e on d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
LEFT JOIN dbo.ICSInspection h ON h.LotNo=b.LotNo AND h.WorkPoint=b.WorkPoint
left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
LEFT JOIN ICSContainerLot k ON b.LotNo=k.LotNo AND b.WorkPoint=k.WorkPoint
inner JOIN ICSOutsourcingOrder l ON e.TransCode =l.OOCode AND e.TransSequence=l.Sequence AND a.OODetailID=l.OODetailID AND d.WorkPoint=l.WorkPoint
left join ICSExtension f on l.ExtensionID=f.ID and l.WorkPoint=f.WorkPoint
left join dbo.ICSVendor m on a.VenCode=m.VenCode and a.WorkPoint=m.WorkPoint
where b.LotNo is not null and ISNULL(CAST(b.ODNQuantity as VARCHAR), '')! ='' AND ISNULL(b.ODNQuantity, 0)<>0 {0}
";
#region 无SRM逻辑
// sql = @"UNION all
//select
// a.ID as DHID,
// d.ID ,
// h.ID as JYID,
// a.ODNCode as DNCode ,
// a.Sequence ,
// a.OASNCode ,
// c.InvCode ,
// c.InvName ,
// c.INVSTD ,
// c.ClassName,
// f.BatchCode ,
// CAST(d.Quantity as NUMERIC(10,4)) as AllNumber,
// CAST(ISNULL(h.QualifiedQuantity, d.Quantity)as NUMERIC(10,4))as YLOTQTY ,
// CAST(ISNULL(h.UnqualifiedQuantity, 0) as NUMERIC(10,4)) as NLOTQTY,
// CAST(ISNULL(h.WaiveQuantity, 0) as NUMERIC(10,4)) as SpecialQTY,
// c.InvUnit ,
// d.LotNo ,
// g.BadReasonDesc as BadReasonDesc ,
// g.BadReasonCode as BRCodeValue,
// j.BadCode as BCCodeValue,
// j.BadDesc as BadDesc,
// k.ContainerID,
// isnull(h.MUSERName,'开发者') MUSERName,
// CONVERT(VARCHAR(100),d.ProductDate,23) as ProductTime,
// CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
// CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState
// FROM ICSODeliveryNotice a
// inner join ICSInventoryLotDetail e on e.TransCode =a.ODNCode AND e.TransSequence=a.Sequence AND e.WorkPoint=a.WorkPoint
// inner JOIN ICSInventoryLot d ON d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
// LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
// LEFT JOIN dbo.ICSInspection h ON h.LotNo=d.LotNo AND h.WorkPoint=d.WorkPoint
// left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
// left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
// LEFT JOIN ICSContainerLot k ON d.LotNo=k.LotNo AND d.WorkPoint=k.WorkPoint
// left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
// where 1=1 {0}";
#endregion
string wheresql = "";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
{
wheresql += " and a.ODNCode like '%" + queryParam["POCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ASNCode"].ToString()))
{
wheresql += " and a.OASNCode like '%" + queryParam["ASNCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["CaiGouCode"].ToString()))
{
wheresql += " and l.OOCode like '%" + queryParam["CaiGouCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenCode"].ToString()))
{
wheresql += " and a.VenCode like '%" + queryParam["VenCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["VenName"].ToString()))
{
wheresql += " and m.VenName like '%" + queryParam["VenName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
wheresql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
{
wheresql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
{
wheresql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
{
string ReleaseState = queryParam["ReleaseState"].ToString();
if (ReleaseState == "1")
wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='已检验'";
else if (ReleaseState == "0")
wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='未检验'";
}
}
sql = string.Format(sql, wheresql);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
//工单
public DataTable GetICSInspection3(ref Pagination jqgridparam, string queryJson)
{
DataTable dt = new DataTable();
var queryParam = queryJson.ToJObject();
List<DbParameter> parameter = new List<DbParameter>();
string sql = @"select
a.ID as GDID,
e.ID ,
a.MOCode as DNCode,
a.Sequence ,
h.ID as JYID,
c.InvCode ,
c.InvName ,
c.INVSTD ,
c.ClassName,
f.BatchCode ,
e.Quantity as AllNumber,
CAST(ISNULL(h.QualifiedQuantity,e.Quantity)as NUMERIC(10,4))as YLOTQTY ,
CAST(ISNULL(h.UnqualifiedQuantity, 0) as NUMERIC(10,4)) as NLOTQTY,
CAST(ISNULL(h.WaiveQuantity, 0) as NUMERIC(10,4)) as SpecialQTY,
c.InvUnit ,
e.LotNo ,
g.BadReasonDesc as BadReasonDesc ,
g.BadReasonCode as BRCodeValue,
j.BadCode as BCCodeValue,
j.BadDesc as BadDesc,
i.ContainerID,
isnull(h.MUSERName,'开发者') MUSERName,
CONVERT(VARCHAR(100),e.ProductDate,23) as ProductTime,
CONVERT(VARCHAR(100),h.MTIME,23) as MTIME,
CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END AS TestState,
isnull(h.MUSER,'') as Surveyor,
h.MUSERName as ProvingTime
from ICSMO a
left JOIN dbo.ICSInventory c ON a.InvCode = c.InvCode AND a.WorkPoint=c.WorkPoint
left join ICSInventoryLotDetail b on a.MOCode=b.TransCode and a.Sequence=b.TransSequence and a.WorkPoint=b.WorkPoint
left join ICSExtension f on a.ExtensionID=f.ID and a.WorkPoint=f.WorkPoint
LEFT JOIN dbo.ICSInventoryLot e ON e.LotNo=b.LotNo AND e.WorkPoint=b.WorkPoint
LEFT JOIN dbo.ICSInspection h ON h.LotNO=e.LotNO and h.InvCode=e.InvCode and h.WorkPoint=e.WorkPoint
left join ICSBadReason g on h.BRCode =g.BadReasonCode and h.WorkPoint=g.WorkPoint
left join ICSBadCode j on h.BCCode =j.BadCode and h.WorkPoint=j.WorkPoint
LEFT JOIN dbo.ICSContainerLot i ON e.LotNO=i.LotNO AND e.WorkPoint=i.WorkPoint
where e.LotNO is not null {0} ";
string wheresql = "";
if (!string.IsNullOrWhiteSpace(queryJson))
{
if (!string.IsNullOrWhiteSpace(queryParam["POCode"].ToString()))
{
wheresql += " and a.MOCode like '%" + queryParam["POCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvCode"].ToString()))
{
wheresql += " and c.InvCode like '%" + queryParam["InvCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["InvName"].ToString()))
{
wheresql += " and c.InvName like '%" + queryParam["InvName"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["BatchCode"].ToString()))
{
wheresql += " and f.BatchCode like '%" + queryParam["BatchCode"].ToString() + "%' ";
}
if (!string.IsNullOrWhiteSpace(queryParam["ReleaseState"].ToString()))
{
string ReleaseState = queryParam["ReleaseState"].ToString();
if (ReleaseState == "1")
wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='已检验'";
else if (ReleaseState == "0")
wheresql += " and CASE WHEN isnull(h.ID,'') =''THEN '未检验' ELSE '已检验' END='未检验'";
}
}
sql = string.Format(sql, wheresql);
return Repository().FindTablePageBySql(sql.ToString(), parameter.ToArray(), ref jqgridparam);
}
//获取不良原因
public DataTable Select_ICSBadReason(string InvCode)
{
string sql = string.Empty;
DataTable dt = null;
sql = @"select '' as BadReasonCode,'' as BadReasonDesc from ICSBadReason a left join
ICSInventoryBadGroup b on a.BRGroupID=b.BRGroupID
union
select a.BadReasonCode,a.BadReasonDesc from ICSBadReason a left join
ICSInventoryBadGroup b on a.BRGroupID=b.BRGroupID
where b.InvCode='{0}'";
sql = string.Format(sql, InvCode);
dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
//获取不良代码
public DataTable GetSelectICSBadCode(string InvCode)
{
string sql = string.Empty;
DataTable dt = null;
sql = @"
select '' as BadCode ,'' as BadDesc
from dbo.ICSBadCode a left join
ICSInventoryBadGroup b on a.BCGroupID=b.BCGroupID
union
select BadCode,BadDesc from dbo.ICSBadCode a left join
ICSInventoryBadGroup b on a.BCGroupID=b.BCGroupID where b.InvCode='{0}'";
// sql = @"select BadCode,BadDesc from dbo.ICSBadCode a left join
//ICSInventoryBadGroup b on a.BCGroupID=b.BCGroupID
//where b.InvCode='{0}'";
sql = string.Format(sql, InvCode);
dt = SqlHelper.GetDataTableBySql(sql);
return dt;
}
/// <summary>
/// 新增检验
/// </summary>
/// <param name="queryJson"></param>
/// <returns></returns>
public string CreateICSInspection(string keyValue, string ICSInspections)
{
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 sql = string.Empty;
JArray res = (JArray)JsonConvert.DeserializeObject(ICSInspections);
foreach (var item in res)
{
JObject jo = (JObject)item;
if (jo["TestState"].ToString()=="已检验")
{
sql += @"UPDATE dbo.ICSInspection set QualifiedQuantity='{0}',UnqualifiedQuantity='{1}',WaiveQuantity='{2}',BCCode='{3}',BRCode='{4}',MTIME=GETDATE(),MUSER='{5}',MUSERName='{6}',WorkPoint='{7}' WHERE ID='{8}'";
sql = string.Format(sql, jo["YLOTQTY"].ToString(), jo["NLOTQTY"].ToString(), jo["SpecialQTY"].ToString(), jo["BCCode"].ToString(), jo["BRCode"].ToString(), MUSER, MUSERNAME, WorkPoint, jo["JYID"].ToString());
}
else
{
sql += @"INSERT INTO dbo.ICSInspection
( ID ,LotNo,InvCode ,Quantity,QualifiedQuantity ,UnqualifiedQuantity,WaiveQuantity,BCCode,BRCode,Type,MTIME,MUSER ,MUSERName ,WorkPoint )
Values(NEWID(),'{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}',getdate(),'{9}','{10}','{11}')
";
sql = string.Format(sql, jo["LotNo"].ToString(), jo["InvCode"].ToString(), jo["AllNumber"].ToString(), jo["YLOTQTY"].ToString(), jo["NLOTQTY"].ToString(), jo["SpecialQTY"].ToString(), jo["BCCode"].ToString(), jo["BRCode"].ToString(), jo["Type"].ToString(), MUSER, MUSERNAME, WorkPoint);
}
}
try
{
if (SqlHelper.ExecuteNonQuery(sql) > 0)
{
}
else
{
msg = "新增失败";
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
//生成采购拒收单
public string CreateRejection(string keyValue)
{
string msg = "";
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string sqlAsn = @"select distinct a.VenCode,a.DNID,a.DepCode,a.DNCode from ICSDeliveryNotice a
inner join ICSASNDetail b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint
left join dbo.ICSInventoryLot c on b.LotNo=c.LotNo and a.InvCode=c.InvCode and b.WorkPoint=c.WorkPoint
left join ICSInventoryLotDetail e on c.LotNo=e.LotNo and c.WorkPoint=e.WorkPoint
inner JOIN ICSPurchaseOrder l ON e.TransCode =l.POCode AND e.TransSequence=l.Sequence AND a.PODetailID=l.PODetailID AND c.WorkPoint=l.WorkPoint
WHERE b.LotNo IN (" + keyValue.TrimEnd(',') + ")";
DataTable dt = Repository().FindTableBySql(sqlAsn.ToString());
string sqlAsnD = @"select distinct c.InvCode,d.UnqualifiedQuantity-d.WaiveQuantity as Quantity,isnull(c.AmountRate,0) as AmountRate,a.Currency,isnull(a.UnitPrice,0) as UnitPrice,DNDetailID,DNID,b.LotNo
from ICSDeliveryNotice a
left join ICSASNDetail b on a.ASNCode=b.ASNCode and a.WorkPoint=b.WorkPoint
left join ICSInventoryLot c on b.LotNo=c.LotNo and a.InvCode=c.InvCode and b.WorkPoint=c.WorkPoint
left join ICSInventoryLotDetail e on c.LotNo=e.LotNo and c.WorkPoint=e.WorkPoint
inner JOIN ICSPurchaseOrder l ON e.TransCode =l.POCode AND e.TransSequence=l.Sequence AND a.PODetailID=l.PODetailID AND c.WorkPoint=l.WorkPoint
left join ICSInspection d on b.LotNo=d.LotNo and b.WorkPoint=d.WorkPoint
WHERE b.LotNo in (" + keyValue.TrimEnd(',') + ") ";
DataTable dtD = Repository().FindTableBySql(sqlAsnD.ToString());
List<RejectionHead> asn = new List<RejectionHead>();
for (int i = 0; i < dt.Rows.Count; i++)
{
RejectionHead ass = new RejectionHead();
ass.VenCode = dt.Rows[i]["VenCode"].ToString();
ass.ID = dt.Rows[i]["DNID"].ToString();
ass.DepCode = dt.Rows[i]["DepCode"].ToString();
ass.DNCode = dt.Rows[i]["DNCode"].ToString();
ass.User = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
ass.MTIME = System.DateTime.Now.ToString("s");
ass.WorkPoint = WorkPoint;
DataRow[] drs = dtD.Select("DNID='" + dt.Rows[i]["DNID"].ToString() + "'");
for (int j = 0; j < drs.Length; j++)
{
RejectionBody DetailList = new RejectionBody();
DetailList.Sequence = (j+1).ToString();
DetailList.InvCode = drs[j]["InvCode"].ToString();
DetailList.Quantity = drs[j]["Quantity"].ToString();
DetailList.Amount = drs[j]["AmountRate"].ToString();
DetailList.Currency = drs[j]["Currency"].ToString();
DetailList.UnitPrice = drs[j]["UnitPrice"].ToString();
DetailList.DNDetailID = drs[j]["DNDetailID"].ToString();
DetailList.LotNo = drs[j]["LotNo"].ToString();
ass.detail.Add(DetailList);
}
asn.Add(ass);
}
string input = JsonConvert.SerializeObject(asn);
string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString+ "PurchaseRejectDoc/Create";
string result = HttpPost(APIURL, input);
JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
string MessAge = Obj["Message"].ToString();
string Success = Obj["Success"].ToString();
if (Success.ToUpper() == "FALSE")
{
msg = MessAge;
}
return msg;
}
//生成委外拒收单
public string CreateWWRejection(string keyValue)
{
string msg = "";
string WorkPoint = NFine.Code.OperatorProvider.Provider.GetCurrent().Location;
string sqlAsn = @"select distinct a.VenCode,a.ODNID,a.DepCode,a.ODNCode from ICSODeliveryNotice a
left join ICSOASNDetail b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint
LEFT JOIN ICSInventory c ON a.InvCode=c.InvCode and a.WorkPoint=c.WorkPoint
inner JOIN ICSInventoryLot d ON b.LotNo=d.LotNo AND a.InvCode=d.InvCode AND b.WorkPoint=d.WorkPoint
left join ICSInventoryLotDetail e on d.LotNo=e.LotNo and d.WorkPoint=e.WorkPoint
inner JOIN ICSOutsourcingOrder l ON e.TransCode =l.OOCode AND e.TransSequence=l.Sequence AND a.OODetailID=l.OODetailID AND d.WorkPoint=l.WorkPoint
WHERE b.LotNo in (" + keyValue.TrimEnd(',') + ")";
DataTable dt = Repository().FindTableBySql(sqlAsn.ToString());
string sqlAsnD = @"select distinct c.InvCode,d.UnqualifiedQuantity-d.WaiveQuantity as Quantity,isnull(c.AmountRate,0) as AmountRate,a.Currency,isnull(a.UnitPrice,0) as UnitPrice,ODNDetailID,ODNID,b.LotNo
from ICSODeliveryNotice a
inner join ICSOASNDetail b on a.OASNCode=b.OASNCode and a.WorkPoint=b.WorkPoint
inner join ICSInventoryLot c on b.LotNo=c.LotNo and a.InvCode=c.InvCode and b.WorkPoint=c.WorkPoint
left join ICSInventoryLotDetail e on c.LotNo=e.LotNo and c.WorkPoint=e.WorkPoint
inner JOIN ICSOutsourcingOrder l ON e.TransCode =l.OOCode AND e.TransSequence=l.Sequence AND a.OODetailID=l.OODetailID AND c.WorkPoint=l.WorkPoint
inner join ICSInspection d on b.LotNo=d.LotNo and b.WorkPoint=d.WorkPoint
WHERE b.LotNo IN (" + keyValue.TrimEnd(',') + ") ";
DataTable dtD = Repository().FindTableBySql(sqlAsnD.ToString());
List<WWRejectionHead> asn = new List<WWRejectionHead>();
for (int i = 0; i < dt.Rows.Count; i++)
{
WWRejectionHead ass = new WWRejectionHead();
ass.VenCode = dt.Rows[i]["VenCode"].ToString();
ass.ID = dt.Rows[i]["ODNID"].ToString();
ass.DepCode = dt.Rows[i]["DepCode"].ToString();
ass.ODNCode = dt.Rows[i]["ODNCode"].ToString();
ass.User = NFine.Code.OperatorProvider.Provider.GetCurrent().UserCode;
ass.MTIME = System.DateTime.Now.ToString("s");
ass.WorkPoint = WorkPoint;
DataRow[] drs = dtD.Select("ODNID='" + dt.Rows[i]["ODNID"].ToString() + "'");
for (int j = 0; j < drs.Length; j++)
{
WWRejectionBody DetailList = new WWRejectionBody();
DetailList.Sequence = (j + 1).ToString();
DetailList.InvCode = drs[j]["InvCode"].ToString();
DetailList.Quantity = drs[j]["Quantity"].ToString();
DetailList.Amount = drs[j]["AmountRate"].ToString();
DetailList.Currency = drs[j]["Currency"].ToString();
DetailList.UnitPrice = drs[j]["UnitPrice"].ToString();
DetailList.ODNDetailID = drs[j]["ODNDetailID"].ToString();
DetailList.LotNo = drs[j]["LotNo"].ToString();
ass.detail.Add(DetailList);
}
asn.Add(ass);
}
string input = JsonConvert.SerializeObject(asn);
string APIURL = ConfigurationManager.ConnectionStrings["APIURL"].ConnectionString + "OutsourcingRejectDoc/Create";
string result = HttpPost(APIURL, input);
JObject Obj = (JObject)JsonConvert.DeserializeObject(result);//或者JObject jo = JObject.Parse(jsonText);
string MessAge = Obj["Message"].ToString();
string Success = Obj["Success"].ToString();
if (Success.ToUpper() == "FALSE")
{
msg = MessAge;
}
return msg;
}
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);
}
}
/// <summary>
/// 删除拒收单
/// </summary>
/// <param name="keyValue">传入ID</param>
/// <returns></returns>
public string DelectRejection(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.ICSDeliveryNotice WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
/// <summary>
/// 删除委外拒收单
/// </summary>
/// <param name="keyValue">传入ID</param>
/// <returns></returns>
public string DelectWWRejection(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.ICSODeliveryNotice WHERE ID IN ({0}) and WorkPoint ='{1}'", keyValue.TrimEnd(','), WorkPoint);
try
{
SqlHelper.ExecuteNonQuery(sql);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return msg;
}
}
}