using HH.WMS.BLL.InStock;
|
using HH.WMS.Common;
|
using HH.WMS.Common.External;
|
using HH.WMS.DAL;
|
using HH.WMS.DAL.ERP;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.ERP;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.BLL.ERP
|
{
|
/// <summary>
|
/// 小磅单
|
/// </summary>
|
public class TN_ER_ITEM_POUNDBLL : DapperBaseBLL
|
{
|
#region GET
|
|
public TN_ER_ITEM_POUNDEntity Get(string taskNo, int sync = 0)
|
{
|
var data = BLLCreator.Create<DapperBLL<TN_ER_ITEM_POUNDEntity>>().GetSingleEntity(new { CN_S_TASK_NO = taskNo, CN_N_SYNC = sync });
|
return data;
|
}
|
|
public List<TN_ER_ITEM_POUNDEntity> GetList(int sync)
|
{
|
return CreateDAL<DapperDAL<TN_ER_ITEM_POUNDEntity>>().GetList(new { CN_N_SYNC = sync });
|
}
|
|
public TN_ER_ITEM_POUNDEntity GetByTrayCode(string trayCode, string poundNo)
|
{
|
var data = BLLCreator.Create<DapperBLL<TN_ER_ITEM_POUNDEntity>>().GetSingleEntity(new { CN_S_TRAY_CODE = trayCode, CN_S_POUND_NO = poundNo });
|
return data;
|
}
|
|
#endregion
|
|
#region UPDATE
|
|
public OperateResult UpdateSyncState(string poundNo, int syncState, IDbTransaction trans)
|
{
|
var result = BLLCreator.Create<DapperBLL<TN_ER_ITEM_POUNDEntity>>().Update(new { CN_N_SYNC = syncState }, new { CN_S_POUND_NO = poundNo });
|
return result;
|
}
|
|
public OperateResult Update(string taskNo, int sync, LogPara logPara = null)
|
{
|
var result = DALCreator.Create<DapperDAL<TN_ER_ITEM_POUNDEntity>>().Update(new { CN_N_SYNC = sync }, new { CN_S_TASK_NO = taskNo });
|
if (logPara != null) Log.Detail(logPara, "更新WMS中的小磅单" + result.Describe());
|
return result;
|
}
|
|
public OperateResult UpdateWeightAndQty(string poundNo, string trayCode, decimal trayWeight, decimal qty, IDbTransaction trans, LogPara logPara = null)
|
{
|
if (logPara == null) logPara = LogType.LogPara("更新小磅单重量和数量");
|
return DALCreator.Create<DapperDAL<TN_ER_ITEM_POUNDEntity>>().Update(new { CN_F_WEIGHT = trayWeight, CN_F_QTY = qty }, new { CN_S_POUND_NO = poundNo, CN_S_TRAY_CODE = trayCode });
|
}
|
|
#endregion
|
|
#region ADD
|
|
/// <summary>
|
/// 添加小磅单
|
/// </summary>
|
/// <param name="trayCode"></param>
|
/// <param name="trayWeight"></param>
|
/// <param name="logPara"></param>
|
/// <returns></returns>
|
public OperateResult Add(string trayCode, decimal trayWeight, string taskNo, IDbTransaction trans, LogPara logPara = null)
|
{
|
if (logPara == null) logPara = LogType.LogPara("添加小磅单");
|
var trayItems = BLLCreator.Create<TN_WM_B_TRAY_ITEM_RELBLL>().GetByTrayCode(trayCode);
|
if (trayItems.Count() == 0) return OperateResult.Error("未找到当前托盘" + trayCode + "的物料!");
|
|
var trayInfo = BLLCreator.Create<DapperBLL<TN_WM_B_TRAY_INFOEntity>>().GetSingleEntity(new { CN_S_TRAY_CODE = trayCode });
|
var itemPounds = new List<TN_ER_ITEM_POUNDEntity>();
|
|
//小磅单号
|
var postData = "{\"appCode\":\"" + Constants.appCode + "\",\"ruleName\":\"" + Constants.Rule_ItemPound + "\",\"orgId\":\"0\",\"orgFlag\":\"\"}";
|
var itemPoundNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
|
|
//流水号
|
postData = "{\"appCode\":\"" + Constants.appCode + "\",\"ruleName\":\"" + Constants.Rule_SerialNum + "\",\"orgId\":\"0\",\"orgFlag\":\"\"}";
|
var serialNum = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
|
if (serialNum.Length > 3)
|
{
|
serialNum = serialNum.Substring(3, serialNum.Length - 3);
|
}
|
var lotNo = DateTime.Now.ToString("yyyyMMdd") + "02" + serialNum;
|
|
foreach (var trayItem in trayItems)
|
{
|
itemPounds.Add(new TN_ER_ITEM_POUNDEntity
|
{
|
CN_GUID = Guid.NewGuid().ToString(),
|
CN_S_POUND_NO = trayItem.CN_S_FIGURE_NO,
|
CN_S_OP_NO = itemPoundNo,
|
CN_S_ITEM_CODE = trayItem.CN_S_ITEM_CODE,
|
CN_S_ITEM_NAME = trayItem.CN_S_ITEM_NAME,
|
CN_S_ITEM_SPEC = trayItem.CN_S_MODEL,
|
CN_S_STOCK_CODE = trayItem.CN_S_STOCK_CODE,
|
CN_F_WEIGHT = trayWeight,
|
CN_F_QTY = trayItem.CN_F_QUANTITY,
|
CN_DT_WEIGHT = DateTime.Now,
|
CN_S_LOT_NO = lotNo,
|
CN_DT_OPERATION = DateTime.Now,
|
CN_F_TRAY_WEIGHT = trayInfo.CN_F_GROSSWEIGHT,
|
CN_T_CREATE = DateTime.Now,
|
CN_N_SYNC = -1,
|
CN_S_TASK_NO = taskNo,
|
CN_DT_CREATE = DateTime.Now,
|
CN_S_TRAY_CODE = trayCode
|
});
|
}
|
return DALCreator.Create<DapperDAL<TN_ER_ITEM_POUNDEntity>>().AddRange(itemPounds, trans);
|
}
|
|
#endregion
|
|
#region DELETE
|
|
public OperateResult Delete(string taskNo, LogPara logPara = null)
|
{
|
var result = DALCreator.Create<DapperDAL<TN_ER_ITEM_POUNDEntity>>().Delete(new { CN_N_SYNC = -1, CN_S_TASK_NO = taskNo });
|
if (logPara != null) Log.Detail(logPara, "任务取消,删除WMS中的小磅单" + result.Describe());
|
return result;
|
}
|
|
#endregion
|
}
|
}
|