using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HH.WMS.DAL.InStock
{
public class TN_WM_INSPECTDAL : DapperBaseDAL
{
#region 查询检验单列表
///
/// 查询检验单列表
///
/// 实体
///
public OperateResult GetInspectList(SearchModel searchModel)
{
var condition = searchModel.SearchCondition;
string ConStr = "where 1=1 ";
if (condition != null)
{
if (!string.IsNullOrEmpty(condition.CN_S_INSPECT_NO.ToString()))
{
ConStr = ConStr + " and CN_S_INSPECT_NO like '%" + condition.CN_S_INSPECT_NO + "%'";
}
string state = condition.CN_S_STATE.ToString();
if (!string.IsNullOrEmpty(state))
{
if (state.IndexOf(",") > 0)
{
state = "'" + state.Replace(",", "','") + "'";
ConStr = ConStr + " and CN_S_STATE in (" + state + ")";
}
else
{
ConStr = ConStr + " and CN_S_STATE='" + state + "'";
}
}
if (!string.IsNullOrEmpty(condition.CN_T_START.ToString()))
{
ConStr = ConStr + " and CN_T_CREATE >= '" + Util.ToStringInput(condition.CN_T_START) + " 00:00:00'";
}
if (!string.IsNullOrEmpty(condition.CN_T_END.ToString()))
{
ConStr = ConStr + " and CN_T_CREATE <= '" + Util.ToStringInput(condition.CN_T_END) + " 23:59:59'";
}
if (!string.IsNullOrEmpty(condition.CN_S_OP_TYPE.ToString()))
{
ConStr = ConStr + " and CN_S_OP_TYPE = '" + condition.CN_S_OP_TYPE + "'";
}
}
string sql = @"(select * from TN_WM_INSPECT_MST ) T " + ConStr;
OperateResult result = new OperateResult();
return ExecutePagingResult(sql, searchModel.PageIndex, searchModel.PageSize, "", "");
}
#endregion
#region 检验单送检
///
/// 检验单送检
///
/// 检验单号
/// 送检员
/// 送检部门
///
public OperateResult InspectBeenTest(string inspectNo, string operatorName, string inspectDept)
{
if (string.IsNullOrEmpty(inspectDept))
{
inspectDept = Constants.InspectDept;
}
OperateResult result = new OperateResult();
string sql = "UPDATE TN_WM_INSPECT_MST SET CN_S_STATE=@CN_S_STATE,CN_S_INSPECT_DEPT=@CN_S_INSPECT_DEPT,CN_S_SUBMIT_PERSONER=@CN_S_SUBMIT_PERSONER,CN_T_SUBMIT_INSPECT=case when CN_T_SUBMIT_INSPECT IS null then GETDATE() else CN_T_SUBMIT_INSPECT end WHERE CN_S_INSPECT_NO=@CN_S_INSPECT_NO";
result = ExecuteTranSql(sql, new
{
CN_S_STATE = Constants.State_BeenTest,
CN_S_INSPECT_DEPT = inspectDept,
CN_S_SUBMIT_PERSONER = operatorName,
CN_S_INSPECT_NO = inspectNo
}, null);
return result;
}
#endregion
#region 获取调用OMS接口更新采购订单待检验数据
///
/// 获取调用OMS接口更新采购订单待检验数据
///
/// 检验单号
///
public DataTable GetOmsCheckResultData(string opinspectNo)
{
string sql = @" SELECT DISTINCT ARRM.CN_S_OP_TYPE,INSD.CN_S_INSPECT_NO,INM.CN_S_FROM_NO,IND.CN_N_ROW_NO,INSD.CN_S_ITEM_CODE,INSD.CN_F_QUANTITY
,INSD.CN_F_QUALIFIED,INSD.CN_F_UNQUALIFIED,IND.CN_F_ACTUAL_PRICE ,IND.CN_F_ACTUAL_MONEY
FROM TN_WM_INSPECT_DTL INSD
LEFT JOIN TN_WM_ARRIVAL_MST ARRM ON ARRM.CN_S_ARRIVAL_NO=INSD.CN_S_FROM_NO
LEFT JOIN TN_WM_IN_MST INM ON ARRM.CN_S_FROM_NO=INM.CN_S_OP_NO
LEFT JOIN TN_WM_IN_DTL IND ON IND.CN_S_OP_NO=INM.CN_S_OP_NO AND INSD.CN_N_ROW_NO=IND.CN_N_ROW_NO
WHERE CN_S_INSPECT_NO='" + opinspectNo + "' AND INM.CN_S_FROM_NO IS NOT NULL";
return ExecuteDataTable(sql);
}
#endregion
#region 检验单提交更新到货单数量
///
/// 检验单提交更新到货单数量
///
/// 检验单字符串
///
///
public OperateResult UpdateArrivalQty(string inspectNoStr, IDbTransaction trans)
{
string sql = @"UPDATE TN_WM_ARRIVAL_DTL SET TN_WM_ARRIVAL_DTL.CN_F_QUANTITY = TN_WM_INSPECT_DTL.CN_F_QUALIFIED
FROM TN_WM_ARRIVAL_DTL INNER JOIN TN_WM_INSPECT_DTL ON
TN_WM_ARRIVAL_DTL.CN_S_ARRIVAL_NO=TN_WM_INSPECT_DTL.CN_S_FROM_NO AND
TN_WM_ARRIVAL_DTL.CN_N_ROW_NO=TN_WM_INSPECT_DTL.CN_S_FROM_ROW_NO AND
TN_WM_ARRIVAL_DTL.CN_S_ITEM_CODE=TN_WM_INSPECT_DTL.CN_S_ITEM_CODE
WHERE TN_WM_INSPECT_DTL.CN_S_INSPECT_NO IN('" + inspectNoStr + "')";
return ExecuteTranSql(sql, null, trans);
}
#endregion
}
}