BaoKai_202508_Wms_Jingwang_.../WMS.Business/CK/BussOrders.cs
2025-08-24 21:52:42 +08:00

870 lines
34 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}