This commit is contained in:
PastSaid
2023-12-26 10:44:19 +08:00
parent 4a98ba6946
commit ddb5043b65
39 changed files with 1163 additions and 126 deletions

View File

@@ -0,0 +1,45 @@
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.List;
namespace CY.CB_PROACNTGROUP
{
/// <summary>
/// 【表单插件】单据上查询辅助资料时设置过滤条件
/// </summary>
[Description("【表单插件】单据上查询基础资料时设置过滤条件"), HotUpdate]
public class BasicDataFilterPlugIn : AbstractDynamicFormPlugIn
{
public override void BeforeF7Select(BeforeF7SelectEventArgs e)
{
base.BeforeF7Select(e);
// 给某个辅助资料字段的查询附加过滤条件
if (e.FieldKey.EqualsIgnoreCase("FPRODUCTID"))
{
var id = this.Model.DataObject["Id"].Long2Int();
var details = this.View.BusinessInfo.GetEntity("FEntity");
var entry = this.View.Model.GetEntityDataObject(details);
var idList = entry.Select(x => x["PRODUCTID_Id"].Long2Int()).Where(w => w != 0);
// 只显示编码0开头的辅助资料
if (idList.Any())
e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString($" FMATERIALID NOT IN ({string.Join(",", idList)})");
e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString($" FMATERIALID NOT IN (SELECT FPRODUCTID FROM T_CB_PROACNTENTRY WHERE FPRODUCTGROUPID != {id})");
return;
}
}
}
}

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CY.CB_PROACNTGROUP</RootNamespace>
<AssemblyName>CY.CB_PROACNTGROUP</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kingdee.BOS">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App.Core">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Contracts">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Core">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.DataEntity">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Model">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Model.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BasicDataFilterPlugIn.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("CY.CB_PROACNTGROUP")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CY.CB_PROACNTGROUP")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("5a26aff4-ae8c-43a3-8c60-bba153dae608")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -21,6 +21,8 @@ using Kingdee.BOS.App.Core.ScheduleService;
using Kingdee.BOS.App;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Log;
using System.Data.SqlClient;
using Kingdee.BOS.Orm.Exceptions;
namespace CY.SAL_OUTSTOCK
{
@@ -72,23 +74,60 @@ namespace CY.SAL_OUTSTOCK
IOperationResult saveResult = ServiceHelper.GetService<ISaveService>().Save(ctx, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
string msg = string.Empty;
if (saveResult.ValidationErrors != null && saveResult.ValidationErrors.Count > 0)
{
var errorInfo = string.Join(";", saveResult.ValidationErrors.Select(x => x.Message));
throw new KDBusinessException("", "未知原因导致自动保存失败原因:" + errorInfo);
}
else
object[] pkArray = (from p in destObjs select p[0]).ToArray();
//设置提交参数
IOperationResult submitResult = ServiceHelper.GetService<ISubmitService>().Submit(ctx, destFormMetadata.BusinessInfo, pkArray, "Submit", OperateOption.Create());
// 判断提交结果,如果失败,则内部会抛出错误,回滚代码
if (submitResult.IsSuccess == false)
{
succeedNum++;
Logger.Info(schedule.Name, $"销售出库单:{list.Key}下推应付单:{saveResult.OperateResult[0].Number}成功!");
throw new KDBusinessException("", "未知原因导致自动提交失败!");
}
//设置审核参数
IOperationResult auditResult = ServiceHelper.GetService<IAuditService>().Audit(ctx, destFormMetadata.BusinessInfo, pkArray, OperateOption.Create());
// 判断提交结果,如果失败,则内部会抛出错误,回滚代码
if (auditResult.IsSuccess == false)
{
throw new KDBusinessException("", "未知原因导致自动审核失败!");
}
succeedNum++;
Logger.Info(schedule.Name, $"销售出库单:{list.Key},下推应付单:{saveResult.OperateResult[0].Number}成功!");
}
catch(OrmException ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}错误Orm", $"销售出库单:{list.Key}", ex);
}
catch (KDBusinessException ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}错误KDB", $"销售出库单:{list.Key}", ex);
}
catch (SqlException ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}错误Sql", $"销售出库单:{list.Key}", ex);
}
catch (Exception ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}", $"销售出库单:{list.Key}", ex);
}
finally
{
}
}
}
@@ -109,7 +148,7 @@ namespace CY.SAL_OUTSTOCK
private DynamicObjectCollection GetDBData(Context ctx)
{
var unSql = $@"
select * from V_NOT_RECEIVABLE_OUTSTOCK
SELECT * from V_NOT_RECEIVABLE_OUTSTOCK
";
var dbList = DBUtils.ExecuteDynamicObject(ctx, $"/*dialect*/{unSql}");

View File

@@ -72,6 +72,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="SQLServer\无关联应收单.sql" />
<Content Include="SQLServer\无关联应收单2-未关联应收数量.sql" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,5 @@
UPDATE T_BD_MATERIAL SET F_CYG_CHECKBOX = 0
UPDATE A SET F_CYG_CHECKBOX = 1 FROM T_BD_MATERIAL A
INNER JOIN T_CB_PROACNTENTRY B ON A.FMATERIALID = B.FPRODUCTID

View File

@@ -23,5 +23,5 @@ FROM
LEFT JOIN T_AR_RECEIVABLEENTRY_LK BE_LK ON BE_LK.FSBILLID = AE.FID AND BE_LK.FSID = AE.FENTRYID
LEFT JOIN T_AR_RECEIVABLEENTRY BE ON BE.FENTRYID = BE_LK.FENTRYID
WHERE
BE_LK.FSTABLENAME = 'T_SAL_OUTSTOCKENTRY') B ON A.FID = B.FID
BE_LK.FSTABLENAME = 'T_SAL_OUTSTOCKENTRY' and FARNOTJOINQTY > 0) B ON A.FID = B.FID
WHERE B.FID IS NULL and a.FDOCUMENTSTATUS ='C'

