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.
163 lines
8.2 KiB
163 lines
8.2 KiB
using ICS.WCF.Base;
|
|
using ICSSoft.Entity;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace ICS.WWASNInfoGet
|
|
{
|
|
public class GetWWASNInfo
|
|
{
|
|
/// <summary>
|
|
/// 获取送货单信息
|
|
/// </summary>
|
|
public FormICSCreatedArrivalNoticeModel CustGetWWASNInfo(WWASNInfo w)
|
|
{
|
|
FormICSCreatedArrivalNoticeModel result = new FormICSCreatedArrivalNoticeModel();
|
|
using (SqlConnection conn = new SqlConnection(Appconfig.GetMESStr()))
|
|
{
|
|
conn.Open();
|
|
using (SqlTransaction trans = conn.BeginTransaction())
|
|
{
|
|
try
|
|
{
|
|
string sql = "";
|
|
int flag = 0;
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Connection = conn;
|
|
cmd.Transaction = trans;
|
|
|
|
StringBuilder strHead = new StringBuilder();
|
|
strHead.AppendLine("***************接口传入参数记录****************:");
|
|
strHead.AppendLine("传入站点:" + w.workpoint);
|
|
strHead.AppendLine("传入送货单号:" + w.STNO);
|
|
strHead.AppendLine("传入供应商代码:" + w.VenCode);
|
|
strHead.AppendLine("传入维护人编码:" + w.MUSER);
|
|
strHead.AppendLine("传入维护人名称:" + w.MUSERNAME);
|
|
foreach (LotInfo LotNo in w.LotNOList)
|
|
{
|
|
strHead.AppendLine("传入送货单行号:" + LotNo.STLine);
|
|
strHead.AppendLine("传入物料条码:" + LotNo.LotNO);
|
|
}
|
|
strHead.AppendLine("***************接口传入参数记录****************:");
|
|
Appconfig.WriteLogFile(strHead.ToString(), "获取送货单信息接口日志");
|
|
string chksql = @"select * from ICSASN where STNO='{0}' AND WorkPoint='{1}'";
|
|
chksql = string.Format(chksql, w.STNO, w.workpoint);
|
|
DataTable chkdt = SQlReturnData(chksql, cmd);
|
|
if (chkdt.Rows.Count != 0)
|
|
{
|
|
throw new Exception("送货单编码已存在");
|
|
}
|
|
foreach (LotInfo LotNo in w.LotNOList)
|
|
{
|
|
chksql = @"select * from ICSITEMLot where LotNO='{0}' AND WorkPoint='{1}'";
|
|
chksql = string.Format(chksql, LotNo.LotNO, w.workpoint);
|
|
chkdt = SQlReturnData(chksql, cmd);
|
|
if (chkdt.Rows.Count == 0)
|
|
{
|
|
throw new Exception("传入条码:" + LotNo.LotNO + "不存在,请先生成条码");
|
|
}
|
|
}
|
|
sql = @"INSERT INTO dbo.ICSASN
|
|
(ASNID ,CREATEDATE,CREATETIME ,CREATEUSER ,STNO ,VENDORCODE ,VENDORNAME ,WorkPoint,LOGDATE,LOGTIME,LOGUSER,STSTATUS)
|
|
VALUES (NEWID(),GETDATE(),GETDATE(),'" + w.MUSER + "','" + w.STNO + "','" + w.VenCode + "','','" + w.workpoint + "',GETDATE(),GETDATE(),'" + w.MUSER + "','0')";
|
|
cmd.CommandText = sql;
|
|
flag = cmd.ExecuteNonQuery();
|
|
StringBuilder resultlog = new StringBuilder();
|
|
if (flag <= 0)
|
|
{
|
|
resultlog.AppendLine("送货单信息更新失败");
|
|
resultlog.AppendLine("查询sql:" + sql);
|
|
Appconfig.WriteLogFile(resultlog.ToString(), "获取送货单信息接口日志");
|
|
throw new Exception("获取送货单信息失败");
|
|
}
|
|
int STLineCount = 0;
|
|
foreach (LotInfo LotNo in w.LotNOList)
|
|
{
|
|
STLineCount++;
|
|
sql = @"INSERT INTO dbo.ICSASNDETAIL( ASNDETAILID ,CREATEDATE ,CREATETIME ,CREATEUSER
|
|
,ITEMCODE ,ITEMNAME ,LOGDATE ,LOGTIME ,LOGUSER ,LOTNO ,PLANQTY ,STDSTATUS ,STLINE ,STNO ,WorkPoint)
|
|
SELECT NEWID() as ID,GETDATE() as CREATEDATE,GETDATE(),'" + w.MUSER + @"',a.ItemCODE,b.INVNAME,GETDATE(),GETDATE(),'" + w.MUSER + @"',
|
|
a.LotNO,a.LOTQTY,'0','" + STLineCount.ToString() + "','" + w.STNO + "','" + w.workpoint + @"'
|
|
FROM dbo.ICSITEMLot a LEFT JOIN dbo.ICSINVENTORY b ON a.ItemCODE=b.INVCODE and a.WorkPoint=b.WorkPoint
|
|
WHERE a.LotNO = '" + LotNo.LotNO + "' and isnull(a.EATTRIBUTE2,'')=''";
|
|
cmd.CommandText = sql;
|
|
flag = cmd.ExecuteNonQuery();
|
|
if (flag <= 0)
|
|
{
|
|
resultlog.AppendLine("送货单信息更新失败");
|
|
resultlog.AppendLine("查询sql:" + sql);
|
|
Appconfig.WriteLogFile(resultlog.ToString(), "获取送货单信息接口日志");
|
|
throw new Exception("获取送货单信息失败");
|
|
}
|
|
}
|
|
trans.Commit();
|
|
|
|
result.Code = 0;
|
|
result.ResMsg = "送货单信息获取成功";
|
|
result.ResData = "{}";
|
|
result.IsCompress = false;
|
|
result.IsSuccess = true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
trans.Rollback();
|
|
result.Code = -1;
|
|
result.ResMsg = ex.Message;
|
|
result.ResData = "{}";
|
|
result.IsCompress = false;
|
|
result.IsSuccess = false;
|
|
StringBuilder str = new StringBuilder();
|
|
str.AppendLine("物料外箱信息获取失败");
|
|
str.AppendLine("传入站点:" + w.workpoint);
|
|
str.AppendLine("传入送货单号:" + w.STNO);
|
|
str.AppendLine("传入供应商代码:" + w.VenCode);
|
|
str.AppendLine("传入维护人编码:" + w.MUSER);
|
|
str.AppendLine("传入维护人名称:" + w.MUSERNAME);
|
|
foreach (LotInfo LotNo in w.LotNOList)
|
|
{
|
|
str.AppendLine("传入送货单行号:" + LotNo.STLine);
|
|
str.AppendLine("传入物料条码:" + LotNo.LotNO);
|
|
}
|
|
str.AppendLine("失败原因:" + ex.Message);
|
|
Appconfig.WriteLogFile(str.ToString(), "获取送货单信息接口日志");
|
|
}
|
|
}
|
|
conn.Close();
|
|
}
|
|
return result;
|
|
}
|
|
/// <summary>
|
|
/// 送货单返回值
|
|
/// </summary>
|
|
public class FormICSCreatedArrivalNoticeModel
|
|
{
|
|
//0 :正常数据,-1:失败。
|
|
public int Code { get; set; }
|
|
public string ResMsg { get; set; }
|
|
public Object ResData { get; set; }
|
|
public bool IsCompress { get; set; }
|
|
public bool IsSuccess { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// SQL执行方法
|
|
/// </summary>
|
|
/// <param name="SQl"></param>
|
|
/// <param name="cmd"></param>
|
|
/// <returns></returns>
|
|
public static DataTable SQlReturnData(string SQl, SqlCommand cmd)
|
|
{
|
|
DataTable dt = new DataTable();
|
|
cmd.CommandText = SQl;
|
|
SqlDataAdapter dr = new System.Data.SqlClient.SqlDataAdapter();
|
|
dr.SelectCommand = cmd;
|
|
dr.Fill(dt);
|
|
return dt;
|
|
}
|
|
|
|
}
|
|
}
|