ldj/Model/wms/tables/WmsPlate.cs

320 lines
9.1 KiB
C#
Raw Normal View History

2023-05-23 16:13:17 +08:00

/// <summary>
///INTERFACE CLASS FOR TABLE t_wmsPlate
///By wm
///on 05/22/2020
/// </summary>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
2023-11-21 19:18:23 +08:00
using DeiNiu.Utils;
2023-05-23 16:13:17 +08:00
namespace DeiNiu.wms.Data.Model
{
[Serializable]
public class WmsPlate : WmsPlate_base
{
public WmsPlate()
{
}
2023-09-04 22:41:19 +08:00
public WmsPlate(string plateId)
2023-05-23 16:13:17 +08:00
{
cmdParameters[0] = plateId;
2023-09-04 22:41:19 +08:00
getModel(100);
2023-05-23 16:13:17 +08:00
}
2023-09-04 22:41:19 +08:00
public WmsPlate(int id) : base(id)
2023-05-23 16:13:17 +08:00
{
}
2023-09-04 22:41:19 +08:00
public WmsPlate(DataRow dr) : base(dr)
2023-05-23 16:13:17 +08:00
{
}
2023-09-04 22:41:19 +08:00
protected override void getImp()
2023-05-23 16:13:17 +08:00
{
2023-09-04 22:41:19 +08:00
model_imp = new WmsPlate_Imp();
2023-05-23 16:13:17 +08:00
}
//begin cust db operation, query, excute sql etc.
2023-09-04 22:41:19 +08:00
//begin cust db operation, query, excute sql etc.
public DataTable getPlateById(string plateid)
{
cmdParameters[0] = plateid;
return CustQuery(100).Tables[0];
}
public bool deleteByPlateId(string plateid)
{
cmdParameters[0] = plateid;
return CustOper(200) > 0;
}
public DataSet getPlateWaves()
{
return CustQuery(300);
}
public DataTable getPlatesByWave(string waveOrder, int color)
{
cmdParameters[0] = waveOrder;
if (color > 0)
{
cmdParameters[1] = color;
return CustQuery(500).Tables[0];
}
else return CustQuery(400).Tables[0]; ;
}
public DataTable getPartionPickDetailByPlateId(string plateid)
{
cmdParameters[0] = plateid;
return CustQuery(101).Tables[0];
}
public DataTable getPlatesByPickOrder(string pickOrderNo)
{
cmdParameters[0] = pickOrderNo;
return CustQuery(600).Tables[0];
}
public void setFree()
{
this.waveNo = "";
this.preInOrderNo = "";
this.pickOrderNo = "";
this.customerId = "";
this.transNo = "";
this.partion = 0;
this.locationId = "";
this.terminal = 0;
this.state = 0;
Update();
}
public WmsPlate getParentPlate(string plateId)
{
cmdParameters[0] = plateId;
DataTable dt = CustQuery(700).Tables[0];
foreach (DataRow dr in dt.Rows)
{
return new WmsPlate(dr);
}
return new WmsPlate();
}
2023-11-21 19:18:23 +08:00
/*public List<WmsPlate> getSubPlates(string plateId)
2023-09-04 22:41:19 +08:00
{
List<WmsPlate> lst = new List<WmsPlate>();
cmdParameters[0] = plateId;
DataTable dt = CustQuery(800).Tables[0];
foreach (DataRow dr in dt.Rows)
{
lst.Add(new WmsPlate(dr));
}
return lst;
}
2023-11-21 19:18:23 +08:00
*/
public List<string> getSubPlateIds(string plateId)
{
List<string> lst = new List<string>();
cmdParameters[0] = plateId;
DataTable dt = CustQuery(800).Tables[0];
foreach (DataRow dr in dt.Rows)
{
lst.Add(dr["subPlateId"].ToString());
}
return lst;
}
public List<WmsPlate> getSubPlates(string plateId)
{
List<WmsPlate> lstp = new List<WmsPlate>();
cmdParameters[0] = plateId;
DataTable dt = CustQuery(1000).Tables[0];
foreach (DataRow dr in dt.Rows)
{
lstp.Add(new WmsPlate(dr));
}
return lstp;
}
2023-09-04 22:41:19 +08:00
/// <summary>
/// 迭代取容器里所有商品,包含子容器及其子容器...
/// </summary>
/// <param name="plateId"></param>
/// <returns></returns>
2023-11-21 19:18:23 +08:00
/* public List<WmsPlateStock_tmp> getPlateStoks(string plateId, bool showSub = false)
2023-09-04 22:41:19 +08:00
{
List<WmsPlateStock_tmp> stks = new List<WmsPlateStock_tmp>();
DataTable dt = new WmsPlateStock_tmp().getStockLst(plateId);
foreach (DataRow dr in dt.Rows)
{
stks.Add(new WmsPlateStock_tmp(dr));
}
if (!showSub)
{
return stks;
}
List<WmsPlate> subPlate = getSubPlates(plateId);
foreach (WmsPlate obj in subPlate)
{
stks.Concat(getPlateStoks(obj.plateId, showSub));
}
return stks;
}
2023-11-21 19:18:23 +08:00
*/
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
private List<DataTable> getPlateJobsDts(List<DataTable> dts,string plateId, bool showSub = false)
2023-09-04 22:41:19 +08:00
{
2023-11-21 19:18:23 +08:00
// LogHelper.debug(this.GetType(), string.Format(" plate contents dts size {2}, plateId {0},showSub {1}", plateId, showSub,dts.Count));
2023-09-04 22:41:19 +08:00
dts.Add(new WmsPlateStock_tmp().getStockLst(plateId));
2023-11-21 19:18:23 +08:00
LogHelper.debug(this.GetType(), string.Format(" plate contents dts size {2}, plateId {0},showSub {1}", plateId, showSub, dts.Count));
2023-09-04 22:41:19 +08:00
if (!showSub)
{
return dts;
}
2023-11-21 19:18:23 +08:00
List<string> subPlate = getSubPlateIds(plateId);
2023-09-04 22:41:19 +08:00
2023-11-21 19:18:23 +08:00
LogHelper.debug(this.GetType(), string.Format(" plate {0} sub plate count {1} ",plateId,subPlate.Count ));
foreach (string p in subPlate)
2023-09-04 22:41:19 +08:00
{
2023-11-21 19:18:23 +08:00
// dts.Concat(getPlateJobsDts(dts,obj.plateId, showSub));
dts=(getPlateJobsDts(dts, p, showSub));
2023-09-04 22:41:19 +08:00
}
return dts;
}
public DataTable getPateJobsDt(string plateId, bool showSub = false)
{
2023-11-21 19:18:23 +08:00
List<DataTable> dts = new List<DataTable>();
dts = getPlateJobsDts(dts ,plateId, showSub);
2023-09-04 22:41:19 +08:00
DataTable d = dts[0];
for (int i = 1; i < dts.Count;i++)
{
d= unionTables(d, dts[i],i+"");
}
2023-11-21 19:18:23 +08:00
2023-09-04 22:41:19 +08:00
return d;
}
2023-11-21 19:18:23 +08:00
private Dictionary<string, List<WmsOutPickRequest>> getPlatePlateRequest(Dictionary<string, List<WmsOutPickRequest>> requests, string plateId, bool showSub = false)
{
// LogHelper.debug(this.GetType(), string.Format(" plate contents dts size {2}, plateId {0},showSub {1}", plateId, showSub, requests.Count));
List<WmsOutPickRequest> lst = new WmsPlateStock_tmp().getPickRequests(plateId,enumOutStoreType.);
foreach(WmsOutPickRequest p in lst)
{
if (!requests.ContainsKey(p.pickOrderNo))
{
requests.Add(p.pickOrderNo, lst);
// LogHelper.debug(this.GetType(), string.Format(" plateId {0} contents request {1}", plateId, p.pickOrderNo));
}
}
// LogHelper.debug(this.GetType(), string.Format(" plateId {0} contents request size {2}, showSub {1}", plateId, showSub, lst.Count));
if (!showSub)
{
return requests;
}
List<string> subPlate = getSubPlateIds(plateId);
// LogHelper.debug(this.GetType(), string.Format(" plate {0} sub plate count {1} ", plateId, subPlate.Count));
foreach (string p in subPlate)
{
// dts.Concat(getPlateJobsDts(dts,obj.plateId, showSub));
requests = getPlatePlateRequest(requests, p, showSub) ;
}
return requests;
}
public List<WmsOutPickRequest> getPlateRequests(string plateId, bool showSub = false)
{
List<WmsOutPickRequest> lst = new List<WmsOutPickRequest>();
Dictionary<string, List<WmsOutPickRequest>> requests = new Dictionary<string, List<WmsOutPickRequest>>();
requests = getPlatePlateRequest(requests, plateId, showSub);
// LogHelper.debug(this.GetType(), string.Format(" plate {0} request list count {1} ", plateId, requests.Count));
foreach (string p in requests.Keys)
{
lst= lst.Concat(requests[p]).ToList();
}
LogHelper.debug(this.GetType(), string.Format(" plate {0} request count {1} ", plateId, lst.Count));
return lst ;
}
2023-09-04 22:41:19 +08:00
public static DataTable unionTables(DataTable dt1,DataTable dt2,string newName)
{
DataTable dt = dt1.Copy();
dt.TableName= newName;
foreach(DataRow item in dt2.Rows)
{
DataRow dr = dt.NewRow();
dr.ItemArray =item.ItemArray;
dt.Rows.Add(dr);
}
return dt;
}
2023-11-21 19:18:23 +08:00
public DataTable queryPlate(string flowNo)
{
cmdParameters[0] = flowNo;
return CustQuery(900).Tables[0];
}
public int releaseSubPlate(string fromPlate)
{
cmdParameters[0] = fromPlate;
return CustOper(1100);
}
public DataTable getLineId(string customerId)
{
cmdParameters[0] = customerId;
return CustQuery(1200).Tables[0];
}
2023-05-23 16:13:17 +08:00
}
2023-09-04 22:41:19 +08:00
2023-05-23 16:13:17 +08:00
}
2023-09-04 22:41:19 +08:00
2023-05-23 16:13:17 +08:00