View File

@@ -0,0 +1,18 @@
IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME='V_NOT_RECEIVABLE_OUTSTOCK') --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DROP VIEW V_NOT_RECEIVABLE_OUTSTOCK --<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GO
CREATE VIEW V_NOT_RECEIVABLE_OUTSTOCK
AS
SELECT
A.FID
,A.FBILLNO
,AE.FENTRYID
,AE_R.FARNOTJOINQTY
,A.FDOCUMENTSTATUS
FROM
T_SAL_OUTSTOCK A
LEFT JOIN T_SAL_OUTSTOCKENTRY AE ON A.FID = AE.FID
LEFT JOIN T_SAL_OUTSTOCKENTRY_R AE_R ON AE.FENTRYID = AE_R.FENTRYID
WHERE
AE_R.FARNOTJOINQTY > 0 AND
A.FDOCUMENTSTATUS ='C'

View File

@@ -1,5 +1,4 @@
using Kingdee.BOS.App.Core.ScheduleService;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.DynamicForm.Operation;
using Kingdee.BOS.Core.List;
@@ -21,6 +20,9 @@ using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.Metadata.FieldElement;
using Kingdee.BOS.App;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Log;
using Kingdee.BOS.Orm.Exceptions;
using System.Data.SqlClient;
namespace CY.SAL_OUTSTOCK
{
@@ -35,81 +37,125 @@ namespace CY.SAL_OUTSTOCK
if (e.BarItemKey.Equals("tbTestAutoP"))
{
Run(this.Context);
}
}
public void Run(Context ctx)
Run(this.Context, new Schedule
{
Name =new LocaleValue("tbTestAutoP销售出库单自定下推Test")
});
}
}
public void Run(Context ctx, Schedule schedule)
{
Logger.Info(schedule.Name, $"销售出库单自动下推应付单start...");
var succeedNum = 0;
var failNum = 0;
try
{
IConvertService service = Kingdee.BOS.App.ServiceHelper.GetService<IConvertService>();
IConvertService service = ServiceHelper.GetService<IConvertService>();
//源单据标识
string sourceFormId = "SAL_OUTSTOCK";
//目标单据标识
string targetFormId = "AR_RECEIVABLE";
//目标单据类型id-标准应收单
string targetBillTypeId = "180ecd4afd5d44b5be78a6efe4a7e041";
//var rules = service.GetConvertRules(ctx, sourceFormId, targetFormId);
//转换规则
string convertRuleId = "AR_OutStockToReceivableMap"; //销售出库单下推应付单
var ruleMeta = service.GetConvertRule(ctx, convertRuleId);
var rule = ruleMeta.Rule;
var dbList = GetDBData(ctx);
if (dbList != null && dbList.Any())
{
var groupbyList = dbList.GroupBy(x => x["FBILLNO"]);
StringBuilder stringBuilder = new StringBuilder();
var groupbyList = dbList.GroupBy(x => x["FBILLNO"].ToString());
Logger.Info(schedule.Name, $"找到{groupbyList.Count()}条数据");
foreach (var list in groupbyList)
{
var pkid = dbList.Select(x => x["FID"]).ToArray();
List<ListSelectedRow> selectedRows = list.Select(x => new ListSelectedRow(x["FID"].ToString(), x["FENTRYID"].ToString(), 0, sourceFormId)).ToList();
PushArgs pushArgs = new PushArgs(rule, selectedRows.ToArray());//下推入口参数
pushArgs.TargetBillTypeId = targetBillTypeId;
OperateOption option = OperateOption.Create();//选项参数
try
{
//下推
ConvertOperationResult convertResult = service.Push(ctx, pushArgs, option);
//下推数据
DynamicObject[] destObjs = convertResult.TargetDataEntities.Select(r => r.DataEntity).ToArray();
FormMetadata destFormMetadata = ServiceHelper.GetService<IMetaDataService>().Load(this.Context, targetFormId) as FormMetadata;
FormMetadata destFormMetadata = ServiceHelper.GetService<IMetaDataService>().Load(ctx, targetFormId) as FormMetadata;
IOperationResult saveResult = ServiceHelper.GetService<ISaveService>().Save(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
//保存
IOperationResult saveResult = ServiceHelper.GetService<ISaveService>().Save(ctx, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
if ((saveResult.ValidationErrors != null && saveResult.ValidationErrors.Count > 0))
string msg = string.Empty;
if (saveResult.ValidationErrors != null && saveResult.ValidationErrors.Count > 0)
{
var errorInfo = string.Join(";", saveResult.ValidationErrors.Select(x => x.Message));
throw new KDBusinessException("", "未知原因导致自动保存失败原因:" + errorInfo);
}
object[] pkArray = (from p in destObjs select p[0]).ToArray();
//设置提交参数
IOperationResult submitResult = ServiceHelper.GetService<ISubmitService>().Submit(ctx, destFormMetadata.BusinessInfo, pkArray, "Submit", OperateOption.Create());
// 判断提交结果,如果失败,则内部会抛出错误,回滚代码
if (submitResult.IsSuccess == false)
{
throw new KDBusinessException("", "未知原因导致自动提交失败!");
}
//设置审核参数
IOperationResult auditResult = ServiceHelper.GetService<IAuditService>().Audit(ctx, destFormMetadata.BusinessInfo, pkArray, OperateOption.Create());
// 判断提交结果,如果失败,则内部会抛出错误,回滚代码
if (auditResult.IsSuccess == false)
{
throw new KDBusinessException("", "未知原因导致自动审核失败!");
}
succeedNum++;
Logger.Info(schedule.Name, $"销售出库单:{list.Key},下推应付单:{saveResult.OperateResult[0].Number}成功!");
}
catch (OrmException ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}错误Orm", $"销售出库单:{list.Key}", ex);
}
catch (KDBusinessException ex)
{
stringBuilder.AppendLine($"单据:{list.Key}{ex.GetErrorInfo()}");
failNum++;
Logger.Error($"服务器插件:{schedule.Name}错误KDB", $"销售出库单:{list.Key}", ex);
}
catch (SqlException ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}错误Sql", $"销售出库单:{list.Key}", ex);
}
catch (Exception ex)
{
failNum++;
Logger.Error($"服务器插件:{schedule.Name}", $"销售出库单:{list.Key}", ex);
}
}
if (!stringBuilder.IsNullOrEmpty())
throw new Exception(stringBuilder.ToString());
}
}
catch (Exception ex)
{
//ScheduleMsgDal _msgDal = new ScheduleMsgDal();
//ScheduleMsg msg = new ScheduleMsg();
//msg.MsgDetail = ex.Message;
//msg.HappenTime = DateTime.Now;
//msg.MsgType = 5;// 1 成功 5异常
//msg.ScheduleTypeId = schedule.ScheduleTypeId;
//_msgDal.InsertScheduleMsg(ctx, msg);
Logger.Error($"服务器插件:{schedule.Name}", ex.Message, ex);
}
finally
{
Logger.Info(schedule.Name, $"成功{succeedNum}条,失败{failNum}条");
Logger.Info(schedule.Name, $"销售出库单自动下推应付单end...");
}
}
}
private DynamicObjectCollection GetDBData(Context ctx)

