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 { /// /// 小磅单 /// public class TN_ER_ITEM_POUNDBLL : DapperBaseBLL { #region GET public TN_ER_ITEM_POUNDEntity Get(string taskNo, int sync = 0) { var data = BLLCreator.Create>().GetSingleEntity(new { CN_S_TASK_NO = taskNo, CN_N_SYNC = sync }); return data; } public List GetList(int sync) { return CreateDAL>().GetList(new { CN_N_SYNC = sync }); } public TN_ER_ITEM_POUNDEntity GetByTrayCode(string trayCode, string poundNo) { var data = BLLCreator.Create>().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>().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>().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>().Update(new { CN_F_WEIGHT = trayWeight, CN_F_QTY = qty }, new { CN_S_POUND_NO = poundNo, CN_S_TRAY_CODE = trayCode }); } #endregion #region ADD /// /// 添加小磅单 /// /// /// /// /// public OperateResult Add(string trayCode, decimal trayWeight, string taskNo, IDbTransaction trans, LogPara logPara = null) { if (logPara == null) logPara = LogType.LogPara("添加小磅单"); var trayItems = BLLCreator.Create().GetByTrayCode(trayCode); if (trayItems.Count() == 0) return OperateResult.Error("未找到当前托盘" + trayCode + "的物料!"); var trayInfo = BLLCreator.Create>().GetSingleEntity(new { CN_S_TRAY_CODE = trayCode }); var itemPounds = new List(); //小磅单号 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>().AddRange(itemPounds, trans); } #endregion #region DELETE public OperateResult Delete(string taskNo, LogPara logPara = null) { var result = DALCreator.Create>().Delete(new { CN_N_SYNC = -1, CN_S_TASK_NO = taskNo }); if (logPara != null) Log.Detail(logPara, "任务取消,删除WMS中的小磅单" + result.Describe()); return result; } #endregion } }