/// <summary> /// 创建包装交易对象 /// </summary> /// <param name="loginUser"></param> /// <returns></returns> public static PackageTranDetailInfo CreatePackageTranDetailInfo(string loginUser) { PackageTranDetailInfo packageTranDetailInfo = new PackageTranDetailInfo(); packageTranDetailInfo.CreateUser = loginUser; packageTranDetailInfo.CreateDate = DateTime.Now; packageTranDetailInfo.ValidFlag = true; return(packageTranDetailInfo); }
/// <summary> /// 根据交易记录获取目标库存对象 /// </summary> /// <param name="tranDetailsInfo"></param> /// <param name="zonesInfo"></param> /// <param name="stocksInfo"></param> public void GetTargetPackageStocksInfo(PackageTranDetailInfo packageTranDetailInfo, ref PackageStocksInfo packageStocksInfo) { ///工厂 packageStocksInfo.Plant = packageTranDetailInfo.Plant; ///器具号 packageStocksInfo.PackageNo = packageTranDetailInfo.PackageNo; ///存贮区编码 packageStocksInfo.ZoneNo = packageTranDetailInfo.TargetZone; ///仓库编码 packageStocksInfo.WmNo = packageTranDetailInfo.TargetWm; ///库位 packageStocksInfo.Dloc = packageTranDetailInfo.TargetDloc; }
/// <summary> /// 满包装出库 /// </summary> /// <param name="packageStocksInfo"></param> /// <param name="packageTranDetailInfo"></param> /// <param name="loginUser"></param> /// <returns></returns> public string FullPackageStocksDownSql(PackageStocksInfo packageStocksInfo, PackageTranDetailInfo packageTranDetailInfo, string loginUser) { return("update [LES].[TT_PCM_PACKAGE_STOCKS] " + "set [STOCK] = [STOCK] - " + packageTranDetailInfo.PackageQty.GetValueOrDefault() + "" + ",[FULL_STOCK] = [FULL_STOCK] - " + packageTranDetailInfo.PackageQty.GetValueOrDefault() + "" + ",[MODIFY_USER] = '" + loginUser + "'" + ",[MODIFY_DATE] = GETDATE() " + "where [ID] =" + packageStocksInfo.Id + ";" + "update [LES].[TT_PCM_PACKAGE_TRAN_DETAIL] " + "set [STATUS] = " + (int)PackageTranStateConstants.TREATED + "" + ",[MODIFY_USER] = '" + loginUser + "'" + ",[MODIFY_DATE] = GETDATE() " + "where [ID] = " + packageTranDetailInfo.Id + ";"); }
/// <summary> /// 获取新增包装交易数据的语句 /// </summary> /// <param name="packageTranDetailInfo"></param> /// <returns></returns> public static string CreatePackageTranDetailSql(PackageTranDetailInfo packageTranDetailInfo) { return("insert into [LES].[TT_PCM_PACKAGE_TRAN_DETAIL] (" + "FID, " + "TRAN_NO, " + "TRAN_TYPE, " + "BARCODE_DATA, " + "PART_NO, " + "PLANT, " + "ASSEMBLY_LINE, " + "SUPPLIER_NUM, " + "WM_NO, " + "ZONE_NO, " + "DLOC, " + "TARGET_WM, " + "TARGET_ZONE, " + "TARGET_DLOC, " + "PACKAGE_NO, " + "PACKAGE_CNAME, " + "PACKAGE_ENAME, " + "PACKAGE, " + "PACKAGE_QTY, " + "STATUS, " + "COMMENTS, " + "VALID_FLAG, CREATE_USER, CREATE_DATE) values(" + "NEWID()," + ///FID "N'" + packageTranDetailInfo.TranNo + "'," + ///TRAN_NO, "" + packageTranDetailInfo.TranType.GetValueOrDefault() + "," + ///TRAN_TYPE, "N'" + packageTranDetailInfo.BarcodeData + "'," + ///@BARCODE_DATA, "N'" + packageTranDetailInfo.PartNo + "'," + ///@PART_NO, "N'" + packageTranDetailInfo.Plant + "'," + ///@PLANT, "N'" + packageTranDetailInfo.AssemblyLine + "'," + ///@ASSEMBLY_LINE, "N'" + packageTranDetailInfo.SupplierNum + "'," + ///@SUPPLIER_NUM, "N'" + packageTranDetailInfo.WmNo + "'," + ///@WM_NO, "N'" + packageTranDetailInfo.ZoneNo + "'," + ///@ZONE_NO, "N'" + packageTranDetailInfo.Dloc + "'," + ///@DLOC, "N'" + packageTranDetailInfo.TargetWm + "'," + ///@TARGET_WM, "N'" + packageTranDetailInfo.TargetZone + "'," + ///@TARGET_ZONE, "N'" + packageTranDetailInfo.TargetDloc + "'," + ///@TargetDloc, "N'" + packageTranDetailInfo.PackageNo + "'," + ///@PACKAGE_NO, "N'" + packageTranDetailInfo.PackageCname + "'," + ///@PACKAGE_CNAME, "N'" + packageTranDetailInfo.PackageEname + "'," + ///@PACKAGE_ENAME, packageTranDetailInfo.Package.GetValueOrDefault() + "," + ///@PACKAGE, packageTranDetailInfo.PackageQty.GetValueOrDefault() + "," + ///@PACKAGE_QTY, (int)PackageTranStateConstants.UNTREATED + "," + ///@STATUS, "N'" + packageTranDetailInfo.Comments + "'," + ///@COMMENTS, "1,N'" + packageTranDetailInfo.CreateUser + "',GETDATE()" + ///VALID_FLAG, CREATE_USER, CREATE_DATE ");"); }
/// <summary> /// 根据出库单明细获取包装器具的交易记录 /// </summary> /// <param name="outputDetailInfos"></param> /// <param name="loginUser"></param> /// <returns></returns> public static string CreatePackageTranDetailsSql(List <OutputDetailInfo> outputDetailInfos, string loginUser) { List <PackageApplianceInfo> packageApplianceInfos = new PackageApplianceDAL().GetList("" + "[PACKAGE_NO] in ('" + string.Join("','", outputDetailInfos.Select(d => d.PackageModel).ToArray()) + "')", string.Empty); string sql = string.Empty; foreach (OutputDetailInfo outputDetailInfo in outputDetailInfos) { /// PackageTranDetailInfo packageTranDetailInfo = CreatePackageTranDetailInfo(loginUser); /// GetPackageTranDetailInfo(outputDetailInfo, ref packageTranDetailInfo); /// PackageApplianceInfo packageApplianceInfo = packageApplianceInfos.FirstOrDefault(d => d.PackageNo == outputDetailInfo.PackageModel); GetPackageTranDetailInfo(packageApplianceInfo, ref packageTranDetailInfo); /// sql += PackageTranDetailDAL.CreatePackageTranDetailSql(packageTranDetailInfo); } return(sql); }
/// <summary> /// 创建新器具库存 /// </summary> /// <param name="packageTranDetailInfo"></param> /// <param name="maintainPartsInfo"></param> /// <param name="sourceFlag"></param> /// <returns></returns> private PackageStocksInfo HandlingPackageStocksData(PackageTranDetailInfo packageTranDetailInfo, MaintainPartsInfo maintainPartsInfo, bool sourceFlag) { ///新建包装库存对象 PackageStocksInfo packageStocksInfo = packageStocksBLL.CreatePackageStocksInfo(loginUser); /// 更新物料基础信息 packageStocksBLL.UpdateMaintainPartsInfo(maintainPartsInfo, ref packageStocksInfo); /// 来源库存对象信息填充 if (sourceFlag) { packageStocksBLL.GetSourcePackageStocksInfo(packageTranDetailInfo, ref packageStocksInfo); } ///目标库存对象信息填充 else { packageStocksBLL.GetTargetPackageStocksInfo(packageTranDetailInfo, ref packageStocksInfo); } ///获取库存数据主键 packageStocksInfo.Id = packageStocksBLL.GetPackageStocksId(packageStocksInfo); return(packageStocksInfo); }
/// <summary> /// 根据入库单明细获取包装器具的交易记录 /// </summary> /// <param name="receiveDetailInfos"></param> /// <param name="logUser"></param> /// <param name="orderNo"></param> /// <param name="plant"></param> /// <param name="wmNo"></param> /// <param name="assemblyLine"></param> /// <returns></returns> public static string CreatePackageTranDetailsSql(List <ReceiveDetailInfo> receiveDetailInfos, string loginUser) { List <PackageApplianceInfo> packageApplianceInfos = new PackageApplianceDAL().GetList("" + "[PACKAGE_NO] in ('" + string.Join("','", receiveDetailInfos.Select(d => d.PackageModel).ToArray()) + "')", string.Empty); string sql = string.Empty; foreach (ReceiveDetailInfo receiveDetailInfo in receiveDetailInfos) { ///创建包装交易对象 PackageTranDetailInfo packageTranDetailInfo = CreatePackageTranDetailInfo(loginUser); ///填充入库明细数据 GetPackageTranDetailInfo(receiveDetailInfo, ref packageTranDetailInfo); ///包装基础数据 PackageApplianceInfo packageApplianceInfo = packageApplianceInfos.FirstOrDefault(d => d.PackageNo == receiveDetailInfo.PackageModel); ///填充包装基础数据 GetPackageTranDetailInfo(packageApplianceInfo, ref packageTranDetailInfo); /// sql += PackageTranDetailDAL.CreatePackageTranDetailSql(packageTranDetailInfo); } return(sql); }
/// <summary> /// 根据条件筛选器具库存数据 /// </summary> /// <param name="packageStocksInfos"></param> /// <param name="packageTranDetailInfo"></param> /// <param name="sourceFlag"></param> /// <returns></returns> private PackageStocksInfo GetPackageStocksData(List <PackageStocksInfo> packageStocksInfos, PackageTranDetailInfo packageTranDetailInfo, bool sourceFlag) { PackageStocksInfo packageStocksInfo = new PackageStocksInfo(); ///来源 if (sourceFlag) { packageStocksInfo = packageStocksInfos.FirstOrDefault(d => d.Plant == packageTranDetailInfo.Plant && d.WmNo == packageTranDetailInfo.WmNo && d.ZoneNo == packageTranDetailInfo.ZoneNo && d.Dloc == packageTranDetailInfo.Dloc); } ///目标 else { packageStocksInfo = packageStocksInfos.FirstOrDefault(d => d.Plant == packageTranDetailInfo.Plant && d.WmNo == packageTranDetailInfo.TargetWm && d.ZoneNo == packageTranDetailInfo.TargetZone && d.Dloc == packageTranDetailInfo.TargetDloc); } return(packageStocksInfo); }
/// <summary> /// InsertInfo /// </summary> /// <param name="info"></param> /// <returns></returns> public long InsertInfo(PackageTranDetailInfo info) { return(dal.Add(info)); }
/// <summary> /// PackageApplianceInfo->PackageTranDetailInfo /// </summary> /// <param name="packageApplianceInfo"></param> /// <param name="packageTranDetailInfo"></param> public static void GetPackageTranDetailInfo(PackageApplianceInfo packageApplianceInfo, ref PackageTranDetailInfo packageTranDetailInfo) { if (packageApplianceInfo == null) { return; } packageTranDetailInfo.PackageCname = packageApplianceInfo.PackageCname; packageTranDetailInfo.PackageEname = packageApplianceInfo.PackageEname; }
/// <summary> /// OutputDetailInfo->PackageTranDetailInfo /// </summary> /// <param name="outputDetailInfo"></param> /// <param name="packageTranDetailInfo"></param> private static void GetPackageTranDetailInfo(OutputDetailInfo outputDetailInfo, ref PackageTranDetailInfo packageTranDetailInfo) { packageTranDetailInfo.TranNo = outputDetailInfo.TranNo; packageTranDetailInfo.TranType = (int)PackageTranTypeConstants.FullMovement; packageTranDetailInfo.BarcodeData = string.Empty; packageTranDetailInfo.PartNo = outputDetailInfo.PartNo; packageTranDetailInfo.Plant = outputDetailInfo.Plant; packageTranDetailInfo.AssemblyLine = outputDetailInfo.AssemblyLine; packageTranDetailInfo.SupplierNum = outputDetailInfo.SupplierNum; packageTranDetailInfo.WmNo = outputDetailInfo.WmNo; packageTranDetailInfo.ZoneNo = outputDetailInfo.ZoneNo; packageTranDetailInfo.Dloc = outputDetailInfo.Dloc; packageTranDetailInfo.TargetWm = outputDetailInfo.TargetWm; packageTranDetailInfo.TargetZone = outputDetailInfo.TargetZone; packageTranDetailInfo.TargetDloc = outputDetailInfo.TargetDloc; packageTranDetailInfo.PackageNo = outputDetailInfo.PackageModel; packageTranDetailInfo.Package = outputDetailInfo.Package; packageTranDetailInfo.PackageQty = outputDetailInfo.ActualBoxNum; packageTranDetailInfo.Comments = outputDetailInfo.Comments; }
/// <summary> /// ReceiveDetailInfo->PackageTranDetailInfo /// </summary> /// <param name="receiveDetailInfo"></param> /// <param name="packageTranDetailInfo"></param> public static void GetPackageTranDetailInfo(ReceiveDetailInfo receiveDetailInfo, ref PackageTranDetailInfo packageTranDetailInfo) { packageTranDetailInfo.TranNo = receiveDetailInfo.TranNo; ///随货入库 packageTranDetailInfo.TranType = (int)PackageTranTypeConstants.FullInbound; packageTranDetailInfo.BarcodeData = string.Empty; packageTranDetailInfo.PartNo = receiveDetailInfo.PartNo; packageTranDetailInfo.Plant = receiveDetailInfo.Plant; packageTranDetailInfo.AssemblyLine = receiveDetailInfo.AssemblyLine; packageTranDetailInfo.SupplierNum = receiveDetailInfo.SupplierNum; packageTranDetailInfo.WmNo = receiveDetailInfo.WmNo; packageTranDetailInfo.ZoneNo = receiveDetailInfo.ZoneNo; packageTranDetailInfo.Dloc = receiveDetailInfo.Dloc; packageTranDetailInfo.TargetWm = receiveDetailInfo.TargetWm; packageTranDetailInfo.TargetZone = receiveDetailInfo.TargetZone; packageTranDetailInfo.TargetDloc = receiveDetailInfo.TargetDloc; packageTranDetailInfo.PackageNo = receiveDetailInfo.PackageModel; packageTranDetailInfo.Package = receiveDetailInfo.Package; packageTranDetailInfo.PackageQty = receiveDetailInfo.ActualBoxNum; packageTranDetailInfo.Comments = receiveDetailInfo.Comments; }