using HH.WMS.BLL;
|
using HH.WMS.Common;
|
using HH.WMS.DAL.CoreServer;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Algorithm;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Common;
|
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.CoreServer
|
{
|
public class BasicDataBLL : BaseBLL
|
{
|
public DataTable GetInventoryData()
|
{
|
return CreateDAL<BasicDataDAL>().GetInventoryData();
|
}
|
|
public DataTable GetWarehouseData()
|
{
|
return CreateDAL<BasicDataDAL>().GetWarehouseData();
|
}
|
|
public DataTable GetCustomerData()
|
{
|
return CreateDAL<BasicDataDAL>().GetCustomerData();
|
}
|
|
public DataTable GetVendnrData()
|
{
|
return CreateDAL<BasicDataDAL>().GetVendnrData();
|
}
|
|
public SqlExecuteResult UpdateInventoryCheckState(List<PLM_itemEntity> itemEntityList)
|
{
|
return CreateDAL<BasicDataDAL>().UpdateInventoryCheckState(itemEntityList);
|
}
|
|
public SqlExecuteResult UpdateWarehouseCheckState(List<TN_AB_STOCKEntity> stockEntityList)
|
{
|
return CreateDAL<BasicDataDAL>().UpdateWarehouseCheckState(stockEntityList);
|
}
|
|
public SqlExecuteResult UpdateCustomerCheckState(List<PLM_CusEntity> customEntityList)
|
{
|
return CreateDAL<BasicDataDAL>().UpdateCustomerCheckState(customEntityList);
|
}
|
|
public SqlExecuteResult UpdateVendnrCheckState(List<PLM_VenEntity> vendnrEntityList)
|
{
|
return CreateDAL<BasicDataDAL>().UpdateVendnrCheckState(vendnrEntityList);
|
}
|
|
/// <summary>
|
/// 调用autobom接口 保存item信息
|
/// </summary>
|
/// <param name="itemEntityList"></param>
|
/// <returns></returns>
|
public AutobomResult AddList(List<PLM_itemEntity> itemEntityList)
|
{
|
string result = WebApiManager.HttpAutoBom_Post("Api/PLM/ItemRelease", JsonConvert.SerializeObject(itemEntityList));
|
|
List<AutobomResult> autobomRes = JsonConvert.DeserializeObject<List<AutobomResult>>(result);
|
|
return autobomRes[0];
|
}
|
|
public OperateResult DataCompare()
|
{
|
OperateResult sqlResult = new OperateResult();
|
|
//获取U8现有量
|
List<U8RebackData> u8RebackData = CreateDAL<BasicDataDAL>().GetStockData();
|
|
//获取wms仓库量表
|
string stockStr = WebApiManager.HttpWMS_Get("api/AreaQty/GetStockQty");
|
OperateResult or = JsonConvert.DeserializeObject<OperateResult>(stockStr);
|
List<TN_WM_B_STOCK_QTYEntity> stockQtyList = JsonConvert.DeserializeObject<List<TN_WM_B_STOCK_QTYEntity>>(or.Data.ToString());
|
|
foreach (var item in u8RebackData)
|
{
|
string outState = InIHelper.ReadConfig<string>("SS", item.cWhCode);
|
item.itemState = outState;
|
}
|
List<TN_WM_STOCKQTY_COMPAREEntity> stockQtyCom = new List<TN_WM_STOCKQTY_COMPAREEntity>();
|
foreach (var item in u8RebackData)
|
{
|
TN_WM_STOCKQTY_COMPAREEntity comEntity = new TN_WM_STOCKQTY_COMPAREEntity();
|
comEntity.CN_GUID = System.Guid.NewGuid().ToString().ToUpper();
|
|
var comResult = stockQtyList.Where(x => x.CN_S_ITEM_CODE == item.cInvCode &&
|
x.CN_S_ITEM_STATE == item.itemState &&
|
x.CN_S_PRODUCTION_BATCH == item.cBatch).ToList();
|
comEntity.CN_S_ITEM_CODE = item.cInvCode;
|
comEntity.CN_S_ITEM_NAME = item.cInvName;
|
comEntity.CN_S_MEASURE_UNIT = item.cComUnitName;
|
comEntity.CN_S_MODEL = item.cInvStd;
|
comEntity.CN_S_PRODUCTION_BATCH = item.cBatch;
|
comEntity.CN_F_U8STOCK_QTY = item.iQuantity;
|
comEntity.CN_T_COMARE_DATE = DateTime.Now;
|
|
if (comResult.Count > 0)
|
{
|
AutoBomItemEntity itemenity = BLLCreator.Create<MongoBLL>().GetItemEntity(comEntity.CN_S_ITEM_CODE);
|
|
if (itemenity != null)
|
{
|
Log.Info("位置一:未获取到物料实体!", comEntity.CN_S_ITEM_CODE);
|
sqlResult.Success = false;
|
return sqlResult;
|
}
|
decimal jishu = 0;
|
if (!string.IsNullOrEmpty(itemenity.CN_S_CONERSION))
|
{
|
string conersion = itemenity.CN_S_CONERSION;
|
jishu = Convert.ToDecimal(itemenity.CN_S_CONERSION.Substring(0, itemenity.CN_S_CONERSION.IndexOf("-")));
|
|
}
|
else
|
{
|
Log.Info("失败!", "请维护物料 " + itemenity.CN_S_ITEM_CODE + " 的换算比例!");
|
sqlResult.Success = false;
|
return sqlResult;
|
}
|
|
comEntity.CN_F_WMSSTOCK_QTY = comResult[0].CN_F_QUANTITY * jishu;
|
comEntity.CN_F_DIFFER_QTY = item.iQuantity - (comResult[0].CN_F_QUANTITY * jishu);
|
if (comEntity.CN_F_DIFFER_QTY == 0) continue;
|
}
|
else
|
{
|
comEntity.CN_F_WMSSTOCK_QTY = 0;
|
comEntity.CN_F_DIFFER_QTY = item.iQuantity;
|
}
|
stockQtyCom.Add(comEntity);
|
}
|
foreach (var item in stockQtyList)
|
{
|
var comResult = u8RebackData.Where(x => x.cInvCode == item.CN_S_ITEM_CODE &&
|
x.itemState == item.CN_S_ITEM_STATE &&
|
x.cBatch == item.CN_S_PRODUCTION_BATCH).ToList();
|
if (comResult.Count == 0)
|
{
|
AutoBomItemEntity itemenity = BLLCreator.Create<MongoBLL>().GetItemEntity(item.CN_S_ITEM_CODE);
|
|
if (itemenity == null)
|
{
|
Log.Info("位置二:未获取到物料实体!", item.CN_S_ITEM_CODE);
|
sqlResult.Success = false;
|
return sqlResult;
|
}
|
decimal jishu = 0;
|
if (!string.IsNullOrEmpty(itemenity.CN_S_CONERSION))
|
{
|
string conersion = itemenity.CN_S_CONERSION;
|
jishu = Convert.ToDecimal(itemenity.CN_S_CONERSION.Substring(0, itemenity.CN_S_CONERSION.IndexOf("-")));
|
|
}
|
else
|
{
|
Log.Info("失败!", "请维护物料 " + itemenity.CN_S_ITEM_CODE + " 的换算比例!");
|
sqlResult.Success = false;
|
return sqlResult;
|
}
|
|
TN_WM_STOCKQTY_COMPAREEntity comEntity = new TN_WM_STOCKQTY_COMPAREEntity();
|
comEntity.CN_GUID = System.Guid.NewGuid().ToString().ToUpper();
|
comEntity.CN_S_ITEM_CODE = item.CN_S_ITEM_CODE;
|
comEntity.CN_S_ITEM_NAME = item.CN_S_ITEM_NAME;
|
comEntity.CN_S_MEASURE_UNIT = itemenity.CN_S_MEASURE_UNIT;
|
comEntity.CN_S_MODEL = itemenity.CN_S_MODEL;
|
comEntity.CN_S_PRODUCTION_BATCH = item.CN_S_PRODUCTION_BATCH;
|
comEntity.CN_F_U8STOCK_QTY = 0;
|
comEntity.CN_F_WMSSTOCK_QTY = item.CN_F_QUANTITY * jishu;
|
comEntity.CN_F_DIFFER_QTY = 0 - item.CN_F_QUANTITY * jishu;
|
|
comEntity.CN_T_COMARE_DATE = DateTime.Now;
|
|
stockQtyCom.Add(comEntity);
|
}
|
}
|
|
string resultStrMst = WebApiManager.HttpWMSTool_Post("Api/Report/AddU8CompareData", JsonConvert.SerializeObject(stockQtyCom));
|
if (resultStrMst == "")
|
{
|
Log.Info("保存比对数据接口未调通!", "Api/Report/AddU8CompareData");
|
sqlResult.Success = false;
|
sqlResult.Msg = "保存比对数据接口未调通!";
|
}
|
else
|
{
|
OperateResult orMst = JsonConvert.DeserializeObject<OperateResult>(resultStrMst);
|
if (!orMst.Success)
|
{
|
Log.Info("保存比对数据接口调用失败!", orMst.Msg);
|
return orMst;
|
}
|
else
|
{
|
sqlResult.Success = orMst.Success;
|
}
|
}
|
return sqlResult;
|
}
|
|
|
public AutobomResult AddCusList(List<PLM_CusEntity> customEntityList)
|
{
|
string result = WebApiManager.HttpAutoBom_Post("Api/PLM/CustomerRelease", JsonConvert.SerializeObject(customEntityList));
|
|
List<AutobomResult> autobomRes = JsonConvert.DeserializeObject<List<AutobomResult>>(result);
|
|
return autobomRes[0];
|
}
|
|
public AutobomResult AddVenList(List<PLM_VenEntity> vendnrEntityList)
|
{
|
string result = WebApiManager.HttpAutoBom_Post("Api/PLM/SupplierRelease", JsonConvert.SerializeObject(vendnrEntityList));
|
|
List<AutobomResult> autobomRes = JsonConvert.DeserializeObject<List<AutobomResult>>(result);
|
|
return autobomRes[0];
|
}
|
}
|
}
|