BaoKai_202508_Wms_Jingwang_.../WMS.Business/CK/BussOrders.cs

870 lines
34 KiB
C#
Raw Permalink Normal View History

2025-08-24 21:52:42 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WMS.Model.CK;
using System.Data;
using WMS.IData;
using WMS.Common;
using System.Threading.Tasks;
using WMS.Model.Base;
using WMS.Model.Stock;
namespace WMS.Business.CK
{
public class BussOrders : IBussFactory
{
/// <summary>
/// 查询订单的
/// </summary>
/// <param name="orderID"></param>
/// <returns></returns>
public int GetCtOrder(string orderID)
{
DataTable tb = DataProvider.Instance.OrderDetail.GetCtOrder(orderID);
if(tb!=null)
{
if(tb.Rows.Count>0)
{
return int.Parse(tb.Rows[0]["a"].ToString());
}
}
return 0;
}
/// <summary>
/// 修改采购订单
/// </summary>
/// <param name="orderInfo"></param>
/// <returns></returns>
public string EditOrderInfo(List<CgOrderInfo> orderInfo)
{
string orderId = orderInfo[0].CGORDERID;
DataProvider.Instance.OrderDetail.DelOrderInfo(orderId);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
foreach (CgOrderInfo inOrderData in orderInfo)
{
inOrderData.CGORDERID = orderId;
DataProvider.Instance.Orders.InCgOrderInfo(inOrderData);
logList.Add(DataProvider.Instance.logData);
}
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 查询采购单明细
/// </summary>
/// <param name="orderID"></param>
/// <returns></returns>
public List<CgOrderInfo> GetCgOrderInfo(string orderID)
{
DataTable tb = DataProvider.Instance.OrderDetail.GetCgOrderInfo(orderID);
if(tb!=null)
{
List<CgOrderInfo> list = ConvertHelper<CgOrderInfo>.ConvertToList(tb);
return list;
}
return null;
}
/// <summary>
/// 审核采购订单
/// </summary>
/// <param name="orderID"></param>
public string CheckData(string orderID,string sts)
{
DataProvider.Instance.Orders.CheckData(orderID, sts);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 查询订单
/// </summary>
/// <returns></returns>
public List<CgOrder> GetTableOrder(CgOrder order)
{
DataTable tb= DataProvider.Instance.Orders.GetTableOrder(order);
if(tb!=null)
{
return ConvertHelper<CgOrder>.ConvertToList(tb);
}
return null;
}
/// <summary>
/// 新增采购单
/// </summary>
/// <param name="orderInfo"></param>
/// <param name="userId"></param>
/// <param name="endDate"></param>
/// <returns></returns>
public string AddOrderPlanData(List<CgOrderInfo> orderInfo,string userId)
{
IEnumerable<IGrouping<string, CgOrderInfo>> query = orderInfo.GroupBy(r => r.PROVIDER_ID);
foreach (IGrouping<string, CgOrderInfo> info in query)
{
List<CgOrderInfo> oInfo = info.ToList<CgOrderInfo>();
string orderId = IBussFactory<WMS.Business.Base.BussDocumentTable>.Instance().GetDocumentStream("采购单");
CgOrder order = new CgOrder();
// order.ORDERID = orderId;
order.PROVIDER_ID = info.Key;//.PROVIDER_ID;
order.ENDDATE = oInfo.Max(r=>r.GOODSENDDATE);
order.CREATE_MAN = userId;
order.CGORDERID = orderId;
DataProvider.Instance.Orders.InCgorder(order);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
foreach(CgOrderInfo inOrderData in oInfo)
{
inOrderData.CGORDERID = orderId;
DataProvider.Instance.Orders.InCgOrderInfo(inOrderData);
logList.Add(DataProvider.Instance.logData);
}
}
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 关闭计划单
/// </summary>
/// <param name="ORDERID"></param>
/// <param name="men"></param>
/// <returns></returns>
public string UpdatePlanClose(string ORDERID,string men)
{
DataProvider.Instance.Orders.UpdatePlanClose(ORDERID, men);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 更新计划的供应商
/// </summary>
/// <param name="orderId"></param>
/// <param name="providerId"></param>
/// <returns></returns>
public string UpdatePlanProvider(string orderId, string providerId)
{
DataProvider.Instance.Orders.UpdatePlanProvider(orderId, providerId);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
TaCmtOrRak();
return ErrText;
}
/// <summary>
/// 查询采购计划
/// </summary>
/// <returns></returns>
public List<CgOrderPlan> GetOrderPlanData()
{
DataTable tb = DataProvider.Instance.Orders.GetOrderPlanData();
List<CgOrderPlan> list = ConvertHelper<CgOrderPlan>.ConvertToList(tb);
return list;
}
/// <summary>
/// 根据物料查询正式或者虚拟库存
/// </summary>
/// <param name="goodsID"></param>
/// <returns></returns>
public List<MIStockModel> GetGoodsData(string goodsID,bool bKc)
{
DataTable dtable = new DataTable();
if(bKc)
{
dtable = DataProvider.Instance.Orders.GetGoodsData(goodsID, "T_MI_STOCK");
}
else
{
dtable = DataProvider.Instance.Orders.GetGoodsData(goodsID, "T_CG_STOCK");
}
List<MIStockModel> list = ConvertHelper<MIStockModel>.ConvertToList(dtable);
return list;
}
public string ExcePlanOrder(List<CgOrderPlan> orderList)
{
string acceptData = IBussFactory<WMS.Business.Base.BussDocumentTable>.Instance().GetDocumentStream("采购计划单");
for (int i = 0; i < orderList.Count; i++)
{
CgOrderPlan order = orderList[i];
order.ORDERID = acceptData;
DataProvider.Instance.Orders.AddCgOrderPlan(order);
logList.Add(DataProvider.Instance.logData);
if (i==0)
{
Transaction = DataProvider.Instance.TranOracle;
}
}
TaCmtOrRak();
return ErrText;
}
public List<CgOrderPlan> GetPlanExce(string goodsId,decimal goodNum,string orderID)
{
List<CgOrderPlan> planCg = new List<CgOrderPlan>();
DataTable tb = DataProvider.Instance.GoodsMaterial.GetGoodsMaterialList(goodsId);
if (tb != null)
{
if (tb.Rows.Count > 0)
{
foreach (DataRow rwGoods in tb.Rows)
{
CgOrderPlan cgGoodData = new CgOrderPlan();
//cgGoodData.INVENTORY_ITEM_ID = rwGoods["INVENTORY_ITEM_ID"].ToString();
//cgGoodData.ITEM_DESCRIPTION = rwGoods["ITEM_DESCRIPTION"].ToString();
decimal stand_num = decimal.Parse(rwGoods["STAND_NUM"].ToString());
cgGoodData.CGNUM = goodNum * stand_num;
cgGoodData.FGOODSID = goodsId;
cgGoodData.XQNUM = cgGoodData.CGNUM;
cgGoodData.TASKID = orderID;
string a = rwGoods["SEMISTS"].ToString();
cgGoodData.SEMISTS = Convert.ToBoolean(int.Parse(rwGoods["SEMISTS"].ToString()));
cgGoodData.BUY_NUM = decimal.Parse(rwGoods["BUY_NUM"].ToString());
cgGoodData.OCCUPY = decimal.Parse(rwGoods["OCCUPY"].ToString());
cgGoodData.FGOODSNAMAE = rwGoods["FGOODSNAMAE"].ToString();
planCg.Add(cgGoodData);
if (cgGoodData.SEMISTS)
{
//List<CgOrderPlan> planCgz = GetPlanExce(cgGoodData.INVENTORY_ITEM_ID, cgGoodData.CGNUM, cgGoodData.TASKID);
//planCg.AddRange(planCgz);
}
}
}
}
return planCg;
}
/// <summary>
/// 根据采购销售订单拆BOM
/// </summary>
/// <param name="goodsId"></param>
/// <returns></returns>
public List<CgOrderPlan> GetPlanExce(Dictionary<string,decimal> goodsId,string OrdrID)
{
List<CgOrderPlan> planCg = new List<CgOrderPlan>();
foreach (KeyValuePair<string ,decimal> keyData in goodsId)
{
string goodId = keyData.Key;
decimal goodNum = keyData.Value;
DataTable tb= DataProvider.Instance.GoodsMaterial.GetGoodsMaterialList(goodId);
if(tb!=null)
{
if (tb.Rows.Count == 0)
{
///需要增加查询基础物料表
return planCg;
}
else
{
foreach (DataRow rwGoods in tb.Rows)
{
CgOrderPlan cgGoodData = new CgOrderPlan();
//cgGoodData.INVENTORY_ITEM_ID = rwGoods["INVENTORY_ITEM_ID"].ToString();
//cgGoodData.ITEM_DESCRIPTION = rwGoods["ITEM_DESCRIPTION"].ToString();
decimal stand_num = decimal.Parse(rwGoods["STAND_NUM"].ToString());
cgGoodData.CGNUM = goodNum * stand_num;
cgGoodData.FGOODSID = goodId;
cgGoodData.XQNUM = cgGoodData.CGNUM;
string a = rwGoods["SEMISTS"].ToString();
cgGoodData.SEMISTS = Convert.ToBoolean(int.Parse(rwGoods["SEMISTS"].ToString()));
cgGoodData.BUY_NUM =decimal.Parse(rwGoods["BUY_NUM"].ToString());
cgGoodData.OCCUPY = decimal.Parse(rwGoods["OCCUPY"].ToString());
cgGoodData.TASKID = OrdrID;
cgGoodData.FGOODSNAMAE = rwGoods["FGOODSNAMAE"].ToString();
planCg.Add(cgGoodData);
if (cgGoodData.SEMISTS)
{
//List<CgOrderPlan> planCgz = GetPlanExce(cgGoodData.INVENTORY_ITEM_ID, cgGoodData.CGNUM, cgGoodData.TASKID);
//planCg.AddRange(planCgz);
}
}
}
return planCg;
}
}
return null;
}
public List<OrdersModel> GetOrderDate(string benDate, string endDate)
{
DataTable dt = DataProvider.Instance.Orders.GetOrderDate(benDate, endDate);
List<OrdersModel> list = ConvertHelper<OrdersModel>.ConvertToList(dt);
return list;
}
#region
/// <summary>
/// 接口增加出库订单
/// </summary>
/// <returns></returns>
public string InsertDataOrderCk()
{
DataTable tb= DataProvider.Instance.Orders.InsertOrderData();
if(tb!=null)
{
foreach(DataRow row in tb.Rows)
{
string orderId = row[""].ToString();
DataTable tbInfo = DataProvider.Instance.Orders.GetOrderInfo(orderId);
if(tbInfo!=null)
{
OrdersModel order = new OrdersModel();
order.ORDER_ID = orderId;
order.Ck_type = "0";
order.Cus_membername = "";
order.CUSTOMERPHONE = "";
order.CUSTOMERPROVINCE = "";
order.CUSTOMERCITY = "";
order.CUSTOMERDISTRICT = "";
order.CUSTOMERADDRESS = "";
order.GOODS_PRICE = 0;
order.CREATE_MAN = "";
DataProvider.Instance.Orders.AddOrders(order);
logList.Add(DataProvider.Instance.logData);
Transaction = DataProvider.Instance.TranOracle;
foreach (DataRow info in tbInfo.Rows)
{
OrderDetailModel detailModel = new OrderDetailModel();
//detailModel.INVENTORY_ITEM_ID = "";
detailModel.PACKING_NUM = 0;
detailModel.UNIT = "";
DataProvider.Instance.OrderDetail.AddOrderDetail(detailModel);
logList.Add(DataProvider.Instance.logData);
}
TaCmtOrRak();
}
}
return this.ErrText;
}
return ErrText;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="model">实体</param>
/// <returns></returns>
public List<OrdersModel> GetOrders(OrdersModel model)
{
DataTable dt = DataProvider.Instance.Orders.GetOrders(model);
List<OrdersModel> list = ConvertHelper<OrdersModel>.ConvertToList(dt);
return list;
}
#endregion
#region
/// <summary>
/// 新增或修改
/// </summary>
/// <param name="model">实体</param>
/// <param name="flg">0 新增1 修改</param>
/// <returns></returns>
public string InsOrUpdOrders(OrdersModel model, int flg)
{
Transaction = DataProvider.Instance.TranOracle;
if (flg == 0)
{
DataProvider.Instance.Orders.AddOrders(model);
}
else
{
DataProvider.Instance.Orders.UpdateOrders(model);
}
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
#region
/// <summary>
/// 打印
/// </summary>
/// <returns></returns>
public string Print(OrdersModel model, PrintInfoModel print_model)
{
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.Orders.UpdateOrders(model);
DataProvider.Instance.PrintInfo.InsertPrintInfo(print_model);
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
#region
/// <summary>
/// 新增或修改
/// </summary>
/// <param name="model">通知单实体</param>
/// <param name="list">明细集合</param>
/// <param name="flg">0 新增1 修改</param>
/// <returns></returns>
public string InsOrUpdate(OrdersModel model, List<OrderDetailModel> list, int flg)
{
if (flg == 0)//新增
{
string OutId = IBussFactory<WMS.Business.Base.BussDocumentTable>.Instance().GetDocumentStream("出库通知单");
model.ORDER_ID = OutId;
DataProvider.Instance.Orders.AddOrders(model);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
foreach (OrderDetailModel insetM in list)
{
insetM.STORAGE_ID = model.Storage_id;
insetM.ORDER_ID = OutId;
insetM.BUSINESSID = model.BUSINESSORDERID;
DataProvider.Instance.OrderDetail.AddOrderDetail(insetM);
logList.Add(DataProvider.Instance.logData);
}
}
else if (flg == 1)//修改 先删除以前明细,再新增新明细
{
DataProvider.Instance.Orders.UpdateOrders(model);
Transaction = DataProvider.Instance.TranOracle;
List<OrderDetailModel> lis = new List<OrderDetailModel>();
OrderDetailModel mo = new OrderDetailModel();
mo.ORDER_ID = model.ORDER_ID;
lis.Add(mo);
// DataProvider.Instance.OrderDetail.DelOrderDetail(lis);
// DataProvider.Instance.OrderDetail.AddOrderDetail(list);
}
else
{
return null;
}
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
public void UpdateLock(string locid)
{
string lockloc = string.Empty;
string Xloc = locid.Substring(3, 2).ToString();
string Yloc = locid.Substring(6, 2).ToString();
string Zloc = locid.Substring(locid.Length - 1, 1);
Transaction = DataProvider.Instance.TranOracle;
if (int.Parse(Xloc) > 0 && int.Parse(Xloc) < 4)
{
for (int j = 1; j < 4; j++)
{
lockloc = "JW-" + j.ToString().PadLeft(2, '0') + "-" + Yloc + "-" + Zloc.PadLeft(2, '0');
DataProvider.Instance.Orders.UpdateLock(lockloc);
logList.Add(DataProvider.Instance.logData);
}
}
else if (int.Parse(Xloc) > 4 && int.Parse(Xloc) < 11)
{
for (int j = 5; j < 11; j++)
{
lockloc = "JW-" + j.ToString().PadLeft(2, '0') + "-" + Yloc + "-" + Zloc.PadLeft(2, '0');
DataProvider.Instance.Orders.UpdateLock(lockloc);
logList.Add(DataProvider.Instance.logData);
}
}
else if (int.Parse(Xloc) > 11 && int.Parse(Xloc) < 18)
{
for (int j = 12; j < 18; j++)
{
lockloc = "JW-" + j.ToString().PadLeft(2, '0') + "-" + Yloc + "-" + Zloc.PadLeft(2, '0');
DataProvider.Instance.Orders.UpdateLock(lockloc);
logList.Add(DataProvider.Instance.logData);
}
}
else if (int.Parse(Xloc) > 18 && int.Parse(Xloc) < 25)
{
for (int j = 19; j < 25; j++)
{
lockloc = "JW-" + j.ToString().PadLeft(2, '0') + "-" + Yloc + "-" + Zloc.PadLeft(2, '0');
DataProvider.Instance.Orders.UpdateLock(lockloc);
logList.Add(DataProvider.Instance.logData);
}
}
else if (int.Parse(Xloc) > 25 && int.Parse(Xloc) < 29)
{
for (int j = 26; j < 29; j++)
{
lockloc = "JW-" + j.ToString().PadLeft(2, '0') + "-" + Yloc + "-" + Zloc.PadLeft(2, '0');
DataProvider.Instance.Orders.UpdateLock(lockloc);
logList.Add(DataProvider.Instance.logData);
}
}
TaCmtOrRak();
}
public string InsTMISTOCK(string loc_id)
{
DataProvider.Instance.PickingWaveGoods.InsertTMISTOCK(loc_id);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
public string InsSDOrder(PickingWaveGoodsModel model)
{
MIStockModel queryMIStock = new MIStockModel();
queryMIStock.STORAGE_ID = model.STORAGE_ID;
queryMIStock.LOCATION_ID = model.LOC_ID;
DataTable tableMIStock = DataProvider.Instance.MIStock.GetMIStockDT(queryMIStock);
if(tableMIStock==null)
{
return "库存查询错误";
}
if (tableMIStock.Rows.Count==0)
{
return "库存查询错误";
}
string sts = tableMIStock.Rows[0]["sts"].ToString();
//if(sts == "1")
//{
// return "库位已经占用";
//}
string plcId = "0";
model.plcId = DataProvider.Instance.AutoRkData.GetPlcId();
DataProvider.Instance.PickingWaveGoods.InsertPickingWaveGoods(model);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.MIStock.UpdateMisLoc(model.LOC_ID, "1");
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
public string InsYK(string startmove,string endmove)
{
string orderstr = "YK" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
string plcId = DataProvider.Instance.AutoRkData.GetPlcId();
DataProvider.Instance.PickingWaveGoods.InsertCK(orderstr,startmove,endmove,plcId);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.MIStock.UpdateMisLoc(startmove, "1");
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.MIStock.UpdateYKLoc(endmove);
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="model">实体</param>
/// <returns></returns>
public string DelOrders(OrdersModel model)
{
DataProvider.Instance.Orders.DelOrders(model);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.OrderDetail.DelOrder(model.ORDER_ID);
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
#region
/// <summary>
/// 获得流水号
/// </summary>
/// <returns></returns>
public string GetSerialNum()
{
string str = DataProvider.Instance.Orders.GetSerialNum();
return str;
}
#endregion
#region
/// <summary>
/// 自动填充快递单号
/// </summary>
/// <param name="list">出库单集合</param>
/// <returns></returns>
public string FillKD(List<OrdersModel> list)
{
//截取快递单号前面的
string str_No = list[0].EXPRESSNO.ToString().Substring(0, list[0].EXPRESSNO.ToString().Length - 5);
//获取集合第一个快递单号后四位
int no = Convert.ToInt32(list[0].EXPRESSNO.ToString().Substring(list[0].EXPRESSNO.ToString().Length - 5, 5));
//获取增量
//ExpressNORuleModel ruleModel = new ExpressNORuleModel();
//ruleModel.COM_ID = list[0].LOG_COM_ID;
//int addNum = Convert.ToInt32(DataProvider.Instance.ExpressNORule.GetRule(ruleModel).Rows[0]["ADDNUM"].ToString());//获取增量
foreach (OrdersModel model in list.FindAll(r => r.ORDER_ID != list[0].ORDER_ID))
{
// no += addNum;
model.EXPRESSNO = str_No + no.ToString();
InsOrUpdOrders(model, 1);
}
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
#endregion
/// <summary>
/// 通过出库通知单 新增出库单明细、捡货单、捡货单明细
/// </summary>
/// <param name="ck"></param>
/// <returns></returns>
public string addCKOrderAndPickOrder(OrdersModel ck)
{
List<OrderDetailModel> listCKTab = new List<OrderDetailModel>();//出库通知单明细集合
List<PickingWaveModel> listPick = new List<PickingWaveModel>(); //捡货单集合
List<PickingWaveGoodsModel> listPickTab = new List<PickingWaveGoodsModel>(); //捡货单明细集合
//为出库通知单省、市、区、仓库、状态、出库通知单编号字段赋值
StorageOrderModel storOrderModel = new StorageOrderModel();
DataTable dt = DataProvider.Instance.AddressArea.GetAddressArea(ck.Customerprovince_Name, ck.Customercity_Name, ck.Customerdistrict_Name);
storOrderModel.TOWN_ID = dt.Rows[0][0].ToString();
ck.CUSTOMERDISTRICT = dt.Rows[0][0].ToString();
ck.CUSTOMERCITY = dt.Rows[0][1].ToString();
ck.CUSTOMERPROVINCE = dt.Rows[0][2].ToString();
DataTable table = DataProvider.Instance.StorageOrder.GetStorOrderDT(storOrderModel);
List<StorageOrderModel> storOrderList = ConvertHelper<StorageOrderModel>.ConvertToList(table);
if (storOrderList == null || storOrderList.Count == 0) { return "找不到配送仓库"; }
ck.Storage_id = storOrderList[0].STORAGE_ID;
ck.STATUS = "2";//已生成捡货单
// ck.ORDER_ID = DataProvider.Instance.Orders.GetSerialNum();
ck.CREATE_DATE = DateTime.Now;
Transaction = DataProvider.Instance.TranOracle;
//查找是否存在该客户 不存在首先新增客户
if (!string.IsNullOrEmpty(ck.Cus_guid))
{
CustomerModel c_model = new CustomerModel();
c_model.Guid = ck.Cus_guid;
DataTable dt2 = DataProvider.Instance.Customer.GetCustomer(c_model);
if (dt2.Rows.Count <= 0)
{
CustomerModel cus_Model = new CustomerModel();
cus_Model.Customer_id = ck.CUSTOMERMEMBERID;
cus_Model.Guid = ck.Cus_guid;
cus_Model.Customer_name = ck.Cus_membername;
cus_Model.Address = ck.CUSTOMERADDRESS;
DataProvider.Instance.Customer.AddCustomer(cus_Model);
logList.Add(DataProvider.Instance.logData);
}
}
//增加出库通知单
DataProvider.Instance.Orders.AddOrders(ck);
logList.Add(DataProvider.Instance.logData);
//新增消息
MessageModel messModel = new MessageModel();
messModel.ID = "CK" + DateTime.Now.ToString("yyyyMMddHHmmss") + DataProvider.Instance.Message.GetSerialNum();
messModel.MENU_FORM = "FrmOrders";
messModel.MESS_CONTENT = "新增出库通知单,单据编号:" + ck.ORDER_ID;
messModel.MESS_DATE = DateTime.Now;
messModel.MESS_DEP = ck.Storage_id;
messModel.MESS_FLAG = "0";
messModel.MESS_STAR = ck.CREATE_MAN;
messModel.MESS_STATUS = "0";
messModel.WORK_TYPE = "worktype011";
messModel.WORK_KIND = "0";
messModel.MESS_TYPE = "CK";
messModel.RELATIVE_NUMBER = ck.ORDER_ID;
messModel.STO_ID = ck.Storage_id;
DataProvider.Instance.Message.Add(messModel);
logList.Add(DataProvider.Instance.logData);
string id = ck.SHOPORDERID;//店铺订单号
//占用库存记录
MIStockOccupyModel queryOccupy = new MIStockOccupyModel();
queryOccupy.DOCCTNUMBER = id;
List<MIStockOccupyModel> occupy = ConvertHelper<MIStockOccupyModel>.ConvertToList(DataProvider.Instance.MIStockOccupy.GetMIStockOccupyDT(queryOccupy));
//遍历占用库存记录,得捡货单明细
foreach (var item in occupy)
{
if (!listPick.Exists(p => p.AREA_ID == item.AREA_ID)) {
//捡货单
PickingWaveModel pick = new PickingWaveModel();
pick.CREATE_DATE = DateTime.Now;
pick.CREATE_PERSON = ck.CREATE_MAN;
pick.CREATE_PERSON_NAME = ck.Create_man_Name;
pick.PRINT_COUNT = 0;
pick.STORAGE_ID = item.STORAGE_ID;
pick.AREA_ID = item.AREA_ID;
//增加捡货单
pick.PICKINGID = DataProvider.Instance.PickingWave.InsertPickingWave(pick);
logList.Add(DataProvider.Instance.logData);
listPick.Add(pick);
//新增消息
messModel = new MessageModel();
messModel.ID = "JH" + DateTime.Now.ToString("yyyyMMddHHmmss") + DataProvider.Instance.Message.GetSerialNum();
messModel.MENU_FORM = "FrmPickingWave";
messModel.MESS_CONTENT = "新增捡货单,单据编号:" + pick.PICKINGID;
messModel.MESS_DATE = DateTime.Now;
messModel.MESS_DEP = item.STORAGE_ID;
messModel.MESS_FLAG = "0";
messModel.MESS_STAR = pick.CREATE_PERSON;
messModel.MESS_STATUS = "0";
messModel.WORK_TYPE = "worktype012";
messModel.WORK_KIND = "0";
messModel.MESS_TYPE = "JH";
messModel.RELATIVE_NUMBER = pick.PICKINGID;
messModel.STO_ID = item.STORAGE_ID;
DataProvider.Instance.Message.Add(messModel);
logList.Add(DataProvider.Instance.logData);
}
//JWGoodsInfoModel goods = ConvertHelper<JWGoodsInfoModel>.ConvertToList(DataProvider.Instance.Goods.GetGoodsDataTable(item.INVENTORY_ITEM_ID, "", "", ""))[0];
MIStockModel mistock = new MIStockModel();
mistock.PUTIN_ID = item.PUTIN_ID;
mistock.STOCK_ID = item.STOCK_ID;
mistock.LOCATION_ID = item.LOCATION_ID;
//mistock.INVENTORY_ITEM_ID = item.INVENTORY_ITEM_ID;
mistock = ConvertHelper<MIStockModel>.ConvertToList(DataProvider.Instance.MIStock.GetMIStockDT(mistock))[0];
////捡货单明细
//PickingWaveGoodsModel pickTab = new PickingWaveGoodsModel();
//pickTab.DOCCTNUMBER = item.DOCCTNUMBER;
//pickTab.INVENTORY_ITEM_ID = item.INVENTORY_ITEM_ID;
//pickTab.GOODS_NUM = item.OCCUPY_NUM;
//pickTab.LOC_ID = item.LOCATION_ID;
//pickTab.OUT_ID = ck.ORDER_ID;
//pickTab.PICKINGID = listPick.Find(p=>p.AREA_ID == item.AREA_ID).PICKINGID;
////pickTab.MISTOCK_NUM;
//pickTab.PRICE = goods.PRICE;
//pickTab.PRODUCTION_DATE = mistock.PRODUCTION_DATE;
//pickTab.PROVIDER_ID = mistock.PROVIDER_ID;
//pickTab.PUTIN_ID = mistock.PUTIN_ID;
////pickTab.REMARK;
//pickTab.SCALE_UNIT = goods.SCALE_UNIT;
////pickTab.SKU_ID ;
//pickTab.SPECIFICATION = goods.SPECIFICATION;
//pickTab.UNIT = goods.UNIT;
//pickTab.WARE_DATE = mistock.WARE_DATE;
////出库通知单明细
//if(listCKTab.Exists(p=>p.INVENTORY_ITEM_ID == pickTab.INVENTORY_ITEM_ID)){//已有该商品
// listCKTab.Find(p => p.INVENTORY_ITEM_ID == pickTab.INVENTORY_ITEM_ID).GOODS_NUM += pickTab.GOODS_NUM;
// listCKTab.Find(p => p.INVENTORY_ITEM_ID == pickTab.INVENTORY_ITEM_ID).PICK_NUM += pickTab.GOODS_NUM;
// listCKTab.Find(p => p.INVENTORY_ITEM_ID == pickTab.INVENTORY_ITEM_ID).TOTAL_VOLUME += goods.GVOLUME;
// pickTab.PICKING_NUM += pickTab.GOODS_NUM;
//}else{//尚无该商品
// OrderDetailModel ckTab = new OrderDetailModel();
// ckTab.BarCode = goods.BARCODE;
// ckTab.BUSINESSID = ck.BUSINESSORDERID;
// ckTab.ORDER_ID = ck.ORDER_ID;
// ckTab.INVENTORY_ITEM_ID = goods.INVENTORY_ITEM_ID;
// ckTab.GOODS_NUM = pickTab.GOODS_NUM;
// ckTab.GOODS_TYPE_ID = goods.GOODS_TYPE_ID;
// ckTab.GVOLUME = goods.GVOLUME;
// ckTab.Location_id = pickTab.LOC_ID;
// ckTab.PICK_NUM = pickTab.GOODS_NUM;
// ckTab.PRICE = goods.PRICE;
// ckTab.SCALE_UNIT = goods.SCALE_UNIT;
// ckTab.SPECIFICATION = goods.SPECIFICATION;
// ckTab.Storage_area_id = item.AREA_ID;
// ckTab.TOTAL_VOLUME = goods.GVOLUME;
// ckTab.UNIT = goods.UNIT;
// ckTab.Weith = goods.GROSS_WEIGHT;
// pickTab.PICKING_NUM = pickTab.GOODS_NUM;
// listCKTab.Add(ckTab);
//}
//listPickTab.Add(pickTab);
}
//新增出库通知单明细、捡货单明细
// DataProvider.Instance.OrderDetail.AddOrderDetail(listCKTab);
logList.Add(DataProvider.Instance.logData);
foreach (var item in listPickTab)
{
DataProvider.Instance.PickingWaveGoods.InsertPickingWaveGoods(item);
logList.Add(DataProvider.Instance.logData);
}
TaCmtOrRak();
return ErrText;
}
}
}