using HH.WMS.Entitys; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using Dapper; using HH.WMS.Common; using HH.WMS.Entitys.Basic; using HH.WMS.Entitys.Common; namespace HH.WMS.DAL.InStock { /// /// 增加库存业务表-入库单数据处理层 /// public class TN_WM_INCREASE_INVENTORYDAL : 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_INCREASE_INVENTORY_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_OP_NO=@CN_S_OP_NO"); result = ExecuteTranSql(strSql.ToString(), new { CN_S_STATE = examineType, CN_S_OP_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_INCREASE_INVENTORY_DTL SET CN_S_STATE=@CN_S_STATE WHERE CN_S_OP_NO=@CN_S_OP_NO"); result = ExecuteTranSql(strSql.ToString(), new { CN_S_STATE = examineType, CN_S_OP_NO = model.CN_S_FROM_NO }, trans); if (result.Status == ResultStatus.Error) return result; } return result; } #endregion #region 查询数据,返回数据集合 //根据入库单号获取数据集合 /// /// 根据入库单号获取数据 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-15 public DataTable GetIncreaseData(string opNo) { StringBuilder sbStr = new StringBuilder(); DataTable dt = new DataTable(); sbStr.Append("SELECT MST.CN_S_VENDOR_NO,MST.CN_S_VENDOR_NAME,MST.CN_S_OP_TYPE,MST.CN_S_FROM_NO,(SELECT TOP 1 CN_S_OPERATION_CODE FROM dbo.tn_wm_operation_type ty WHERE ty.CN_S_OPERATION_NAME=MST.CN_S_OP_TYPE ) CN_S_OPERATION_CODE,MST.CN_S_OWNER,MST.CN_S_STOCK_CODE,MST.CN_S_LOT_NO,DTL.* FROM TN_WM_INCREASE_INVENTORY_DTL DTL LEFT JOIN TN_WM_INCREASE_INVENTORY_MST MST "); sbStr.Append("ON DTL.CN_S_OP_NO =MST.CN_S_OP_NO "); if (!string.IsNullOrEmpty(opNo)) { sbStr.Append("WHERE MST.CN_S_OP_NO='" + opNo + "' "); } else { return dt; } return ExecuteDataTable(sbStr.ToString()); } public DataTable GetIncreaseList(SearchModel searchModel, out long total, bool isExport) { var condition = searchModel.SearchCondition; string sql = " select * from TN_WM_INCREASE_INVENTORY_MST where 1=1 "; string ConStr = ""; if (condition != null) { if (!string.IsNullOrEmpty(condition.CN_S_OP_NO.ToString())) { ConStr = ConStr + " and CN_S_OP_NO like '%" + Util.ToStringInput(condition.CN_S_OP_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'"; } ConStr = ConStr + " and CN_S_OP_TYPE != '盈亏入库' and CN_S_OP_TYPE != '盘盈入库'"; 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_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, ""); } // return ExecutePagingResult(sql, searchModel.PageIndex, searchModel.PageSize, "", ""); } #endregion #region 获取可上架入库单列表(PDA) /// /// 获取可上架入库单列表 /// /// 模糊查询条件:入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-13 public List GetIncreaseInventoryList(string CN_S_OP_NO) { StringBuilder sbStr = new StringBuilder(); sbStr.Append("SELECT CN_S_OP_NO,CN_S_OP_TYPE,CN_S_STOCK_CODE,CN_S_VENDOR_NO,CN_S_VENDOR_NAME,CN_S_CREATOR,CN_S_CREATOR_BY,CN_T_CREATE from TN_WM_INCREASE_INVENTORY_MST "); sbStr.Append("WHERE CN_S_OP_NO IN (SELECT CN_S_OP_NO FROM TN_WM_INCREASE_INVENTORY_DTL WHERE CN_S_STATE='" + Constants.State_Audit + "' AND CN_S_OP_TYPE!='盘盈入库' "); switch (NowDbType) { case DBTYPE.MSSQL: sbStr.Append("AND ISNULL(CN_F_UPSHELF_QTY,0)(sbStr.ToString()).ToList(); } #endregion #region 获取可码盘入库单列表(PDA) /// /// 获取可码盘入库单列表 /// /// 模糊查询条件:入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-12-5 public List GetInListWithCodedisc(string CN_S_OP_NO) { string sql = "SELECT CN_S_OP_NO,CN_S_OP_TYPE,CN_S_STOCK_CODE,CN_S_VENDOR_NO,CN_S_VENDOR_NAME,CN_S_CREATOR,CN_S_CREATOR_BY,CN_T_CREATE from TN_WM_INCREASE_INVENTORY_MST WHERE CN_S_OP_NO IN (SELECT CN_S_OP_NO FROM TN_WM_INCREASE_INVENTORY_DTL WHERE ISNULL(CN_F_ADD_ONTRAY_QTY,0)(sql); } #endregion #region 根据入库单号获取入库单明细(PDA) /// /// 根据入库单号获取入库单明细 /// /// 入库单号 /// /// [HANHE(XDL)] CREATED BY 2018-11-13 public List GetIncreaseInventoryDetail(string CN_S_OP_NO) { StringBuilder sbStr = new StringBuilder(); sbStr.Append("SELECT MST.CN_S_OP_TYPE,MST.CN_S_STOCK_CODE,MST.CN_S_VENDOR_NO,MST.CN_S_VENDOR_NAME,DTL.CN_S_OP_NO, "); sbStr.Append("DTL.CN_S_ITEM_CODE,DTL.CN_S_ITEM_NAME,DTL.CN_S_ITEM_STATE,DTL.CN_F_QUANTITY,MST.CN_S_LOT_NO,MST.CN_S_OWNER,DTL.CN_F_ACTUAL_PRICE,DTL.CN_T_PRODUCTION,DTL.CN_T_EXPIRATION,DTL.CN_S_PRODUCTION_BATCH "); sbStr.Append("FROM TN_WM_INCREASE_INVENTORY_DTL DTL LEFT JOIN TN_WM_INCREASE_INVENTORY_MST MST "); sbStr.Append("ON DTL.CN_S_OP_NO=MST.CN_S_OP_NO "); if (!string.IsNullOrEmpty(CN_S_OP_NO)) { sbStr.Append("WHERE MST.CN_S_OP_NO='" + CN_S_OP_NO.Trim() + "' "); } return ExecuteQuery(sbStr.ToString()).ToList(); } #endregion #region 更新累积入库数 /// /// 更新累积入库数 /// /// 更新实体集合 /// /// /// [HANHE(XDL)] CREATED BY 2018-11-14 public OperateResult UpdateAllocQty(List list, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var item in list) { string sq1 = "UPDATE TN_WM_INCREASE_INVENTORY_DTL SET CN_F_ALLOT_QTY=CN_F_ALLOT_QTY+@CN_F_ALLOT_QTY WHERE CN_S_OP_NO=@CN_S_OP_NO AND CN_S_ITEM_CODE=@CN_S_ITEM_CODE"; result = ExecuteTranSql(sq1, new { CN_F_ALLOT_QTY = item.CN_F_QUANTITY, CN_S_OP_NO = item.CN_S_FROM_NO, CN_S_ITEM_CODE = item.CN_S_ITEM_CODE }, trans); if (result.Status == ResultStatus.Error) return result; } return result; } #endregion #region 获取入库 /// /// 获取入库 /// /// 条件 /// /// [HANHE(lt)] CREATED BY 2018-11-15 public DataTable GetDataTableInventory(string sqlwhere) { string sql = "SELECT * FROM TN_WM_INCREASE_INVENTORY_MST AS a INNER JOIN dbo.TN_WM_INCREASE_INVENTORY_DTL AS b ON b.CN_S_OP_NO = a.CN_S_OP_NO where {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion #region 获取入库列表 /// /// 获取入库列表 /// /// 条件 /// /// [HANHE(lt)] CREATED BY 2018-11-22 public DataTable GetList(string sqlwhere) { string sql = "select * from TN_WM_INCREASE_INVENTORY_MST where {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion #region 获取入库订单列表 /// /// 获取入库订单列表 /// /// 条件 /// /// [HANHE(lt)] CREATED BY 2018-11-22 public DataTable GetInMstList(string sqlwhere) { string sql = "select * from tn_wm_in_mst {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } /// /// 获取入库订单列表 /// /// 条件 /// /// [HANHE(lt)] CREATED BY 2018-11-22 public DataTable GetInDtlList(string sqlwhere) { string sql = "select * from tn_wm_in_dtl {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion #region 更改入库单状态 /// /// 更改入库单状态(已码盘) /// /// 更新列表 /// 状态 /// [HANHE(XDL)] CREATED BY 2018-11-17 public OperateResult UpdateInventoryState(List list, string state) { OperateResult result = new OperateResult(); foreach (var item in list) { StringBuilder sbStr = new StringBuilder(); sbStr.Append(" IF EXISTS( SELECT CN_S_OP_NO FROM TN_WM_INCREASE_INVENTORY_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_OP_NO='" + item.CN_S_OP_NO + "') "); sbStr.Append(" UPDATE TN_WM_INCREASE_INVENTORY_DTL SET CN_S_STATE='" + state + "' WHERE CN_S_OP_NO='" + item.CN_S_OP_NO + "' "); result = ExecuteTranSql(sbStr.ToString(), null, null); if (result.Status == ResultStatus.Error) return result; } return result; } /// /// 获取采购单 /// /// 条件 /// /// [HANHE(lt)] CREATED BY 2018-11-15 public DataTable GetMstJoinDtl(string sqlwhere) { string sql = "SELECT * FROM TN_WM_IN_MST AS a INNER JOIN TN_WM_IN_DTL AS b ON b.CN_S_OP_NO = a.CN_S_OP_NO {0}"; sql = string.Format(sql, sqlwhere); return ExecuteDataTable(sql); } #endregion /// ///物料上架-根据单号和物料编码更新累积上架数 /// /// /// public OperateResult updateUpselefQty(List list, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var item in list) { string sql = @"UPDATE TN_WM_INCREASE_INVENTORY_DTL SET CN_F_UPSHELF_QTY=ISNULL(CN_F_UPSHELF_QTY,0)+" + Convert.ToDecimal(item.CN_F_QUANTITY) + " WHERE CN_S_OP_NO='" + item.CN_S_FROM_NO + "' AND CN_S_ITEM_CODE='" + item.CN_S_ITEM_CODE + "' "; Log.Info("更新累积上架数", sql); result = ExecuteTranSql(sql, null, trans); if (result.Status == ResultStatus.Error) return result; } return result; } /// /// 物料码盘-根据单号和物料编码更新累积码盘数 /// /// /// public OperateResult updateOntrayQty(List list, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var item in list) { string sql = @"UPDATE TN_WM_INCREASE_INVENTORY_DTL SET CN_F_ADD_ONTRAY_QTY=ISNULL(CN_F_ADD_ONTRAY_QTY,0)+" + Convert.ToDecimal(item.CN_F_QUANTITY) + " WHERE CN_S_OP_NO='" + item.CN_S_OP_NO + "' AND CN_S_ITEM_CODE='" + item.CN_S_ITEM_CODE + "' "; Log.Info("更新累积码盘数", sql); result = ExecuteTranSql(sql, null, trans); if (result.Status == ResultStatus.Error) return result; } return result; } /// /// 物料上架-根据单号和物料编码更新累积码盘数 /// /// /// public OperateResult updateOntrayQty(List list, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var item in list) { string sql = @"UPDATE TN_WM_INCREASE_INVENTORY_DTL SET CN_F_ADD_ONTRAY_QTY=ISNULL(CN_F_ADD_ONTRAY_QTY,0)+" + Convert.ToDecimal(item.CN_F_QUANTITY) + " WHERE CN_S_OP_NO='" + item.CN_S_FROM_NO + "' AND CN_S_ITEM_CODE='" + item.CN_S_ITEM_CODE + "' "; Log.Info("更新累积码盘数", sql); result = ExecuteTranSql(sql, null, trans); if (result.Status == ResultStatus.Error) return result; } return result; } /// ///整托上架-根据批次和物料编码更新累积上架数 /// /// /// public OperateResult UpdateUpselefQtyByLot(List Group_List, IDbTransaction trans) { OperateResult result = new OperateResult(); foreach (var item in Group_List) { if (string.IsNullOrEmpty(item.CN_S_LOT_NO)) continue;//没有批次的话,不用更新入库单累积上架数 string sql = @"UPDATE TN_WM_INCREASE_INVENTORY_DTL SET CN_F_UPSHELF_QTY=ISNULL(CN_F_UPSHELF_QTY,0)+" + Convert.ToDecimal(item.CN_F_QUANTITY) + " WHERE CN_S_OP_NO in (select CN_S_OP_NO from TN_WM_INCREASE_INVENTORY_MST where CN_S_LOT_NO ='" + item.CN_S_LOT_NO + "') AND CN_S_ITEM_CODE='" + item.CN_S_ITEM_CODE + "' "; result = ExecuteTranSql(sql, null, trans); if (result.Status == ResultStatus.Error) return result; } return result; } /// /// 根据入库单号获取可码盘明细 /// /// 入库单号 /// public List GetDtlList_OnTray(string CN_S_OP_NO) { StringBuilder sbStr = new StringBuilder(); sbStr.Append("SELECT * FROM TN_WM_INCREASE_INVENTORY_DTL WHERE 1=1 "); if (!string.IsNullOrEmpty(CN_S_OP_NO)) { sbStr.Append("AND CN_S_OP_NO='" + CN_S_OP_NO.Trim() + "' "); } sbStr.Append("AND ISNULL(CN_F_ADD_ONTRAY_QTY,0)!=CN_F_QUANTITY "); return ExecuteQuery(sbStr.ToString()).ToList(); } /// /// 根据入库单号获取可上架明细 /// /// 入库单号 /// public List GetInMstAndDtl_OnShelf(string CN_S_OP_NO) { StringBuilder sbStr = new StringBuilder(); sbStr.Append("SELECT * FROM TN_WM_INCREASE_INVENTORY_DTL WHERE 1=1 "); if (!string.IsNullOrEmpty(CN_S_OP_NO)) { sbStr.Append("AND CN_S_OP_NO='" + CN_S_OP_NO.Trim() + "' "); } sbStr.Append("AND ISNULL(CN_F_UPSHELF_QTY,0)!=CN_F_QUANTITY "); return ExecuteQuery(sbStr.ToString()).ToList(); } /// /// 更新托盘物料关联 /// /// 物料批次集合 /// public OperateResult UpdateTrayItemState(List transVouchList, IDbTransaction trans) { string sql = "UPDATE TN_WM_B_TRAY_ITEM_MST SET CN_S_ITEM_STATE=@CN_S_ITEM_STATE WHERE CN_S_ITEM_CODE=@CN_S_ITEM_CODE AND CN_GUID IN (SELECT CN_PARENT_GUID FROM TN_WM_B_TRAY_ITEM_DTL WHERE CN_S_PRODUCTION_BATCH=@CN_S_PRODUCTION_BATCH) "; var result = ExecuteTranSql(sql, transVouchList, trans); return result; } /// /// 更新仓库量表物料状态 /// /// 物料批次集合 /// public OperateResult UpdateStockQtyItemState(List transVouchList, IDbTransaction trans) { string sql = "UPDATE TN_WM_B_STOCK_QTY SET CN_S_ITEM_STATE=@CN_S_ITEM_STATE WHERE CN_S_ITEM_CODE =@CN_S_ITEM_CODE and CN_S_PRODUCTION_BATCH=@CN_S_PRODUCTION_BATCH "; var result = ExecuteTranSql(sql, transVouchList, trans); return result; } /// /// 更新库区量表物料状态 /// /// 物料批次集合 /// public OperateResult UpdateAreaQtyItemState(List transVouchList, IDbTransaction trans) { string sql = "UPDATE TN_WM_B_AREA_QTY SET CN_S_ITEM_STATE=@CN_S_ITEM_STATE WHERE CN_S_ITEM_CODE =@CN_S_ITEM_CODE and CN_S_PRODUCTION_BATCH=@CN_S_PRODUCTION_BATCH "; var result = ExecuteTranSql(sql, transVouchList, trans); return result; } /// /// 更新XML表物料状态 /// /// 物料批次集合 /// public OperateResult UpdateXmlItemState(List transVouchList, IDbTransaction trans) { string sql = "UPDATE TN_WM_B_UNIQUE_BARCODE SET CN_S_ITEM_STATE=@CN_S_ITEM_STATE WHERE CN_S_ITEM_CODE =@CN_S_ITEM_CODE and CN_S_BATCH_NO=@CN_S_BATCH_NO "; var result = ExecuteTranSql(sql, transVouchList, trans); return result; } #region 获取未完全打印的入库单记录 /// /// 获取未完全打印的入库单记录 /// /// 仓库号 /// /// [HANHE(DBS)] CREATED BY 2019-02-28 public OperateResult GetWaitPrintOrder(string stockCode) { string sql = @"SELECT a.CN_S_OP_NO ,[CN_S_OP_TYPE] ,[CN_S_STOCK_CODE] ,[CN_S_OP_FROM] ,[CN_S_FROM_NO] ,a.[CN_T_CREATE] ,[CN_S_DELIVERY_NOTE] ,[CN_S_ARRIVAL_NO] ,[CN_S_VENDOR_NO] ,[CN_S_VENDOR_NAME] ,sum(b.CN_F_QUANTITY) CN_F_QUANTITY ,sum(b.CN_F_PRINTING_QTY) CN_F_PRINTING_QTY FROM TN_WM_INCREASE_INVENTORY_MST a join TN_WM_INCREASE_INVENTORY_DTL b on a.CN_S_OP_NO=b.CN_S_OP_NO where CN_S_STOCK_CODE=@CN_S_STOCK_CODE and b.CN_F_PRINTING_QTY /// 获取所有待上架(暂存区)的物料(到货入+移库入) /// /// 物料编号 /// 暂存区库区列表 /// /// [HANHE(DBS)] CREATED BY 2019-03-7 public List GetWaitUpShelvesItems(string itemCode, List zcAreaList) { //暂存区的量-分配量-待上架的量 string sql = @"select a.CN_S_ITEM_CODE,a.CN_S_ITEM_NAME,a.CN_S_MODEL,a.CN_S_FIGURE_NO,a.CN_S_MEASURE_UNIT ,(a.CN_F_QUANTITY-ISNULL(a.CN_F_ALLOC_QTY,0)-ISNULL(b.CN_F_QUANTITY,0)) CN_F_QUANTITY from tn_wm_b_area_qty a left join tn_wm_tray_alloc b on a.CN_S_ITEM_CODE=b.CN_S_ITEM_CODE where a.CN_S_STOCK_AREA=@CN_S_STOCK_AREA and a.CN_S_ITEM_CODE=@CN_S_ITEM_CODE"; return ExecuteQuery(sql, new { CN_S_STOCK_AREA = zcAreaList[0].CN_S_AREA_CODE, CN_S_ITEM_CODE = itemCode }); // return ExecuteQuery(sql, new { CN_S_STOCK_AREA = "SHQ01", CN_S_ITEM_CODE = itemCode }); } #endregion #region 获取OMS拼接数据 /// /// 获取OMS确认数据 /// /// /// public DataTable GetDeleteInOmsModel(string opNo) { string sql = @"select distinct arrm.CN_S_OP_TYPE,insd.CN_S_INSPECT_NO,inm.CN_S_FROM_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 left join TN_WM_INCREASE_INVENTORY_MST inMst on inMst.CN_S_ARRIVAL_NO=arrm.CN_S_ARRIVAL_NO where inMst.CN_S_OP_NO='" + opNo + "' and inm.CN_S_FROM_NO is not null"; return ExecuteDataTable(sql); } /// /// 入库单审核时调用 /// /// /// public DataTable GetOmsInModel(string inNo) { string sql = @"SELECT INSD.CN_S_OP_NO CN_S_FROM_NO,CN_S_ITEM_CODE,CN_S_ITEM_NAME,CN_F_QUANTITY,CN_S_OP_TYPE,CN_S_STOCK_CODE,CN_S_VENDOR_NO,CN_S_VENDOR_NAME ,CN_F_ACTUAL_PRICE CN_F_PRICE,CN_F_ACTUAL_MONEY CN_F_MONEY_SUM,CN_S_FIGURE_NO,CN_S_MODEL,INMST.CN_S_DELIVERY_NOTE,CN_S_MEASURE_UNIT,INMST.CN_S_NOTE FROM TN_WM_INCREASE_INVENTORY_DTL INSD LEFT JOIN TN_WM_INCREASE_INVENTORY_MST INMST ON INMST.CN_S_OP_NO=INSD.CN_S_OP_NO WHERE INMST.CN_S_OP_NO='" + inNo + "'"; return ExecuteDataTable(sql); } /// /// 入库单审核时调用 /// /// /// public DataTable GetOmsInOrderModel(string inNo) { string sql = @"SELECT distinct INSD.CN_S_ITEM_CODE,ad.CN_N_FROM_ROW_NO, INSD.CN_S_ITEM_NAME,INMST.CN_S_OP_TYPE,INMST.CN_S_STOCK_CODE, INSD.CN_F_QUANTITY ,INMST.CN_S_VENDOR_NO,INMST.CN_S_VENDOR_NAME,ARRM.CN_S_FROM_NO, INSD.CN_N_ROW_NO,INM.CN_S_FROM_NO CN_S_OP_NO,INSD.CN_F_ACTUAL_PRICE CN_F_PRICE,INSD.CN_F_ACTUAL_MONEY CN_F_MONEY_SUM,INSD.CN_S_FIGURE_NO,INSD.CN_S_MODEL,ARRM.CN_S_DELIVERY_NOTE FROM TN_WM_INCREASE_INVENTORY_DTL INSD LEFT JOIN TN_WM_INCREASE_INVENTORY_MST INMST ON INMST.CN_S_OP_NO=INSD.CN_S_OP_NO LEFT JOIN TN_WM_ARRIVAL_MST ARRM ON ARRM.CN_S_ARRIVAL_NO=INMST.CN_S_ARRIVAL_NO LEFT JOIN TN_WM_IN_MST INM ON INM.CN_S_OP_NO=ARRM.CN_S_FROM_NO LEFT JOIN tn_wm_arrival_dtl AD ON ARRM.CN_S_ARRIVAL_NO=ad.CN_S_ARRIVAL_NO and INSD.CN_N_ROW_NO=ad.CN_N_ROW_NO WHERE INMST.CN_S_OP_NO='" + inNo + "'"; return ExecuteDataTable(sql); } #endregion #region PDA接口 /// /// PDA接口-获取待贴码信息 /// /// 打码实体 /// /// [HANHE(XDL)] CREATED BY 2019-03-15 public DataTable GetFixedData(MONGO_PRINT_BARCODE printBarCode) { string sql = @"SELECT D.CN_S_ITEM_CODE,D.CN_S_ITEM_NAME,D.CN_S_MODEL,D.CN_S_ARRIVAL_NO,D.CN_F_QUANTITY,M.CN_S_VENDOR_NAME,D.CN_C_IS_FIXED_STATE,D.CN_S_PUT_POSITION FROM TN_WM_ARRIVAL_DTL D LEFT JOIN TN_WM_ARRIVAL_MST M ON D.CN_S_MSTGUID=M.CN_GUID LEFT JOIN TN_WM_INCREASE_INVENTORY_MST INMST ON INMST.CN_S_ARRIVAL_NO=M.CN_S_ARRIVAL_NO WHERE INMST.CN_S_OP_NO='"+ printBarCode.CN_S_IN_ORDER + @"' AND D.CN_S_ITEM_CODE='" + printBarCode.CN_S_ITEM_CODE + @"' AND M.CN_S_LOT_CODE='" + printBarCode.CN_S_LOT_NO + @"' AND D.CN_S_PRODUCTION_BATCH='" + printBarCode.CN_S_PRODUCTION_BATCH + @"' AND D.CN_C_IS_FIXED_STATE!='Y' "; return ExecuteDataTable(sql); } /// /// 贴码确认 /// /// 打码实体 /// /// [HANHE(XDL)] CREATED BY 2019-03-15 public OperateResult FixedConfirm(MONGO_PRINT_BARCODE printBarCode) { string sq1 = @" UPDATE TN_WM_ARRIVAL_DTL SET CN_C_IS_FIXED_STATE='Y' FROM TN_WM_ARRIVAL_DTL WHERE CN_S_ARRIVAL_NO = (select CN_S_ARRIVAL_NO from TN_WM_INCREASE_INVENTORY_MST WHERE CN_S_OP_NO = @CN_S_OP_NO and CN_S_LOT_NO = @CN_S_LOT_NO) AND CN_S_ITEM_CODE = @CN_S_ITEM_CODE and CN_S_ITEM_STATE = @CN_S_ITEM_STATE and CN_S_PRODUCTION_BATCH = @CN_S_PRODUCTION_BATCH"; OperateResult result = ExecuteTranSql(sq1, new { CN_S_OP_NO = printBarCode.CN_S_IN_ORDER, CN_S_LOT_NO = printBarCode.CN_S_LOT_NO, CN_S_ITEM_CODE = printBarCode.CN_S_ITEM_CODE, CN_S_ITEM_STATE = printBarCode.CN_S_ITEM_STATE, CN_S_PRODUCTION_BATCH = printBarCode.CN_S_PRODUCTION_BATCH }, null); return result; } /// /// PDA接口-获取搬运信息 /// /// 打码实体 /// /// [HANHE(XDL)] CREATED BY 2019-03-15 public DataTable GetTransData(MONGO_PRINT_BARCODE printBarCode) { string sql = @"SELECT D.CN_S_ITEM_CODE,D.CN_S_ITEM_NAME,D.CN_S_MODEL,D.CN_S_ARRIVAL_NO,D.CN_F_QUANTITY,M.CN_S_VENDOR_NAME,D.CN_C_IS_FIXED_STATE,D.CN_S_PUT_POSITION FROM TN_WM_ARRIVAL_DTL D LEFT JOIN TN_WM_ARRIVAL_MST M ON D.CN_S_MSTGUID=M.CN_GUID LEFT JOIN TN_WM_INCREASE_INVENTORY_MST INMST ON INMST.CN_S_ARRIVAL_NO=M.CN_S_ARRIVAL_NO WHERE INMST.CN_S_OP_NO='" + printBarCode.CN_S_IN_ORDER + @"' AND D.CN_S_ITEM_CODE='" + printBarCode.CN_S_ITEM_CODE + @"' AND M.CN_S_LOT_CODE='" + printBarCode.CN_S_LOT_NO + @"' AND D.CN_S_PRODUCTION_BATCH='" + printBarCode.CN_S_PRODUCTION_BATCH + @"' AND D.CN_C_IS_FIXED_STATE!='Y' "; return ExecuteDataTable(sql); } #endregion #region 获取入库单中的物料信息 /// /// 获取托盘中物料的信息,按批次汇总 /// /// 托盘号 /// /// [Hanhe(DBS)] CREATED BY 2018/12/8 public DataTable GetIncreaseDetail(string CN_S_OP_NO) { string sql = @" select b.CN_S_ITEM_CODE,b.CN_N_ROW_NO,b.CN_S_ITEM_NAME,b.CN_S_MODEL,b.CN_S_ITEM_STATE,a.CN_S_OWNER,b.CN_S_MEASURE_UNIT,a.CN_S_LOT_NO,b.CN_T_PRODUCTION,b.CN_T_EXPIRATION,b.CN_S_SERIAL_NO,a.CN_S_VENDOR_NO ,a.CN_S_VENDOR_NAME, b.CN_F_QUANTITY,(b.CN_F_QUANTITY - b.CN_F_ADD_ONTRAY_QTY) as CAN_ENCODE_QTY,b.CN_S_PRODUCTION_BATCH ,b.CN_F_ADD_ONTRAY_QTY from TN_WM_INCREASE_INVENTORY_MST a join TN_WM_INCREASE_INVENTORY_DTL b on a.CN_S_OP_NO=b.CN_S_OP_NO where a.CN_S_OP_NO=@CN_S_OP_NO and b.CN_F_QUANTITY - b.CN_F_ADD_ONTRAY_QTY>0 "; return ExecuteDataTable(sql, new { CN_S_OP_NO = CN_S_OP_NO }); } #endregion } }