707 lines
27 KiB
C#
707 lines
27 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.Stock;
|
||
using WMS.Model;
|
||
|
||
namespace WMS.Business.CK
|
||
{
|
||
public partial class BussPickingWaveGoods : IBussFactory
|
||
{
|
||
public List<PakWaitOut> GeterpData()
|
||
{
|
||
List<PakWaitOut> errPakWaitOut = new List<PakWaitOut>();
|
||
|
||
DataTable tb = DataProvider.Instance.PickingWaveGoods.GetDataErpData();
|
||
if (tb != null)
|
||
{
|
||
errPakWaitOut = ConvertHelper<PakWaitOut>.ConvertToList(tb);
|
||
|
||
}
|
||
return errPakWaitOut;
|
||
}
|
||
public List<PickingWaveGoodsModel> GetPickingWaveGoodsDT(PickingWaveGoodsModel model)
|
||
{
|
||
List<PickingWaveGoodsModel> locList = new List<PickingWaveGoodsModel>();
|
||
DataTable tb = DataProvider.Instance.PickingWaveGoods.GetPickingWaveGoodsDT(model);
|
||
if (tb != null)
|
||
{
|
||
locList = ConvertHelper<PickingWaveGoodsModel>.ConvertToList(tb);
|
||
|
||
}
|
||
return locList;
|
||
|
||
}
|
||
public List<PickingWaveGoodsModel> GetTaskdataHand()
|
||
{
|
||
List<PickingWaveGoodsModel> locList = new List<PickingWaveGoodsModel>();
|
||
DataTable tb = DataProvider.Instance.PickingWaveGoods.GetTaskdataHand();
|
||
if (tb != null)
|
||
{
|
||
locList = ConvertHelper<PickingWaveGoodsModel>.ConvertToList(tb);
|
||
|
||
}
|
||
return locList;
|
||
}
|
||
|
||
|
||
|
||
//DataTable GetDataT_ck_orderDetall()
|
||
|
||
public List<OrderDetailModel> GetDataT_ck_orderDetall()
|
||
{
|
||
List<OrderDetailModel> list = new List<OrderDetailModel>();
|
||
DataTable tb = DataProvider.Instance.PickingWaveGoods.GetDataT_ck_orderDetall();
|
||
if (tb != null)
|
||
{
|
||
list = ConvertHelper<OrderDetailModel>.ConvertToList(tb);
|
||
|
||
}
|
||
return list;
|
||
}
|
||
|
||
public bool deleteMistock(string loc,string goodid)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.DEL_T_CK_ORDERS(loc,goodid);
|
||
}
|
||
|
||
//Insert_T_CK_ORDERS
|
||
public bool Insert_T_CK_ORDERS(string sqlStr)
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.Insert_T_CK_ORDERS(sqlStr);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
|
||
return true;
|
||
}
|
||
|
||
public bool insert_t_ck_ordersDetall(string sqlStr)
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.insert_t_ck_ordersDetall(sqlStr);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return true;
|
||
}
|
||
|
||
public bool delete_t_ckorder(string ORDER_ID)
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.delete_t_ckorder(ORDER_ID);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return true;
|
||
}
|
||
|
||
|
||
//
|
||
public bool update_t_ck_ordersDetall(string orderid, string goodsId)
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.update_t_ck_ordersDetall(orderid, goodsId);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return true;
|
||
}
|
||
public bool GetDataErpData(string ORDER_ID)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.GetDataErpData(ORDER_ID);
|
||
}
|
||
|
||
|
||
|
||
public List<StorageAreaLocationModel> GetLocHand()
|
||
{
|
||
List<StorageAreaLocationModel> locList = new List<StorageAreaLocationModel>();
|
||
DataTable tb = DataProvider.Instance.PickingWaveGoods.GetLocHand();
|
||
if (tb != null)
|
||
{
|
||
locList = ConvertHelper<StorageAreaLocationModel>.ConvertToList(tb);
|
||
|
||
}
|
||
return locList;
|
||
}
|
||
|
||
public string HandDataLoc(string locid,string outStand,string size)
|
||
{
|
||
PickingWaveGoodsModel modelData = new PickingWaveGoodsModel();
|
||
string plcId = DataProvider.Instance.AutoRkData.GetPlcId();
|
||
modelData.LOC_ID = locid;
|
||
modelData.plcId = plcId;
|
||
modelData.PROVIDER_ID = "";
|
||
modelData.REMARK = "";
|
||
modelData.ToWhseloc = "";
|
||
modelData.outStand = outStand;
|
||
modelData.GOOD_ID = "00000";
|
||
modelData.SCALE_UNIT = size;
|
||
DataProvider.Instance.PickingWaveGoods.InsertHandGoods(modelData);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.MIStock.UpdateMisLoc(locid, "1");
|
||
TranRollback();
|
||
return ErrText;
|
||
}
|
||
public string DeleHandLoc(string locid)
|
||
{
|
||
DataTable tb= DataProvider.Instance.PickingWaveGoods.HandGoodsSts(locid);
|
||
if(tb!=null)
|
||
{
|
||
if (tb.Rows.Count > 0)
|
||
{
|
||
if (tb.Rows[0]["STATUS"].ToString() == "0")
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.DelHandGoods(locid);
|
||
}
|
||
else
|
||
{
|
||
return "the State is changed,not delete";
|
||
}
|
||
}
|
||
}
|
||
|
||
return ErrText;
|
||
}
|
||
public string TimerOutData()
|
||
{
|
||
lock ("b")
|
||
{
|
||
DataTable tb = DataProvider.Instance.PickingWaveGoods.GetTaskOutStatus();
|
||
if (tb != null)
|
||
{
|
||
if (tb.Rows.Count > 0)
|
||
{
|
||
List<PickingWaveGoodsModel> locList = ConvertHelper<PickingWaveGoodsModel>.ConvertToList(tb);
|
||
if (locList != null)
|
||
{
|
||
if (locList.Count > 0)
|
||
{
|
||
for (int i= 0;i< locList.Count;i++)
|
||
{
|
||
OutMisData(locList[i]);
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
return ErrText;
|
||
}
|
||
|
||
}
|
||
|
||
//手动出库判断是否已生成该出库单
|
||
public bool getPickData(string Locid)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getPickData(Locid);
|
||
}
|
||
public bool getPickDataCount()
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getPickDataCount();
|
||
}
|
||
public void UpDateSort(string Locid,string sort)
|
||
{
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
|
||
|
||
DataProvider.Instance.PickingWaveGoods.UpDateSort(Locid,sort);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
}
|
||
public bool getLocS(string Locid)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getLocS(Locid);
|
||
}
|
||
|
||
public string getYckLoc(string layer)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getYckLoc(layer);
|
||
}
|
||
|
||
//判断模式
|
||
public DataTable getDecid(string decid)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getDecid(decid);
|
||
}
|
||
public DataTable getRemark(string locid)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getRemark(locid);
|
||
}
|
||
public DataTable getyck(string remark,string layer)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getyck(remark,layer);
|
||
}
|
||
public DataTable getYK(string ctl)
|
||
{
|
||
return DataProvider.Instance.PickingWaveGoods.getYK(ctl);
|
||
}
|
||
public string SerLocWaitInSts(string ctl, string goodsid, string barcode, string GOODS_NUM_SJ, string out_id, string status, string GoodsMeaSure, string PACKING_NUM, string goodsVolume)
|
||
{
|
||
//DataProvider.Instance.PickingWaveGoods.SerLocWaitInSts(ctl, goodsid, barcode,GOODS_NUM_SJ, out_id,status, GoodsMeaSure, PACKING_NUM, goodsVolume);
|
||
return ErrText;
|
||
}
|
||
/// <summary>
|
||
/// 任务下发完成写完成表
|
||
/// </summary>
|
||
/// <param name="erpData"></param>
|
||
/// <returns></returns>
|
||
public string ErpDataExpress(OrderDetailModel modeData)
|
||
{
|
||
decimal sl = 0;//剩余数量
|
||
string typeSts = "0";
|
||
DataTable tb = new DataTable();
|
||
tb = DataProvider.Instance.PickingWaveGoods.GetLocDataNo(modeData.GOOD_ID, modeData.GOODS_NUM, modeData.STORAGE_ID);
|
||
if (tb == null)
|
||
{
|
||
return "数据错误,没有该物料的库存";
|
||
}
|
||
if (tb.Rows.Count == 0)
|
||
{
|
||
DataProvider.Instance.OrderDetail.UpdateOrderDetailData(modeData.ORDER_ID, modeData.GOOD_ID, "没有库存");
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return "数据错误,没有该物料的库存";
|
||
}
|
||
|
||
#region 算拣选站台,原则平均分配
|
||
string outStand = string.Empty;
|
||
string strLocation = tb.Rows[0]["LOCATION_ID"].ToString();
|
||
if (strLocation.Substring(0, 2) == "01" || strLocation.Substring(0, 2) == "02")
|
||
{
|
||
outStand = "114";
|
||
}
|
||
else if (strLocation.Substring(0, 2) == "03" || strLocation.Substring(0, 2) == "04")
|
||
{
|
||
outStand = "214";
|
||
}
|
||
|
||
//if (modeData.STORAGE_ID == "SCC001")
|
||
//{
|
||
// DataTable tbStaion = DataProvider.Instance.PickingWaveGoods.GetOutDataId(modeData.ORDER_ID);
|
||
// if (tbStaion != null)
|
||
// {
|
||
// if (tbStaion.Rows.Count > 0)
|
||
// {
|
||
// outStand = tbStaion.Rows[0]["outStand"].ToString();
|
||
// }
|
||
// else
|
||
// {
|
||
// DataSet tbstand = DataProvider.Instance.PickingWaveGoods.GetStation(modeData.STORAGE_ID);
|
||
// if (tbstand != null)
|
||
// {
|
||
// if (tbstand.Tables[0].Rows.Count > 0)
|
||
// {
|
||
// outStand = tbstand.Tables[0].Rows[0]["ConveyorID"].ToString();
|
||
// }
|
||
// else
|
||
// {
|
||
// outStand = tbstand.Tables[1].Rows[0]["outStand"].ToString();
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
#endregion
|
||
|
||
string status = "0";
|
||
string plcId = string.Empty;
|
||
string locId = tb.Rows[0]["LOCATION_ID"].ToString();//.LOCATION_ID;
|
||
string PUTIN_ID = tb.Rows[0]["PUTIN_ID"].ToString();
|
||
string ctl = tb.Rows[0]["ctl"].ToString();
|
||
DataTable tbPlc = DataProvider.Instance.PickingWaveGoods.GetPickGoodsData(ctl, modeData.STORAGE_ID);
|
||
if (tbPlc != null)
|
||
{
|
||
if (tbPlc.Rows.Count > 0)
|
||
{
|
||
plcId = tbPlc.Rows[0]["plcid"].ToString();
|
||
status= tbPlc.Rows[0]["status"].ToString();
|
||
}
|
||
}
|
||
|
||
if (tb.Rows[0]["AUTOSTS"].ToString()=="True")
|
||
{
|
||
typeSts = "LTK";
|
||
if (plcId.Trim().Length == 0)
|
||
{
|
||
plcId = DataProvider.Instance.AutoRkData.GetPlcId();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
typeSts = "RF";
|
||
}
|
||
int gosct = int.Parse(tb.Rows[0]["HASVOLUME"].ToString());
|
||
decimal goodsNum =decimal.Parse(tb.Rows[0]["SHELVES_NUM"].ToString());
|
||
decimal pickNum = 0;///拣货数量
|
||
if (goodsNum == modeData.GOODS_NUM) ///库存数量与出库数量相同
|
||
{
|
||
pickNum = modeData.GOODS_NUM;
|
||
sl = 0;
|
||
}
|
||
else if (goodsNum > modeData.GOODS_NUM)///库存数量大于出库数量相同
|
||
{
|
||
pickNum = modeData.GOODS_NUM;
|
||
sl = 0;
|
||
}
|
||
else if (goodsNum < modeData.GOODS_NUM) //库存数量小于出库数量相同
|
||
{
|
||
sl = modeData.GOODS_NUM - goodsNum;//剩余数量
|
||
pickNum = goodsNum;
|
||
|
||
}
|
||
|
||
|
||
#region 单据增加
|
||
PickingWaveGoodsModel pickData = new PickingWaveGoodsModel();
|
||
pickData.PICKINGID = "SJD"+DateTime.Now.ToString("yyyyMMddHHmmssfff");
|
||
pickData.GOOD_ID = modeData.GOOD_ID;
|
||
pickData.GOODS_NUM = 0;
|
||
pickData.PICKING_NUM = pickNum;
|
||
pickData.PACKING_NUM = 0;
|
||
pickData.plcId = plcId;
|
||
pickData.REMARK = modeData.XQ_TYPE;
|
||
pickData.LOC_ID = locId;
|
||
pickData.outStand = outStand;
|
||
pickData.STORAGE_ID = modeData.STORAGE_ID;
|
||
pickData.CTL = ctl;
|
||
pickData.OUT_ID = modeData.ORDER_ID;
|
||
pickData.typests = typeSts;
|
||
pickData.status = status;
|
||
pickData.GOODS_NUM_SJ = 0;
|
||
pickData.PUTIN_ID = PUTIN_ID;
|
||
|
||
pickData.PROVIDER_ID = modeData.ORDER_ID;//MES 工单号
|
||
DataProvider.Instance.PickingWaveGoods.InsertPickingWaveGoods(pickData);
|
||
#endregion
|
||
|
||
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
if (locId != "")
|
||
{
|
||
if (sl == 0)
|
||
{
|
||
DataProvider.Instance.OrderDetail.UpdateOrderDetailData(modeData.ORDER_ID, modeData.GOOD_ID,"");
|
||
logList.Add(DataProvider.Instance.logData);
|
||
}
|
||
else
|
||
{
|
||
modeData.PICK_NUM = pickNum;///已经拣货数量
|
||
modeData.GOODS_NUM = sl;///剩余数量
|
||
DataProvider.Instance.OrderDetail.UpdateOrderDetailPickNum(modeData);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
}
|
||
MIStockModel misMode = new MIStockModel();
|
||
misMode.CTL = ctl;
|
||
misMode.LOCATION_ID = locId;
|
||
misMode.OCCUPY_NUM = pickNum;
|
||
misMode.GOODS_ID = modeData.GOOD_ID;
|
||
misMode.STORAGE_ID = modeData.STORAGE_ID;
|
||
misMode.PUTIN_ID = PUTIN_ID;
|
||
DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(misMode);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
}
|
||
else
|
||
{
|
||
TranRollback();
|
||
return modeData.GOOD_ID+"没有库存";
|
||
}
|
||
|
||
return ErrText;
|
||
|
||
}
|
||
|
||
public List<PickingWaveGoodsModel> LtkgetPickData(string outStand)
|
||
{
|
||
DataTable table = DataProvider.Instance.PickingWaveGoods.LtkgetPickData(outStand);
|
||
if (table != null)
|
||
{
|
||
List<PickingWaveGoodsModel> PickingWaveGoodsModel = ConvertHelper<PickingWaveGoodsModel>.ConvertToList(table);
|
||
|
||
|
||
return PickingWaveGoodsModel;
|
||
}
|
||
return null;
|
||
|
||
}
|
||
public List<StorageAreaLocationModel> GetLocaStationAllData(string locID)
|
||
{
|
||
DataTable table = DataProvider.Instance.PickingWaveGoods.GetLocaStationAllData(locID);
|
||
if (table != null)
|
||
{
|
||
List<StorageAreaLocationModel> locData = ConvertHelper<StorageAreaLocationModel>.ConvertToList(table);
|
||
|
||
|
||
return locData;
|
||
|
||
}
|
||
return null;
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取拣货的明细
|
||
/// </summary>
|
||
public PickingWaveGoodsModel GetPickDataBarcode(string barcode)
|
||
{
|
||
DataTable table = DataProvider.Instance.PickingWaveGoods.GetPickDataBarcode(barcode);
|
||
List<PickingWaveGoodsModel> OutModel = ConvertHelper<PickingWaveGoodsModel>.ConvertToList(table);
|
||
if(OutModel.Count>0)
|
||
{
|
||
return OutModel[0];
|
||
}
|
||
return null;
|
||
}
|
||
/// <summary>
|
||
/// 任务下发到PLC写重量
|
||
/// </summary>
|
||
/// <param name="locId"></param>
|
||
public string UpDateWghMisBak(string barcode, string wgh)
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.UpDateWghMisBak(barcode, wgh);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
return this.ErrText;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 减去库存
|
||
/// </summary>
|
||
/// <param name="barcode"></param>
|
||
public string OutMisData(PickingWaveGoodsModel pickData)
|
||
{
|
||
decimal strNum = 0;
|
||
string height = "33";
|
||
if (pickData == null)
|
||
{
|
||
return "数据传入异常";
|
||
}
|
||
DataTable tableMis = DataProvider.Instance.MIStock.GetMisDataOut(pickData.LOC_ID, pickData.GOOD_ID, pickData.STORAGE_ID);
|
||
List<MIStockModel> OutMisModel = ConvertHelper<MIStockModel>.ConvertToList(tableMis);
|
||
if (tableMis == null)
|
||
{
|
||
return null;
|
||
}
|
||
int i = 0;
|
||
if (tableMis.Rows.Count == 0)
|
||
{
|
||
return null;
|
||
}
|
||
if (OutMisModel.Count > 0)
|
||
{
|
||
foreach (MIStockModel modleS in OutMisModel)
|
||
{
|
||
if ( pickData.typests == "1" || pickData.typests == "2" || pickData.typests == "")
|
||
{
|
||
|
||
// MIStockModel mis = OutMisModel[0];
|
||
MIStockBackModel MIBackModel = new MIStockBackModel();
|
||
MIBackModel.AREA_ID = modleS.AREA_ID;
|
||
MIBackModel.ORI_NUM = modleS.SHELVES_NUM;
|
||
MIBackModel.GOODS_NUM = pickData.PICKING_NUM;
|
||
MIBackModel.GOODS_NUM_SJ = pickData.PICKING_NUM;
|
||
MIBackModel.CHANGE_NUM = modleS.SHELVES_NUM - pickData.PICKING_NUM;
|
||
strNum = MIBackModel.CHANGE_NUM;
|
||
MIBackModel.GOODS_ID = modleS.GOODS_ID;
|
||
|
||
MIBackModel.LOCATION_ID = modleS.LOCATION_ID;
|
||
MIBackModel.OPERATOR_DATE = System.DateTime.Now;
|
||
// MIBackModel.GOODS_NUM_SJ = 1;
|
||
MIBackModel.OPERATOR_TYPE = "1";
|
||
MIBackModel.REMARK = modleS.REMARK;
|
||
MIBackModel.PRODUCTION_DATE = modleS.PRODUCTION_DATE;
|
||
MIBackModel.PUTIN_ID = modleS.PUTIN_ID;
|
||
MIBackModel.STOCK_ID = modleS.STOCK_ID;
|
||
MIBackModel.STORAGE_ID = modleS.STORAGE_ID;
|
||
MIBackModel.OUT_ID = pickData.OUT_ID;
|
||
MIBackModel.BARCODE = modleS.BARCODE;
|
||
MIBackModel.ProDucLotId = modleS.PROVIDER_ID;
|
||
MIBackModel.PICKINGID = pickData.PICKINGID;
|
||
// MIBackModel.OPERATOR_MAN = userid;
|
||
MIBackModel.GOODS_NAME = modleS.GOODS_NAME;
|
||
// MIBackModel.OPERATOR_MAN = userid;
|
||
MIBackModel.High = modleS.High;
|
||
height = modleS.High;
|
||
MIBackModel.WGH = modleS.WGH;
|
||
MIBackModel.WARE_DATE = modleS.WARE_DATE;
|
||
MIBackModel.CTL = modleS.CTL;
|
||
|
||
DataProvider.Instance.MIStockBack.AddBMiStockack(MIBackModel);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
|
||
|
||
modleS.SHELVES_NUM = MIBackModel.CHANGE_NUM;
|
||
modleS.OCCUPY_NUM = modleS.OCCUPY_NUM - pickData.GOODS_NUM_SJ;
|
||
if (modleS.OCCUPY_NUM < 0)
|
||
{
|
||
modleS.OCCUPY_NUM = 0;
|
||
}
|
||
|
||
|
||
if (MIBackModel.CHANGE_NUM == 0)
|
||
{
|
||
MIStockModel modelSk = new MIStockModel();
|
||
modelSk.GOODS_ID = pickData.GOOD_ID;
|
||
modelSk.LOCATION_ID = pickData.LOC_ID;
|
||
modelSk.STORAGE_ID = pickData.STORAGE_ID;
|
||
DataProvider.Instance.MIStock.DeleteMIStock(modelSk);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
}
|
||
else
|
||
{
|
||
|
||
//DataProvider.Instance.MIStock.UpdateMIStockNum(modleS);
|
||
//logList.Add(DataProvider.Instance.logData);
|
||
|
||
}
|
||
|
||
DataProvider.Instance.AutoRkData.UpdateLocCtlSts(pickData.LOC_ID, "0", pickData.STORAGE_ID);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.PickingWaveGoods.InsertProDucLotIdGoodsBack(pickData.LOC_ID, pickData.OUT_ID);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.PickingWaveGoods.DeletePickingWaveGoods(pickData.LOC_ID, pickData.OUT_ID);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
//DataProvider.Instance.PickingWaveGoods.UpdateErpData(pickData.OUT_ID, pickData.GOOD_ID);
|
||
//logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
}
|
||
else
|
||
{
|
||
//移库更新库存位置
|
||
MIStockModel modelSk = new MIStockModel();
|
||
modelSk.GOODS_ID = pickData.GOOD_ID;
|
||
modelSk.LOCATION_ID = pickData.LOC_ID;
|
||
modelSk.STORAGE_ID = pickData.STORAGE_ID;
|
||
DataProvider.Instance.StorageAreaLocation.UpdateLocSts(pickData.LOC_ID, "0");
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.MIStock.UpdateMisLocSts(pickData.LOC_ID, pickData.ToWhseloc, "0");
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.AutoRkData.UpdateLocCtlSts(pickData.ToWhseloc, "1", pickData.STORAGE_ID);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.PickingWaveGoods.InsertProDucLotIdGoodsBack(pickData.LOC_ID, pickData.OUT_ID);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.PickingWaveGoods.DeletePickingWaveGoods(pickData.LOC_ID, pickData.OUT_ID);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
|
||
}
|
||
}
|
||
}
|
||
return ErrText;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 合并托盘确定按钮
|
||
/// </summary>
|
||
/// <param name="STORAGE_ID"></param>
|
||
/// <param name="ctl"></param>
|
||
/// <param name="whseloc"></param>
|
||
/// <param name="outStand"></param>
|
||
public void MergeCtl(string STORAGE_ID,string ctl,string locId,string newLocid,string outStand)
|
||
{
|
||
string plcId= DataProvider.Instance.AutoRkData.GetPlcId();
|
||
IBussFactory<BussAutoRk>.Instance().OrderMesAdd("","",plcId, "", outStand, "", STORAGE_ID, ctl, 1, "1", "", "-1");
|
||
|
||
DataProvider.Instance.AutoRkData.UpdateLocCtlSts(locId, "0", STORAGE_ID);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.MIStock.UpdateMisLocData(newLocid, locId, STORAGE_ID,ctl
|
||
);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
|
||
|
||
}
|
||
/// <summary>
|
||
/// 合并后的托盘回库
|
||
/// </summary>
|
||
public void MergeCtlReturn(string STORAGE_ID, string ctl, string locId, string outStand)
|
||
{
|
||
string plcId = DataProvider.Instance.AutoRkData.GetPlcId();
|
||
IBussFactory<BussAutoRk>.Instance().OrderMesAdd("","",plcId, "", outStand, "", STORAGE_ID, ctl, 1, "1", locId, "-1");
|
||
|
||
}
|
||
/// <summary>
|
||
/// 下发任务到PLC置Status
|
||
/// </summary>
|
||
/// <param name="ProDucLotId"></param>
|
||
public string UpdateStsPIckEnd(string ProDucLotId,string sts)
|
||
{
|
||
DataProvider.Instance.PickingWaveGoods.UpdateStsPIckEnd(ProDucLotId, sts);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return ErrText;
|
||
}
|
||
public string UpdaPickNum(string pickId, string goodsId, decimal picnum)
|
||
{
|
||
|
||
DataProvider.Instance.PickingWaveGoods.UpdaPickNum(pickId, goodsId, picnum);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return ErrText;
|
||
}
|
||
|
||
public string UpdateLocsts(string locid)
|
||
{
|
||
|
||
DataProvider.Instance.PickingWaveGoods.UpdateLocSts(locid);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return ErrText;
|
||
}
|
||
/// <summary>
|
||
/// 新增拣选明细
|
||
/// </summary>
|
||
/// <param name="info"></param>
|
||
/// <returns></returns>
|
||
public string InsertPickingInfo(PickngWaveInfo info)
|
||
{
|
||
DataProvider.Instance.pickingWareInfo.InsertPickingInfo(info);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
DataProvider.Instance.PickingWaveGoods.UpdaPickNum(info.PICKINGID, info.GOOD_ID, info.PICKING_NUM);
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return ErrText;
|
||
}
|
||
|
||
public string DelePickingInfo(string picking, string locId)
|
||
{
|
||
DataProvider.Instance.pickingWareInfo.DelePickingInfo(picking,locId);
|
||
Transaction = DataProvider.Instance.TranOracle;
|
||
logList.Add(DataProvider.Instance.logData);
|
||
TaCmtOrRak();
|
||
return ErrText;
|
||
}
|
||
|
||
public List<PickngWaveInfo> GetPickInfo(string picking,string goodsid)
|
||
{
|
||
DataTable tableMis = new DataTable();
|
||
tableMis= DataProvider.Instance.pickingWareInfo.GetPickInfo(picking,goodsid);
|
||
|
||
List<PickngWaveInfo> OutMisModel = ConvertHelper<PickngWaveInfo>.ConvertToList(tableMis);
|
||
if (tableMis == null)
|
||
{
|
||
return null;
|
||
}
|
||
return OutMisModel;
|
||
}
|
||
}
|
||
}
|