15
DataReport/Class1.cs Normal file
View File

@@ -0,0 +1,15 @@
using Microsoft.Analytics.Interfaces;
using Microsoft.Analytics.Interfaces.Streaming;
using Microsoft.Analytics.Types.Sql;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace DataReport
{
public class Class1
{
}
}

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<SchemaVersion>2.0</SchemaVersion>
<ProjectTypeGuids>{416D63FD-0477-49AA-A954-A7C5B95A9B51};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<ProjectGuid>{C1B12AAC-35ED-4B3B-83DF-5D7781F11C17}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DataReport</RootNamespace>
<AssemblyName>DataReport</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.Analytics.Interfaces" />
<Reference Include="Microsoft.Analytics.Interfaces.Streaming" />
<Reference Include="Microsoft.Analytics.Types" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DataReport")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DataReport")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c1b12aac-35ed-4b3b-83df-5d7781f11c17")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Binary file not shown.

View File

@@ -7,36 +7,47 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductionMaterialRequisiti
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UseGetFmaterialData", "UseGetFmaterialData\UseGetFmaterialData.csproj", "{4D6BDA2D-FED0-4514-B4CD-FF32C5389247}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "珠海市供水有限公司", "珠海市供水有限公司", "{F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "02.珠海市供水有限公司", "02.珠海市供水有限公司", "{F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "未分类", "未分类", "{2217EA0E-E53F-4ECC-A49D-F38BC743F47A}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "00.未分类", "00.未分类", "{2217EA0E-E53F-4ECC-A49D-F38BC743F47A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SAL_OUTSTOCK", "SAL_OUTSTOCK\SAL_OUTSTOCK.csproj", "{12B329E1-C4F2-4CA7-BF3E-313F22AD527A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnPayableInStock", "UnPayableInStock\UnPayableInStock.csproj", "{2E8D2379-C8CB-47E1-BF89-A11111F18A08}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "扩展", "扩展", "{4ACB1DA8-8A4D-451A-A5FB-3CBD7A261263}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "01.扩展", "01.扩展", "{4ACB1DA8-8A4D-451A-A5FB-3CBD7A261263}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtensionMethods", "Extensions\ExtensionMethods.csproj", "{50532462-8F7F-455C-B4B3-732ED764E2FA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestProject1", "UnitTestProject1\UnitTestProject1.csproj", "{6EE96AB5-8FD3-4A48-912A-CA2AF5B82300}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "天大药业(珠海)有限公司", "天大药业(珠海)有限公司", "{56C57ADC-8E92-4340-AC25-B7647758D4EB}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04.天大药业(珠海)有限公司", "04.天大药业(珠海)有限公司", "{56C57ADC-8E92-4340-AC25-B7647758D4EB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "月度生产计划", "月度生产计划", "{A362AFBC-FC73-46A6-9185-15C17E694538}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonthlyProductionSchedule", "MonthlyProductionSchedule\MonthlyProductionSchedule.csproj", "{86DA044C-9D3B-43BD-8BDB-24B65E152604}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "旭东", "旭东", "{0C4E3DC3-F1FA-4BD7-8D81-BF5EFD452A51}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "06.泰诺麦博", "06.泰诺麦博", "{0C4E3DC3-F1FA-4BD7-8D81-BF5EFD452A51}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "汇威", "汇威", "{42311C80-7B4C-4353-BCA9-4ABD024290C8}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03.汇威", "03.汇威", "{42311C80-7B4C-4353-BCA9-4ABD024290C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HW.App.Sal.Report.PlugInEx", "Kingdee.K3.SCM.Sal.Report.PlugInEx\HW.App.Sal.Report.PlugInEx.csproj", "{01F02D15-2726-4077-80FC-9E38EF29BABC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "长园", "长园", "{270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "05.长园", "05.长园", "{270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CY.SAL_OUTSTOCK", "CY.SAL_OUTSTOCK\CY.SAL_OUTSTOCK.csproj", "{6A52A594-F6A9-4754-BF53-22A126B54081}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "生产投料单", "生产投料单", "{88CCFE9E-3837-4EA9-80EB-A064110523F8}"
ProjectSection(SolutionItems) = preProject
生产投料单-1.sql = 生产投料单-1.sql
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProductionMaterialsReport", "ProductionMaterialsReport\ProductionMaterialsReport.csproj", "{49AF92F2-2DCF-42F4-AB29-12298575D803}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CY.CB_PROACNTGROUP", "CY.CB_PROACNTGROUP\CY.CB_PROACNTGROUP.csproj", "{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Trinomab.PUR_RPT_POOrderTrace", "Trinomab.PUR_RPT_POOrderTrace\Trinomab.PUR_RPT_POOrderTrace.csproj", "{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -79,6 +90,18 @@ Global
{6A52A594-F6A9-4754-BF53-22A126B54081}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6A52A594-F6A9-4754-BF53-22A126B54081}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6A52A594-F6A9-4754-BF53-22A126B54081}.Release|Any CPU.Build.0 = Release|Any CPU
{49AF92F2-2DCF-42F4-AB29-12298575D803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{49AF92F2-2DCF-42F4-AB29-12298575D803}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49AF92F2-2DCF-42F4-AB29-12298575D803}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49AF92F2-2DCF-42F4-AB29-12298575D803}.Release|Any CPU.Build.0 = Release|Any CPU
{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608}.Release|Any CPU.Build.0 = Release|Any CPU
{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -94,6 +117,10 @@ Global
{86DA044C-9D3B-43BD-8BDB-24B65E152604} = {A362AFBC-FC73-46A6-9185-15C17E694538}
{01F02D15-2726-4077-80FC-9E38EF29BABC} = {42311C80-7B4C-4353-BCA9-4ABD024290C8}
{6A52A594-F6A9-4754-BF53-22A126B54081} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B}
{88CCFE9E-3837-4EA9-80EB-A064110523F8} = {42311C80-7B4C-4353-BCA9-4ABD024290C8}
{49AF92F2-2DCF-42F4-AB29-12298575D803} = {42311C80-7B4C-4353-BCA9-4ABD024290C8}
{5A26AFF4-AE8C-43A3-8C60-BBA153DAE608} = {270F576A-EFFF-4728-8E5C-ABDF5C3F3C8B}
{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD} = {0C4E3DC3-F1FA-4BD7-8D81-BF5EFD452A51}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {16F7DBDD-F487-41D6-A856-9E9B7B3F61C5}

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Name>HW.DataBase</Name>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>4.1</ProjectVersion>
<ProjectGuid>{ba245971-0afa-4434-a524-b53d0ff7f8d6}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider</DSP>
<OutputType>Database</OutputType>
<RootPath>
</RootPath>
<RootNamespace>HW.DataBase</RootNamespace>
<AssemblyName>HW.DataBase</AssemblyName>
<ModelCollation>1033, CI</ModelCollation>
<DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure>
<DeployToDatabase>True</DeployToDatabase>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<TargetLanguage>CS</TargetLanguage>
<AppDesignerFolder>Properties</AppDesignerFolder>
<SqlServerVerification>False</SqlServerVerification>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseSet>True</TargetDatabaseSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
</Project>

1
HW.DataBase/Script1.sql Normal file
View File

@@ -0,0 +1 @@


Binary file not shown.

View File

@@ -53,7 +53,8 @@
<Reference Include="Kingdee.K3.BD.Contracts">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.BD.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.SCM.App.Sal.Report">
<Reference Include="Kingdee.K3.SCM.App.Sal.Report, Version=7.3.1275.3, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.SCM.App.Sal.Report.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.SCM.Sal.Report.PlugIn">
@@ -72,5 +73,8 @@
<Compile Include="SaleOutStockDetailRptEx.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="SQLServer\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -1,4 +1,6 @@
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Util;
using Kingdee.K3.SCM.App.Sal.Report;
@@ -8,6 +10,7 @@ using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
@@ -16,47 +19,45 @@ namespace HW.App.Sal.Report.PlugInEx
[Description("销售出库明细报表数据源插件-扩展"), HotUpdate]
public class SaleOutStockDetailRptEx : SaleOutStockDetailRpt
{
public override void Initialize()
{
base.Initialize();
}
public override ReportTitles GetReportTitles(IRptParams filter)
{
return base.GetReportTitles(filter);
}
public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
{
return base.GetSummaryColumnInfo(filter);
}
private string[] TempTableName;
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
base.BuilderReportSqlAndTempTable(filter, tableName);
//创建临时表用于保存自己的数据
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
TempTableName = dbservice.CreateTemporaryTableName(this.Context, 1);
string strTable = TempTableName[0];
}
//调用基类方式获取初步查询数据
base.BuilderReportSqlAndTempTable(filter, strTable);
protected override DataTable GetReportData(string tablename, IRptParams filter)
{
var dataTable = base.GetReportData(tablename, filter);
string strSql = $@"/*dialect*/
SELECT
A.*
,BE.F_ORA_TEXT2 AS FSALESCATEGORY
INTO {tableName}
FROM
{strTable} A
LEFT JOIN T_SAL_OUTSTOCK B ON A.FID = B.FID AND A.FBILLNUMBER = B.FBILLNO
LEFT JOIN T_SAL_OUTSTOCKENTRY BE ON A.FID = B.FID AND BE.FENTRYID = A.FENTRYID ";
var sql = @"select ";
return dataTable;
DBUtils.Execute(this.Context, strSql);
}
public override void CloseReport()
{
base.CloseReport();
//删除临时表
if (TempTableName == null || TempTableName.Length == 0)
{
return;
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
var header = base.GetReportHeaders(filter);
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService<IDBService>();
//header.AddChild("FSALESCATEGORY", new LocaleValue("销售类别"));
dbservice.DeleteTemporaryTableName(this.Context, TempTableName);
return header;
base.CloseReport();
}
}
}

View File

@@ -75,24 +75,7 @@ namespace MonthlyProductionSchedule
//
// 设置精度控制
var list = new List<DecimalControlField>();
//// 数量
//list.Add(new DecimalControlField
//{
// ByDecimalControlFieldName = "FQty",
// DecimalControlFieldName = "FUnitPrecision"
//});
//// 单价
//list.Add(new DecimalControlField
//{
// ByDecimalControlFieldName = "FTAXPRICE",
// DecimalControlFieldName = "FPRICEDIGITS"
//});
//// 金额
//list.Add(new DecimalControlField
//{
// ByDecimalControlFieldName = "FALLAMOUNT",
// DecimalControlFieldName = "FAMOUNTDIGITS"
//});
this.ReportProperty.DecimalControlFieldList = list;
}
@@ -198,9 +181,9 @@ namespace MonthlyProductionSchedule
header.AddChild("SAFESTOCKCOUNT", new LocaleValue("安全库存量"), _colIndex++);
header.AddChild("SAFESTOCK", new LocaleValue("安全库存数量"), _colIndex++);
header.AddChild("M01", new LocaleValue("本月预计需求量"), _colIndex++);
header.AddChild("S01", new LocaleValue(date.AddMonths(-1).ToString("yyyyMM") + "发货量"), _colIndex++);
header.AddChild("S02", new LocaleValue(date.AddMonths(-2).ToString("yyyyMM") + "发货量"), _colIndex++);
header.AddChild("S03", new LocaleValue(date.AddMonths(-3).ToString("yyyyMM") + "发货量"), _colIndex++);
header.AddChild("S01", new LocaleValue(date.AddMonths(-1).ToString("yyyyMM") + "发货量"), _colIndex++);
header.AddChild("S02", new LocaleValue(date.AddMonths(-2).ToString("yyyyMM") + "发货量"), _colIndex++);
header.AddChild("S03", new LocaleValue(date.AddMonths(-3).ToString("yyyyMM") + "发货量"), _colIndex++);
header.AddChild("InStockQty", new LocaleValue("已入库量"), _colIndex++);
header.AddChild("InProductionQty", new LocaleValue("在生产量"), _colIndex++);
header.AddChild("TotalStockQty", new LocaleValue("合计入库量"), _colIndex++);

View File

@@ -31,7 +31,7 @@ BEGIN
FROM
T_PRD_MORPT A
LEFT JOIN T_PRD_MORPTENTRY AE ON AE.FID = A.FID
WHERE A.FDOCUMENTSTATUS='C'
WHERE A.FDOCUMENTSTATUS='C' AND A.FBILLTYPE = '50fa7c2eda7947b89fab5431bf25d48e'
) B on B.FMOENTRYID = AE.FENTRYID
WHERE
AE.FSRCBILLTYPE ='PLN_PLANORDER'
@@ -91,34 +91,25 @@ BEGIN
CONVERT ( VARCHAR,CAST(CS.FEXPPERIOD AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'D' THEN
CONVERT ( VARCHAR, CAST((
CASE CS.FEXPPERIOD%30 WHEN 0 THEN CS.FEXPPERIOD/30 ELSE CS.FEXPPERIOD / 365 * 12 END
CASE CS.FEXPPERIOD % 30 WHEN 0 THEN CS.FEXPPERIOD / 30 ELSE CS.FEXPPERIOD / 365 * 12 END
) AS INT)) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE ''
END
END) AS 'SHELFLIFE'
--,'' AS '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,C.FLotSize AS StandardLot
,CS.FSAFESTOCK AS SAFESTOCK --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,CS.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>λ
,(CASE CP.FPACKUNITCONVERRATIO
WHEN 0
THEN CS.FSAFESTOCK ELSE (CS.FSAFESTOCK/CP.FPACKUNITCONVERRATIO)
END) AS SAFESTOCKCOUNT
,(PackageValConver(CS.FSAFESTOCK, CP.FPACKUNITCONVERRATIO)) AS SAFESTOCKCOUNT
,CP.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
,CP.FPACKUNITID -- '<27><>λ'
,AE.M01
,AE.S01
,AE.S02
,AE.S03
,(CustomUnitNumConversion((D.FQTY + E.FBASEQTY - D.FFINISHQTY),CP.FPACKUNITCONVERRATIO)) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,(CustomUnitNumConversion(E.FBASEQTY,CP.FPACKUNITCONVERRATIO)) AS InStockQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,(CASE CP.FPACKUNITCONVERRATIO
-- WHEN 0
-- THEN (D.FQTY + E.FBASEQTY) ELSE ((D.FQTY + E.FBASEQTY)/CP.FPACKUNITCONVERRATIO)
--END) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,(CASE CP.FPACKUNITCONVERRATIO
WHEN 0
THEN B.FOrderQty ELSE (B.FOrderQty/CP.FPACKUNITCONVERRATIO)
END) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,PackageValConver(AE.M01,CP.FPACKUNITCONVERRATIO) as M01
,PackageValConver(AE.S01,CP.FPACKUNITCONVERRATIO) as S01
,PackageValConver(AE.S02,CP.FPACKUNITCONVERRATIO) as S02
,PackageValConver(AE.S03,CP.FPACKUNITCONVERRATIO) as S03
,PackageValConver((ISNULL(D.FQTY,0) - ISNULL(D.FFINISHQTY,0)),CP.FPACKUNITCONVERRATIO) AS InProductionQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,PackageValConver(ISNULL(E.FQTY,0),CP.FPACKUNITCONVERRATIO) AS InStockQty --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,PackageValConver((ISNULL(D.FQTY,0) + ISNULL(E.FQTY,0)),CP.FPACKUNITCONVERRATIO) AS TotalStockQty --<EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,PackageValConver(B.FOrderQty,CP.FPACKUNITCONVERRATIO) AS OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,B.FFirmQty
,B.FOrderQty
into #TMPMPS
@@ -136,9 +127,9 @@ BEGIN
,A.FSTOCKORGID
,SUM(A1.FQTY) AS FQTY
FROM T_STK_INVENTORY A
left join T_STK_INVINITDETAIL A1 on A.FMATERIALID = A1.FMATERIALID AND A.Fstockid = A1.ftockid
GROUP BY A.FMATERIALID,A.FSTOCKORGID
) E on E.FMATERIALID = C.FMASTERID AND E.FSTOCKORGID = A.FFOREORGID
LEFT JOIN T_STK_INVINITDETAIL A1 on A.FMATERIALID = A1.FMATERIALID AND A.Fstockid = A1.FSTOCKID
group by A.FMATERIALID,A.FSTOCKORGID
) E on E.FMATERIALID = B.FMATERIALID
WHERE
--A.FDATE BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59'
A.FDATE BETWEEN @STARTDATE AND @ENDDATE
@@ -153,8 +144,8 @@ BEGIN
ALTER TABLE #TMPMPS ADD FPACKUNITCONVT VARCHAR(100)
UPDATE T SET T.FPACKUNITCONVT = CONCAT(CONVERT(VARCHAR,T.FPACKUNITCONVERRATIO),T.FSTOREUNITNAME,'/',T.FPACKUNITNAME) FROM #TMPMPS T
ALTER TABLE #TMPMPS ADD TotalStockQty decimal(23,6)
UPDATE T SET T.TotalStockQty = T.InProductionQty +T.InStockQty FROM #TMPMPS T
--ALTER TABLE #TMPMPS ADD TotalStockQty decimal(23,6)
--UPDATE T SET T.TotalStockQty = T.InProductionQty +T.InStockQty FROM #TMPMPS T
--<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>end
DECLARE @SQL VARCHAR(2000)

