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