|
|
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; }
} }
|