View File

@@ -1,4 +1,4 @@
CREATE FUNCTION dbo.CustomUnitNumConversion(@cnvNumber decimal(23,6) ,@coefficient int)
CREATE FUNCTION PackageValConver(@cnvNumber decimal(23,6) ,@coefficient int)
RETURNS decimal(23,6) --<EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
as
BEGIN

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProductionMaterialsReport
{
public class Class1
{
}
}

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{49AF92F2-2DCF-42F4-AB29-12298575D803}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ProductionMaterialsReport</RootNamespace>
<AssemblyName>ProductionMaterialsReport</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="SqlServer\SQLQuery4.sql" />
<Content Include="SqlServer\生产用料清单.sql" />
<Content Include="SqlServer\生产订单.sql" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("ProductionMaterialsReport")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ProductionMaterialsReport")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("49af92f2-2dcf-42f4-ab29-12298575d803")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,55 @@
SELECT * INTO #TMP123 FROM #TPRDMOINFO
DROP TABLE #TPRDMOINFO
SELECT
'' AS '<EFBFBD>к<EFBFBD>',
'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FMNEMONICCODE AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>',
A.FNUMBER AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FSPECIFICATION AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>',
A.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ',
A.FQTY AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>',
A.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
( CASE A.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END ) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ',
A.FSPECIFICATION AS '<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>',
'' AS '<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼',
A.FSTDQTY AS '<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FUNITID AS '<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ',
A.FINVENTORYQTY AS '<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FNEEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS 'Ƿ<EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>',
'' AS '<EFBFBD>ƻ<EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FPICKEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FNOPICKEDQTY AS 'δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FMUSTQTY AS 'Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD>ע',
'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FSCRAPQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD>ֿ<EFBFBD>',
'' AS '<EFBFBD><EFBFBD>λ',
A.FREPICKEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FPLANSTARTDATE AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FPLANFINISHDATE AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
'' AS '<EFBFBD><EFBFBD>λ',
'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>',
'' AS 'BOM<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>',
A.FBILLTYPE AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
A.FWORKSHOPID AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
( CASE AE_A.FSTATUS WHEN 6 THEN '<EFBFBD>ѽ᰸' ELSE '' END ) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥽᰸<EFBFBD><EFBFBD>',
A.FDOCUMENTSTATUS AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD>״̬',
'' AS 'PR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δתPO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
FROM
#TMP123 A
DROP TABLE #TMP123

