首页
关于
Search
1
批量创建料品示例代码
9 阅读
2
应付余额报表
8 阅读
3
退货生成应收
6 阅读
4
在Linux下安装Nginx并配置反向代理
5 阅读
5
在 CentOS 7 下安装 Docker 的完整指南
4 阅读
U9
Linux
Java
Docker
登录
Search
标签搜索
sql
生单
nginx
Typecho
累计撰写
16
篇文章
累计收到
0
条评论
首页
栏目
U9
Linux
Java
Docker
页面
关于
搜索到
16
篇与
的结果
2025-03-04
批量创建料品示例代码
BP名:BatchCreateItemByDTOSRVProxy命名空间:UFIDA.U9.ISV.Item.Proxydll:C:\yonyou\U9V60\Portal\ApplicationServer\Libs\UFIDA.U9.ISV.Item.Agent.dll示例代码using System; using System.Collections.Generic; using System.Data; using Cust.QR.ZJLHBP.Public; using UFIDA.U9.Base; using UFIDA.U9.Base.Organization; using UFIDA.U9.Base.PropertyTypes; using UFIDA.U9.CBO.Pub.Controller; using UFIDA.U9.CBO.Pub.Controller.Proxy; using UFIDA.U9.CBO.SCM.Item; using UFIDA.U9.CBO.SCM.TallyBy; using UFIDA.U9.ISV.Item.Proxy; using UFSoft.UBF.AopFrame; using UFSoft.UBF.Business; using UFSoft.UBF.PL.Engine; using ItemInspectionInfoDTOData = UFIDA.U9.ISV.Item.ItemInspectionInfoDTOData; using ItemInvInfoDTOData = UFIDA.U9.ISV.Item.ItemInvInfoDTOData; using ItemMasterDTOData = UFIDA.U9.ISV.Item.ItemMasterDTOData; using ItemMFGInfoDTOData = UFIDA.U9.ISV.Item.ItemMFGInfoDTOData; using ItemMRPInfoDTOData = UFIDA.U9.ISV.Item.ItemMRPInfoDTOData; using ItemPurchaseInfoDTOData = UFIDA.U9.ISV.Item.ItemPurchaseInfoDTOData; using ItemSaleInfoDTOData = UFIDA.U9.ISV.Item.ItemSaleInfoDTOData; internal partial class AutoCreateItemImpementStrategy : BaseStrategy { public AutoCreateItemImpementStrategy() { } public override object Do(object obj) { AutoCreateItem bpObj = (AutoCreateItem)obj; Logger logger = Logger.GetInstance(); //所有料品都有数据中心(00)创建然后下发 Organization org = Organization.Finder.Find("Code = '00'"); // 需要生成流水号的料品 ItemMaster.EntityList itemMasters = ItemMaster.Finder.FindAll( string.Format("Description = '需要建流水号' and Org = '{0}' and code = '0101000001' ", org.ID)); foreach (ItemMaster itemMaster in itemMasters) { if (itemMaster.Code.Contains(".")) { continue; } // 右匹配查看生成流水号的料品 string sql = string.Format( @"select id,code from CBO_ItemMaster where code like '{0}%' and DescFlexField_PrivateDescSeg15 != 'true' and org = '{1}' ORDER BY CreatedOn DESC; select id from CBO_ItemMaster where code like '{0}%' and org = '{1}'; ", itemMaster.Code + ".",org.ID); // 执行sql DataSet dataset = PubHelper.RunSQLOutDataSet(sql, null); // 没有创建过流水号料品 try { if (dataset != null && dataset.Tables[1].Rows.Count <= 0) { BatchCreateItemByDTOSRVProxy proxy = new BatchCreateItemByDTOSRVProxy(); proxy.ItemMasterDTOs = new List<ItemMasterDTOData>(); proxy.TargetOrgCode = Context.LoginOrg.Code; proxy.TargetOrgName = Context.LoginOrg.Name; for (int i = 1; i <= 50; i++) { ItemMasterDTOData itemMasterDtoData = CopyItemMasterDtoData(itemMaster); // 处理下料号,料号为不同 PadLeft(6, '0') 使字符串长度达到 6,不足部分填充 0。 itemMasterDtoData.Code = itemMaster.Code + "." + i.ToString().PadLeft(6, '0'); proxy.ItemMasterDTOs.Add(itemMasterDtoData); } List<ItemMasterData> itemMasterDatas = proxy.Do(); foreach (ItemMasterData itemMasterData in itemMasterDatas) { ItemMaster master = ItemMaster.Finder.Find(string.Format("code = '{0}'", itemMasterData.Code)); CopyItemMaster(master); } // 结束本次循环作用于 foreach (ItemMaster itemMaster in itemMasters)这部分的代码 continue; } if (dataset != null && dataset.Tables[0] != null) { // 剩余流水号数量不足50个 if (dataset.Tables[0].Rows.Count < 50 && dataset.Tables[0].Rows.Count > 0) { // 差多少? int balance = 50 - dataset.Tables[0].Rows.Count; BatchCreateItemByDTOSRVProxy proxy = new BatchCreateItemByDTOSRVProxy(); proxy.ItemMasterDTOs = new List<ItemMasterDTOData>(); proxy.TargetOrgCode = Context.LoginOrg.Code; proxy.TargetOrgName = Context.LoginOrg.Name; // 最大的流水号 string maxLiuShui = dataset.Tables[0].Rows[0]["code"].ToString(); string[] result = maxLiuShui.Split('.'); // long 类型是数值类型,它不会存储前导零。因此,无法直接将 "000001" 转换为 long 并保留前导零。下面有处理加上前面的0 long liushuihao = long.Parse(result[1]); for (int i = 0; i <= balance; i++) { ItemMasterDTOData itemMasterDtoData = CopyItemMasterDtoData(itemMaster); // PadLeft(6, '0') 使字符串长度达到 6,不足部分填充 0。 itemMasterDtoData.Code = result[0] + "." + liushuihao++.ToString().PadLeft(6, '0'); proxy.ItemMasterDTOs.Add(itemMasterDtoData); } proxy.Do(); } } } } catch (Exception e) { logger.LogError("自动创建流水料品失败:"); logger.LogError(e.ToString()); } } return null; } private ItemMasterDTOData CopyItemMasterDtoData(ItemMaster itemMaster) { ItemMasterDTOData itemMasterDto = new ItemMasterDTOData(); itemMasterDto.SysState = ObjectState.Inserted; itemMasterDto.Name = itemMaster.Name; itemMasterDto.SPECS = itemMaster.SPECS; itemMasterDto.Effective = new EffectiveData(); itemMasterDto.Effective.IsEffective = true; itemMasterDto.Effective.EffectiveDate = DateTime.Now; itemMasterDto.Effective.DisableDate = DateTime.Parse("9999.12.31"); if (itemMaster.MfgInfo != null) { //料品生产信息 itemMasterDto.MfgInfo = new ItemMFGInfoDTOData(); itemMasterDto.MfgInfo.IsSueOverType = -1; itemMasterDto.MfgInfo.BuildShrinkageRate = 1; itemMasterDto.MfgInfo.IsOutputControlFlag = false; //图号 itemMasterDto.MfgInfo.PictureCode = itemMaster.MfgInfo.PictureCode; itemMasterDto.MfgInfo.OperateType = -1; if (itemMaster.MfgInfo.ProductDepartment != null) { itemMasterDto.MfgInfo.ProductDepartment = new CommonArchiveDataDTOData(); itemMasterDto.MfgInfo.ProductDepartment.ID = itemMaster.MfgInfo.ProductDepartment.ID; } //计划.BOM控制方式 if (itemMaster.MfgInfo.BomControlMode != null) { itemMasterDto.MfgInfo.BomControlMode = itemMaster.MfgInfo.BomControlMode.Value; } //生产.生产数量选择 if (itemMaster.MfgInfo.BuildQuanSelectType != null) { itemMasterDto.MfgInfo.BuildQuanSelectType = itemMaster.MfgInfo.BuildQuanSelectType.Value; } } if (itemMaster.MrpInfo != null) { //料品MRP(计划)信息 itemMasterDto.MrpInfo = new ItemMRPInfoDTOData(); itemMasterDto.MrpInfo.IsTraceRequirement = true; //计划.计划方法 // if (itemMaster.InventoryInfo.InventoryPlanningMethod != InventoryPlanningMethodEnum.UseMRP) { // if (itemMaster.MrpInfo.MRPPlanningType != null) { // itemMasterDto.MrpInfo.MRPPlanningType = itemMaster.MrpInfo.MRPPlanningType.Value; // } // } //计划.预测控制 if (itemMaster.MrpInfo.ForecastContorlType != null) { itemMasterDto.MrpInfo.ForecastContorlType = itemMaster.MrpInfo.ForecastContorlType.Value; } //计划.计划时界原则 if (itemMaster.MrpInfo.PlanningTimeFenceRuleType != null) { itemMasterDto.MrpInfo.PlanningTimeFenceRuleType = itemMaster.MrpInfo.PlanningTimeFenceRuleType.Value; } //计划.计划时界类型 if (itemMaster.MrpInfo.PlanningTimeFence != null) { itemMasterDto.MrpInfo.PlanningTimeFence = itemMaster.MrpInfo.PlanningTimeFence.Value; } //计划.需求时界原则 if (itemMaster.MrpInfo.DemandTimeFenceRuleType != null) { itemMasterDto.MrpInfo.DemandTimeFenceRuleType = itemMaster.MrpInfo.DemandTimeFenceRuleType.Value; } //计划.需求时界类型 if (itemMaster.MrpInfo.DemandTimeFence != null) { itemMasterDto.MrpInfo.DemandTimeFence = itemMaster.MrpInfo.DemandTimeFence.Value; } //计划.发放时界类型 if (itemMaster.MrpInfo.ReleaseTimeFence != null) { itemMasterDto.MrpInfo.ReleaseTimeFence = itemMaster.MrpInfo.ReleaseTimeFence.Value; } /*采购预提前期*/ itemMasterDto.MrpInfo.PurForwardProcessLT = itemMaster.MrpInfo.PurForwardProcessLT; /*采购后提前期*/ itemMasterDto.MrpInfo.PurBackwardProcessLT = itemMaster.MrpInfo.PurBackwardProcessLT; /*采购处理提前期*/ itemMasterDto.MrpInfo.PurProcessLT = itemMaster.MrpInfo.PurProcessLT; //提前期批量 itemMasterDto.MrpInfo.LTBatch = itemMaster.MrpInfo.LTBatch; //变动提前期 itemMasterDto.MrpInfo.VarietyLT = itemMaster.MrpInfo.VarietyLT; /*固定提前期*/ itemMasterDto.MrpInfo.FixedLT = itemMaster.MrpInfo.FixedLT; /*默认计划员*/ if (itemMaster.MrpInfo.Planer != null) { itemMasterDto.MrpInfo.Planer = new CommonArchiveDataDTOData(itemMaster.MrpInfo.Planer.ID, itemMaster.MrpInfo.Planer.Code, itemMaster.MrpInfo.Planer.Name); } /*制造提前期*/ itemMasterDto.MrpInfo.SumManufactureLT = itemMaster.MrpInfo.SumManufactureLT; } itemMasterDto.InventoryInfo = new ItemInvInfoDTOData(); itemMasterDto.InventoryInfo.InventoryPlanningMethod = 4; //存储地点 if (itemMasterDto.InventoryInfo != null) { //料品库存信息 itemMasterDto.InventoryInfo = new ItemInvInfoDTOData(); itemMasterDto.InventoryInfo.Warehouse = new CommonArchiveDataDTOData(); if (itemMaster.InventoryInfo.Warehouse != null) { itemMasterDto.InventoryInfo.Warehouse.ID = itemMaster.InventoryInfo.Warehouse.ID; itemMasterDto.InventoryInfo.Warehouse.Code = itemMaster.InventoryInfo.Warehouse.Code; } itemMasterDto.InventoryInfo.WarehouseManager = new CommonArchiveDataDTOData(); if (itemMaster.InventoryInfo.WarehouseManager != null) { itemMasterDto.InventoryInfo.WarehouseManager.Code = itemMaster.InventoryInfo.WarehouseManager.Code; itemMasterDto.InventoryInfo.WarehouseManager.Name = itemMaster.InventoryInfo.WarehouseManager.Name; itemMasterDto.InventoryInfo.WarehouseManager.ID = itemMaster.InventoryInfo.WarehouseManager.ID; } itemMasterDto.InventoryInfo.PurchaseControlMode = InvQtyCtlTypeEnum.MaxStockLimit.Value; itemMasterDto.InventoryInfo.IsInvCalculateBySeiban = true; itemMasterDto.InventoryInfo.IsBalanceByProject = false; //库存规划.规划方法 //if (itemMaster.InventoryInfo.InventoryPlanningMethod != null) { // itemMasterDto.InventoryInfo.InventoryPlanningMethod = // itemMaster.InventoryInfo.InventoryPlanningMethod.Value; itemMasterDto.InventoryInfo.InventoryPlanningMethod = 4; // } //库存规划.安全存量法 if (itemMaster.InventoryInfo.SafetyStockType != null) { itemMasterDto.InventoryInfo.SafetyStockType = itemMaster.InventoryInfo.SafetyStockType.Value; } //库存规划.安全库存量 itemMasterDto.InventoryInfo.SafetyStockQty = itemMaster.InventoryInfo.SafetyStockQty; /*转换率加权*/ if (itemMaster.InventoryInfo != null) { itemMasterDto.InventoryInfo.ConvertRatio = itemMaster.InventoryInfo.ConvertRatio; } if (itemMaster.InventoryInfo != null && itemMaster.InventoryInfo.LotParam != null) { /*批号参数*/ itemMasterDto.InventoryInfo.LotParam = new CommonArchiveDataDTOData(); itemMasterDto.InventoryInfo.LotParam.Code = itemMaster.InventoryInfo.LotParam.Code; itemMasterDto.InventoryInfo.LotParam.ID = itemMaster.InventoryInfo.LotParam.ID; itemMasterDto.InventoryInfo.LotParam.Name = itemMaster.InventoryInfo.LotParam.Name; } /*序号参数*/ if (itemMaster.InventoryInfo != null && itemMaster.InventoryInfo.SnParam != null) { itemMasterDto.InventoryInfo.SnParam = new CommonArchiveDataDTOData(); itemMasterDto.InventoryInfo.SnParam.ID = itemMaster.InventoryInfo.SnParam.ID; itemMasterDto.InventoryInfo.SnParam.Code = itemMaster.InventoryInfo.SnParam.Code; itemMasterDto.InventoryInfo.SnParam.Name = itemMaster.InventoryInfo.SnParam.Name; } /*安全库存量*/ if (itemMaster.InventoryInfo != null) { itemMasterDto.InventoryInfo.SafetyStockQty = itemMaster.InventoryInfo.SafetyStockQty; } } //料品质量信息 itemMasterDto.InspectionInfo = new ItemInspectionInfoDTOData(); itemMasterDto.InspectionInfo.ID = itemMaster.InspectionInfo.ID; // 描述 // itemMasterDto.Description = itemMasterDto.Description; itemMasterDto.MainItemCategory = new CommonArchiveDataDTOData(); itemMasterDto.MainItemCategory.Code = itemMaster.MainItemCategory.Code; // 库存单位 itemMasterDto.InventorySecondUOM = new CommonArchiveDataDTOData(); itemMasterDto.InventorySecondUOM.Code = itemMaster.Code; // 库存主单位 itemMasterDto.InventoryUOM = new CommonArchiveDataDTOData(); itemMasterDto.InventoryUOM.Code = itemMaster.InventorySecondUOM.Code; // 重量单位 itemMasterDto.WeightUom = new CommonArchiveDataDTOData(); itemMasterDto.WeightUom.Code = itemMaster.InventoryUOM.Code; // 体积单位 itemMasterDto.BulkUom = new CommonArchiveDataDTOData(); itemMasterDto.BulkUom.Code = itemMaster.InventoryUOM.Code; itemMasterDto.SalesUOM = new CommonArchiveDataDTOData(); itemMasterDto.SalesUOM.Code = itemMaster.SalesUOM.Code; itemMasterDto.PurchaseUOM = new CommonArchiveDataDTOData(); itemMasterDto.PurchaseUOM.Code = itemMaster.PurchaseUOM.Code; itemMasterDto.PriceUOM = new CommonArchiveDataDTOData(); itemMasterDto.PriceUOM.Code = itemMaster.PriceUOM.Code; itemMasterDto.ManufactureUOM = new CommonArchiveDataDTOData(); itemMasterDto.ManufactureUOM.Code = itemMaster.ManufactureUOM.Code; itemMasterDto.CostUOM = new CommonArchiveDataDTOData(); itemMasterDto.CostUOM.Code = itemMaster.CostUOM.Code; // 领料单位 itemMasterDto.MaterialOutUOM = new CommonArchiveDataDTOData(); itemMasterDto.MaterialOutUOM.Code = itemMaster.MaterialOutUOM.Code; itemMasterDto.ItemFormAttribute = itemMaster.ItemFormAttribute.Value; itemMasterDto.IsInventoryEnable = true; //可库存交易 itemMasterDto.IsPurchaseEnable = true; // 可采购 itemMasterDto.IsSalesEnable = true; //可销售 itemMasterDto.IsBOMEnable = true; //可BOM itemMasterDto.IsMRPEnable = true; //可MRP itemMasterDto.IsVMIEnable = true; //VMI标志 itemMasterDto.IsOutsideOperationEnable = itemMaster.IsOutsideOperationEnable; //可委外 itemMasterDto.IsBuildEnable = itemMaster.IsBuildEnable; //可生产 itemMasterDto.IsVarRatio = true; if (itemMaster.PurchaseInfo != null) { //料品采购信息 itemMasterDto.PurchaseInfo = new ItemPurchaseInfoDTOData(); //理货规则 TallyBy putawayRule = TallyBy.FindByCode(Context.LoginOrg, "1"); if (putawayRule != null) itemMasterDto.PurchaseInfo.ReceiptModeAllowModify = true; itemMasterDto.PurchaseInfo.PriceSource = 2; itemMasterDto.PurchaseInfo.ReceiptMode = itemMaster.PurchaseInfo.ReceiptMode.Value; itemMasterDto.PurchaseInfo.IsNeedRequest = false; itemMasterDto.PurchaseInfo.ReceiptRule = new CommonArchiveDataDTOData(); itemMasterDto.PurchaseInfo.ReceiptRule.Code = "1"; //采购.配额供应商 if (itemMaster.PurchaseInfo.QuotaSupplier != null) { itemMasterDto.PurchaseInfo.QuotaSupplier = itemMaster.PurchaseInfo.QuotaSupplier.Value; } //采购.收货方式 if (itemMaster.PurchaseInfo.ReceiptType != null) { itemMasterDto.PurchaseInfo.ReceiptType = itemMaster.PurchaseInfo.ReceiptType.Value; } } //料品销售信息 if (itemMaster.SaleInfo != null) { itemMasterDto.SaleInfo = new ItemSaleInfoDTOData(); itemMasterDto.SaleInfo.SupplyOrg = new CommonArchiveDataDTOData(); itemMasterDto.SaleInfo.SupplyOrg.Code = Context.LoginOrg.Code; if (itemMaster.SaleInfo.LimitPriceMode != null) { itemMasterDto.SaleInfo.LimitPriceMode = itemMaster.SaleInfo.LimitPriceMode.Value; } //销售.供应来源 if (itemMaster.SaleInfo.SupplySource != null) { itemMasterDto.SaleInfo.SupplySource = itemMaster.SaleInfo.SupplySource.Value; } //销售.供应类型 if (itemMaster.SaleInfo.DemandTransType != null) { itemMasterDto.SaleInfo.DemandTransType = itemMaster.SaleInfo.DemandTransType.Value; } } //转换率策略 if (itemMaster.ConverRatioRule != null) { itemMasterDto.ConverRatioRule = itemMaster.ConverRatioRule.Value; } //双单位 itemMasterDto.IsDualUOM = itemMaster.IsDualUOM; //多单位 itemMasterDto.IsMultyUOM = itemMaster.IsMultyUOM; //库存单位重量 itemMasterDto.Weight = itemMaster.Weight; // itemMasterDto.MrpInfo = new ItemMRPInfoDTOData(); /*财务分类*/ if (itemMaster.AssetCategory != null) { itemMasterDto.AssetCategory = new CommonArchiveDataDTOData(); itemMasterDto.AssetCategory.ID = itemMaster.AssetCategory.ID; itemMasterDto.AssetCategory.Code = itemMaster.AssetCategory.Code; itemMasterDto.AssetCategory.Name = itemMaster.AssetCategory.Name; } /*专用料*/ itemMasterDto.IsSpecialItem = itemMaster.IsSpecialItem; return itemMasterDto; } }
2025年03月04日
9 阅读
0 评论
0 点赞
2025-02-18
在Linux下安装Nginx并配置反向代理
简介Nginx是一个高效的Web服务器和反向代理服务器,广泛用于负载均衡、缓存和作为反向代理的解决方案。本教程将详细介绍如何在Linux环境下安装Nginx,并配置反向代理。步骤一:更新系统在安装任何软件之前,首先确保系统软件包是最新的。可以通过以下命令来更新系统:sudo yum update -y # 对于CentOS/RHEL系统 sudo apt update && sudo apt upgrade -y # 对于Ubuntu/Debian系统步骤二:安装Nginx在Linux上安装Nginx相当简单,下面分别介绍在不同发行版上的安装方法。对于CentOS/RHEL系统:安装EPEL仓库:sudo yum install epel-release -y安装Nginx:sudo yum install nginx -y对于Ubuntu/Debian系统:安装Nginx:sudo apt install nginx -y步骤三:启动并配置Nginx安装完成后,可以启动Nginx服务并设置其开机自启动。启动Nginx服务:sudo systemctl start nginx设置Nginx开机自启动:sudo systemctl enable nginx检查Nginx状态:sudo systemctl status nginx如果Nginx正常启动,你应该可以通过浏览器访问服务器的IP地址,看到Nginx的默认欢迎页面。步骤四:配置反向代理反向代理是Nginx的一个重要功能,它能够将客户端请求转发到其他服务器上。这对于负载均衡或分离应用程序的前后端很有帮助。编辑Nginx配置文件:Nginx的配置文件通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf,我们将编辑这个文件来添加反向代理配置。使用你喜欢的文本编辑器打开配置文件:sudo vi /etc/nginx/nginx.conf # 或者 sudo vi /etc/nginx/conf.d/default.conf配置反向代理:在server块中,加入如下配置,将流量代理到其他服务器。例如,将流量代理到http://127.0.0.1:3000:server { listen 80; server_name yourdomain.com; # 修改为你自己的域名或IP地址 location / { proxy_pass http://127.0.0.1:3000; # 将请求转发到本地的3000端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }这里的proxy_pass指令定义了请求被转发的目标地址。可以根据你的实际需求,修改为指向不同的端口或服务。保存并退出编辑器。测试Nginx配置:在重新加载配置之前,先检查配置文件是否有语法错误:sudo nginx -t如果没有错误,你将看到类似“syntax is okay”和“test is successful”的提示。重新加载Nginx配置:sudo systemctl reload nginx步骤五:防火墙设置如果你启用了防火墙,确保允许80端口的流量通过,以便外部可以访问Nginx。对CentOS/RHEL系统启用HTTP服务:sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload对Ubuntu/Debian系统启用HTTP服务:sudo ufw allow 'Nginx HTTP' sudo ufw reload步骤六:验证反向代理配置现在,你可以通过访问Nginx的域名或IP地址来验证反向代理是否正常工作。如果一切配置正确,Nginx将转发请求到配置的后端服务器(如http://127.0.0.1:3000),并返回该服务器的响应。总结通过本教程,你已经学会了如何在Linux上安装Nginx并配置反向代理。Nginx作为反向代理服务器,不仅可以提高Web应用的性能,还能实现负载均衡和高可用性。希望这篇文章能够帮助你顺利完成配置,提升你的系统架构和服务质量。
2025年02月18日
5 阅读
0 评论
0 点赞
2025-02-14
如何在 Windows、Linux 和 macOS 上安装 NVM 并下载 Node.js
引言NVM(Node Version Manager)是一个用于管理 Node.js 版本的工具,可以让你轻松地在同一台计算机上切换不同版本的 Node.js。如果你在多个项目中需要不同版本的 Node.js,NVM 会非常有用。本教程将介绍如何在 Windows、Linux 和 macOS 上安装 NVM,并使用它来安装和管理 Node.js 版本。在 Windows 上安装 NVM下载 NVM for Windows在 Windows 上,NVM 的官方支持由 coreybutler/nvm-windows 提供。首先,访问该链接并下载适用于 Windows 的安装包(.zip 或 .exe 文件)。安装 NVM双击下载的 .exe 文件启动安装程序。选择安装目录,通常选择默认目录即可(例如:C:\Program Files\nvm)。完成安装后,关闭安装程序。配置环境变量在安装过程中,安装程序会自动将 NVM 所需的路径添加到环境变量中。你可以通过运行以下命令检查是否成功安装:nvm version使用 NVM 安装 Node.js安装完成后,你可以通过以下命令安装 Node.js: nvm install 16.14.0 # 选择你需要的 Node.js 版本安装完成后,你可以通过以下命令查看 Node.js 的版本:node -v切换 Node.js 版本使用 NVM,你可以轻松切换 Node.js 的版本。例如: nvm use 16.14.0 # 切换到指定版本在 Linux 上安装 NVM更新系统包首先,确保你的系统是最新的。打开终端,运行以下命令更新系统: sudo apt update && sudo apt upgrade -y安装 NVM使用 cURL 或 wget 安装 NVM。打开终端并执行以下命令之一:使用 cURL:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash使用 wget:wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash验证 NVM 是否安装成功安装完成后,关闭并重新打开终端,或者运行以下命令使 NVM 生效:source ~/.bashrc然后,验证是否安装成功:command -v nvm如果安装成功,你应该看到 nvm 的路径。安装 Node.js现在你可以使用 NVM 安装 Node.js。例如,要安装最新版的 Node.js(LTS 版本):nvm install --lts如果需要安装特定版本的 Node.js,可以指定版本号:nvm install 16.14.0切换 Node.js 版本使用 NVM 切换到已安装的 Node.js 版本:nvm use 16.14.0检查 Node.js 和 npm 版本完成安装后,你可以验证 Node.js 和 npm 的版本:node -v npm -v在 macOS 上安装 NVM安装 Homebrew(如果尚未安装)macOS 上推荐使用 Homebrew 来安装 NVM。首先,打开终端,运行以下命令来安装 Homebrew(如果没有安装的话):/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"使用 Homebrew 安装 NVM一旦 Homebrew 安装成功,你可以通过以下命令安装 NVM:brew install nvm创建 NVM 的目录安装完成后,创建 NVM 的目录并将其添加到 ~/.zshrc 或 ~/.bash_profile 文件中。首先,运行以下命令:mkdir ~/.nvm配置 NVM 环境变量打开终端,编辑配置文件(例如 ~/.zshrc 或 ~/.bash_profile):nano ~/.zshrc # 或 nano ~/.bash_profile在文件的末尾添加以下内容:export NVM_DIR="$HOME/.nvm" [ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh" # This loads nvm保存并关闭文件后,执行以下命令使更改生效:source ~/.zshrc # 或 source ~/.bash_profile验证安装你可以使用以下命令验证 NVM 是否安装成功:command -v nvm安装 Node.js使用 NVM 安装 Node.js。例如,要安装最新的 LTS 版本:nvm install --lts切换 Node.js 版本使用 NVM 切换到你想要的 Node.js 版本:
2025年02月14日
2 阅读
0 评论
0 点赞
2025-02-07
在 CentOS 7 下安装 Docker 的完整指南
引言Docker 作为一种轻量级的容器化技术,已广泛应用于软件开发、部署和运维领域。本文旨在为 CentOS 7 用户提供Docker 安装指南。1. 环境准备在安装 Docker 之前,请确保您的系统满足以下条件:操作系统:CentOS 7(建议使用最新的 7.x 版本)内核版本:3.10 及以上(可使用 uname -r 检查)网络连接:确保服务器能够访问互联网以获取必要的软件包2.卸载旧版本(可选)如果系统中已存在旧版本的 Docker(如 docker, docker-client, docker-engine),建议先卸载以避免冲突:sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine⚠️ 注意事项关于yum源失效问题:bash <(curl -sSL https://linuxmirrors.cn/main.sh)3.安装必要的依赖包sudo yum install -y yum-utils device-mapper-persistent-data lvm2这些依赖包可确保 Docker 的存储驱动和容器管理功能正常运行。4. 添加 Docker 仓库使用官方提供的 Docker 仓库可以确保获取到最新稳定版本:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo如果不成功请更换其他Docker仓库并非一定要官方仓库5. 安装 Docker Engine安装最新版本的 Docker Engine 及其组件:sudo yum install -y docker-ce docker-ce-cli containerd.io如需安装特定版本,可以使用以下命令查看可用版本:yum list docker-ce --showduplicates | sort -r然后指定版本安装:sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io6. 启动并设置开机自启sudo systemctl start docker sudo systemctl enable docker验证 Docker 是否安装成功:docker --version sudo docker run hello-world成功输出 Hello from Docker! 表示安装完成。7. 配置加速器(可选)为了提升国内环境下的镜像下载速度,可以配置镜像加速器:sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://<your-mirror-address>"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker网址自行百度docker镜像站替换https://<your-mirror-address>即可8. 常见问题及解决方案问题 1:Cannot connect to the Docker daemon解决方案:确保 Docker 服务已启动。sudo systemctl start docker问题 2:防火墙导致容器网络不通解决方案:调整防火墙规则,或使用 firewalld 进行端口放通。sudo firewall-cmd --permanent --zone=public --add-masquerade sudo firewall-cmd --reload结语通过本文的详细步骤,您应该能够在 CentOS 7 上成功安装并配置 Docker。随着容器化技术的广泛应用,掌握 Docker 的基础操作将极大提升开发与运维效率。如果遇到更多问题,建议查阅 Docker 官方文档 以获取最新支持。
2025年02月07日
4 阅读
0 评论
0 点赞
2025-02-07
应付余额报表
create table #APDirectTmp (ID bigint, APStatementDirect int) -- 付款单据类型 insert into #APDirectTmp select A.[ID], A.[APStatementDirect] from AP_PayDocType as A create table #AccrueSupplierTmp (AccrueSupplierSite_ID bigint, Org_IsAuditOrg bit, Org_IsOperatingOrg bit, AccrueSupplier_ID bigint, AccrueSupplierSite_Territory_CombineName nvarchar(255), AccrueSupplier_CombineName nvarchar(255), AccrueSupplier_Territory_CombineName nvarchar(255), AccrueSupplier_Category_CombineName nvarchar(255), AccrueSupplier_Category_ID bigint, AccrueSupplier_Territory_ID bigint, AccrueSupplierSite_Territory_ID bigint) insert into #AccrueSupplierTmp select A.[ID] as [AccrueSupplierSite_ID], --供应商位置ID A2.[IsAuditOrg] as [Org_IsAuditOrg], --核算组织 A2.[IsOperatingOrg] as [Org_IsOperatingOrg], -- 营运组织 A1.[ID] as [AccrueSupplier_ID], -- 供应商ID A6.[CombineName] as [AccrueSupplierSite_Territory_CombineName],--地区名称 A7.[CombineName] as [AccrueSupplier_CombineName], --供应商名称 A8.[CombineName] as [AccrueSupplier_Territory_CombineName], --地区名称 A9.[CombineName] as [AccrueSupplier_Category_CombineName], --供应商分类名称 A3.[ID] as [AccrueSupplier_Category_ID], --供应商ID A4.[ID] as [AccrueSupplier_Territory_ID], --地区ID A5.[ID] as [AccrueSupplierSite_Territory_ID] --地区ID from CBO_SupplierSite as A -- 供应商位置 left join [CBO_Supplier] as A1 on (A.[Supplier] = A1.[ID]) -- 供应商 left join [Base_Organization] as A2 on (A1.[Org] = A2.[ID]) -- 组织 left join [CBO_SupplierCategory] as A3 on (A1.[Category] = A3.[ID]) -- 供应商分类 left join [Base_Territory] as A4 on (A1.[Territory] = A4.[ID]) -- 地区 left join [Base_Territory] as A5 on (A.[Territory] = A5.[ID]) -- 地区 left join [Base_Territory_Trl] as A6 on (A6.SysMlFlag = 'zh-CN') and (A5.[ID] = A6.[ID]) --地区TRl left join [CBO_Supplier_Trl] as A7 on (A7.SysMlFlag = 'zh-CN') and (A1.[ID] = A7.[ID]) -- 供应商TRL left join [Base_Territory_Trl] as A8 on (A8.SysMlFlag = 'zh-CN') and (A4.[ID] = A8.[ID]) --地区TRl left join [CBO_SupplierCategory_Trl] as A9 on (A9.SysMlFlag = 'zh-CN') and (A3.[ID] = A9.[ID]) --供应商分类TRL where (1 = 1) create table #PaySupplierTmp (PaySupplierSite_ID bigint, Org_IsAuditOrg bit, Org_IsOperatingOrg bit, PaySupplier_Code nvarchar(255), PaySupplier_ID bigint, PaySupplier_Name nvarchar(255), PaySupplierSite_Territory_CombineName nvarchar(255), PaySupplier_CombineName nvarchar(255), PaySupplier_Territory_CombineName nvarchar(255), PaySupplier_Category_CombineName nvarchar(255), PaySupplier_Category_ID bigint, PaySupplier_Territory_ID bigint, PaySupplierSite_Territory_ID bigint) insert into #PaySupplierTmp select A.[ID] as [PaySupplierSite_ID], --供应商位ID A2.[IsAuditOrg] as [Org_IsAuditOrg], --核算组织 A2.[IsOperatingOrg] as [Org_IsOperatingOrg], -- 营运组织 A1.[Code] as [PaySupplier_Code], --供应商编码 A1.[ID] as [PaySupplier_ID], --供应商ID A6.[Name] as [PaySupplier_Name], -- 供应商名称 A7.[CombineName] as [PaySupplierSite_Territory_CombineName], --地区名称 A6.[CombineName] as [PaySupplier_CombineName], -- 供应商名称 A8.[CombineName] as [PaySupplier_Territory_CombineName],--地区名称 A9.[CombineName] as [PaySupplier_Category_CombineName], --供应商分类名称 A3.[ID] as [PaySupplier_Category_ID], -- 供应商分类ID A4.[ID] as [PaySupplier_Territory_ID], -- 地区ID A5.[ID] as [PaySupplierSite_Territory_ID] -- 地区ID from CBO_SupplierSite as A --供应商位置 left join [CBO_Supplier] as A1 on (A.[Supplier] = A1.[ID]) -- 供应商 left join [Base_Organization] as A2 on (A1.[Org] = A2.[ID]) -- 组织 left join [CBO_SupplierCategory] as A3 on (A1.[Category] = A3.[ID]) -- 供应商分类 left join [Base_Territory] as A4 on (A1.[Territory] = A4.[ID]) -- 地区 left join [Base_Territory] as A5 on (A.[Territory] = A5.[ID]) -- 地区 left join [CBO_Supplier_Trl] as A6 on (A6.SysMlFlag = 'zh-CN') and (A1.[ID] = A6.[ID]) left join [Base_Territory_Trl] as A7 on (A7.SysMlFlag = 'zh-CN') and (A5.[ID] = A7.[ID]) left join [Base_Territory_Trl] as A8 on (A8.SysMlFlag = 'zh-CN') and (A4.[ID] = A8.[ID]) left join [CBO_SupplierCategory_Trl] as A9 on (A9.SysMlFlag = 'zh-CN') and (A3.[ID] = A9.[ID]) where ((1 = 1) and (A1.[Code] = N'1.006')) select A.[ID], A.[Code], A1.[Name], A.[APStatementDirect], '1' as [BillCategory] into #APDirectTempTable from AP_APDocType as A left join [AP_APDocType_Trl] as A1 on (A1.SysMlFlag = 'zh-CN') and (A.[ID] = A1.[ID]) insert into #APDirectTempTable select A.[ID], -- 付款单据类型ID A.[Code], -- 付款单据类型编码 A1.[Name], -- 付款单据类型名称 A.[APStatementDirect], --应付对账单方向 '0' as [BillCategory] from AR_ARDocType as A -- 付款单据类型 left join [AR_ARDocType_Trl] as A1 on (A1.SysMlFlag = 'zh-CN') and (A.[ID] = A1.[ID])-- 付款单据类型TRL create table #TempMXHZ (AccrueSupplierSite_ID bigint, PaySupplierSite_ID bigint, Dept_TreeDisplayName nvarchar(2000), Item_ID bigint, BC_Code nvarchar(50), BC_Name nvarchar(50), AP_BusinessType nvarchar(50), AP_DocumentType bigint, DocType_Code nvarchar(50), DocType_Name nvarchar(50), AccrueSupplier_CombineName nvarchar(255), AccrueSupplierSite_Territory_CombineName nvarchar(255), AccrueSupplier_Category_CombineName nvarchar(255), AccrueSupplier_Territory_CombineName nvarchar(255), PaySupplier_CombineName nvarchar(255), PaySupplierSite_Territory_CombineName nvarchar(255), PaySupplier_Category_CombineName nvarchar(255), PaySupplier_Territory_CombineName nvarchar(255), PaySupplier_Code nvarchar(255), PaySupplier_Name nvarchar(255), DescFlexField_CombineName nvarchar(4000), QCAmount decimal(24,9), QCACMoney decimal(24,9), QCFCMoney decimal(24,9), ARAmount decimal(24,9), ARACMoney decimal(24,9), ARFCMoney decimal(24,9), RecoverAmount decimal(24,9), RecoverACMoney decimal(24,9), RecoverFCMoney decimal(24,9), QMAmount decimal(24,9), QMACMoney decimal(24,9), QMFCMoney decimal(24,9), BCMoneyRound int, FCMoneyRound int, UOMMoneyRound int, BC_Symbol nvarchar(50), FC_Symbol nvarchar(50), PUom_Code nvarchar(50), PUom_Name nvarchar(50)) insert into #TempMXHZ select A.[AccrueSuppSite_SupplierSite] as [AccrueSupplierSite_ID], --供应商位置ID A.[PaySuppSite_SupplierSite] as [PaySupplierSite_ID], -- 付款供应商位置ID A18.[TreeDisplayName] as [Dept_TreeDisplayName], -- 部门名称 A.[Item_ItemID] as [Item_ID], -- 料品ID A10.[Code] as [BC_Code], -- 币种编码 A19.[Name] as [BC_Name], --单据币种名称 dbo.F_GetEnumName('UFIDA.U9.Base.Doc.BusinessTypeEnum',A.[BusinessType],'zh-CN') as [AP_BusinessType], --业务类型 A.[DocumentType] as [AP_DocumentType], -- 应付账已记账明细单据类型 A11.Code as [DocType_Code], -- 付款单据类型编码 A11.Name as [DocType_Name], -- -- 付款单据类型名称 null as [AccrueSupplier_CombineName], --应计供应商组合名称? null as [AccrueSupplierSite_Territory_CombineName], --应计供应商位置组合名称? null as [AccrueSupplier_Category_CombineName], --应计供应商联系人组合名称? null as [AccrueSupplier_Territory_CombineName], -- 应计供应商地区组合名称? isnull(A13.PaySupplier_CombineName,'') as [PaySupplier_CombineName], -- 付款供应商名称 isnull(A13.PaySupplierSite_Territory_CombineName,'') as [PaySupplierSite_Territory_CombineName], --付款供应商位置名称? isnull(A13.PaySupplier_Category_CombineName,'') as [PaySupplier_Category_CombineName], --付款供应商联系人组合名称? isnull(A13.PaySupplier_Territory_CombineName,'') as [PaySupplier_Territory_CombineName], -- 付款供应商地区组合名称? A13.PaySupplier_Code as [PaySupplier_Code], --付款供应商编码 A13.PaySupplier_Name as [PaySupplier_Name], --付款供应商名称 null as [DescFlexField_CombineName], (A.[CRPUAmount] - A.[DRPUAmount]) as [QCAmount], --计价单位数量 - 计价单位数量 (A.[CROCMoney_TotalMoney] - A.[DROCMoney_TotalMoney]) as [QCACMoney], -- 核币总金额差额 (A.[CRFCMoney_TotalMoney] - A.[DRFCMoney_TotalMoney]) as [QCFCMoney], -- 本币总金额差额 0 as [ARAmount], 0 as [ARACMoney], 0 as [ARFCmoney], 0 as [RecoverAmount], 0 as [RecoverACMoney], 0 as [RecoverFCmoney], 0 as [QMAmount], 0 as [QMACMoney], 0 as [QMFCmoney], A16.[MoneyRound_Precision] as [BCMoneyRound], -- 单据币种金额精度 A17.[MoneyRound_Precision] as [FCMoneyRound], -- 本币币种金额精度 A15.[Round_Precision]as [UOMMoneyRound], -- 单位精度 A16.[Symbol] as [BC_Symbol], -- 单据币种货币符号 A17.[Symbol] as [FC_Symbol], --本币币种货币符号 A15.[Code] as [PUom_Code], -- 单位编码 A20.[Name] as [PUom_Name] -- 单位名称 from AP_APPostedDetail as A --应付账已记账明细 left join [CBO_Operators] as A1 on (A.[Transactor] = A1.[ID]) --业务员 left join [Base_Organization] as A2 on (A.[Org] = A2.[ID]) --组织 left join [Base_Organization] as A3 on (A.[SrcBusinessOrg] = A3.[ID]) --来源组织 left join [Base_Organization] as A4 on (A.[BizOrg] = A4.[ID]) --业务组织 left join [Base_Organization] as A5 on (A.[SettleOrg] = A5.[ID]) -- 结算组织 left join [CBO_Department] as A6 on (A.[Dept] = A6.[ID]) --部门 left join [CBO_Project] as A7 on (A.[Project] = A7.[ID]) --项目 left join [CBO_Task] as A8 on (A.[Task] = A8.[ID]) -- 任务 left join [Base_Currency] as A9 on (A.[FC] = A9.[ID]) --本币币种 left join [Base_Currency] as A10 on (A.[BC] = A10.[ID]) --单据币种 left join #APDirectTempTable as A11 on (A.[DocumentType] = A11.ID) -- 付款单据类型临时表 left join #AccrueSupplierTmp as A12 on (A.[AccrueSuppSite_SupplierSite] = A12.AccrueSupplierSite_ID) --供应商信息临时表 inner join #PaySupplierTmp as A13 on (A.[PaySuppSite_SupplierSite] = A13.PaySupplierSite_ID) -- 付款供应商信息临时表 left join Base_SOBAccountingPeriod as A14 on (A.[ProcessBillPeriod] = A14.[ID]) --账簿会计期间 left join Base_UOM as A15 on (A.[PUom] = A15.[ID]) --单位 left join Base_Currency as A16 on (A.[BC] = A16.[ID]) -- 单据币种 left join Base_Currency as A17 on (A.[FC] = A17.[ID]) -- 本币币种 left join [CBO_Department_Trl] as A18 on (A18.SysMlFlag = 'zh-CN') and (A6.[ID] = A18.[ID]) --部门TRL left join [Base_Currency_Trl] as A19 on (A19.SysMlFlag = 'zh-CN') and (A10.[ID] = A19.[ID]) -- 币种TRl left join [Base_UOM_Trl] as A20 on (A20.SysMlFlag = 'zh-CN') and (A15.[ID] = A20.[ID]) --单位TRL where (((((((1 = 1) and (A2.[Code] = N'10')) and (A.[PaySupp_Code] = N'1.006')) and (A.[IsSureAccrue] = 1)) and A.[DocStatus] in (2)) and (A14.[DisplayName] >= '2023-12')) and (A14.[DisplayName] <= '2024-12')) create table #TempMXCur (AccrueSupplierSite_ID bigint, PaySupplierSite_ID bigint, Dept_TreeDisplayName nvarchar(2000), Item_ID bigint, BC_Code nvarchar(50), BC_Name nvarchar(100), AP_BusinessType nvarchar(50), AP_DocumentType bigint, DocType_Code nvarchar(50), DocType_Name nvarchar(100), AccrueSupplier_CombineName nvarchar(255), AccrueSupplierSite_Territory_CombineName nvarchar(255), AccrueSupplier_Category_CombineName nvarchar(255), AccrueSupplier_Territory_CombineName nvarchar(255), PaySupplier_CombineName nvarchar(255), PaySupplierSite_Territory_CombineName nvarchar(255), PaySupplier_Category_CombineName nvarchar(255), PaySupplier_Territory_CombineName nvarchar(255), PaySupplier_Code nvarchar(255), PaySupplier_Name nvarchar(255), DescFlexField_CombineName nvarchar(4000), APStatementDirect int, OppAPStatementDirect int, CurAmount decimal(24,9), CurACMoney decimal(24,9), CurFCMoney decimal(24,9), BCMoneyRound int, FCMoneyRound int, UOMMoneyRound int, BC_Symbol nvarchar(50), FC_Symbol nvarchar(50), PUom_Code nvarchar(50), PUom_Name nvarchar(100)) create table #selectPeriod (ID bigint) --账簿会计期间ID insert into #selectPeriod select A.[ID] from Base_SOBAccountingPeriod as A where (((1 = 1) and (A.[DisplayName] >= '2025-01')) and (A.[DisplayName] <= '2025-01')) insert into #TempMXCur select A.[AccrueSuppSite_SupplierSite] as [AccrueSupplierSite_ID], --供应商位置ID A.[PaySuppSite_SupplierSite] as [PaySupplierSite_ID], -- 付款供应商位置ID A20.[TreeDisplayName] as [Dept_TreeDisplayName], -- 部门名称 A.[Item_ItemID] as [Item_ID], -- 料品ID A10.[Code] as [BC_Code], -- 单据币种编码 A21.[Name] as [BC_Name], -- 单据币种名称 dbo.F_GetEnumName('UFIDA.U9.Base.Doc.BusinessTypeEnum',A.[BusinessType],'zh-CN') as [AP_BusinessType], -- 业务类型 A.[DocumentType] as [AP_DocumentType], -- 应付账已记账明细单据类型 A11.Code as [DocType_Code], -- 付款单据类型编码 A11.Name as [DocType_Name], -- 付款单据类型名称 null as [AccrueSupplier_CombineName], null as [AccrueSupplierSite_Territory_CombineName], null as [AccrueSupplier_Category_CombineName], null as [AccrueSupplier_Territory_CombineName], isnull(A13.PaySupplier_CombineName,'') as [PaySupplier_CombineName], -- 付款供应商名称 isnull(A13.PaySupplierSite_Territory_CombineName,'') as [PaySupplierSite_Territory_CombineName], -- 付款供应商位置名称 isnull(A13.PaySupplier_Category_CombineName,'') as [PaySupplier_Category_CombineName],-- 付款供应商联系人组合名称 isnull(A13.PaySupplier_Territory_CombineName,'') as [PaySupplier_Territory_CombineName], -- 付款供应商地区组合名称 A13.PaySupplier_Code as [PaySupplier_Code], A13.PaySupplier_Name as [PaySupplier_Name], -- 付款供应商编码 null as [DescFlexField_CombineName], A14.APStatementDirect as [APStatementDirect], -- 付款供应商名称 A15.APStatementDirect as [OppAPStatementDirect], (A.[CRPUAmount] - A.[DRPUAmount]) as [CurAmount],-- 计价单位数量差额(计入数量 - 计出数量)) (A.[CROCMoney_TotalMoney] - A.[DROCMoney_TotalMoney]) as [CurACMoney], -- 核币总金额差额 (A.[CRFCMoney_TotalMoney] - A.[DRFCMoney_TotalMoney]) as [CurFCMoney], -- 本币总金额差额 A17.[MoneyRound_Precision] as [BCMoneyRound],-- 单据币种金额精度 A18.[MoneyRound_Precision] as [FCMoneyRound], -- 本币币种金额精度 A16.[Round_Precision] as [UOMMoneyRound], -- 单位精度 A17.[Symbol] as [BC_Symbol], -- 单据币种货币符号 A18.[Symbol] as [FC_Symbol], -- 本币币种货币符号 A16.[Code] as [PUom_Code], -- 单位编码 A22.[Name] as [PUom_Name] -- 单位名称 from AP_APPostedDetail as A -- 应付账已记账明细 left join [CBO_Operators] as A1 on (A.[Transactor] = A1.[ID]) -- 业务员 left join [Base_Organization] as A2 on (A.[Org] = A2.[ID]) -- 组织 left join [Base_Organization] as A3 on (A.[SrcBusinessOrg] = A3.[ID]) -- 来源组织 left join [Base_Organization] as A4 on (A.[BizOrg] = A4.[ID]) -- 业务组织 left join [Base_Organization] as A5 on (A.[SettleOrg] = A5.[ID]) -- 结算组织 left join [CBO_Department] as A6 on (A.[Dept] = A6.[ID]) -- 部门 left join [CBO_Project] as A7 on (A.[Project] = A7.[ID]) -- 项目 left join [CBO_Task] as A8 on (A.[Task] = A8.[ID]) -- 任务 left join [Base_Currency] as A9 on (A.[FC] = A9.[ID]) -- 本币币种 left join [Base_Currency] as A10 on (A.[BC] = A10.[ID]) -- 单据币种 left join #APDirectTempTable as A11 on (A.[DocumentType] = A11.ID) -- 付款单据类型临时表 left join #AccrueSupplierTmp as A12 on (A.[AccrueSuppSite_SupplierSite] = A12.AccrueSupplierSite_ID) -- 供应商信息临时表 inner join #PaySupplierTmp as A13 on (A.[PaySuppSite_SupplierSite] = A13.PaySupplierSite_ID) -- 付款供应商信息临时表 left join #APDirectTmp as A14 on (A.[DocumentType] = A14.ID) -- 应付账结算方向临时表 left join #APDirectTmp as A15 on (A.[OppDocType] = A15.ID) -- 应付账结算方向临时表 left join Base_UOM as A16 on (A.[PUom] = A16.[ID]) -- 单位 left join Base_Currency as A17 on (A.[BC] = A17.[ID]) -- 单据币种(用于金额精度和符号) left join Base_Currency as A18 on (A.[FC] = A18.[ID]) -- 本币币种(用于金额精度和符号) inner join #selectPeriod as A19 on (A.[ProcessBillPeriod] = A19.ID) -- 账簿会计期间筛选 left join [CBO_Department_Trl] as A20 on (A20.SysMlFlag = 'zh-CN') and (A6.[ID] = A20.[ID]) left join [Base_Currency_Trl] as A21 on (A21.SysMlFlag = 'zh-CN') and (A10.[ID] = A21.[ID]) left join [Base_UOM_Trl] as A22 on (A22.SysMlFlag = 'zh-CN') and (A16.[ID] = A22.[ID]) where (((((1 = 1) and (A2.[Code] = N'10')) and (A.[PaySupp_Code] = N'1.006')) and (A.[IsSureAccrue] = 1)) and A.[DocStatus] in (2)) insert into #TempMXHZ select A.AccrueSupplierSite_ID, -- 供应商位置ID A.PaySupplierSite_ID, -- 付款供应商位置ID A.Dept_TreeDisplayName,-- 部门名称 A.Item_ID, -- 料品ID A.BC_Code, -- 单据币种编码 A.BC_Name, -- 单据币种名称 A.AP_BusinessType, -- 业务类型 A.AP_DocumentType, -- 应付账已记账明细单据类型 A.DocType_Code,-- 付款单据类型编码 A.DocType_Name,-- 付款单据类型名称 A.AccrueSupplier_CombineName, -- 应计供应商组合名称? A.AccrueSupplierSite_Territory_CombineName, -- 应计供应商位置组合名称? A.AccrueSupplier_Category_CombineName, -- 应计供应商联系人组合名称? A.AccrueSupplier_Territory_CombineName, -- 应计供应商地区组合名称? A.PaySupplier_CombineName, -- 付款供应商名称 A.PaySupplierSite_Territory_CombineName, -- 付款供应商位置名称 A.PaySupplier_Category_CombineName,-- 付款供应商联系人组合名称 A.PaySupplier_Territory_CombineName, -- 付款供应商地区组合名称 A.PaySupplier_Code, A.PaySupplier_Name, -- 付款供应商编码 A.DescFlexField_CombineName, -- 付款供应商名称 0 as [QCAmount], 0 as [QCACMoney], 0 as [QCFCMoney], case when ((A.APStatementDirect = 0) and ((A.OppAPStatementDirect = 0) or A.OppAPStatementDirect is null)) then A.CurAmount else 0 end as [ARAmount], -- 应收数量:当应付账结算方向为正向(0)且对方结算方向为正向或为空时,取当前数量;否则为0 case when ((A.APStatementDirect = 0) and ((A.OppAPStatementDirect = 0) or A.OppAPStatementDirect is null)) then A.CurACMoney else 0 end as [ARACMoney], -- 应收核算币金额:同上条件取当前核算币金额;否则为0 case when ((A.APStatementDirect = 0) and ((A.OppAPStatementDirect = 0) or A.OppAPStatementDirect is null)) then A.CurFCMoney else 0 end as [ARFCMoney], -- 应收本币金额:同上条件取当前本币金额;否则为0 case when (not(((A.APStatementDirect = 0) and ((A.OppAPStatementDirect = 0) or A.OppAPStatementDirect is null)))) then (-(A.CurAmount)) else 0 end as [RecoverAmount], -- 数量:当应付账结算方向不符合上述条件时,取当前数量的负值;否则为0 case when (not(((A.APStatementDirect = 0) and ((A.OppAPStatementDirect = 0) or A.OppAPStatementDirect is null)))) then (-(A.CurACMoney)) else 0 end as [RecoverACMoney], -- 核算币金额:条件不满足时,取当前核算币金额的负值;否则为0 case when (not(((A.APStatementDirect = 0) and ((A.OppAPStatementDirect = 0) or A.OppAPStatementDirect is null)))) then (-(A.CurFCMoney)) else 0 end as [RecoverFCMoney],-- 本币金额:条件不满足时,取当前本币金额的负值;否则为0 0 as [QMAmount], 0 as [QMACMoney], 0 as [QMFCmoney], A.BCMoneyRound,-- 单据币种金额精度 A.FCMoneyRound, -- 本币币种金额精度 A.UOMMoneyRound, -- 单位精度 A.BC_Symbol, -- 单据币种货币符号 A.FC_Symbol, -- 本币币种货币符号 A.PUom_Code, -- 单位编码 A.PUom_Name -- 单位名称 from #TempMXCur as A -- 临时表 #TempMXCur 存储了当前期间的应付/应收数据 where ((A.CurACMoney != 0) or (A.CurFCMoney != 0))-- 仅返回当前核算币金额或本币金额不为0的记录 drop table #PaySupplierTmp select A.PaySupplier_Code, A.BC_Code, A.PaySupplier_Name, A.BC_Name, sum(A.QCACMoney) as [QCACMoney], max(A.BCMoneyRound) as [BCMoneyRound], A.BC_Symbol, sum(A.ARACMoney) as [ARACMoney], sum(A.RecoverACMoney) as [RecoverACMoney], sum(((A.QCACMoney + A.ARACMoney) - A.RecoverACMoney)) as [QMACMoney], sum(((A.QCFCMoney + A.ARFCMoney) - A.RecoverFCMoney)) as [QMFCMoney] into #TempGroupHZ from #TempMXHZ as A group by A.PaySupplier_Code, A.BC_Code, A.PaySupplier_Name, A.BC_Name, A.BC_Symbol select * from #TempGroupHZ as A where (1 = 1) order by A.PaySupplier_Code asc, A.PaySupplier_Name asc, A.BC_Name asc
2025年02月07日
8 阅读
0 评论
1 点赞
1
2
3
4