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().GetInventoryData(); } public DataTable GetWarehouseData() { return CreateDAL().GetWarehouseData(); } public DataTable GetCustomerData() { return CreateDAL().GetCustomerData(); } public DataTable GetVendnrData() { return CreateDAL().GetVendnrData(); } public SqlExecuteResult UpdateInventoryCheckState(List itemEntityList) { return CreateDAL().UpdateInventoryCheckState(itemEntityList); } public SqlExecuteResult UpdateWarehouseCheckState(List stockEntityList) { return CreateDAL().UpdateWarehouseCheckState(stockEntityList); } public SqlExecuteResult UpdateCustomerCheckState(List customEntityList) { return CreateDAL().UpdateCustomerCheckState(customEntityList); } public SqlExecuteResult UpdateVendnrCheckState(List vendnrEntityList) { return CreateDAL().UpdateVendnrCheckState(vendnrEntityList); } /// /// 调用autobom接口 保存item信息 /// /// /// public AutobomResult AddList(List itemEntityList) { string result = WebApiManager.HttpAutoBom_Post("Api/PLM/ItemRelease", JsonConvert.SerializeObject(itemEntityList)); List autobomRes = JsonConvert.DeserializeObject>(result); return autobomRes[0]; } public OperateResult DataCompare() { OperateResult sqlResult = new OperateResult(); //获取U8现有量 List u8RebackData = CreateDAL().GetStockData(); //获取wms仓库量表 string stockStr = WebApiManager.HttpWMS_Get("api/AreaQty/GetStockQty"); OperateResult or = JsonConvert.DeserializeObject(stockStr); List stockQtyList = JsonConvert.DeserializeObject>(or.Data.ToString()); foreach (var item in u8RebackData) { string outState = InIHelper.ReadConfig("SS", item.cWhCode); item.itemState = outState; } List stockQtyCom = new List(); 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().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().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(resultStrMst); if (!orMst.Success) { Log.Info("保存比对数据接口调用失败!", orMst.Msg); return orMst; } else { sqlResult.Success = orMst.Success; } } return sqlResult; } public AutobomResult AddCusList(List customEntityList) { string result = WebApiManager.HttpAutoBom_Post("Api/PLM/CustomerRelease", JsonConvert.SerializeObject(customEntityList)); List autobomRes = JsonConvert.DeserializeObject>(result); return autobomRes[0]; } public AutobomResult AddVenList(List vendnrEntityList) { string result = WebApiManager.HttpAutoBom_Post("Api/PLM/SupplierRelease", JsonConvert.SerializeObject(vendnrEntityList)); List autobomRes = JsonConvert.DeserializeObject>(result); return autobomRes[0]; } } }