View File

@@ -0,0 +1,49 @@
SELECT
TOP 100
A.FID
,A.FFORMID
,A.FBILLNO --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
,A.FMATERIALID --<EFBFBD><EFBFBD>ƷID
,A.FMOBILLNO --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>
,B.FNUMBER --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,B_L.FNAME --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,B_L.FSPECIFICATION --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
,A.FBOMID
,A.FSALEORDERNO --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,A.FUNITID --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ
,D_L.FNAME UNITNAME
,A.FQTY --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FMATERIALID AS ENTRYMATERIALID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
,C.FNUMBER
,C.FMNEMONICCODE
,C_L.FNAME
,(CASE C.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) FMATERIALSRC --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
,C_L.FSPECIFICATION
,(AE.FNUMERATOR / AE.FDENOMINATOR) DOSAGE
,AE.FNEEDQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FUNITID AS ENTRYUNITID
,E_L.FNAME ENTRYUNITNAME --<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ
,AE.FMATERIALTYPE --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>
,AE.FSTDQTY --<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FMUSTQTY --Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FPICKEDQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FNOPICKEDQTY --δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FREPICKEDQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FSCRAPQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,AE.FMEMO --<EFBFBD><EFBFBD>ע
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_C.FSTOCKID
,F_L.FNAME --<EFBFBD>ֿ<EFBFBD>
,AE_C.FSTOCKLOCID --<EFBFBD><EFBFBD>λ
FROM
T_PRD_PPBOM A --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY AE ON A.FID = AE.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_Q AE_Q ON AE_Q.FENTRYID = AE.FENTRYID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_C AE_C ON AE_C.FENTRYID = AE.FENTRYID
LEFT JOIN T_BD_MATERIAL B ON B.FMATERIALID = A.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L B_L ON B_L.FMATERIALID = A.FMATERIALID AND B_L.FLOCALEID = 2052
LEFT JOIN T_BD_MATERIAL C ON C.FMATERIALID = AE.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L C_L ON C_L.FMATERIALID = AE.FMATERIALID AND C_L.FLOCALEID = 2052
LEFT JOIN T_BD_UNIT_L D_L ON D_L.FUNITID = A.FUNITID AND D_L.FLOCALEID = 2052
LEFT JOIN T_BD_UNIT_L E_L ON E_L.FUNITID = AE.FUNITID AND E_L.FLOCALEID = 2052
LEFT JOIN T_BD_STOCK_L F_L ON F_L.FSTOCKID = AE_C.FSTOCKID AND F_L.FLOCALEID =2052

