圣珀
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.
 
 
 

189 lines
8.9 KiB

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