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

222 lines
8.0 KiB
C#

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 WMS.Model.Base;
using WMS.Model.SC;
using WMS.Model.Stock;
using WMS.Business.CK;
using WMS.Business.Base;
namespace WMS.Business.SC
{
public class BussProcessPlan : IBussFactory
{
/// <summary>
/// 生成订单
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
public string ExceOrderPlan(string orderId,string userId)
{
OrdersModel model = new OrdersModel();
List<OrderDetailModel> Orderlist = new List<OrderDetailModel>();
PlanGoodsModel goods_model = new PlanGoodsModel();
goods_model.PLAN_ID = orderId;
DataTable dt = DataProvider.Instance.PlanGoods.GetPlanGoodsList(goods_model);
if(dt!=null)
{
if(dt.Rows.Count>0)
{
List<PlanGoodsModel> list = ConvertHelper<PlanGoodsModel>.ConvertToList(dt);
OrdersModel order = new OrdersModel();
order.Ck_type = "3";///生产领料出库
order.CREATE_MAN = userId;
order.ORDER_ID = IBussFactory<BussDocumentTable>.Instance().GetDocumentStream("出库通知单");
order.BUSINESSORDERID = list[0].PLAN_ID;
order.STATUS = "0";
order.CREATE_MAN = userId;
foreach (PlanGoodsModel goods in list)
{
if (goods.OUT_NUM>0)
{
if( Orderlist.Count(r=>r.ORDER_ID == order.BUSINESSORDERID && r.GOOD_ID== goods.MATERIAL_ID)>0)
{
OrderDetailModel orderInfo = Orderlist.Find(r => r.ORDER_ID == order.BUSINESSORDERID && r.GOOD_ID == goods.MATERIAL_ID);
orderInfo.GOODS_NUM = orderInfo.GOODS_NUM + goods.OUT_NUM;
}
else
{
OrderDetailModel orderInfo = new OrderDetailModel();
orderInfo.GOOD_ID = goods.MATERIAL_ID;
orderInfo.GOODS_NUM = goods.OUT_NUM;
orderInfo.ORDER_ID = order.BUSINESSORDERID;
Orderlist.Add(orderInfo);
}
}
}
ErrText = IBussFactory<BussOrders>.Instance().InsOrUpdate(order, Orderlist, 0);
///计划状态更改
Obsolete(orderId, "1");
return ErrText;
}
}
return ErrText;
}
/// <summary>
/// 更新计划状态
/// </summary>
/// <param name="oderId"></param>
/// <param name="sts"></param>
/// <returns></returns>
public string UpdateStsScPlan(string oderId,string sts)
{
DataProvider.Instance.ProcessPlan.UpdateStsScPlan(oderId,sts);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 增加一条数据
/// </summary>
public string AddProcessPlan(ProcessPlanModel model)
{
DataProvider.Instance.ProcessPlan.AddProcessPlan(model);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 增加一条数据及明细
/// </summary>
public string AddList(ProcessPlanModel model, List<PlanGoodsModel> listmodel)
{
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.ProcessPlan.AddProcessPlan(model);
logList.Add(DataProvider.Instance.logData);
foreach (PlanGoodsModel pmodel in listmodel)
{
DataProvider.Instance.PlanGoods.AddPlanGoods(pmodel);
logList.Add(DataProvider.Instance.logData);
}
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 更新一条数据
/// </summary>
public string Update(ProcessPlanModel model)
{
DataProvider.Instance.ProcessPlan.Update(model);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 作废方案
/// </summary>
public string Obsolete(string planID,string status)
{
DataProvider.Instance.ProcessPlan.Obsolete(planID,status);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 更新一条数据
/// </summary>
public string UpdateAndList(ProcessPlanModel planModel, List<PlanGoodsModel> lstPlanGoods)
{
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.ProcessPlan.Update(planModel);
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.PlanGoods.Delete(new PlanGoodsModel() { PLAN_ID = planModel.PLAN_ID });
logList.Add(DataProvider.Instance.logData);
if (lstPlanGoods.Count > 0)
{
foreach (PlanGoodsModel pmodel in lstPlanGoods)
{
pmodel.PLAN_ID = planModel.PLAN_ID;
DataProvider.Instance.PlanGoods.AddPlanGoods(pmodel);
logList.Add(DataProvider.Instance.logData);
}
}
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 删除一条数据及明细
/// </summary>
public string Delete(ProcessPlanModel model)
{
Transaction = DataProvider.Instance.TranOracle;
DataProvider.Instance.ProcessPlan.Delete(model);
logList.Add(DataProvider.Instance.logData);
DataProvider.Instance.PlanGoods.Delete(new PlanGoodsModel() { PLAN_ID = model.PLAN_ID });
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
/// <summary>
/// 获取商品原材料对应关系
/// </summary>
/// <returns>商品原材料对应关系</returns>
public List<ProcessPlanModel> GetScPlanList(ProcessPlanModel model)
{
DataTable table = DataProvider.Instance.ProcessPlan.GetScPlanList(model);
if (table != null)
{
List<ProcessPlanModel> list = ConvertHelper<ProcessPlanModel>.ConvertToList(table);
return list;
}
return null;
}
/// <summary>
/// 获取流水号
/// </summary>
/// <returns></returns>
public string GetSerialNum()
{
return DataProvider.Instance.ProcessPlan.GetSerialNum();
}
/// <summary>
/// 插入库区间调拨单信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public string InsertAreaRep(List<AreaRepModel> lstAreaModel)
{
DataProvider.Instance.ProcessPlan.InsertAreaRep(lstAreaModel);
Transaction = DataProvider.Instance.TranOracle;
logList.Add(DataProvider.Instance.logData);
TaCmtOrRak();
return this.ErrText;
}
}
}