View File

@@ -0,0 +1,10 @@
SELECT
A.FID
,A.FBILLNO
,AE.FPLANSTARTDATE --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
,AE.FPLANFINISHDATE --<EFBFBD>ƻ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
,AE.FPRODUCTTYPE --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FWORKSHOPID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM
T_PRD_MO A
LEFT JOIN T_PRD_MOENTRY AE ON A.FID = AE.FID

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TNMB.PUR_RPT_POOrderTrace
{
public class POOrderTraceServiceRptEx
{
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("TNMB.PUR_RPT_POOrderTrace")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TNMB.PUR_RPT_POOrderTrace")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("bcc79c5a-0154-4484-981e-13b7a4ffb4d3")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{BCC79C5A-0154-4484-981E-13B7A4FFB4D3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TNMB.PUR_RPT_POOrderTrace</RootNamespace>
<AssemblyName>TNMB.PUR_RPT_POOrderTrace</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="POOrderTraceServiceRptEx.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,57 @@
using Kingdee.BOS.App;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.Report;
using Kingdee.K3.SCM.App.Purchase.Report;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Trinomab.PUR_RPT_POOrderTrace
{
public class POOrderTraceServiceEx : POOrderTraceService
{
private string[] TempTableName;
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
//创建临时表用于保存自己的数据
IDBService dbservice = ServiceHelper.GetService<IDBService>();
TempTableName = dbservice.CreateTemporaryTableName(this.Context, 1);
string strTable = TempTableName[0];
//调用基类方式获取初步查询数据
base.BuilderReportSqlAndTempTable(filter, strTable);
string strSql = $@"/*dialect*/
SELECT
A.*
,BE.F_ORA_TEXT2 AS FAPPLYDEPT
INTO {tableName}
FROM
{strTable} A
LEFT JOIN t_PUR_POOrderEntry BE ON A.FID = B.FID AND BE.FENTRYID = A.FENTRYID
LEFT JOIN t_PUR_POOrder B ON A.FID = B.FID AND A.FBILLNO = B.FBILLNO
";
DBUtils.Execute(this.Context, strSql);
}
public override void CloseReport()
{
//删除临时表
if (TempTableName == null || TempTableName.Length == 0)
{
return;
}
IDBService dbservice = ServiceHelper.GetService<IDBService>();
dbservice.DeleteTemporaryTableName(this.Context, TempTableName);
base.CloseReport();
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("Trinomab.PUR_RPT_POOrderTrace")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Trinomab.PUR_RPT_POOrderTrace")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("9e2ddd7f-02ee-4bdf-a696-4cc6d310fead")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9E2DDD7F-02EE-4BDF-A696-4CC6D310FEAD}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Trinomab.PUR_RPT_POOrderTrace</RootNamespace>
<AssemblyName>Trinomab.PUR_RPT_POOrderTrace</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kingdee.BOS">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Contracts">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Core">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.DataEntity">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.BD.Contracts">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.BD.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.SCM.App.Purchase.Report">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.SCM.App.Purchase.Report.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="POOrderTraceServiceEx.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -15,6 +15,47 @@ namespace UnitTestProject1
[TestClass]
public class UnitTest1
{
public class TestEntity
{
public TestEntity(int _id, string _name)
{
id = _id;
name = _name;
}
public int id;
public string name;
}
[TestMethod]
public void TestMethod2()
{
var list = new List<TestEntity>();
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(1,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
list.Add(new TestEntity(2,"ttetett"));
var ttt = list.GroupBy(x => x.id);
var count = ttt.Count();
return;
}
[TestMethod]
public void TestMethod1()
{
@@ -66,6 +107,7 @@ namespace UnitTestProject1
auditList.Add(data);
auditList.Add(data1);
jsonMap.Add("itemList", auditList);
string json = JsonConvert.SerializeObject(jsonMap);
@@ -76,17 +118,14 @@ namespace UnitTestProject1
param.Add("name", "supvWarehouse.save");
param.Add("app_key", appKey);
param.Add("data", json);
param.Add("timestamp", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
param.Add("timestamp", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
param.Add("version", "");
string sign = BuildSign(param, secret);
param.Add("sign", sign);
var ttt = @"{""entName"":""珠海昶展物流有限公司"",""entCusCode"":""4404660006"",""bookNum"":""T5781W000004"",""declaEntCreditCode"":""91440404MABRGQJR1H"",""deliveryType"":""QTCK"",""declaEntCusCode"":""4404660006"",""inputDate"":""2018-02-02 14:03:07"",""deliveryTm"":""2018-02-09 00:00:00"",""declaType"":""00"",""declaDate"":""2023-12-20 09:38:55"",""declaCode"":""QTCK000003"",""itemList"":[{""productDesc"":""喇叭"",""inventoryOrderNo"":""10"",""deliveryOrderNo"":""2"",""specificationsModels"":"" "",""hscode"":""8"",""deliveryCnt"":""80.0000000000"",""itemNo"":""1"",""inventory"":""9"",""productCd"":""100242"",""calcUnit"":""Pcs""},{""productDesc"":""听筒"",""inventoryOrderNo"":""10"",""deliveryOrderNo"":""2"",""specificationsModels"":"" "",""hscode"":""8"",""deliveryCnt"":""80.0000000000"",""itemNo"":""2"",""inventory"":""9"",""productCd"":""100243"",""calcUnit"":""Pcs""}],""entCreditCode"":""91440404MABRGQJR1H"",""declaEntName"":""珠海昶展物流有限公司"",""inputMan"":""demo"",""customsCode"":""5781""}";
//var json = "{\"entName\":\"珠海昶展物流有限公司\",\"entCusCode\":\"4404660006\",\"bookNum\":\"T5781W000004\",\"declaEntCreditCode\":\"91440404MABRGQJR1H\",\"declaEntCusCode\":\"4404660006\",\"entCreditCode\":\"91440404MABRGQJR1H\",\"declaEntName\":\"珠海昶展物流有限公司\",\"inputMan\":\"demo\",\"customsCode\":\"5781\",\"inputDate\":\"2018-02-02 14:03:07\",\"declaType\":\"00\",\"deliveryTm\":\"2018-02-09 00:00:00\",\"declaDate\":\"2023-12-20 10:55:59\",\"deliveryType\":\"QTCK\",\"declaCode\":\"QTCK000003\",\"item\":[{\"itemNo\":\"1\",\"deliveryOrderNo\":\"2\",\"productCd\":\"100242\",\"productDesc\":\"喇叭\",\"specificationsModels\":\" \",\"deliveryCnt\":\"80.0000000000\",\"calcUnit\":\"Pcs\",\"hscode\":\"8\",\"inventory\":\"9\",\"inventoryOrderNo\":\"10\"},{\"itemNo\":\"2\",\"deliveryOrderNo\":\"2\",\"productCd\":\"100243\",\"productDesc\":\"听筒\",\"specificationsModels\":\" \",\"deliveryCnt\":\"80.0000000000\",\"calcUnit\":\"Pcs\",\"hscode\":\"8\",\"inventory\":\"9\",\"inventoryOrderNo\":\"10\"}]}";
var jsonParam = JsonConvert.SerializeObject(param);
var ttt2 = JsonConvert.SerializeObject(param);
HttpWebHelper.DoPost("http://119.146.223.48:39082/api/", ttt2);
var result = HttpWebHelper.DoPost("http://119.146.223.48:39082/api/", jsonParam);
var a = 0.00M;
var a2 = 0L;
var f = (a == a2);
@@ -146,4 +185,8 @@ namespace UnitTestProject1
return sign.ToString();
}
}
}

Binary file not shown.

90
生产投料单-1.sql Normal file
View File

@@ -0,0 +1,90 @@
SELECT
'' AS '行号',
'' AS '单据日期',
D.FBILLNO AS '生产投料单号',
'' AS '销售订单号',
'' AS '购货单位代码',
C.FMNEMONICCODE AS '助记码',
A.FBILLNO AS '生产任务单号',
C.FNUMBER AS '产品代码',
C_L.FNAME AS '产品名称',
C_L.FSPECIFICATION AS '产品规格型号',
E_L.FNAME AS '产品单位',
AE.FQTY AS '产品生产数量',
I.FNUMBER AS '物料代码',
I.FNAME AS '物料名称',
( CASE I.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END ) AS '物料来源',
I.FSPECIFICATION AS '物料规格型号',
'' AS '物料技术标准',
I.FSTDQTY AS '物料单位用量',
I.FUNITID AS '物料单位',
I.FINVENTORYQTY AS '物料库存量',
'' AS '物料待检数',
I.FNEEDQTY AS '物料总需求',
'' AS '当前在制品数量',
'' AS '欠料',
'' AS '物料在途数',
'' AS '计划投料数量',
I.FPICKEDQTY AS '已领数量',
I.FNOPICKEDQTY AS '未领数量',
'' AS '标准数量',
I.FMUSTQTY AS '应发数量',
'' AS '备注',
'' AS '损耗数量',
I.FSCRAPQTY AS '报废数量',
'' AS '计划发料日期',
'' AS '仓库',
'' AS '仓位',
I.FREPICKEDQTY AS '补料数量',
AE.FPLANSTARTDATE AS '计划开工日期',
AE.FPLANFINISHDATE AS '计划完工日期',
'' AS '工位',
'' AS '其他备注项',
'' AS 'BOM备注项',
A.FBILLTYPE AS '生产类型',
AE.FWORKSHOPID AS '生产车间',
( CASE AE_A.FSTATUS WHEN 6 THEN '已结案' ELSE '' END ) AS '生产任务单结案否',
D.FDOCUMENTSTATUS AS '生产投料单状态',
'' AS 'PR已审未转PO数量'
FROM
T_PRD_MO A --
left JOIN T_PRD_MOENTRY AE ON A.FID = AE.FID --
LEFT JOIN T_PRD_MOENTRY_A AE_A ON AE_A.FENTRYID = AE.FENTRYID
INNER JOIN T_BD_MATERIAL C ON AE.FMATERIALID = C.FMATERIALID --
INNER JOIN T_BD_MATERIAL_L C_L ON C.FMATERIALID = C_L.FMATERIALID
LEFT JOIN T_PRD_PPBOM D ON D.FMOENTRYID = AE_A.FENTRYID --
LEFT JOIN T_BD_UNIT_L E_L ON AE.FUNITID = E_L.FUNITID
LEFT JOIN (
SELECT
A.FMATERIALID,
A.FMASTERID,
A.FNUMBER,
B.FUNITID,
AL.FNAME ,
AL.FSPECIFICATION ,
A.FMATERIALSRC,
B.FENTRYID,
B.FID,
B.FMOID,
B.FMOENTRYID,
B.FMOTYPE,
B.FMOBILLNO,
B.FNEEDQTY,
B.FMUSTQTY,
B_Q.FPICKEDQTY,
B_Q.FNOPICKEDQTY,
B.FSTDQTY,
B_Q.FINVENTORYQTY,
B_Q.FSCRAPQTY,
B_Q.FREPICKEDQTY
FROM
T_BD_MATERIAL A
LEFT JOIN T_BD_MATERIAL_L AL ON A.FMATERIALID = AL.FMATERIALID
RIGHT JOIN T_PRD_PPBOMENTRY B ON B.FMATERIALID = A.FMATERIALID
RIGHT JOIN T_PRD_PPBOMENTRY_Q B_Q ON B.FENTRYID = B_Q.FENTRYID
WHERE
AL.FLOCALEID = 2052
) I ON D.FID = I.FID
WHERE
C_L.FLOCALEID = 2052
AND E_L.FLOCALEID = 2052