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.
472 lines
16 KiB
472 lines
16 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Reflection;
|
|
using SiaSun.LMS.Model;
|
|
|
|
namespace SiaSun.LMS.Implement
|
|
{
|
|
public class ManageIn:ManageBase
|
|
{
|
|
|
|
/// <summary>
|
|
/// 生成计划或无计划入库任务
|
|
/// 调用界面 ManageBindIn_Plan,ManageBindIn
|
|
/// </summary>
|
|
/// <param name="mSYS_USER"></param>
|
|
/// <param name="PLAN_LIST_ID"></param>
|
|
/// <param name="STOCK_BARCODE"></param>
|
|
/// <param name="START_CELL_ID"></param>
|
|
/// <param name="END_CELL_ID"></param>
|
|
/// <param name="bTrans"></param>
|
|
/// <param name="bAutoSendControl"></param>
|
|
/// <param name="bComplete"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <returns></returns>
|
|
public bool ManageCreate(SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN,
|
|
List<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST,
|
|
bool bTrans,bool bCompleteFlag,bool AutoDownLoad, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
this._P_Base_House.BeginTransaction(true);
|
|
|
|
#region 校验
|
|
|
|
#region 校验容器条码
|
|
|
|
//if (!string.IsNullOrEmpty(mMANAGE_MAIN.STOCK_BARCODE))
|
|
//{
|
|
// string STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
|
|
|
|
// if (STOCK_BARCODE.Trim().Length != 6)
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("容器条码[{0}]不合法", STOCK_BARCODE);
|
|
|
|
// return bResult;
|
|
// }
|
|
|
|
// SiaSun.LMS.Model.GOODS_MAIN mGOODS_MAIN_CONTAINER = this._P_GOODS_MAIN.GetModel(STOCK_BARCODE.Substring(0, 1).ToUpper());
|
|
|
|
// if (mGOODS_MAIN_CONTAINER == null)
|
|
// {
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("容器条码[{0}]不合法", STOCK_BARCODE);
|
|
|
|
// return bResult;
|
|
// }
|
|
//}
|
|
|
|
#endregion
|
|
|
|
#region 校验容器库存
|
|
|
|
if (mMANAGE_MAIN.STOCK_BARCODE != string.Empty && this._S_StorageService.StorageCheck(mMANAGE_MAIN.STOCK_BARCODE, Enum.AREA_TYPE.LiKu.ToString(), out sResult))
|
|
{
|
|
bResult = false;
|
|
sResult = string.Format("托盘{0}已在立库区", mMANAGE_MAIN.STOCK_BARCODE);
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 校验托盘库存
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (null != mSTORAGE_MAIN)
|
|
{
|
|
IList<SiaSun.LMS.Model.STORAGE_LIST> lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID);
|
|
if (lsSTORAGE_LIST[0].GOODS_ID == 909)
|
|
{
|
|
|
|
bResult = false;
|
|
sResult = string.Format("容器[{0}]已存在空托盘暂存区库存,请用暂存出库功能清空空托盘库存再组盘", mMANAGE_MAIN.STOCK_BARCODE);
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
if (AutoDownLoad)
|
|
{
|
|
bResult = base.ManageCreate(mMANAGE_MAIN, lsMANAGE_LIST, false, false, out sResult);
|
|
}
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
if (bCompleteFlag)
|
|
{
|
|
this._P_MANAGE_MAIN.Add(mMANAGE_MAIN);
|
|
foreach (Model.MANAGE_LIST item in lsMANAGE_LIST)
|
|
{
|
|
item.MANAGE_ID = mMANAGE_MAIN.MANAGE_ID;
|
|
this._P_MANAGE_LIST.Add(item);
|
|
}
|
|
bResult = this.ManageComplete(mMANAGE_MAIN.MANAGE_ID, false, out sResult);
|
|
}
|
|
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
finally
|
|
{
|
|
if (bResult)
|
|
{
|
|
this._P_Base_House.CommitTransaction(true);
|
|
}
|
|
else
|
|
{
|
|
this._P_Base_House.RollBackTransaction(true);
|
|
}
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
public bool ManageCreateMaterial(SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN,
|
|
List<SiaSun.LMS.Model.MANAGE_LIST> lsMANAGE_LIST,
|
|
bool bTrans, bool bCompleteFlag, bool AutoDownLoad, out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
string ssResult = string.Empty;
|
|
sResult = string.Empty;
|
|
SiaSun.LMS.Common.Log log = new Common.Log();
|
|
|
|
try
|
|
{
|
|
this._P_Base_House.BeginTransaction(true);
|
|
|
|
#region 校验
|
|
|
|
#region 校验容器条码
|
|
|
|
if (!string.IsNullOrEmpty(mMANAGE_MAIN.STOCK_BARCODE))
|
|
{
|
|
string STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
|
|
|
|
if (STOCK_BARCODE.Trim().Length != 6)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = string.Format("容器条码[{0}]不合法", STOCK_BARCODE);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
//SiaSun.LMS.Model.GOODS_MAIN mGOODS_MAIN_CONTAINER = this._P_GOODS_MAIN.GetModel(STOCK_BARCODE.Substring(0, 1).ToUpper());
|
|
|
|
//if (mGOODS_MAIN_CONTAINER == null)
|
|
//{
|
|
// bResult = false;
|
|
|
|
// sResult = string.Format("容器条码[{0}]不合法", STOCK_BARCODE);
|
|
|
|
// return bResult;
|
|
//}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 校验容器库存
|
|
//LJC20240110
|
|
if (mMANAGE_MAIN.STOCK_BARCODE != string.Empty && this._S_StorageService.StorageCheck(mMANAGE_MAIN.STOCK_BARCODE, Enum.AREA_TYPE.XuNiKu.ToString(), out sResult))
|
|
{
|
|
bResult = false;
|
|
sResult = string.Format("托盘{0}已在虚拟库区", mMANAGE_MAIN.STOCK_BARCODE);
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 校验托盘库存
|
|
SiaSun.LMS.Model.STORAGE_MAIN mSTORAGE_MAIN = this._P_STORAGE_MAIN.GetModelStockBarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
|
|
if (null != mSTORAGE_MAIN)
|
|
{
|
|
IList<SiaSun.LMS.Model.STORAGE_LIST> lsSTORAGE_LIST = this._P_STORAGE_LIST.GetListStorageID(mSTORAGE_MAIN.STORAGE_ID);
|
|
if (lsSTORAGE_LIST[0].GOODS_ID == 909)
|
|
{
|
|
|
|
bResult = false;
|
|
sResult = string.Format("容器[{0}]已存在空托盘暂存区库存,请用暂存出库功能清空空托盘库存再组盘", mMANAGE_MAIN.STOCK_BARCODE);
|
|
return bResult;
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
if (AutoDownLoad)
|
|
{
|
|
bResult = base.ManageCreate(mMANAGE_MAIN, lsMANAGE_LIST, false, false, out sResult);
|
|
}
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
if (bCompleteFlag)
|
|
{
|
|
this._P_MANAGE_MAIN.Add(mMANAGE_MAIN);
|
|
foreach (Model.MANAGE_LIST item in lsMANAGE_LIST)
|
|
{
|
|
item.MANAGE_ID = mMANAGE_MAIN.MANAGE_ID;
|
|
this._P_MANAGE_LIST.Add(item);
|
|
}
|
|
bResult = this.ManageComplete(mMANAGE_MAIN.MANAGE_ID, false, out sResult);
|
|
//新增接口生成库存后,插入新表数据,传明细和新表ID,出库再回传ID和明细
|
|
if (bResult)
|
|
{
|
|
// S_ERPService erp = new S_ERPService();
|
|
// MES_INTERFACE mMES_INTERFACE = new MES_INTERFACE();
|
|
// //流水号
|
|
// mMES_INTERFACE.STOCK_BARCODE = mMANAGE_MAIN.STOCK_BARCODE;
|
|
// mMES_INTERFACE.INOUT = "1";
|
|
// //批次号
|
|
// mMES_INTERFACE.BATCH = lsMANAGE_LIST[0].GOODS_PROPERTY1;
|
|
// // //型号不传
|
|
// mMES_INTERFACE.SPECIFICATION = "";
|
|
// mMES_INTERFACE.GOODS_CODE = "1";
|
|
// mMES_INTERFACE.GOODS_NAME = "1";
|
|
// //供应商
|
|
// mMES_INTERFACE.SUPPLY = lsMANAGE_LIST[0].GOODS_PROPERTY3;
|
|
// //零件号
|
|
// mMES_INTERFACE.PART_NO = lsMANAGE_LIST[0].GOODS_PROPERTY4;
|
|
// mMES_INTERFACE.UNIT = "1";
|
|
// mMES_INTERFACE.QUANTITY = lsMANAGE_LIST[0].MANAGE_LIST_QUANTITY;
|
|
// mMES_INTERFACE.UPDATE_TIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
// mMES_INTERFACE.OUT_TIME = "";
|
|
// mMES_INTERFACE.PRODUCT_TIME = "";
|
|
|
|
// string requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(mMES_INTERFACE);
|
|
// mMES_INTERFACE.WMS_INFO = requestJson;
|
|
|
|
|
|
// mMES_INTERFACE.MES_INFO = "";
|
|
// // 插入新表 调用接口
|
|
// // this._P_MES_INTERFACE.Add(mMES_INTERFACE);
|
|
|
|
// ////判断数据是否重复
|
|
// //Model.MES_INTERFACE tmes = this._P_MES_INTERFACE.GetModelStockbarcode(mMANAGE_MAIN.STOCK_BARCODE);
|
|
// //if (tmes!= null)
|
|
// //{
|
|
// // sResult = "入库上报时发现已经有该流水号接口数据,先处理数据再进行入库";
|
|
// // return false;
|
|
// //}
|
|
// //调用MES接口
|
|
// //向MES上报入库完成
|
|
// bResult = erp.HttpPost(requestJson, out sResult);
|
|
|
|
// //接口调用失败重发
|
|
// if (!bResult)
|
|
// {
|
|
// sResult = "ERRORMSG:接口调用失败,联系MES维护人员查看二维条码是否有问题:MES消息:" + sResult;
|
|
// log.SaveLog(sResult);
|
|
// //Model.MES_INTERFACE_RETRY mMES_INTERFACE_RETRY = new Model.MES_INTERFACE_RETRY();
|
|
// //mMES_INTERFACE_RETRY.BIZ_TYPE = "ManageIn";
|
|
// //mMES_INTERFACE_RETRY.WHO = "MESRetry";
|
|
// //mMES_INTERFACE_RETRY.MESSAGE = requestJson;
|
|
// //// mMES_INTERFACE_RETRY. = Common.StringUtil.GetDateTime();
|
|
// //this._P_MES_INTERFACE_RETRY.Add(mMES_INTERFACE_RETRY);
|
|
// }
|
|
// #region 日志
|
|
// Model.MES_INTERFACE_LOG mMES_INTERFACE_LOG = new Model.MES_INTERFACE_LOG();
|
|
// mMES_INTERFACE_LOG.INTERFACE = "ManageIn";
|
|
// mMES_INTERFACE_LOG.IN_MESSAGE = requestJson;
|
|
// mMES_INTERFACE_LOG.OUT_MESSAGE = sResult;
|
|
// mMES_INTERFACE_LOG.SENDER = "WMS";
|
|
// mMES_INTERFACE_LOG.RECEIVER = "MES";
|
|
// mMES_INTERFACE_LOG.TIME_STAMP = Common.StringUtil.GetDateTime();
|
|
// this._P_MES_INTERFACE_LOG.Add(mMES_INTERFACE_LOG);
|
|
// #endregion
|
|
}
|
|
}
|
|
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
finally
|
|
{
|
|
if (bResult)
|
|
{
|
|
this._P_Base_House.CommitTransaction(true);
|
|
}
|
|
else
|
|
{
|
|
this._P_Base_House.RollBackTransaction(true);
|
|
}
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 任务完成
|
|
/// </summary>
|
|
/// <param name="MANAGE_ID"></param>
|
|
/// <param name="bTrans"></param>
|
|
/// <param name="sResult"></param>
|
|
/// <returns></returns>
|
|
public new bool ManageComplete(int MANAGE_ID,bool bTrans,out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
this._P_Base_House.BeginTransaction(bTrans);
|
|
|
|
#region 校验
|
|
|
|
SiaSun.LMS.Model.MANAGE_MAIN mMANAGE_MAIN = this._P_MANAGE_MAIN.GetModel(MANAGE_ID);
|
|
|
|
bResult = null != mMANAGE_MAIN;
|
|
|
|
if (!bResult)
|
|
{
|
|
sResult = string.Format("管理任务索引[{0}]不存在", MANAGE_ID);
|
|
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 添加库存
|
|
|
|
bResult = this._S_StorageService.StorageCreate(MANAGE_ID,out sResult);
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 调用基类完成方法
|
|
|
|
bResult = base.ManageComplete(MANAGE_ID, false,out sResult);
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 删除任务信息
|
|
|
|
this._P_IO_CONTROL.DeleteManageID(mMANAGE_MAIN.MANAGE_ID);
|
|
|
|
this._P_MANAGE_DETAIL.DeleteManageID(mMANAGE_MAIN.MANAGE_ID);
|
|
|
|
this._P_MANAGE_LIST.DeleteManageID(mMANAGE_MAIN.MANAGE_ID);
|
|
|
|
this._P_MANAGE_MAIN.Delete(mMANAGE_MAIN.MANAGE_ID);
|
|
|
|
#endregion
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
finally
|
|
{
|
|
if (bResult)
|
|
{
|
|
this._P_Base_House.CommitTransaction(bTrans);
|
|
}
|
|
else
|
|
{
|
|
this._P_Base_House.RollBackTransaction(bTrans);
|
|
}
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
|
|
public bool ManageCreat_ERP(SiaSun.LMS.Model.ERP mERP,out string sResult)
|
|
{
|
|
bool bResult = true;
|
|
|
|
sResult = string.Empty;
|
|
|
|
try
|
|
{
|
|
this._P_Base_House.BeginTransaction(true);
|
|
|
|
|
|
|
|
|
|
if (!bResult)
|
|
{
|
|
return bResult;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
bResult = false;
|
|
|
|
sResult = ex.Message;
|
|
|
|
this._log.Fatal(string.Format("调用方法{0}发生异常。", MethodBase.GetCurrentMethod().Name), ex);
|
|
}
|
|
|
|
finally
|
|
{
|
|
if (bResult)
|
|
{
|
|
this._P_Base_House.CommitTransaction(true);
|
|
}
|
|
else
|
|
{
|
|
this._P_Base_House.RollBackTransaction(true);
|
|
}
|
|
}
|
|
|
|
return bResult;
|
|
}
|
|
|
|
}
|
|
}
|