using HH.Redis.ReisModel;
|
using HH.WMS.Common;
|
using HH.WMS.DAL;
|
using HH.WMS.DAL.Basic;
|
using HH.WMS.DAL.InStock;
|
using HH.WMS.Entitys;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Common;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace HH.WMS.BLL.InStock
|
{
|
public class TN_WM_HKINBLL : DapperBaseBLL
|
{
|
#region 新增工单
|
/// <summary>
|
/// 新增工单
|
/// </summary>
|
/// <param name="Entity">工单实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult AddInOrder(TN_WM_WORK_ORDEREntity Entity, RedisUserEntity t)
|
{
|
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//新增主表
|
CreateDAL<DapperDAL<TN_WM_WORK_ORDEREntity>>().Add(Entity, trans);
|
|
});
|
|
return operateResult;
|
}
|
#endregion
|
|
#region 修改工单
|
/// <summary>
|
/// 修改工单
|
/// </summary>
|
/// <param name="Entity">工单实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult UpdateInOrder(TN_WM_WORK_ORDEREntity entity)
|
{
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
// WorkOrderQtyReportBack("GD20081200097", "19", "9", trans);
|
//修改主表
|
CreateDAL<DapperDAL<TN_WM_WORK_ORDEREntity>>().Update(entity, new { CN_S_WO_NO = entity.CN_S_WO_NO }, trans);
|
});
|
|
return operateResult;
|
}
|
#endregion
|
|
#region 删除工单
|
/// <summary>
|
/// 删除工单
|
/// </summary>
|
/// <param name="opNo">工单号</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult DeleteInOrder(string opNo)
|
{
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//删除主表
|
CreateDAL<DapperDAL<TN_WM_WORK_ORDEREntity>>().Delete(new { CN_S_WO_NO = opNo }, trans);
|
});
|
|
return operateResult;
|
}
|
#endregion
|
|
#region 提交工单
|
/// <summary>
|
/// 提交工单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult SubmitInOrder(string opNo)
|
{
|
var workOrderEntity = BLLCreator.Create<DapperBLL<TN_WM_WORK_ORDEREntity>>().GetSingleEntity(new
|
{
|
CN_S_WO_NO = opNo
|
});
|
if (workOrderEntity != null)
|
{
|
var hasEntity = BLLCreator.Create<DapperBLL<TN_WM_WORK_ORDEREntity>>().GetSingleEntity(new
|
{
|
CN_S_LINE = workOrderEntity.CN_S_LINE,
|
CN_S_STATUS = Constants.State_HK_Excuting
|
});
|
if (hasEntity != null)
|
{
|
return OperateResult.Error("执行失败!产线<" + hasEntity.CN_S_LINE + ">已存在执行中的工单:" + hasEntity.CN_S_WO_NO + "!");
|
}
|
}
|
else
|
{
|
return OperateResult.Error("工单:" + opNo + "不存在!");
|
}
|
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//提交主表
|
CreateDAL<TN_WM_HKINDAL>().ExamineMst(opNo, Constants.State_HK_Excuting, this.userInfo, trans);
|
});
|
return operateResult;
|
}
|
#endregion
|
|
#region 强制完成工单
|
/// <summary>
|
/// 强制完成工单
|
/// </summary>
|
/// <param name="entity">审批实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2019-02-20</History>
|
public OperateResult CompleteInOrder(string opNo)
|
{
|
OperateResult operateResult = UseTransaction(trans =>
|
{
|
//提交主表
|
CreateDAL<TN_WM_HKINDAL>().ExamineMst(opNo, Constants.State_HK_QZComplete, this.userInfo, trans);
|
});
|
return operateResult;
|
}
|
#endregion
|
|
#region 查询工单列表
|
/// <summary>
|
/// 查询工单列表
|
/// </summary>
|
/// <param name="searchModel">实体</param>
|
/// <returns></returns>
|
/// <History>[HANHE(XDL)] CREATED BY 2018-12-18</History>
|
public OperateResult GetInOrderList(SearchModel searchModel)
|
{
|
return CreateDAL<TN_WM_HKINDAL>().GetInOrderList(searchModel);
|
}
|
#endregion
|
|
#region 接口:提供工单号和排产数量,增加工单中累计数
|
/// <summary>
|
/// 回报数量
|
/// </summary>
|
/// <param name="woNo">工单号</param>
|
/// <param name="reportQty">回报数量</param>
|
/// <param name="trayQty">托盘码盘数</param>
|
/// <returns></returns>
|
public OperateResult WorkOrderQtyReportBack(string woNo, string reportQty, string trayQty, IDbTransaction trans)
|
{
|
|
Log.Info("开始进入回报接口:WorkOrderQtyReportBack,传参", woNo + "||" + reportQty + "||" + trayQty);
|
|
if (string.IsNullOrEmpty(woNo) || string.IsNullOrEmpty(reportQty) || string.IsNullOrEmpty(trayQty))
|
{
|
return OperateResult.Error("参数缺失!");
|
}
|
if (trayQty == "0")
|
{
|
return OperateResult.Error("托盘码盘数不能为0!");
|
}
|
|
var workOrderEntity = BLLCreator.Create<DapperBLL<TN_WM_WORK_ORDEREntity>>().GetSingleEntity(new
|
{
|
CN_S_WO_NO = woNo
|
});
|
|
if (workOrderEntity != null)
|
{
|
//标记是否已经完成
|
bool isAllOver = false;
|
|
if (workOrderEntity.CN_S_STATUS != Constants.State_HK_Excuting)
|
{
|
return OperateResult.Error("工单:" + woNo + "状态非<执行中>,禁止回报数量!");
|
}
|
if (workOrderEntity.CN_S_STATUS == Constants.State_HK_QZComplete)
|
{
|
return OperateResult.Error("工单:" + woNo + "已被强制完成,禁止回报数量!");
|
}
|
|
decimal addupQty = workOrderEntity.CN_F_REAL_QTY + Convert.ToDecimal(reportQty);
|
if (addupQty > workOrderEntity.CN_F_PLAN_QTY)
|
{
|
return OperateResult.Error("工单:" + woNo + "实际生产数量<" + workOrderEntity.CN_F_REAL_QTY + ">与本次回报数量<" + reportQty + ">之和将超过计划数量<" + workOrderEntity.CN_F_PLAN_QTY + ">,禁止回报数量!");
|
}
|
|
decimal thisTrayQty = Math.Ceiling(Convert.ToDecimal(reportQty) / Convert.ToDecimal(trayQty));
|
decimal addupTrayQty = workOrderEntity.CN_F_REAL_TRAY_QTY + thisTrayQty;
|
if (addupTrayQty > workOrderEntity.CN_F_PLAN_TRAY_QTY)
|
{
|
return OperateResult.Error("工单:" + woNo + "实际生产托数<" + workOrderEntity.CN_F_REAL_TRAY_QTY + ">与本次回报托数<" + thisTrayQty + ">之和将超过计划托数<" + workOrderEntity.CN_F_PLAN_TRAY_QTY + ">,禁止回报数量!");
|
}
|
|
if (addupQty == workOrderEntity.CN_F_PLAN_QTY && addupTrayQty == workOrderEntity.CN_F_PLAN_TRAY_QTY)
|
{
|
isAllOver = true;
|
}
|
|
Log.Info("位置一:workOrderEntity--》", JsonConvert.SerializeObject(workOrderEntity));
|
Log.Info("位置二:addupQty--》", addupQty.ToString());
|
Log.Info("位置三:thisTrayQty--》", thisTrayQty.ToString());
|
Log.Info("位置四:addupTrayQty--》", addupTrayQty.ToString());
|
Log.Info("位置五:isAllOver--》", isAllOver.ToString());
|
|
OperateResult up = new OperateResult();
|
if (isAllOver)
|
{
|
up = CreateDAL<DapperDAL<TN_WM_WORK_ORDEREntity>>().Update(new { CN_F_REAL_QTY = addupQty, CN_F_REAL_TRAY_QTY = addupTrayQty, CN_S_STATUS = Constants.State_HK_Complete, CN_T_MODIFY = DateTime.Now }, new { CN_S_WO_NO = woNo }, trans);
|
}
|
else
|
{
|
up = CreateDAL<DapperDAL<TN_WM_WORK_ORDEREntity>>().Update(new { CN_F_REAL_QTY = addupQty, CN_F_REAL_TRAY_QTY = addupTrayQty }, new { CN_S_WO_NO = woNo }, trans);
|
}
|
|
|
Log.Info("位置六:up--》", JsonConvert.SerializeObject(up));
|
Log.Info("结束本次回报!", "");
|
|
return up;
|
}
|
else
|
{
|
return OperateResult.Error("工单:" + woNo + "不存在!");
|
}
|
|
|
return OperateResult.Succeed();
|
}
|
|
#endregion
|
|
}
|
}
|