using HH.Redis.ReisModel;
|
using HH.WMS.BLL.Basic;
|
using HH.WMS.Common;
|
using HH.WMS.DAL;
|
using HH.WMS.DAL.InStock;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Entitys;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.BLL.InStock
|
{
|
public class TN_WM_ITEMBACK_MSTBLL : DapperBaseBLL
|
{
|
#region 保存还料数据
|
/// <summary>
|
/// 保存还料数据
|
/// </summary>
|
/// <param name="entity">还料实体</param>
|
/// <param name="userEntity">用户实体</param>
|
/// <returns></returns>
|
public OperateResult SaveItemBack(ItemOnShelfEntity entity, RedisUserEntity userEntity)
|
{
|
OperateResult operateResult = new OperateResult();
|
try
|
{
|
if (entity.row.Count > 0)
|
{
|
TN_WM_ITEMBACK_MSTEntity mstEntity = new TN_WM_ITEMBACK_MSTEntity();
|
List<TN_WM_ITEMBACK_DTLEntity> dtlEntityList = new List<TN_WM_ITEMBACK_DTLEntity>();
|
|
|
string postData = "{\"appCode\":\"AutoWMS\",\"ruleName\":\"" + Constants.ItemBackNo + "\",\"orgId\":\"" + userEntity.CN_S_ORG_GUID + "\",\"orgFlag\":\"" + userEntity.CN_S_ORGFLAG + "\"}";
|
string opNo = WebApiManager.HttpAutoBom_Post("api/BillRule/GenBillNo", postData);
|
if (string.IsNullOrEmpty(opNo))
|
{
|
return OperateResult.Error("生成还料单号失败!");
|
}
|
Log.Info("===>生成还料单号:====>", opNo);
|
#region 拼接主表数据
|
mstEntity.CN_GUID = System.Guid.NewGuid().ToString().ToUpper();
|
mstEntity.CN_S_OWNER = entity.row[0].CN_S_OWNER.ToString();
|
mstEntity.CN_S_OP_NO = opNo;
|
mstEntity.CN_S_STATE = Constants.State_New;
|
mstEntity.CN_S_CREATOR = userEntity.CN_S_LOGIN;
|
mstEntity.CN_S_CREATOR_BY = userEntity.CN_S_NAME;
|
mstEntity.CN_T_CREATE = DateTime.Now;
|
mstEntity.CN_S_MODIFY = userEntity.CN_S_LOGIN;
|
mstEntity.CN_S_MODIFY_BY = userEntity.CN_S_NAME;
|
mstEntity.CN_T_MODIFY = DateTime.Now;
|
#endregion
|
|
Log.Info("===>生成还料主表:====>", JsonConvert.SerializeObject(mstEntity));
|
|
int rowIndex = 1;
|
|
foreach (var item in entity.row)
|
{
|
#region 拼接子表数据
|
TN_WM_ITEMBACK_DTLEntity dtlEntity = new TN_WM_ITEMBACK_DTLEntity();
|
dtlEntity.CN_GUID = System.Guid.NewGuid().ToString().ToUpper();
|
dtlEntity.CN_S_OP_NO = opNo;
|
dtlEntity.CN_N_ROW_NO = rowIndex;
|
dtlEntity.CN_S_UNIQUE_CODE = "";
|
dtlEntity.CN_S_LOT_NO = item.CN_S_LOT_NO;
|
dtlEntity.CN_S_SERIAL_NO = item.CN_S_SERIAL_NO;
|
dtlEntity.CN_S_PRODUCTION_BATCH = item.CN_S_PRODUCTION_BATCH;
|
dtlEntity.CN_S_ITEM_CODE = item.CN_S_ITEM_CODE;
|
dtlEntity.CN_S_ITEM_NAME = item.CN_S_ITEM_NAME;
|
dtlEntity.CN_S_ITEM_STATE = string.IsNullOrEmpty(item.CN_S_ITEM_STATE) ? Constants.ItemState_Qualified : item.CN_S_ITEM_STATE.ToString();
|
dtlEntity.CN_F_PURCHASE_PRICE = item.CN_F_PURCHASE_PRICE;
|
dtlEntity.CN_F_RETAIL_PRICE = item.CN_F_RETAIL_PRICE;
|
dtlEntity.CN_T_PRODUCTION = string.IsNullOrEmpty(item.CN_T_PRODUCTION.ToString()) ? Convert.ToDateTime("1970-01-01") : Convert.ToDateTime(item.CN_T_PRODUCTION);
|
dtlEntity.CN_T_EXPIRATION = string.IsNullOrEmpty(item.CN_T_EXPIRATION.ToString()) ? Convert.ToDateTime("1970-01-01") : Convert.ToDateTime(item.CN_T_EXPIRATION);
|
dtlEntity.CN_S_PACKING_UNIT = item.CN_S_PACKING_UNIT.ToString();
|
dtlEntity.CN_F_PACKING_QTY = Convert.ToDecimal(item.CN_F_PACKING_QTY);
|
dtlEntity.CN_F_QUANTITY = Convert.ToDecimal(item.CN_F_QUANTITY);
|
|
dtlEntity.CN_S_VENDOR_NO = item.CN_S_VENDOR_NO;
|
dtlEntity.CN_S_VENDOR_NAME = item.CN_S_VENDOR_NAME;
|
dtlEntity.CN_S_CREATOR = userEntity.CN_S_LOGIN;
|
dtlEntity.CN_S_CREATOR_BY = userEntity.CN_S_NAME;
|
dtlEntity.CN_T_CREATE = DateTime.Now;
|
dtlEntity.CN_S_MODIFY = userEntity.CN_S_LOGIN;
|
dtlEntity.CN_S_MODIFY_BY = userEntity.CN_S_NAME;
|
dtlEntity.CN_T_MODIFY = DateTime.Now;
|
|
dtlEntityList.Add(dtlEntity);
|
rowIndex++;
|
#endregion
|
}
|
|
Log.Info("===>生成还料子表:====>", JsonConvert.SerializeObject(dtlEntityList));
|
|
operateResult = UseTransaction(trans =>
|
{
|
if (mstEntity != null)
|
{
|
//新增还料主表
|
CreateDAL<DapperDAL<TN_WM_ITEMBACK_MSTEntity>>().Add(mstEntity, trans);
|
}
|
|
if (dtlEntityList.Any())
|
{
|
//新增还料子表
|
CreateDAL<DapperDAL<TN_WM_ITEMBACK_DTLEntity>>().AddRange(dtlEntityList, trans);
|
}
|
});
|
Log.Info("===>保存还料执行结果:====>", JsonConvert.SerializeObject(operateResult));
|
}
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message.ToString());
|
}
|
|
return operateResult;
|
|
|
|
}
|
#endregion
|
|
/// <summary>
|
/// 获取可还料单列表
|
/// </summary>
|
/// <param name="CN_S_OP_NO">模糊查询条件:还料单号</param>
|
/// <returns></returns>
|
public List<TN_WM_ITEMBACK_MSTEntity> GetItemBackList(string opNo)
|
{
|
return CreateDAL<TN_WM_ITEMBACK_MSTDAL>().GetItemBackList(opNo);
|
}
|
|
#region 根据单号获取主子表信息(PDA)
|
/// <summary>
|
/// 根据单号获取主子表信息
|
/// </summary>
|
/// <param name="CN_S_OP_NO">模糊查询条件:还料单号</param>
|
/// <returns></returns>
|
public TN_WM_ITEMBACK_MSTEntity GetItemBackMstAndDtl(string opNo)
|
{
|
TN_WM_ITEMBACK_MSTEntity mstEntity = CreateDAL<DapperDAL<TN_WM_ITEMBACK_MSTEntity>>().GetSingleEntity(new { CN_S_OP_NO = opNo });
|
List<TN_WM_ITEMBACK_DTLEntity> dtlEntity = CreateDAL<DapperDAL<TN_WM_ITEMBACK_DTLEntity>>().GetList(new { CN_S_OP_NO = opNo });
|
foreach (var item in dtlEntity)
|
{
|
AutoBomItemEntity itemEnity = BLLCreator.Create<TN_WMS_ITEMBLL>().GetItem(item.CN_S_ITEM_CODE);
|
item.CN_S_MODEL = itemEnity == null ? "" : itemEnity.CN_S_MODEL;
|
}
|
mstEntity.DTLEntity = dtlEntity;
|
return mstEntity;
|
}
|
#endregion
|
}
|
}
|