|
|
using ICS.WCF.Base; using ICSSoft.Entity; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Data.SqlClient;
namespace ICS.MaterialOutBoxGet { public class GetMaterialOutBox { /// <summary>
/// 获取物料条码信息生成条码
/// </summary>
public FormICSCreatedArrivalNoticeModel CustGetMaterialOutBox(List<MaterialOutBox> lstm) { FormICSCreatedArrivalNoticeModel result = new FormICSCreatedArrivalNoticeModel(); try { using (SqlConnection conn = new SqlConnection(Appconfig.GetMESStr())) { conn.Open(); using (SqlTransaction trans = conn.BeginTransaction()) { try { SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.Transaction = trans; DataTable flag2 = null; StringBuilder str = new StringBuilder(); StringBuilder resultlog = new StringBuilder(); foreach (MaterialOutBox m in lstm) { string SqlCartonNO = @"select * from ICSCarton where CartonNO = '" + m.CartonNO + "' "; DataTable flag1 = SQlReturnData(SqlCartonNO, cmd); if (flag1.Rows.Count <= 0) {
foreach (LotNOAll Lotno in m.LotNOList) { string SqlLotNO = @"select * from ICSItemLot where LotNO = '" + Lotno.LotNO + "' "; flag2 = SQlReturnData(SqlLotNO, cmd); if (flag2.Rows.Count == 0) { throw new Exception("内箱条码:" + Lotno.LotNO + @"不存在,请查看日志"); } }
foreach (LotNOAll Lotno in m.LotNOList) { string sql = string.Format(@"insert into ICSITEMLot2Carton (ID,CartonNO,INVCODE,LotNo_ID,LotNO,Qty,OrderNO,MUSER,MUSERName,MTIME,WorkPoint)
select NEWID(),'{0}',a.ItemCODE,a.ID,'{1}',a.LOTQTY,a.ORDERNO,'{3}','{4}',GETDATE(),'{2}' from ICSITEMLot a where WorkPoint = '{2}' and a.LotNO='{1}'",
m.CartonNO, Lotno.LotNO, m.WorkPoint, m.MUSER, m.MUSERName); cmd.CommandText = sql; int dt = cmd.ExecuteNonQuery(); if (dt == 0) { throw new Exception("外箱信息添加失败,请查看日志"); } }
string sql2 = string.Format(@"insert into ICSCarton (Serial,CartonNO,MUSER,MUSERName,MTIME,WorkPoint)
Values (NEWID(),'{0}','{1}','{2}',GETDATE(),'{3}')"
, m.CartonNO, m.MUSER, m.MUSERName, m.WorkPoint); cmd.CommandText = sql2;
int dt2 = cmd.ExecuteNonQuery(); if (dt2 > 0) { result.Code = 0; result.ResMsg = "物料外箱条码创建成功"; result.ResData = "{}"; result.IsCompress = false; result.IsSuccess = true; } else { throw new Exception("外箱条码创建失败,失败sql:" + sql2 + ""); } } else { str.AppendLine("外箱条码:" + m.CartonNO + "已存在!"); str.AppendLine("包含内箱条码:"); foreach (LotNOAll LotNo in m.LotNOList) { str.AppendLine(LotNo.LotNO); } str.AppendLine("------------------------------------"); continue; } } trans.Commit(); Appconfig.WriteLogFile(str.ToString(), "物料外箱信息接口日志(无效数据)"); } catch (Exception ex) { StringBuilder str = new StringBuilder(); //foreach (MaterialOutBox m in lstm)
//{
// result.Code = -1;
// result.ResMsg = ex.Message;
// result.ResData = "{}";
// result.IsCompress = false;
// result.IsSuccess = false;
// str.AppendLine("物料外箱信息获取失败");
// str.AppendLine("外箱条码:" + m.CartonNO);
// foreach (LotNOAll LotNo in m.LotNOList)
// {
// str.AppendLine("内箱条码:" + LotNo.LotNO);
// }
// str.AppendLine("传入站点:" + m.WorkPoint);
// str.AppendLine("失败原因:" + ex.Message);
//}
result.Code = -1; result.ResMsg = ex.Message; result.ResData = "{}"; result.IsCompress = false; result.IsSuccess = false; str.AppendLine("物料外箱信息获取失败"); str.AppendLine("失败原因:" + ex.Message); Appconfig.WriteLogFile(str.ToString(), "物料外箱信息接口日志"); trans.Rollback(); }
}
conn.Close(); } } catch (Exception ex) { StringBuilder str = new StringBuilder(); result.Code = -1; result.ResMsg = ex.Message; result.ResData = "{}"; result.IsCompress = false; result.IsSuccess = false; str.AppendLine("物料外箱信息获取失败"); str.AppendLine("失败原因:" + ex.Message); Appconfig.WriteLogFile(str.ToString(), "物料外箱信息接口日志"); } if (result.Code == 0 && result.IsSuccess == false) { result.Code = 0; result.ResMsg = "数据已存在,无需新增"; result.ResData = "{}"; result.IsCompress = false; result.IsSuccess = true; } 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; } } }
|