using HH.WMS.Common; using HH.WMS.Entitys; using HH.WMS.Entitys.Basic; using HH.WMS.Entitys.Common; using HH.WMS.Entitys.Entitys; 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_ARRIVALDAL : DapperBaseDAL { #region 更新到货单状态 /// /// 提交到货单-主表 /// /// 审批实体 /// 审批类型(已提交、已审核、已反审、已驳回) /// /// [HANHE(XDL)] CREATED BY 2018-11-14 public OperateResult ExamineMst(List entity, string examineType, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var model in entity) { StringBuilder strSql = new StringBuilder(); strSql.Append(" UPDATE TN_WM_ARRIVAL_MST SET CN_S_STATE=@CN_S_STATE,CN_S_AUDITOR=@CN_S_AUDITOR,CN_T_AUDIT_TIME=@CN_T_AUDIT_TIME,CN_S_AUDIT_REMARK=@CN_S_AUDIT_REMARK WHERE CN_S_ARRIVAL_NO=@CN_S_ARRIVAL_NO"); result = ExecuteTranSql(strSql.ToString(), new { CN_S_STATE = examineType, CN_S_ARRIVAL_NO = model.CN_S_FROM_NO, CN_S_AUDITOR = model.CN_S_CREATOR, CN_T_AUDIT_TIME = DateTime.Now, CN_S_AUDIT_REMARK = model.CN_S_OPINION }, trans); if (result.Status == ResultStatus.Error) return result; } return result; } /// /// 提交到货单-子表 /// /// 审批实体 /// 审批类型(已提交、已审核、已反审、已驳回) /// /// [HANHE(XDL)] CREATED BY 2018-11-14 public OperateResult ExamineDtl(List entity, string examineType, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var model in entity) { StringBuilder strSql = new StringBuilder(); strSql.Append(" UPDATE TN_WM_ARRIVAL_DTL SET CN_S_STATE=@CN_S_STATE WHERE CN_S_ARRIVAL_NO=@CN_S_ARRIVAL_NO"); result = ExecuteTranSql(strSql.ToString(), new { CN_S_STATE = examineType, CN_S_ARRIVAL_NO = model.CN_S_FROM_NO }, trans); if (result.Status == ResultStatus.Error) return result; } return result; } #endregion #region 更改到货单状态 /// /// 更改到货单状态(已码盘) /// /// 更新列表 /// 状态 /// [HANHE(XDL)] CREATED BY 2018-11-17 public OperateResult UpdateArrivalState(List list, string state) { OperateResult result = new OperateResult(); foreach (var item in list) { StringBuilder sbStr = new StringBuilder(); sbStr.Append(" IF EXISTS( SELECT CN_S_ARRIVAL_NO FROM TN_WM_ARRIVAL_DTL P LEFT JOIN "); sbStr.Append(" (SELECT SUM(CN_F_QUANTITY) CN_F_QUANTITY,CN_S_ITEM_CODE,CN_S_LOT_NO FROM TN_WM_B_TRAY_ITEM_REL "); sbStr.Append(" WHERE CN_S_LOT_NO='" + item.CN_S_LOT_NO + "' GROUP BY CN_S_LOT_NO,CN_S_ITEM_CODE) DT ON P.CN_S_ITEM_CODE=DT.CN_S_ITEM_CODE "); sbStr.Append(" WHERE DT.CN_F_QUANTITY>=P.CN_F_QUANTITY AND P.CN_S_ARRIVAL_NO='" + item.CN_S_OP_NO + "') "); sbStr.Append(" UPDATE TN_WM_ARRIVAL_DTL SET CN_S_STATE='" + state + "' WHERE CN_S_ARRIVAL_NO='" + item.CN_S_OP_NO + "' "); result = ExecuteTranSql(sbStr.ToString(), null, null); if (result.Status == ResultStatus.Error) return result; } return result; } #endregion #region 入库单联机新增-选择来源 /// /// 入库单页面,选择来源单据 /// /// 实体 /// /// [HANHE(XDL)] CREATED BY 2018-11-22 public OperateResult GetFromArrivalList(SearchModel searchModel) { var condition = searchModel.SearchCondition; string ConStr = "where 1=1 "; if (condition != null) { if (!string.IsNullOrEmpty(condition.CN_S_ARRIVAL_NO.ToString())) { ConStr = ConStr + " and CN_S_ARRIVAL_NO like '%" + Util.ToStringInput(condition.CN_S_ARRIVAL_NO) + "%'"; } if (!string.IsNullOrEmpty(condition.CN_S_OP_TYPE.ToString())) { ConStr = ConStr + " and CN_S_OP_TYPE = '" + Util.ToStringInput(condition.CN_S_OP_TYPE) + "'"; } } string sql = @"(select CN_S_ARRIVAL_NO CN_S_OP_NO,*,CN_S_VENDOR_NO CN_S_VENDOR_CODE from TN_WM_ARRIVAL_MST WHERE CN_S_STATE in ('" + Constants.State_Audit + "','" + Constants.State_BeenCheck + "')) T " + ConStr; OperateResult result = new OperateResult(); return ExecutePagingResult(sql, searchModel.PageIndex, searchModel.PageSize, "", ""); } public List GetFromArrivalDtl(string arrivalNo) { StringBuilder sbStr = new StringBuilder(); sbStr.Append("SELECT * FROM TN_WM_ARRIVAL_DTL WHERE CN_S_ARRIVAL_NO='" + arrivalNo + "'"); return ExecuteQuery(sbStr.ToString()); } #endregion #region 查询到货单列表 /// /// 查询到货单列表 /// /// 实体 /// /// [HANHE(XDL)] CREATED BY 2018-11-24 public DataTable GetArrivalList(SearchModel searchModel, out long total, bool isExport) { var condition = searchModel.SearchCondition; string sql = " select * from TN_WM_ARRIVAL_MST where 1=1 "; string ConStr = ""; if (condition != null) { if (!string.IsNullOrEmpty(condition.CN_S_ARRIVAL_NO.ToString())) { ConStr = ConStr + " and CN_S_ARRIVAL_NO like '%" + Util.ToStringInput(condition.CN_S_ARRIVAL_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_S_OP_TYPE.ToString())) { ConStr = ConStr + " and CN_S_OP_TYPE = '" + Util.ToStringInput(condition.CN_S_OP_TYPE) + "'"; } 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_VENDOR_NAME.ToString())) { ConStr = ConStr + " and CN_S_VENDOR_NAME like '%" + Util.ToStringInput(condition.CN_S_VENDOR_NAME) + "%'"; } if (!string.IsNullOrEmpty(condition.IsHandWork.ToString())) { if (condition.IsHandWork.ToString() == "true" || condition.IsHandWork.ToString() == "True") ConStr = ConStr + " and (CN_S_FROM_NO='' or CN_S_FROM_NO IS NULL) "; else ConStr = ConStr + " and (CN_S_FROM_NO!='' and CN_S_FROM_NO IS not NULL) "; } } if (!string.IsNullOrEmpty(ConStr)) { sql = sql + ConStr; } OperateResult result = new OperateResult(); DataTable dt = new DataTable(); if (!isExport) { return ExecutePagingData(" (" + sql + ") t ", searchModel.PageIndex, searchModel.PageSize, out total, "", ""); } else { total = 0;//无效 return ExecuteDataTable(sql, ""); } } #endregion #region 查询到货单主表 /// /// 查询到货单主表 /// /// /// [HANHE(lt)] CREATED BY 2018-11-24 public DataTable GetMstList(string sqlwhere) { string sql = "select * from TN_WM_ARRIVAL_MST {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion #region 查询到货单子表 /// /// 查询到货单子表 /// /// /// [HANHE(lt)] CREATED BY 2018-11-24 public DataTable GetDtlList(string sqlwhere) { string sql = "select * from TN_WM_ARRIVAL_DTL {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion #region 查询到货单 /// /// 查询到货单子表 /// /// /// [HANHE(lt)] CREATED BY 2018-11-24 public DataTable GetMstJoinDtl(string sqlwhere) { string sql = "SELECT * FROM tn_wm_arrival_mst AS a INNER JOIN tn_wm_arrival_dtl AS b ON b.CN_S_ARRIVAL_NO = a.CN_S_ARRIVAL_NO {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion #region 获取OMS确认数据 /// /// 获取OMS确认数据 /// /// /// public DataTable GetArrivalOmsConfirmData(string ArrivalNo) { string sql = @"SELECT ARRM.CN_S_OP_TYPE,INM.CN_S_OP_NO,ARRD.CN_N_FROM_ROW_NO,INM.CN_S_FROM_NO,INM.CN_S_OWNER,INM.CN_S_STOCK_CODE,INM.CN_GUID,INM.CN_S_STATE, ARRD.CN_S_ITEM_CODE,ARRD.CN_S_ITEM_NAME,ARRD.CN_F_QUANTITY PLANQTY,ARRD.CN_F_QUANTITY ACTUALQTY FROM TN_WM_ARRIVAL_DTL ARRD LEFT JOIN TN_WM_ARRIVAL_MST ARRM ON ARRM.CN_GUID=ARRD.CN_S_MSTGUID LEFT JOIN tn_wm_in_mst INM ON INM.CN_S_OP_NO=ARRM.CN_S_FROM_NO WHERE ARRD.CN_S_ARRIVAL_NO='" + ArrivalNo + @"' AND INM.CN_S_OP_TYPE!='销售退库' AND INM.CN_S_FROM_NO IS NOT NULL "; return ExecuteDataTable(sql); } #endregion /// /// 升累积到货数的量 /// /// /// /// public OperateResult UpdateAddupAllot(string opNoList, IDbTransaction trans) { string sql = "UPDATE TN_WM_ARRIVAL_DTL SET CN_F_ADDUP_ALLOT_QTY=ISNULL(CN_F_ADDUP_ALLOT_QTY,0)+ISNULL(CN_F_QUANTITY,0) "; sql = sql + " WHERE CN_S_ARRIVAL_NO in ('" + opNoList + "') "; return ExecuteTranSql(sql, null, trans); } public DataTable GetArrivalDtlData(string arrivalNo) { string sql = @" SELECT d.*,INM.CN_S_OWNER,m.CN_S_DELIVERY_NOTE,m.CN_S_OP_TYPE,m.CN_S_STOCK_CODE ,m.CN_T_DATE,m.CN_S_LOT_CODE,m.CN_S_DELIVERY_NOTE,m.CN_S_VENDOR_NO,m.CN_S_VENDOR_NAME ,IND.CN_F_ACTUAL_PRICE ,IND.CN_F_ACTUAL_MONEY,INM.CN_S_FROM_NO as CN_S_CG_FROM_NO,IND.CN_N_ROW_NO FROM TN_WM_ARRIVAL_DTL d left join tn_wm_arrival_mst m on d.CN_S_ARRIVAL_NO=m.CN_S_ARRIVAL_NO left join TN_WM_IN_MST INM on inm.CN_S_OP_NO=m.CN_S_FROM_NO LEFT JOIN TN_WM_IN_DTL IND ON IND.CN_S_OP_NO=INM.CN_S_OP_NO and d.CN_N_FROM_ROW_NO=ind.CN_N_ROW_NO WHERE d.CN_S_ARRIVAL_NO='" + arrivalNo + @"'"; return ExecuteDataTable(sql); } /// /// 降累积到货数的量 /// /// /// /// public OperateResult DeleteAddupAllot(string opNoList, IDbTransaction trans) { OperateResult result = new OperateResult(); string sql = @" UPDATE TN_WM_ARRIVAL_DTL SET CN_F_ADDUP_ALLOT_QTY=ISNULL(CN_F_ADDUP_ALLOT_QTY,0)-ISNULL(CN_F_QUANTITY,0) WHERE CN_S_ARRIVAL_NO in (" + opNoList + ")"; result = ExecuteTranSql(sql.ToString(), null, trans); return result; } public DataTable GetPutPosition(string arrivalCode, string itemCode) { string sql = @" SELECT DTL.CN_S_PUT_POSITION,DTL.CN_S_ITEM_CODE,DTL.CN_S_ITEM_NAME,DTL.CN_S_ITEM_STATE,MST.CN_S_OWNER,MST.CN_S_LOT_CODE,DTL.CN_S_PRODUCTION_BATCH FROM TN_WM_ARRIVAL_DTL DTL left join TN_WM_ARRIVAL_MST MST ON DTL.CN_S_ARRIVAL_NO=MST.CN_S_ARRIVAL_NO WHERE DTL.CN_S_ARRIVAL_NO='" + arrivalCode + "' AND DTL.CN_S_ITEM_CODE='" + itemCode + "'"; return ExecuteDataTable(sql); } } }