using HH.WMS.Common;
using HH.WMS.Common.External;
using HH.WMS.Common.Response;
using HH.WMS.DAL;
using HH.WMS.DAL.ERP;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Basic;
using HH.WMS.Entitys.Entitys;
using HH.WMS.Entitys.ERP;
using HH.WMS.Entitys.MoveStock;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.BLL.ERP
{
public class MiddleLibraryBLL : DapperBaseBLL
{
#region GET
///
/// 获取车牌档案
///
///
///
public TN_CAR_INFOEntity GetCarInfo(string carNo)
{
return DALCreator.CreateErp().GetCarInfo(carNo);
}
public TN_ER_CAR_POUNDEntity GetCarPound(string poundNo)
{
return DALCreator.CreateErp().GetCarPound(poundNo);
}
///
/// 获取生产领料单
///
///
public List GetMaterialStockOut(string itemCode, string produceLine)
{
return DALCreator.CreateErp().GetMaterialStockOut(itemCode, produceLine);
}
public List GetMaterialStockOut(string produceLine)
{
return DALCreator.CreateErp().GetMaterialStockOut(produceLine);
}
#endregion
#region UPDATE
#endregion
#region ADD
///
/// 添加大磅单
///
///
///
public OperateResult AddCarPound(TN_ER_CAR_POUNDEntity carPound, LogPara logPara, IDbTransaction trans)
{
return DALCreator.CreateErp().AddCarPound(carPound, logPara, trans);
}
///
/// 添加原料入库明细
///
///
public OperateResult AddMaterialStockIn(TN_ER_ITEM_POUNDEntity itemPound, LogPara logPara, IDbTransaction trans)
{
var materialStockInDtl = new TN_SYS_MATERIAL_STOCKIN_DTLEntity
{
CN_S_POUND_NO = itemPound.CN_S_POUND_NO,
CN_S_OP_NO = itemPound.CN_S_OP_NO,
CN_S_ITEM_CODE = itemPound.CN_S_ITEM_CODE,
CN_S_ITEM_NAME = itemPound.CN_S_ITEM_NAME,
CN_S_ITEM_SPEC = itemPound.CN_S_ITEM_SPEC,
CN_S_STOCK_CODE = itemPound.CN_S_STOCK_CODE,
CN_F_WEIGHT = itemPound.CN_F_WEIGHT,
CN_F_QTY = itemPound.CN_F_QTY,
CN_DT_WEIGHT = itemPound.CN_DT_WEIGHT,
CN_S_LOT_NO = itemPound.CN_S_LOT_NO,
CN_DT_OPERATION = itemPound.CN_DT_OPERATION,
CN_S_TRAY_CODE = itemPound.CN_S_TRAY_CODE,
CN_S_TRAY_WEIGHT = itemPound.CN_S_TRAY_WEIGHT,
CN_DT_CREATE = itemPound.CN_DT_CREATE,
CN_S_CREATOR = itemPound.CN_S_CREATOR,
SynchroFlag = 0
};
return DALCreator.CreateErp().AddMaterialStockIn(materialStockInDtl, logPara, null);
}
///
/// 添加原料出库明细
///
///
public OperateResult AddMaterialStockOut(TN_ER_MATERIAL_STOCKOUT_DTLEntity erMaterialStockOutDtl, LogPara logPara)
{
var materialStockOutDtl = new TN_SYS_MATERIAL_STOCKOUT_DTLEntity
{
CN_S_BOM_NO = erMaterialStockOutDtl.CN_S_BOM_NO,
CN_N_BOM_ID = erMaterialStockOutDtl.CN_N_BOM_ID,
CN_S_OP_NO = erMaterialStockOutDtl.CN_S_OP_NO,
CN_S_STOCK_CODE = erMaterialStockOutDtl.CN_S_STOCK_CODE,
CN_S_ITEM_CODE = erMaterialStockOutDtl.CN_S_ITEM_CODE,
CN_S_ITEM_NAME = erMaterialStockOutDtl.CN_S_ITEM_NAME,
CN_S_ITEM_SPEC = erMaterialStockOutDtl.CN_S_ITEM_SPEC,
CN_S_LOT_NO = erMaterialStockOutDtl.CN_S_LOT_NO,
CN_S_TRAY_CODE = erMaterialStockOutDtl.CN_S_TRAY_CODE,
CN_S_TRAY_WEIGHT = erMaterialStockOutDtl.CN_S_TRAY_WEIGHT,
CN_F_WEIGHT = erMaterialStockOutDtl.CN_F_WEIGHT,
CN_F_QTY = erMaterialStockOutDtl.CN_F_QTY,
CN_DT_CREATE = erMaterialStockOutDtl.CN_DT_CREATE,
CN_S_CREATOR = erMaterialStockOutDtl.CN_S_CREATOR,
CN_S_LINE = erMaterialStockOutDtl.CN_S_LINE,
CN_DT_OPERATION = erMaterialStockOutDtl.CN_DT_OPERATION,
SynchroFlag = 0,
};
var result = DALCreator.CreateErp().AddMaterialStockOut(materialStockOutDtl, logPara);
return result;
}
#endregion
#region DELETE
#endregion
#region JOB
public OperateResult SyncCarPound(List carPounds, LogPara logPara)
{
var result = UseTransaction(trans => {
foreach (var carPound in carPounds)
{
var addResult = AddCarPound(carPound, logPara, null);
Log.Detail(logPara, "添加磅单返回结果:" + JsonConvert.SerializeObject(addResult));
BLLCreator.Create().UpdateSyncState(carPound.CN_S_POUND_NO, 1, trans);
}
});
return result;
}
public OperateResult SyncItemPound(List itemPounds, LogPara logPara)
{
var result = UseTransaction(trans => {
foreach (var itemPound in itemPounds)
{
AddMaterialStockIn(itemPound, logPara, null);
BLLCreator.Create().UpdateSyncState(itemPound.CN_S_POUND_NO, 1, trans);
}
});
return result;
}
public OperateResult SyncMaterialOutDtl(List materialStockOutDtls, LogPara logPara)
{
var result = UseTransaction(trans => {
foreach (var materialStockOutDtl in materialStockOutDtls)
{
AddMaterialStockOut(materialStockOutDtl, logPara);
BLLCreator.Create().UpdateSyncState(materialStockOutDtl.CN_S_OP_NO, 1, trans);
}
});
return result;
}
#endregion
}
}