22个文件已添加
68个文件已修改
11个文件已删除
1 文件已重命名
| | |
| | | .editorconfig = .editorconfig |
| | | EndProjectSection |
| | | EndProject |
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZD.Cloud.Logger", "src\BLL\ZD.Cloud.Logger\ZD.Cloud.Logger.csproj", "{876BCC4D-41BE-4570-BD36-D6F11526AD64}" |
| | | EndProject |
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZD.Cloud.WebApi", "src\BLL\ZD.Cloud.WebApi\ZD.Cloud.WebApi.csproj", "{96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B}" |
| | | EndProject |
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZD.Share", "src\BLL\ZD.Share\ZD.Share.csproj", "{54F8364F-3C79-43E7-9F14-DE0BC63555D6}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | | Debug|Any CPU = Debug|Any CPU |
| | |
| | | {3B5437EE-F19C-4B69-90A4-88866841337B}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {3B5437EE-F19C-4B69-90A4-88866841337B}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {3B5437EE-F19C-4B69-90A4-88866841337B}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {876BCC4D-41BE-4570-BD36-D6F11526AD64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {876BCC4D-41BE-4570-BD36-D6F11526AD64}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {876BCC4D-41BE-4570-BD36-D6F11526AD64}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {876BCC4D-41BE-4570-BD36-D6F11526AD64}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {54F8364F-3C79-43E7-9F14-DE0BC63555D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {54F8364F-3C79-43E7-9F14-DE0BC63555D6}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {54F8364F-3C79-43E7-9F14-DE0BC63555D6}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {54F8364F-3C79-43E7-9F14-DE0BC63555D6}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| | |
| | | {0AF059FC-D287-42C4-8835-133C3D96243A} = {2D428206-511A-4C87-8A60-4535B238A03E} |
| | | {E2975D07-F28A-417E-8225-19281A7A62BD} = {2D428206-511A-4C87-8A60-4535B238A03E} |
| | | {3B5437EE-F19C-4B69-90A4-88866841337B} = {2D428206-511A-4C87-8A60-4535B238A03E} |
| | | {876BCC4D-41BE-4570-BD36-D6F11526AD64} = {2D428206-511A-4C87-8A60-4535B238A03E} |
| | | {96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B} = {2D428206-511A-4C87-8A60-4535B238A03E} |
| | | {54F8364F-3C79-43E7-9F14-DE0BC63555D6} = {2D428206-511A-4C87-8A60-4535B238A03E} |
| | | EndGlobalSection |
| | | GlobalSection(ExtensibilityGlobals) = postSolution |
| | | SolutionGuid = {92FECC0D-B61B-466C-9421-AAECA846220B} |
| | |
| | | <Reference Include="Kingdee.BOS.FileServer.ProxyService, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.FileServer.ProxyService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.Mobile, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.Mobile.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.Model, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.Model.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="Kingdee.BOS.Web, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.Web.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WinForm.KDS20Lib, Version=7.0.104.1, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.BOS.WinForm.KDS20Lib.dll</HintPath> |
| | |
| | | </Reference> |
| | | <Reference Include="Kingdee.K3.MFG.ServiceHelper"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\Kingdee.K3.MFG.ServiceHelper.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.K3.Mobile.Business.PlugIn, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.Mobile.Business.PlugIn.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.K3.Mobile.SCM.Business.PlugIn, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.Mobile.SCM.Business.PlugIn.dll</HintPath> |
| | |
| | | <Reference Include="Kingdee.K3.SCM.Credit.Business.PlugIn, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.SCM.Credit.Business.PlugIn.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.K3.SCM.Mobile.Business.PlugIn, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.SCM.Mobile.Business.PlugIn.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.K3.SCM.Mobile.ServiceHelper, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.SCM.Mobile.ServiceHelper.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.K3.SCM.ServiceHelper, Version=7.2.904.6, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.2.3\lib\net452\Kingdee.K3.SCM.ServiceHelper.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Newtonsoft.Json.1.0.0\lib\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <Reference Include="NPOI"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI.OOXML, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.OOXML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI.OpenXml4Net, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.OpenXml4Net.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI.OpenXmlFormats, Version=2.4.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.OpenXmlFormats.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="PresentationFramework" /> |
| | | <Reference Include="System" /> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.Logger, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Logger.1.1.0\lib\net40\ZD.Cloud.Logger.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="PRD\KDExtension.cs" /> |
| | | <Compile Include="PRD\LogService.cs" /> |
| | | <Compile Include="PRD\PODemandPlanListFilter.cs" /> |
| | | <Compile Include="PRD\PODemandPlanListLoad.cs" /> |
| | | <Compile Include="PRD\ProductScheduleButtonClick.cs" /> |
| | |
| | | <Compile Include="PRD\Pro_ShowParameter.cs" /> |
| | | <Compile Include="PRD\Pro_ZJDBSH.cs" /> |
| | | <Compile Include="PRD\Pro_ZJDBFSH.cs" /> |
| | | <Compile Include="PRD\Pro_DayPlanPushZJDB2.cs" /> |
| | | <Compile Include="PRD\Pro_DayPlanSelectMenu.cs" /> |
| | | <Compile Include="PRD\Pro_DayPlanPushZJDB.cs" /> |
| | | <Compile Include="PRD\Pro_MaterialRequisitionAuditDayPlan.cs" /> |
| | |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="app.config" /> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | |
| | | <Project>{0AF059FC-D287-42C4-8835-133C3D96243A}</Project> |
| | | <Name>Demo.Utility</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Cloud.Logger\ZD.Cloud.Logger.csproj"> |
| | | <Project>{876bcc4d-41be-4570-bd36-d6f11526ad64}</Project> |
| | | <Name>ZD.Cloud.Logger</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Cloud.WebApi\ZD.Cloud.WebApi.csproj"> |
| | | <Project>{96e1cc80-0e04-4f78-bbff-75faf6a69f7b}</Project> |
| | | <Name>ZD.Cloud.WebApi</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Share\ZD.Share.csproj"> |
| | | <Project>{54f8364f-3c79-43e7-9f14-de0bc63555d6}</Project> |
| | | <Name>ZD.Share</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <WCFMetadata Include="Connected Services\" /> |
New file |
| | |
| | | |
| | | Microsoft Visual Studio Solution File, Format Version 12.00 |
| | | # Visual Studio Version 16 |
| | | VisualStudioVersion = 16.0.31321.278 |
| | | MinimumVisualStudioVersion = 10.0.40219.1 |
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo.BillView", "Demo.BillView.csproj", "{45D78DAF-CF2E-47D6-A404-76E3B36EEDFF}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | | Debug|Any CPU = Debug|Any CPU |
| | | Release|Any CPU = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
| | | {45D78DAF-CF2E-47D6-A404-76E3B36EEDFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {45D78DAF-CF2E-47D6-A404-76E3B36EEDFF}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {45D78DAF-CF2E-47D6-A404-76E3B36EEDFF}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {45D78DAF-CF2E-47D6-A404-76E3B36EEDFF}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| | | EndGlobalSection |
| | | GlobalSection(ExtensibilityGlobals) = postSolution |
| | | SolutionGuid = {714411A3-A86B-49D6-A8A1-827ADAA0DD15} |
| | | EndGlobalSection |
| | | EndGlobal |
| | |
| | | using Kingdee.BOS.Core.Metadata; |
| | | using Kingdee.K3.MFG.ServiceHelper; |
| | | using Kingdee.BOS; |
| | | using ZD.Cloud.Logger; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.List; |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("提料计划列表过滤")] |
| | | [Description("提料计划列表 列表插件")] |
| | | [HotUpdate] |
| | | |
| | | public class PODemandPlanListFilter : AbstractListPlugIn |
| | | { |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | base.BarItemClick(e); |
| | | //关闭 |
| | | if (e.BarItemKey.ToUpper().Equals("BTNCLOSE")) |
| | | { |
| | | //获取选择记录 |
| | | ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo; |
| | | //读取ID,放到数组 |
| | | string[] ID = selectRows.GetPrimaryKeyValues(); |
| | | string FID = ""; |
| | | |
| | | //没有选择行提示 |
| | | if (ID.Length == 0) |
| | | { |
| | | //如果选择的是0,即没有选择行记录,弹窗报错,返回 |
| | | this.View.ShowMessage("请选择单据!", MessageBoxType.Notice); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | //如果点击成功,循环ID |
| | | for (int i = 0; i < ID.Length; i++) |
| | | { |
| | | FID = FID + ID[i].ToString() + ","; |
| | | } |
| | | FID = FID.Substring(0, FID.Length - 1); |
| | | string sql = string.Format(@"/*dialect*/ |
| | | update Cg_PODemandPlanBillMain set |
| | | FHCloseMan = {0}, |
| | | FHCloseDate = GETDATE(), |
| | | FHCloseType = 1 |
| | | where fid IN ({1})", Context.UserId, FID); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | sql = string.Format(@"/*dialect*/ |
| | | UPDATE A SET |
| | | A.FPODemandPlanCount -= B.FHQTY |
| | | FROM t_PUR_POOrderEntry A |
| | | JOIN Cg_PODemandPlanBillSub B ON A.FENTRYID = B.FHPOOrderEntryID |
| | | where B.FID IN (select FID FROM Cg_PODemandPlanBillMain WHERE FHCloseType = 0 AND FID IN ({0})) AND B.FCLOSESTATUS = 0 |
| | | ", FID); |
| | | this.View.Refresh(); |
| | | this.View.ShowMessage("操作成功"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public override void PrepareFilterParameter(global::Kingdee.BOS.Core.List.PlugIn.Args.FilterArgs e) |
| | | { |
| | | base.PrepareFilterParameter(e); |
| | |
| | | { |
| | | long userId = this.Context.UserId; |
| | | string sql = $"/*dialect*/ select FSupplierId from T_SEC_user a join T_SCP_USERDATA b on a.FUSERID = b.FUSERID where FUSERTYPE = 2 and a.FUSERID ={userId}"; |
| | | //LogHelper.Info(sql); |
| | | ////LogHelper.Info(sql); |
| | | int FSupplierId = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | return FSupplierId; |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogService.WriteAsync("测试"); |
| | | //LogService.WriteAsync("测试"); |
| | | } |
| | | } |
| | | |
| | |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.BillView |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("齐套分析列表功能")] |
| | | [HotUpdate] |
| | |
| | | |
| | | public override void OnLoad(EventArgs e) |
| | | { |
| | | LogHelper.Info("[齐套分析明细加载列表]"); |
| | | //LogHelper.Info("[齐套分析明细加载列表]"); |
| | | base.OnLoad(e); |
| | | if (this.View.OpenParameter.GetCustomParameter("FHICMOInterID") == null) |
| | | { |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace Demo.BillView |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("齐套分析物料明细")] |
| | | [HotUpdate] |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | |
| | | namespace Demo.BillView |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("生产计划平台拖期明细")] |
| | | [HotUpdate] |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | |
| | | base.BarItemClick(e); |
| | | try |
| | | { |
| | | |
| | | //主表关闭 |
| | | if (e.BarItemKey.ToUpper() == "BTNCLOSE") |
| | | { |
| | | var FID = this.View.Model.GetPKValue(); |
| | | string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'E' where FID = {FID}"; |
| | | string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'E',FHCloseMan = '{Context.UserId}',FHCloseDate = GETDATE() where FID = {FID}"; |
| | | DBServiceHelper.Execute(Context, sql); |
| | | this.View.Refresh(); |
| | | this.View.ShowMessage("操作成功"); |
| | | } |
| | | //反关闭 |
| | | if (e.BarItemKey.ToUpper() == "BTNCANCELCLOSE") |
| | | { |
| | | var FID = this.View.Model.GetPKValue(); |
| | | string yzSql = string.Format(@"/*dialect*/ |
| | | SELECT A.FBILLNO FROM SC_WORKBILLSORTBILLMAIN A |
| | | JOIN (SELECT * FROM SC_WORKBILLSORTBILLMAIN WHERE FDOCUMENTSTATUS <>'E') B ON A.FSCORDERNO=B.FSCORDERNO AND A.FSRCBILLENTRYSEQ=B.FSRCBILLENTRYSEQ |
| | | WHERE A.FID IN ({0}) |
| | | ", FID); |
| | | DataTable dataTable = DBServiceHelper.ExecuteDataSet(Context, yzSql).Tables[0]; |
| | | if (dataTable.Rows.Count > 0) |
| | | { |
| | | this.View.ShowErrMessage("反关闭后会存在生产订单和明细行号数据重复"); |
| | | return; |
| | | } |
| | | string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'C',FHCloseMan = '',FHCloseDate = NULL where FID = {FID}"; |
| | | DBServiceHelper.Execute(Context, sql); |
| | | this.View.Refresh(); |
| | | this.View.ShowMessage("操作成功"); |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using Kingdee.BOS.Core.Bill; |
| | | using Kingdee.BOS.Core.Bill.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Newtonsoft.Json.Linq; |
| | | using ZD.Cloud.Logger; |
| | | using ZD.Cloud.WebApi; |
| | | using Demo.Model.Model; |
| | | using System.Diagnostics; |
| | | using System.Linq; |
| | | using Kingdee.BOS.Core.Bill.PlugIn.Args; |
| | | using Kingdee.K3.SCM.Core; |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | { |
| | | base.DataChanged(e); |
| | | var model = this.View.Model; |
| | | double FHQty = Convert.ToDouble(model.GetValue("FHQty")); |
| | | decimal FHQty = Convert.ToDecimal(model.GetValue("FHQty")); |
| | | if (e.Field.Key.Contains("FUseRateNew")) |
| | | { |
| | | if (e.OldValue == e.NewValue || e.NewValue == null) |
| | | return; |
| | | double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//分子 |
| | | double FDenominator = Convert.ToDouble(model.GetValue("FDenominator", e.Row));//分母 |
| | | double FUseRateNew = Convert.ToDouble(model.GetValue("FUseRateNew", e.Row));//使用比例 |
| | | double Hqty; |
| | | decimal FNumerator = Convert.ToDecimal(model.GetValue("FNumerator", e.Row));//分子 |
| | | decimal FDenominator = Convert.ToDecimal(model.GetValue("FDenominator", e.Row));//分母 |
| | | decimal FUseRateNew = Convert.ToDecimal(model.GetValue("FUseRateNew", e.Row));//使用比例 |
| | | decimal Hqty; |
| | | if (FNumerator == 0 || FDenominator == 0) |
| | | { |
| | | Hqty = Math.Ceiling(FHQty * (FUseRateNew / 100)); |
| | |
| | | var finds = entrys.Where(entry => entry.GetValue<string>("FReplaceGroup") == pro && entry.GetValue<int>("Seq") != (m + 1)); |
| | | if (finds.Count() == 0) return; |
| | | var seq = finds.First().GetValue<int>("Seq"); |
| | | model.SetValue("FUseRateNew", 100 - Convert.ToDouble(e.NewValue), seq - 1); |
| | | model.SetValue("FUseRateNew", 100 - Convert.ToDecimal(e.NewValue), seq - 1); |
| | | } |
| | | if (e.Field.Key.Contains("FHQtyMustNew")) |
| | | { |
| | | if (e.OldValue == e.NewValue || e.NewValue == null) |
| | | return; |
| | | var m = e.Row; |
| | | double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//分子 |
| | | double FDenominator = Convert.ToDouble(model.GetValue("FDenominator", e.Row));//分母 |
| | | double FHQtyMustNew = Convert.ToDouble(model.GetValue("FHQtyMustNew", e.Row));//新计划数量 |
| | | double Hqty; |
| | | decimal FNumerator = Convert.ToDecimal(model.GetValue("FNumerator", e.Row));//分子 |
| | | decimal FDenominator = Convert.ToDecimal(model.GetValue("FDenominator", e.Row));//分母 |
| | | decimal FHQtyMustNew = Convert.ToDecimal(model.GetValue("FHQtyMustNew", e.Row));//新计划数量 |
| | | decimal Hqty; |
| | | decimal zero = 0; |
| | | if (FNumerator == 0 || FDenominator == 0) |
| | | { |
| | | Hqty = Math.Ceiling(FHQtyMustNew / FHQty * 100); |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | FID = FID + ID[i].ToString() + ","; |
| | | } |
| | | FID = FID.Substring(0, FID.Length - 1); |
| | | string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'E' where FID in ({FID})"; |
| | | //LogHelper.Info(sql); |
| | | string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'E',FHCloseMan = '{Context.UserId}',FHCloseDate = GETDATE() where FID in ({FID})"; |
| | | ////LogHelper.Info(sql); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | this.View.ShowMessage("操作成功"); |
| | | } |
| | | } |
| | | //反关闭 |
| | | else if (e.BarItemKey.Equals("BTNCANCELCLOSE")) |
| | | { |
| | | //获取选择记录 |
| | | ListSelectedRowCollection selectRows = this.ListView.SelectedRowsInfo; |
| | | |
| | | //读取ID,放到数组 |
| | | string[] ID = selectRows.GetPrimaryKeyValues(); |
| | | string FID = ""; |
| | | |
| | | //没有选择行提示 |
| | | if (ID.Length == 0) |
| | | { |
| | | //如果选择的是0,即没有选择行记录,弹窗报错,返回 |
| | | this.View.ShowMessage("请选择单据!", MessageBoxType.Notice); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | //如果点击成功,循环ID |
| | | for (int i = 0; i < ID.Length; i++) |
| | | { |
| | | FID = FID + ID[i].ToString() + ","; |
| | | } |
| | | FID = FID.Substring(0, FID.Length - 1); |
| | | //验证 关闭订单 |
| | | //验证所选订单是否存在相同数据 生产订单号+生产订单明细行号 |
| | | string errmsg = ""; |
| | | string fbillno = ""; |
| | | string yzSql = string.Format(@"/*dialect*/ |
| | | SELECT FBILLNO FROM SC_WORKBILLSORTBILLMAIN WHERE FSCORDERNO+CONVERT(VARCHAR,FSRCBILLENTRYSEQ) IN ( |
| | | SELECT FSCORDERNO+CONVERT(VARCHAR,FSRCBILLENTRYSEQ) FROM SC_WORKBILLSORTBILLMAIN |
| | | WHERE FID IN ({0}) |
| | | GROUP BY |
| | | FSCORDERNO,FSRCBILLENTRYSEQ |
| | | HAVING COUNT(*)>1 |
| | | )", FID); |
| | | DataTable dataTable = DBServiceHelper.ExecuteDataSet(Context, yzSql).Tables[0]; |
| | | if (dataTable.Rows.Count > 0) |
| | | { |
| | | errmsg += "所选订单中存在相同生产订单和明细行号数据,订单号:"; |
| | | foreach (DataRow dr in dataTable.Rows) |
| | | { |
| | | errmsg += dr["FBILLNO"].ToString(); |
| | | fbillno += $"'{dr["FBILLNO"].ToString()}',"; |
| | | } |
| | | } |
| | | yzSql = string.Format(@"/*dialect*/ |
| | | SELECT A.FBILLNO FROM SC_WORKBILLSORTBILLMAIN A |
| | | JOIN (SELECT * FROM SC_WORKBILLSORTBILLMAIN WHERE FDOCUMENTSTATUS <>'E') B ON A.FSCORDERNO=B.FSCORDERNO AND A.FSRCBILLENTRYSEQ=B.FSRCBILLENTRYSEQ |
| | | WHERE A.FID IN ({0}) |
| | | ", FID); |
| | | dataTable = DBServiceHelper.ExecuteDataSet(Context, yzSql).Tables[0]; |
| | | if (dataTable.Rows.Count > 0) |
| | | { |
| | | errmsg += "\n" + "所选订单中存在生产订单和明细行号关闭后数据重复,订单号:"; |
| | | foreach (DataRow dr in dataTable.Rows) |
| | | { |
| | | errmsg += dr["FBILLNO"].ToString(); |
| | | fbillno += $"'{dr["FBILLNO"].ToString()}',"; |
| | | } |
| | | } |
| | | string sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'C',FHCloseMan = '',FHCloseDate = NULL where FID in ({FID})"; |
| | | if (fbillno.Length > 0) { |
| | | fbillno = fbillno.Substring(0, fbillno.Length - 1); |
| | | sql = $"/*dialect*/ update Sc_WorkBillSortBillMain set FDocumentStatus = 'C',FHCloseMan = '',FHCloseDate = NULL where FID in ({FID}) AND FBILLNO NOT IN ({fbillno})"; |
| | | } |
| | | ////LogHelper.Info(sql); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | if (errmsg != "") |
| | | { |
| | | this.View.ShowMessage("部分单据操作成功\n" + errmsg); |
| | | return; |
| | | } |
| | | this.View.ShowMessage("操作成功"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | /// <summary> |
| | | /// 日计划工单下推后,建立生产汇报单与生产订单的关联关系 |
| | |
| | | e.FieldKeys.Add("FBaseJoinQty"); |
| | | } |
| | | private const string POFormId = "PRD_MO"; |
| | | public List<string> FentryIdList = new List<string>(); |
| | | private List<string> FentryIdList = new List<string>(); |
| | | public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) |
| | | { |
| | | base.BeforeExecuteOperationTransaction(e); |
| | |
| | | string srcFormId = ""; |
| | | string srcSrcBillNo = ""; |
| | | string FPPBOMFENTRYID = ""; |
| | | try |
| | | { |
| | | srcFormId = fldSrcFormId.DynamicProperty.GetValue<string>(entryRow); |
| | | srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); |
| | | //srcFormId = "PRD_MO"; |
| | | //srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString(); |
| | | //string FPPBOMFID = entryRow["FPPOMFID"]?.ToString(); |
| | | //FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"]?.ToString(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | |
| | | srcFormId = fldSrcFormId.DynamicProperty.GetValue<string>(entryRow); |
| | | srcSrcBillNo = fldSrcBillNo.DynamicProperty.GetValue<string>(entryRow); |
| | | //srcFormId = "PRD_MO"; |
| | | //srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString(); |
| | | //string FPPBOMFID = entryRow["FPPOMFID"]?.ToString(); |
| | | //FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"]?.ToString(); |
| | | |
| | | if (string.IsNullOrWhiteSpace(srcFormId) |
| | | || string.IsNullOrWhiteSpace(srcSrcBillNo) |
| | | ) |
| | |
| | | } |
| | | } |
| | | // 为新建的源单关联信息,设置内码 |
| | | IDBService dbService =Kingdee.K3.SCM.App.ServiceHelper.GetService<IDBService>(); |
| | | IDBService dbService = Kingdee.K3.SCM.App.ServiceHelper.GetService<IDBService>(); |
| | | dbService.AutoSetPrimaryKey(this.Context, allNewLinkRows.ToArray(), linkEntry.DynamicObjectType); |
| | | } |
| | | |
| | |
| | | e.FieldKeys.Add("FBaseJoinQty"); |
| | | } |
| | | private const string POFormId = "PRD_PPBOM"; |
| | | public List<string> FentryIdList = new List<string>(); |
| | | private List<string> FentryIdList = new List<string>(); |
| | | public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) |
| | | { |
| | | base.BeforeExecuteOperationTransaction(e); |
| | |
| | | string srcFormId = ""; |
| | | string srcSrcBillNo = ""; |
| | | string FPPBOMFENTRYID = ""; |
| | | try |
| | | { |
| | | srcFormId = "PRD_PPBOM"; |
| | | srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString(); |
| | | string FPPBOMFID = entryRow["FPPOMFID"]?.ToString(); |
| | | FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"]?.ToString(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | srcFormId = "PRD_PPBOM"; |
| | | srcSrcBillNo = entryRow["FPPBOMBILLNO"]?.ToString(); |
| | | string FPPBOMFID = entryRow["FPPOMFID"]?.ToString(); |
| | | FPPBOMFENTRYID = entryRow["FPPBOMFENTRYID"]?.ToString(); |
| | | if (string.IsNullOrWhiteSpace(srcFormId) |
| | | || string.IsNullOrWhiteSpace(srcSrcBillNo) |
| | | ) |
| | |
| | | if (FentryIdList.Count > 0) |
| | | { |
| | | string FentryId = string.Join(",", FentryIdList.ToArray()); |
| | | // sql = string.Format(@"/*dialect*/ |
| | | //update a set FBASEQTY = FQTY |
| | | //from T_STK_STKTRANSFERINENTRY_LK a |
| | | //join T_STK_STKTRANSFERINENTRY b on a.FENTRYID = b.FENTRYID |
| | | //where |
| | | //--a.FSTABLENAME = 'T_PRD_PPBOMENTRY' and |
| | | //a.FENTRYID in ({0})", FentryId); |
| | | // sqlList.Add(sql); |
| | | // sql = string.Format(@"/*dialect*/ |
| | | //update a set FBASEQTY = FQTY |
| | | //from T_STK_STKTRANSFERINENTRY_LK a |
| | | //join T_STK_STKTRANSFERINENTRY b on a.FENTRYID = b.FENTRYID |
| | | //where |
| | | //--a.FSTABLENAME = 'T_PRD_PPBOMENTRY' and |
| | | //a.FENTRYID in ({0})", FentryId); |
| | | // sqlList.Add(sql); |
| | | sql = string.Format(@"/*dialect*/update T_STK_STKTRANSFERINENTRY_R |
| | | set FSrcBillTypeId = 'PRD_PPBOM',FSRCBILLNO=b.FPPBOMBILLNO |
| | | ,FTRANSRESERVELINK=1 |
| | |
| | | sqlList.Add(sql); |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | /// <summary> |
| | | /// 插件示例:日计划用料清单下推后,建立生产领料单与生产用料清单关联关系 |
| | |
| | | e.FieldKeys.Add("FBaseJoinQty"); |
| | | } |
| | | private const string POFormId = "PRD_PPBOM"; |
| | | public List<string> FentryIdList = new List<string>(); |
| | | private List<string> FentryIdList = new List<string>(); |
| | | |
| | | public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) |
| | | { |
| | |
| | | string srcFormId = ""; |
| | | string srcSrcBillNo = ""; |
| | | string FPPBOMFENTRYID = ""; |
| | | try |
| | | { |
| | | srcFormId = "PRD_PPBOM"; |
| | | srcSrcBillNo = entryRow["PPBOMBILLNO"].ToString(); |
| | | FPPBOMFENTRYID = entryRow["PPBomEntryId"].ToString(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | srcFormId = "PRD_PPBOM"; |
| | | srcSrcBillNo = entryRow["PPBOMBILLNO"].ToString(); |
| | | FPPBOMFENTRYID = entryRow["PPBomEntryId"].ToString(); |
| | | if (string.IsNullOrWhiteSpace(srcFormId) |
| | | || string.IsNullOrWhiteSpace(srcSrcBillNo) |
| | | ) |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | /// <summary> |
| | | /// 插件示例:日计划用料清单下推后,建立生产领料单与生产用料清单关联关系 |
| | |
| | | string srcFormId = ""; |
| | | string srcSrcBillNo = ""; |
| | | string FPPBOMFENTRYID = ""; |
| | | try |
| | | { |
| | | srcFormId = "PRD_PPBOM"; |
| | | srcSrcBillNo = entryRow["PPBOMBILLNO"].ToString(); |
| | | FPPBOMFENTRYID = entryRow["PPBomEntryId"].ToString(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | srcFormId = "PRD_PPBOM"; |
| | | srcSrcBillNo = entryRow["PPBOMBILLNO"].ToString(); |
| | | FPPBOMFENTRYID = entryRow["PPBomEntryId"].ToString(); |
| | | |
| | | if (string.IsNullOrWhiteSpace(srcFormId) |
| | | || string.IsNullOrWhiteSpace(srcSrcBillNo) |
| | | ) |
| | |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using Kingdee.BOS.Core.Bill; |
| | | using Kingdee.BOS.Core.Bill.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Newtonsoft.Json.Linq; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using ZD.Cloud.WebApi; |
| | | using Demo.Model.Model; |
| | | using System.Diagnostics; |
| | | using System.Linq; |
| | | using Kingdee.BOS.Core.Bill.PlugIn.Args; |
| | | |
| | |
| | | |
| | | //var FID = this.View.Model.GetPKValue(); |
| | | var fBillNo = this.View.Model.GetValue("FBILLNO"); |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | //锁定的日计划不生成 |
| | | try |
| | | { |
| | |
| | | WHERE T4.FMustQty>0 |
| | | and T3.FBILLNO='{0}' |
| | | ", fBillNo); |
| | | LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | //LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | DataTable dt = ds.Tables[0]; |
| | | List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>(); |
| | |
| | | |
| | | }); |
| | | } |
| | | LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList(); |
| | | int i = 1; |
| | | JArray Fentity = new JArray(); |
| | |
| | | Fentity.Add(model); |
| | | if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count)) |
| | | { |
| | | LogHelper.Info("日计划用料清单批量执行,记录循环的当前条数" + i); |
| | | //LogHelper.Info("日计划用料清单批量执行,记录循环的当前条数" + i); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | } |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | Fentity = new JArray(); |
| | |
| | | i++; |
| | | } |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("日计划用料清单+" + ex.Message.ToString()); |
| | | //LogHelper.Error("日计划用料清单+" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using Kingdee.BOS.Core.Bill; |
| | | using Kingdee.BOS.Core.Bill.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Newtonsoft.Json.Linq; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using ZD.Cloud.WebApi; |
| | | using Demo.Model.Model; |
| | | using System.Diagnostics; |
| | | using System.Linq; |
| | | using Kingdee.BOS.Core.Bill.PlugIn.Args; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn; |
| | | |
| | | namespace Demo.BillView.PRD |
| | |
| | | WHERE T4.FMustQty>0 |
| | | and T3.FBILLNO='{0}' |
| | | ", fBillNo); |
| | | LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | //LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | DataTable dt = ds.Tables[0]; |
| | | List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>(); |
| | |
| | | } |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | //this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | Fentity = new JArray(); |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("日计划用料清单列表生成失败:" + ex.Message.ToString()); |
| | | //LogHelper.Error("日计划用料清单列表生成失败:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("日计划用料清单列表生成失败:" + ex.Message.ToString()); |
| | | //LogHelper.Error("日计划用料清单列表生成失败:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[日计划用料清单变更-反审核]按钮功能]")] |
| | | [HotUpdate] |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[日计划用料清单变更-审核]按钮功能]")] |
| | | [HotUpdate] |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | //if (!isSearched) return; |
| | | base.DataChanged(e); |
| | | var model = this.View.Model; |
| | | double FHQty = Convert.ToDouble(model.GetValue("FHQty")); |
| | | decimal FHQty = Convert.ToDecimal(model.GetValue("FHQty")); |
| | | //分子 |
| | | if (e.Field.Key.Contains("FNumerator") || e.Field.Key.Contains("FDenominator") || e.Field.Key.Contains("FUseRate")) |
| | | { |
| | | double FNumerator = Convert.ToDouble(model.GetValue("FNumerator", e.Row));//分子 |
| | | double FDenominator = Convert.ToDouble(model.GetValue("FDenominator", e.Row));//分母 |
| | | double FUseRate = Convert.ToDouble(model.GetValue("FUseRate", e.Row));//使用比例 |
| | | decimal FNumerator = Convert.ToDecimal(model.GetValue("FNumerator", e.Row));//分子 |
| | | decimal FDenominator = Convert.ToDecimal(model.GetValue("FDenominator", e.Row));//分母 |
| | | decimal FUseRate = Convert.ToDecimal(model.GetValue("FUseRate", e.Row));//使用比例 |
| | | if (FNumerator == 0 || FDenominator == 0) |
| | | return; |
| | | var Hqty = Math.Ceiling((FNumerator / FDenominator) * FHQty * (FUseRate / 100)); |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[生产汇报单-反审核]按钮功能]")] |
| | | [Description("[生产汇报单-反审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_SCHBFSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[生产汇报单-审核]按钮功能]")] |
| | | [Description("[生产汇报单-审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_SCHBSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[生产领料单-反审核]按钮功能]")] |
| | | [Description("[生产领料单-反审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_SCLLFSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[生产领料单-审核]按钮功能]")] |
| | | [Description("[生产领料单-审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_SCLLSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | if (fentryId == "0") |
| | | continue; |
| | | sql = string.Format($"/*dialect*/update Sc_DayPlanPPBomBillSub set FPickedQty = FPickedQty + {Convert.ToDecimal(entryRow["BaseActualQty"])} where FEntryID = {fentryId} "); |
| | | //LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | ////LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | sqlList.Add(sql); |
| | | sql = string.Format($"/*dialect*/update T_PRD_PICKMTRLDATA set FisFX = 1 where FentryId = {entryRow["Id"]}"); |
| | | sqlList.Add(sql); |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[生产退料单-反审核]按钮功能]")] |
| | | [Description("[生产退料单-反审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_SCTLFSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[生产退料单-审核]按钮功能]")] |
| | | [Description("[生产退料单-审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_SCTLSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | if (fentryId == "0") |
| | | continue; |
| | | sql = string.Format($"/*dialect*/update Sc_DayPlanPPBomBillSub set FRetunrnQty = FRetunrnQty + {Convert.ToDecimal(entryRow["BaseQty"])} where FEntryID = {fentryId} "); |
| | | //LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | ////LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | sqlList.Add(sql); |
| | | sql = string.Format($"/*dialect*/update T_PRD_RETURNMTRLENTRY set FisFX = 1 where FentryId = {entryRow["Id"]}"); |
| | | sqlList.Add(sql); |
| | |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using Newtonsoft.Json.Linq; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using Demo.Model.Model; |
| | | using System.Linq; |
| | | using ZD.Share.Common; |
| | |
| | | //} |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | LogHelper.Info("导入功能点击按钮:"); |
| | | //LogHelper.Info("导入功能点击按钮:"); |
| | | if (e.BarItemKey.ToUpper().Equals("TBIMPORT")) |
| | | { |
| | | LogHelper.Info("导入功能点击按钮:"); |
| | | //LogHelper.Info("导入功能点击按钮:"); |
| | | ImportData(); |
| | | //WriteImportLog(); |
| | | //this.View.ShowErrMessage("测试导入功能点击按钮"); |
| | |
| | | |
| | | if (e.BarItemKey.ToUpper().Equals("TBWJSC")) |
| | | { |
| | | LogHelper.Info("文件上传功能点击按钮:"); |
| | | //LogHelper.Info("文件上传功能点击按钮:"); |
| | | ImportDataSC(fileFullPath); |
| | | } |
| | | } |
| | |
| | | dt.Rows.RemoveAt(0);//去除标题行 |
| | | //DataSet ds = helper.ReadFromFile(fileFullPath, 1); |
| | | //DataTable dt = ds.Tables[0]; |
| | | LogHelper.Info("导入功能:dt行数:" + dt.Rows.Count); |
| | | //LogHelper.Info("导入功能:dt行数:" + dt.Rows.Count); |
| | | DateTime date = Convert.ToDateTime(this.Model.GetValue("F_Paez_Date")); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | |
| | | LEFT JOIN T_ENG_WORKCENTER C ON A.FHSOURCEID=C.FID |
| | | WHERE A.FDOCUMENTSTATUS NOT IN ('E') AND |
| | | FSCORDERNO ='{0}' AND B.FNUMBER ='{1}' AND A.FSRCBILLENTRYSEQ ='{3}' AND (ISNULL(C.FNUMBER,'') ='{2}' OR (SELECT COUNT(*) FROM T_ENG_WORKCENTER WHERE ISNULL(C.FNUMBER,'') ='{2}')=0)", dt.Rows[i][1].ToString(), dt.Rows[i][5].ToString(), dt.Rows[i][4].ToString(), dt.Rows[i][2].ToString()); |
| | | //LogHelper.Error(sql); |
| | | ////LogHelper.Error(sql); |
| | | DataTable dayPlanDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dayPlanDt.Rows.Count > 0) |
| | | { |
| | |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | //单据体信息转换为列表集合 |
| | | DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | LogHelper.Info("导入功能列表行数:" + entityDataObjoct.Count); |
| | | //LogHelper.Info("导入功能列表行数:" + entityDataObjoct.Count); |
| | | List<string> sqlList = new List<string>(); |
| | | foreach (DynamicObject current in entityDataObjoct) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Error("生产日计划导入 新增异常:" + saveObj.ToString()); |
| | | //LogHelper.Error("生产日计划导入 新增异常:" + saveObj.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Error("生产日计划导入 新增异常:" + saveObj.ToString()); |
| | | //LogHelper.Error("生产日计划导入 新增异常:" + saveObj.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.ToString()); |
| | | //LogHelper.Error(ex.ToString()); |
| | | this.View.ShowErrMessage(ex.ToString()); |
| | | } |
| | | |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("生产日计划导入记录日志,新增异常json:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("生产日计划导入记录日志,新增异常json:" + jsonRoot.ToString()); |
| | | } |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产日计划导入记录日志跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产日计划导入记录日志跳出:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Newtonsoft.Json.Linq; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using ZD.Cloud.WebApi; |
| | | using ZD.Share.Common; |
| | | using Demo.Model; |
| | |
| | | [Kingdee.BOS.Util.HotUpdate] |
| | | public class Pro_TlPush : AbstractBillPlugIn |
| | | { |
| | | CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); |
| | | |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | try |
| | | { |
| | | string a; |
| | | CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); |
| | | if ((a = e.BarItemKey.ToUpperInvariant()) != null) |
| | | { |
| | | if (a == "TBPUSH") |
| | | { |
| | | string btnType = "生成送货单"; |
| | | //验证用户权限 |
| | | if (!IsHaveQX(btnType)) |
| | | return; |
| | | //验证是否审核 |
| | | if (this.View.Model.GetValue("FDOCUMENTSTATUS").ToString() != "C") |
| | | { |
| | | this.View.ShowErrMessage("单据未审核"); |
| | | return; |
| | | } |
| | | //验证是否关闭 |
| | | if (Convert.ToBoolean(this.View.Model.GetValue("FHCloseType"))) |
| | | { |
| | | this.View.ShowErrMessage("单据已关闭"); |
| | | return; |
| | | } |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");//标识 |
| | | DynamicObjectCollection entityRows = this.Model.GetEntityDataObject(entity);//获取父单据体行集合 |
| | | int ret = entityRows.Where(x => Convert.ToDecimal(x["FHQty"]) - Convert.ToDecimal(x["FReciveCount"]) > 0 && !Convert.ToBoolean(x["FCloseStatus"])).Count(); |
| | |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | this.View.ShowErrMessage(jsonRoot.ToString()); |
| | | } |
| | | } |
| | | else if (a == "TBDEMANDPLAN") |
| | | { |
| | | string btnType = "提料计划选单"; |
| | | //验证用户权限 |
| | | if (!IsHaveQX(btnType)) |
| | | return; |
| | | DemandPlan(); |
| | | } |
| | | else if (a == "TBPURCHASE") |
| | | { |
| | | string btnType = "采购订单选单"; |
| | | //验证用户权限 |
| | | if (!IsHaveQX(btnType)) |
| | | return; |
| | | //选单选择采购订单 |
| | | PurChasePlan(); |
| | | } |
| | | else if (a == "BTNCLOSE") |
| | | { |
| | | var FID = this.View.Model.GetPKValue(); |
| | | var fCloseStatus = Convert.ToBoolean(this.View.Model.GetValue("FHCloseType")); |
| | | if (fCloseStatus) |
| | | { |
| | | this.View.ShowMessage("单据已关闭"); |
| | | } |
| | | string sql = string.Format(@"/*dialect*/ |
| | | update Cg_PODemandPlanBillMain set |
| | | FHCloseMan = {0}, |
| | | FHCloseDate = GETDATE(), |
| | | FHCloseType = 1 |
| | | where fid IN ({1})", Context.UserId, FID); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | sql = string.Format(@"/*dialect*/ |
| | | UPDATE A SET |
| | | A.FPODemandPlanCount -= B.FHQTY |
| | | FROM t_PUR_POOrderEntry A |
| | | JOIN Cg_PODemandPlanBillSub B ON A.FENTRYID = B.FHPOOrderEntryID |
| | | where B.FID IN ({0}) AND B.FCLOSESTATUS = 0 ", FID); |
| | | this.View.Refresh(); |
| | | this.View.ShowMessage("操作成功"); |
| | | } |
| | | } |
| | | } |
| | |
| | | string FentryId = string.Join(",", FentryIdList); |
| | | string isCancleSql = string.Format(@"/*dialect*/ |
| | | select FSEQ from Cg_PODemandPlanBillSub |
| | | FCLOSESTATUS = 1 |
| | | where fentryid in ({0})", FentryId); |
| | | where FCLOSESTATUS = 1 and fentryid in ({0})", FentryId); |
| | | DataTable isCancleTable = DBServiceHelper.ExecuteDataSet(Context, isCancleSql).Tables[0]; |
| | | if (isCancleTable.Rows.Count > 0) |
| | | { |
| | |
| | | this.View.ShowForm(showParameter, delegate (FormResult result) |
| | | { |
| | | object returnData = result.ReturnData; |
| | | if (returnData == null) |
| | | return; |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | |
| | | // return; |
| | | //} |
| | | string FSelectId = string.Join(",", FSelectIdList); |
| | | //验证选单物料是否一致 |
| | | string sql = string.Format(@"/*dialect*/ |
| | | SELECT COUNT(*) ERRCOUNT FROM CG_PODEMANDPLANBILLSUB |
| | | WHERE FENTRYID IN({0}) |
| | | AND FHMATERID NOT IN |
| | | ( |
| | | SELECT FHMATERID FROM CG_PODEMANDPLANBILLSUB |
| | | WHERE FENTRYID IN({1}) |
| | | )", FentryId, FSelectId); |
| | | int ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (ErrCount > 0) |
| | | { |
| | | this.View.ShowErrMessage("选单数据物料不一致"); |
| | | return; |
| | | } |
| | | |
| | | //需要选择变更的数据 以及 选单选中的数据 判断数据合理性 |
| | | //选单界面B选中行数据物料 需要一致 且B占用采购单数量需要满足A的需求量 |
| | | string sql = string.Format(@"/*dialect*/ |
| | | sql = string.Format(@"/*dialect*/ |
| | | SELECT count(*) errcount FROM |
| | | ( |
| | | select FHMATERID,SUM(FHQTY)FHQTY from Cg_PODemandPlanBillSub |
| | |
| | | B |
| | | ON A.FHMATERID=B.FHMATERID |
| | | WHERE B.FHQTY < A.FHQTY", FentryId, FSelectId); |
| | | int ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (ErrCount > 0) |
| | | { |
| | | this.View.ShowErrMessage("选单数据占用的采购订单数量不满足需要变更数量"); |
| | | this.View.ShowErrMessage("选单数据占用的采购订单物料不一致 或者 数量不满足需要变更数量"); |
| | | return; |
| | | } |
| | | //验证通过 |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("提料计划单选单新增异常:" + saveObj.ToString()); |
| | | //LogHelper.Error("提料计划单选单新增异常:" + saveObj.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | else |
| | |
| | | join T_PUR_POORDERENTRY_R t4 on t2.FENTRYID = t4.FENTRYID |
| | | join T_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID |
| | | where t2.FQTY-t2.FPODemandPlanCount>0 |
| | | and FCloseStatus in('A') and FMRPCLOSESTATUS in('A') |
| | | and FCloseStatus in (0) and FMRPCLOSESTATUS in('A') |
| | | and t1.FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142') |
| | | "; |
| | | List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, cgddSql).ToModelList<PurchaseInventory>(); |
| | |
| | | saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(saveObj.ToString()); |
| | | //LogHelper.Error(saveObj.ToString()); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | string FentryId = string.Join(",", FentryIdList); |
| | | string isCancleSql = string.Format(@"/*dialect*/ |
| | | select FSEQ from Cg_PODemandPlanBillSub |
| | | FCLOSESTATUS = 1 |
| | | where fentryid in ({0})", FentryId); |
| | | SELECT FSEQ FROM CG_PODEMANDPLANBILLSUB |
| | | WHERE FCLOSESTATUS = 1 AND FENTRYID IN ({0})", FentryId); |
| | | DataTable isCancleTable = DBServiceHelper.ExecuteDataSet(Context, isCancleSql).Tables[0]; |
| | | if (isCancleTable.Rows.Count > 0) |
| | | { |
| | |
| | | this.View.ShowForm(showParameter, delegate (FormResult result) |
| | | { |
| | | object returnData = result.ReturnData; |
| | | if (returnData == null) |
| | | return; |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | |
| | | { |
| | | foreach (var listSelectedRow in listSelectedRowCollection) |
| | | { |
| | | FSelectIdList.Add(listSelectedRow.DataRow["t1_FENTRYID"].ToString()); |
| | | FSelectIdList.Add(listSelectedRow.DataRow["t3_FENTRYID"].ToString()); |
| | | } |
| | | } |
| | | } |
| | | string FSelectId = string.Join(",", FSelectIdList); |
| | | //验证所选采购订单物料数量 是否小于 提料计划物料数量 不满足给出提示 return |
| | | //验证选单物料是否一致 |
| | | string sql = string.Format(@"/*dialect*/ |
| | | SELECT COUNT(*) ERRCOUNT FROM CG_PODEMANDPLANBILLSUB |
| | | WHERE FENTRYID IN({0}) |
| | | AND FHMATERID NOT IN |
| | | ( |
| | | SELECT FMATERIALID FROM T_PUR_POORDERENTRY |
| | | WHERE FENTRYID IN({1}) |
| | | )", FentryId, FSelectId); |
| | | int ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (ErrCount > 0) |
| | | { |
| | | this.View.ShowErrMessage("选单数据物料不一致"); |
| | | return; |
| | | } |
| | | |
| | | //验证所选采购订单物料数量 是否小于 提料计划物料数量 不满足给出提示 return |
| | | sql = string.Format(@"/*dialect*/ |
| | | SELECT count(*) errcount FROM |
| | | ( |
| | | select FHMATERID,SUM(FHQTY)FHQTY from Cg_PODemandPlanBillSub |
| | |
| | | B |
| | | ON A.FHMATERID=B.FMaterialId |
| | | WHERE B.FQTY < A.FHQTY", FentryId, FSelectId); |
| | | int ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (ErrCount > 0) |
| | | { |
| | | this.View.ShowErrMessage("选单数据占用的采购订单数量不满足需要变更数量"); |
| | | this.View.ShowErrMessage("选单数据占用的采购订单物料不一致 或者 数量不满足需要变更数量"); |
| | | return; |
| | | } |
| | | //验证通过 |
| | |
| | | SELECT A.FID,C.FHDate,D.FSupplierID,E.FNUMBER AS FSupplierName,C.FSettleCurrId,A.FHMATERID,F.FNUMBER AS FMATERIALNAME,A.FHQty,A.FHSourceInterID,A.FHSourceEntryID,A.FHSourceBillNo,A.FDayPlanDate,A.FDayPlanDate,A.FHRelationQty,B.FID AS FHPOOrderInterID,B.FENTRYID AS FHPOOrderEntryID,C.FBILLNO AS FHPOOrderBillNo,B.FSEQ AS FHPOOrderFseq,A.FErpClsID FROM |
| | | ( |
| | | select * from Cg_PODemandPlanBillSub |
| | | where FEntryID IN({0}) |
| | | where FEntryID IN(109437) |
| | | ) |
| | | A |
| | | JOIN |
| | | (select * from t_PUR_POOrderEntry |
| | | where FEntryID IN({1}) |
| | | where FEntryID IN(100229) |
| | | ) |
| | | B |
| | | ON A.FHMATERID = B.FMaterialId |
| | | JOIN t_PUR_POOrder PO ON B.FID = PO.FID |
| | | JOIN Cg_PODemandPlanBillMain C ON A.FID = C.FID |
| | | JOIN Cg_PODemandPlanBillMain D ON B.FID = D.FID |
| | | JOIN t_PUR_POOrder D ON B.FID = D.FID |
| | | JOIN T_BD_SUPPLIER E ON D.FSupplierID = E.FSUPPLIERID |
| | | JOIN T_BD_MATERIAL F ON A.FHMATERID = F.FMATERIALID |
| | | ", FentryId, FSelectId); |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("提料计划单选单新增异常:" + saveObj.ToString()); |
| | | //LogHelper.Error("提料计划单选单新增异常:" + saveObj.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | else |
| | |
| | | sqlList.Add(updateSql); |
| | | //执行sql |
| | | int resCount = DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | |
| | | string _pageId = Guid.NewGuid().ToString(); |
| | | BillShowParameter _showParameter = new BillShowParameter(); |
| | | _showParameter.FormId = "paez_PODemandPlan"; |
| | | _showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage; |
| | | _showParameter.PageId = _pageId; |
| | | _showParameter.Status = OperationStatus.EDIT; |
| | | // 传入需要修改的销售订单内码,演示代码直接固定写死为100001 |
| | | _showParameter.PKey = saveObj["Result"]["Id"].ToString(); |
| | | this.View.ShowForm(_showParameter); |
| | | } |
| | | }); |
| | | } |
| | |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | | public bool IsHaveQX(string btnType) |
| | | { |
| | | string sql = string.Format(@"/*dialect*/ |
| | | SELECT count(*) mmm FROM ( |
| | | SELECT A.FROLEID,B.FPERMISSIONSTATUS,C.FNUMBER,D.FNAME FROM |
| | | T_SEC_USERORG Z |
| | | JOIN T_SEC_USERROLEMAP X ON Z.FENTITYID = X.FENTITYID |
| | | JOIN T_SEC_FUNCPERMISSION A ON X.FROLEID =A.FROLEID |
| | | JOIN T_SEC_FUNCPERMISSIONENTRY B ON A.FITEMID =B.FITEMID |
| | | JOIN T_SEC_PERMISSIONITEM C ON B.FPERMISSIONITEMID = C.FITEMID |
| | | JOIN T_SEC_PERMISSIONITEM_L D ON C.FITEMID = D.FITEMID AND FLOCALEID = 2052 |
| | | WHERE A.FOBJECTTYPEID = 'PAEZ_PODEMANDPLAN' |
| | | AND Z.FUSERID={0} AND FNAME = '{1}' |
| | | ) T where FPERMISSIONSTATUS = 0 |
| | | ", Context.UserId, btnType); |
| | | int result = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (result > 0) |
| | | return true; |
| | | else |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("[弃用]送货计划单插件关联提料计划单")] |
| | | [HotUpdate] |
| | |
| | | { |
| | | string srcFormId = ""; |
| | | string srcSrcBillNo = ""; |
| | | try |
| | | { |
| | | srcFormId = "paez_PODemandPlan"; |
| | | srcSrcBillNo = entryRow["FTLOrderNo"].ToString(); |
| | | //srcSrcBillNo = entryRow["FTLentryId"].ToString(); |
| | | //srcSrcBillNo = entryRow["FTLId"].ToString(); |
| | | //srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PUR_RECEIVEENTRY_LK where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); |
| | | |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | srcFormId = "paez_PODemandPlan"; |
| | | srcSrcBillNo = entryRow["FTLOrderNo"].ToString(); |
| | | //srcSrcBillNo = entryRow["FTLentryId"].ToString(); |
| | | //srcSrcBillNo = entryRow["FTLId"].ToString(); |
| | | //srcSrcBillNo = DBServiceHelper.ExecuteScalar<string>(Context, $" select distinct FPPBOMBILLNO from T_PUR_RECEIVEENTRY_LK where FSRCBILLNO = '{srcSrcBillNo}' ", srcSrcBillNo); |
| | | if (string.IsNullOrWhiteSpace(srcFormId) |
| | | || string.IsNullOrWhiteSpace(srcSrcBillNo) |
| | | ) |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | base.BarItemClick(e); |
| | | if (e.BarItemKey.Equals("btImport")) |
| | | { |
| | | //LogHelper.Info("导入功能点击按钮:"); |
| | | ////LogHelper.Info("导入功能点击按钮:"); |
| | | DynamicFormShowParameter formPa = new DynamicFormShowParameter(); |
| | | formPa.FormId = "Paez_ScDayImport"; |
| | | this.View.ShowForm(formPa); |
| | |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Diagnostics; |
| | | using System.Linq; |
| | | using System.Threading; |
| | | using System.Web; |
| | | using ZD.Cloud.Logger; |
| | | using ZD.Cloud.WebApi; |
| | | using ZD.Share.Common; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("生产计划平台按钮功能")] |
| | | [HotUpdate] |
| | |
| | | base.BarItemClick(e); |
| | | try |
| | | { |
| | | LogHelper.Info("生产计划平台按钮:" + e.BarItemKey.ToUpper().ToString()); |
| | | //LogHelper.Info("生产计划平台按钮:" + e.BarItemKey.ToUpper().ToString()); |
| | | if (e.BarItemKey.ToUpper() == "BTEXPORT") |
| | | { |
| | | ExportExcel(); |
| | |
| | | return; |
| | | try |
| | | { |
| | | DayPlanPPBomBillBatch(); |
| | | DayPlanPPBomBillBatch1(); |
| | | Extraction(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | sqlList.Add(sql); |
| | | string columnName = DBServiceHelper.ExecuteScalar<string>(Context, "/*dialect*/ select stuff((select ',' + name from syscolumns Where id = object_Id('Sc_WorkBillMainXnqt') for xml path('')),1,1,'') as name ", ""); |
| | | sql = $"insert into Sc_WorkBillMainXnqt({columnName}) select {columnName} from Sc_WorkBillSortBillMain"; |
| | | LogHelper.Info("测试1:" + sql); |
| | | //LogHelper.Info("测试1:" + sql); |
| | | sqlList.Add(sql); |
| | | columnName = DBServiceHelper.ExecuteScalar<string>(Context, "/*dialect*/ select stuff((select ',' + name from syscolumns Where id = object_Id('Sc_WorkBillSubXnqt') for xml path('')),1,1,'') as name ", ""); |
| | | sql = $"insert into Sc_WorkBillSubXnqt({columnName}) select {columnName} from Sc_WorkBillSortBillSub"; |
| | | LogHelper.Info("测试1:" + sql); |
| | | //LogHelper.Info("测试1:" + sql); |
| | | |
| | | sqlList.Add(sql); |
| | | sql = $"update Sc_WorkBillSubXnqt set FComplete=''"; |
| | |
| | | /// <param name="e"></param> |
| | | public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e) |
| | | { |
| | | LogHelper.Info("[行双击事件]"); |
| | | //LogHelper.Info("[行双击事件]"); |
| | | |
| | | base.EntityRowClick(e); |
| | | DynamicFormShowParameter formPa = new DynamicFormShowParameter(); |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | } |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("生产计划平台新增保存失败:" + saveObj.ToString()); |
| | | //LogHelper.Error("生产计划平台新增保存失败:" + saveObj.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | if (saveIsSuc == "TRUE") |
| | |
| | | |
| | | public void CompleteSetAnalysisBatch() |
| | | { |
| | | LogHelper.Info("齐套分析批量开始准备数据:"); |
| | | //LogHelper.Info("齐套分析批量开始准备数据:"); |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); |
| | | //更新状态 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | i = 1; |
| | | |
| | | |
| | |
| | | Fentity.Add(FBatchModel); |
| | | if ((i >= 20 || i == completeAnalysisTempModel.Count) && (i % 20 == 0 || i == completeAnalysisTempModel.Count)) |
| | | { |
| | | LogHelper.Info("齐套分析批量执行,记录循环的当前条数" + i); |
| | | //LogHelper.Info("齐套分析批量执行,记录循环的当前条数" + i); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | Fentity = new JArray(); |
| | | } |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | | //生产用料清单 齐套分析 |
| | | public string CompleteSetAnalysisByDataTable() |
| | | { |
| | | LogHelper.Info("齐套分析sql模式开始准备数据:"); |
| | | //LogHelper.Info("齐套分析sql模式开始准备数据:"); |
| | | string sql = ""; |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | int maxFid = DBServiceHelper.ExecuteScalar<int>(Context, "select max(FID)FID FROM JIT_MOMaterReadysBill", 0); |
| | | //清空齐套临时表 (关闭的订单 今天之前的数据不做删除) |
| | | DBServiceHelper.Execute(Context, @"/*dialect*/ |
| | |
| | | int i = 1; |
| | | //创建字典 用于储存物料 + 占用数量 |
| | | Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); |
| | | LogHelper.Info("齐套分析准备数据完成:" + sw.Elapsed); |
| | | ////LogHelper.Info("齐套分析准备数据完成:" + sw.Elapsed); |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | //LogHelper.Info("齐套分析第一个循环 : 工单号 :" + item.FPRDMOENTYID.ToString() + item.FHMASTERDATE.ToString("yyyy-MM-dd")); |
| | | ////LogHelper.Info("齐套分析第一个循环 : 工单号 :" + item.FPRDMOENTYID.ToString() + item.FHMASTERDATE.ToString("yyyy-MM-dd")); |
| | | //筛选出当日计划数据 |
| | | var _BomList = BomList.Where(x => x.FHMASTERDATE == item.FHMASTERDATE && x.FPRDMOENTYID == item.FPRDMOENTYID).ToList(); |
| | | foreach (var _item in _BomList) |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | List<string> sqlList = new List<string>(); |
| | | DataTable insertDT = new DataTable(); |
| | | insertDT.TableName = "JIT_MOMaterReadysBill"; |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | return "操作成功"; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | return "操作失败," + ex.Message.ToString(); |
| | | |
| | | } |
| | |
| | | //物料用料清单 齐套分析 |
| | | public string CompleteSetAnalysisByDataTableBom() |
| | | { |
| | | LogHelper.Info("齐套分析(bom)sql模式开始准备数据:"); |
| | | //LogHelper.Info("齐套分析(bom)sql模式开始准备数据:"); |
| | | string sql = ""; |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | int maxFid = DBServiceHelper.ExecuteScalar<int>(Context, "select max(FID)FID FROM JIT_MOMaterReadysBomBill", 0); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBomBill "); |
| | |
| | | int i = 1; |
| | | //创建字典 用于储存物料 + 占用数量 |
| | | Dictionary<string, decimal> occupyDic = new Dictionary<string, decimal>(); |
| | | LogHelper.Info("齐套分析(bom)准备数据完成:" + sw.Elapsed); |
| | | ////LogHelper.Info("齐套分析(bom)准备数据完成:" + sw.Elapsed); |
| | | foreach (var item in DatePlanList) |
| | | { |
| | | //筛选出当日计划数据 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"齐套分析(bom),数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"齐套分析(bom),数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | List<string> sqlList = new List<string>(); |
| | | DataTable insertDT = new DataTable(); |
| | | insertDT.TableName = "JIT_MOMaterReadysBomBill"; |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FCompletebom = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBomBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("齐套分析(bom)运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("齐套分析(bom)运行总时长:" + sw.Elapsed); |
| | | return "操作成功"; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("齐套分析(bom)跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("齐套分析(bom)跳出:" + ex.Message.ToString()); |
| | | return "操作失败," + ex.Message.ToString(); |
| | | |
| | | } |
| | |
| | | /// </summary> |
| | | public void Xnqt() |
| | | { |
| | | LogHelper.Info("虚拟齐套分析sql模式开始准备数据:"); |
| | | //LogHelper.Info("虚拟齐套分析sql模式开始准备数据:"); |
| | | string sql = ""; |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("虚拟齐套分析开始准备数据:" + sw.Elapsed); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("虚拟齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBillXn "); |
| | | ////更新状态 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"虚拟齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"虚拟齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | List<string> sqlList = new List<string>(); |
| | | int jdtmmm = 1; |
| | | foreach (var item in completeAnalysisTempModel) |
| | |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBillXn where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | //"); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("虚拟齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("虚拟齐套分析运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | this.View.ShowErrMessage("异常:" + ex.Message.ToString()); |
| | | LogHelper.Error("虚拟齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("虚拟齐套分析跳出:" + ex.Message.ToString()); |
| | | } |
| | | finally |
| | | { |
| | |
| | | { |
| | | // 需要捕获错误,以确保处理结束时,关闭进度滚动界面 |
| | | // 引入功能实际处理函数 |
| | | result = this.DayPlanPPBomBillBatch(); |
| | | result = this.DayPlanPPBomBillBatch1(); |
| | | } |
| | | finally |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, $"select FID from Sc_DayPlanPPBomBillMain where FDOCUMENTSTATUS <>'E'").Tables[0]; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS <>'E'").Tables[0]; |
| | | List<string> zxSqlList = new List<string>(); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message); |
| | | //LogHelper.Error(ex.Message); |
| | | return "操作失败,请联系系统管理员"; |
| | | } |
| | | |
| | |
| | | sqlWhere += $"AND t2.FID IN ({FDayPlanWorkID})"; |
| | | } |
| | | DBServiceHelper.ExecuteBatch(Context, zxSqlList); |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | |
| | | LogHelper.Info("生成日计划用料清单准备数据"); |
| | | //LogHelper.Info("生成日计划用料清单准备数据"); |
| | | //锁定的日计划不生成 |
| | | try |
| | | { |
| | |
| | | LEFT join T_ENG_WORKCENTER t11 on t2.FHSOURCEID = t11.FID |
| | | left join T_BD_DEPARTMENT td on t3.FWORKSHOPID=td.FDEPTID |
| | | WHERE |
| | | t1.FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{{1} - 1},getdate()) |
| | | t1.FHMASTERDATE between DATEADD(day,-1,getdate()) and DATEADD(day,{0} - 1,getdate()) |
| | | and t1.FEntryID not in |
| | | ( |
| | | select distinct FDAYPLANFID from Sc_DayPlanPPBomBillMain where FID IN |
| | |
| | | select distinct FDAYPLANID from Sc_DayPlanPPBomBillSubBG |
| | | ) |
| | | ) |
| | | AND {0} |
| | | AND {1} |
| | | -- and T4.FMustQty>0 |
| | | -- ( |
| | | -- select FDayPlanFID FROM Sc_DayPlanPPBomBillMain WHERE FID IN ( select distinct FID from Sc_DayPlanPPBomBillSub WHERE FTranslateQty >0 or FPickedQty >0) |
| | | -- ) |
| | | ", |
| | | sqlWhere, day); |
| | | ", day, sqlWhere); |
| | | LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | DataTable dt = ds.Tables[0]; |
| | |
| | | FMoSeq = dr["FMoSeq"].ToString(), |
| | | }); |
| | | } |
| | | LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" ); |
| | | var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList(); |
| | | int i = 1; |
| | | int jdtmmm = 1; |
| | |
| | | Fentity.Add(model); |
| | | if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count)) |
| | | { |
| | | LogHelper.Info("日计划用料清单批量执行,记录循环的当前条数" + i); |
| | | //LogHelper.Info("日计划用料清单批量执行,记录循环的当前条数" + i); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | } |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | //LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | LogHelper.Error(saveObj.ToString()); |
| | | LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error(saveObj.ToString()); |
| | | return "操作失败," + saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString(); |
| | | //this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | |
| | | jdtmmm++; |
| | | } |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | return "操作成功"; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | /// </summary> |
| | | public void Extraction() |
| | | { |
| | | LogHelper.Info("[提料计划准备阶段]:测试测试测试测试测试测试测试测试"); |
| | | //LogHelper.Info("[提料计划准备阶段]:测试测试测试测试测试测试测试测试"); |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | string sql = string.Format(@"/*dialect*/ select distinct FHICMOINTERID FID from JIT_MOMaterReadysBill "); |
| | | DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | string FDayPlanWorkID = ""; |
| | |
| | | exec [提料计划预处理] '{0}' |
| | | ", FDayPlanWorkID.Replace(",", "-")); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql); |
| | | //LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql); |
| | | //采购订单数据 |
| | | sql = @" |
| | | /*dialect*/ |
| | |
| | | and t1.FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142') |
| | | "; |
| | | List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); |
| | | LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql); |
| | | //LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql); |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId |
| | |
| | | AND T1.FID in ({0}) |
| | | order by FHMASTERDATE |
| | | ", FDayPlanWorkID); |
| | | LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql); |
| | | //LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); |
| | | //物料+库存组织分类 |
| | | var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList(); |
| | | var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "163165").ToList(); |
| | | LogHelper.Info("[提料计划准备阶段]总物料行数" + MaterialIDList.Count); |
| | | //LogHelper.Info("[提料计划准备阶段]总物料行数" + MaterialIDList.Count); |
| | | //提料计划数据集临时存储集合 |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | | //sql集合 更新采购订单占用的提料计划数量 |
| | |
| | | List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | LogHelper.Info("[提料计划开始]当前物料无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | //LogHelper.Info("[提料计划开始]当前物料无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | continue; |
| | | } |
| | | //LogHelper.Info(item.FMATERIALID.ToString()); |
| | | ////LogHelper.Info(item.FMATERIALID.ToString()); |
| | | //当前物料和库存组织对应的需进行提料计划的数据 |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | | decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//最小起订量 |
| | |
| | | _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | //LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | ////LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | break; |
| | | } |
| | | |
| | |
| | | FEntryIdList.Add(_item.FENTRYID); |
| | | NeedQty += _item.NeedQty; |
| | | |
| | | //LogHelper.Info("记录明细id:" + _item.FENTRYID + ""); |
| | | //LogHelper.Info("总需求量:" + NeedQty + ""); |
| | | //LogHelper.Info("最小起订量:" + FMINPOQTY + ""); |
| | | ////LogHelper.Info("记录明细id:" + _item.FENTRYID + ""); |
| | | ////LogHelper.Info("总需求量:" + NeedQty + ""); |
| | | ////LogHelper.Info("最小起订量:" + FMINPOQTY + ""); |
| | | if (NeedQty <= FMINPOQTY) |
| | | { |
| | | LogHelper.Info("[提料计划]当前物料明细无采购信息:" + item.FMATERIALID + ",数量:" + NeedQty + ",最小起订量:" + FMINPOQTY + ""); |
| | | //LogHelper.Info("[提料计划]当前物料明细无采购信息:" + item.FMATERIALID + ",数量:" + NeedQty + ",最小起订量:" + FMINPOQTY + ""); |
| | | } |
| | | |
| | | if ((FJITmaterialGroup == "总量控制规格类" || FJITmaterialGroup == "订单专用个性类") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //订单专用个性类 |
| | |
| | | //{ |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | | //LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | //LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | ////LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | ////LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | foreach (int id in FEntryIdList) |
| | |
| | | var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); |
| | | decimal Qty = DayPlanPpbomls.NeedQty;//订单数量 |
| | | //if (Qty == 0) |
| | | // LogHelper.Info("订单数量为0"); |
| | | // //LogHelper.Info("订单数量为0"); |
| | | if (Qty > _NeedQty) |
| | | Qty = _NeedQty; //订单数量>采购订单数量 取采购订单 |
| | | |
| | | //if (_NeedQty == 0) |
| | | // LogHelper.Info("订单数量为0"); |
| | | // //LogHelper.Info("订单数量为0"); |
| | | |
| | | _NeedQty = _NeedQty - Qty; |
| | | PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp |
| | |
| | | } |
| | | var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | LogHelper.Info($"提料计划,数据准备完成,保存到Model实体,总行数:{PODemandPlanTemp.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"提料计划,数据准备完成,保存到Model实体,总行数:{PODemandPlanTemp.Count},耗时:" + sw.Elapsed); |
| | | int tlmmm = 1; |
| | | JArray FinalyResult = new JArray(); |
| | | foreach (var item in PODemandPlanList) |
| | |
| | | FinalyResult.Add(model); |
| | | if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) |
| | | { |
| | | LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | //LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | FinalyResult = new JArray(); |
| | | } |
| | | tlmmm++; |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("提料计划执行完成,运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("提料计划执行完成,运行总时长:" + sw.Elapsed); |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | } |
| | | // var PODemandPlanList22 = PODemandPlanTemp.GroupBy(p => new {p.FSUPPLIERID, p.FHMASTERDATE }).ToList(); |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | | LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | { |
| | | var ret = ""; |
| | |
| | | { |
| | | if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | { |
| | | LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | continue; |
| | | } |
| | |
| | | int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (day < 0) |
| | | { |
| | | LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | continue; |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("选单失败:" + ex.Message); |
| | | //LogHelper.Error("选单失败:" + ex.Message); |
| | | } |
| | | } |
| | | } |
| | |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Diagnostics; |
| | | using System.Linq; |
| | | using System.Web; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using ZD.Cloud.WebApi; |
| | | using ZD.Share.Common; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("生产计划平台(虚拟齐套)")] |
| | | [HotUpdate] |
| | |
| | | /// <param name="e"></param> |
| | | public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e) |
| | | { |
| | | LogHelper.Info("[行双击事件]"); |
| | | //LogHelper.Info("[行双击事件]"); |
| | | |
| | | base.EntityRowClick(e); |
| | | DynamicFormShowParameter formPa = new DynamicFormShowParameter(); |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | this.View.ShowMessage("数据储存失败!请联系管理员!"); |
| | | } |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); |
| | | //更新状态 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | i = 1; |
| | | |
| | | foreach (var item in completeAnalysisTempModel) |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | this.View.Session["ProcessRateValue"] = Convert.ToInt32((Convert.ToDecimal(100) / completeAnalysisTempModel.Count) * i); |
| | | i++; |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | public void CompleteSetAnalysisBatch() |
| | | { |
| | | LogHelper.Info("齐套分析批量开始准备数据:"); |
| | | //LogHelper.Info("齐套分析批量开始准备数据:"); |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); |
| | | //更新状态 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | i = 1; |
| | | |
| | | |
| | |
| | | Fentity.Add(FBatchModel); |
| | | if ((i >= 20 || i == completeAnalysisTempModel.Count) && (i % 20 == 0 || i == completeAnalysisTempModel.Count)) |
| | | { |
| | | LogHelper.Info("齐套分析批量执行,记录循环的当前条数" + i); |
| | | //LogHelper.Info("齐套分析批量执行,记录循环的当前条数" + i); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | Fentity = new JArray(); |
| | | } |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | public void CompleteSetAnalysisBySQL() |
| | | { |
| | | LogHelper.Info("齐套分析sql模式开始准备数据:"); |
| | | //LogHelper.Info("齐套分析sql模式开始准备数据:"); |
| | | string sql = ""; |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); |
| | | //更新状态 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | List<string> sqlList = new List<string>(); |
| | | int jdtmmm = 1; |
| | | foreach (var item in completeAnalysisTempModel) |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("齐套分析运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("齐套分析跳出:" + ex.Message.ToString()); |
| | | |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | public void Xnqt() |
| | | { |
| | | LogHelper.Info("虚拟齐套分析sql模式开始准备数据:"); |
| | | //LogHelper.Info("虚拟齐套分析sql模式开始准备数据:"); |
| | | string sql = ""; |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("虚拟齐套分析开始准备数据:" + sw.Elapsed); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("虚拟齐套分析开始准备数据:" + sw.Elapsed); |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBillXn "); |
| | | ////更新状态 |
| | |
| | | i++; |
| | | |
| | | } |
| | | LogHelper.Info($"虚拟齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"虚拟齐套分析,数据准备完成,保存到Model实体,总行数:{completeAnalysisTempModel.Count},耗时:" + sw.Elapsed); |
| | | List<string> sqlList = new List<string>(); |
| | | int jdtmmm = 1; |
| | | foreach (var item in completeAnalysisTempModel) |
| | |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSubXnqt set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBillXn where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("虚拟齐套分析运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("虚拟齐套分析运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | this.View.ShowErrMessage("异常:" + ex.Message.ToString()); |
| | | LogHelper.Error("虚拟齐套分析跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Error("虚拟齐套分析跳出:" + ex.Message.ToString()); |
| | | } |
| | | finally |
| | | { |
| | |
| | | /// </summary> |
| | | public void DayPlanPPBomBill() |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("批量,生成日计划用料清单准备数据"); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("批量,生成日计划用料清单准备数据"); |
| | | //锁定的日计划不生成 |
| | | try |
| | | { |
| | |
| | | WHERE t1.FHQTY>0 |
| | | " |
| | | ); |
| | | LogHelper.Info("批量,生成日计划用料清单准备数据sql:" + sql); |
| | | //LogHelper.Info("批量,生成日计划用料清单准备数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | DataTable dt = ds.Tables[0]; |
| | | List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>(); |
| | |
| | | FHQtyScrap = dr["FSCRAPRATE"].ToString(), |
| | | }); |
| | | } |
| | | LogHelper.Info($"批量,日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"批量,日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList(); |
| | | foreach (var item in fidList) |
| | | { |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | |
| | | } |
| | | } |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("批量,生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("批量,生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("批量,生成日计划用料清单+" + ex.Message.ToString()); |
| | | //LogHelper.Error("批量,生成日计划用料清单+" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | public void DayPlanPPBomBillBatch() |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | LogHelper.Info("生成日计划用料清单准备数据"); |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | ////LogHelper.Info("生成日计划用料清单准备数据"); |
| | | //锁定的日计划不生成 |
| | | try |
| | | { |
| | |
| | | WHERE t1.FHQTY>0 |
| | | " |
| | | ); |
| | | LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | //LogHelper.Info("生成日计划用料清单准备数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | DataTable dt = ds.Tables[0]; |
| | | List<DayPlanMaterial> DayPlanMaterial = new List<DayPlanMaterial>(); |
| | |
| | | FDayPlanFBILLNO = dr["FDayPlanFBILLNO"].ToString() |
| | | }); |
| | | } |
| | | LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"日计划用料清单,数据准备完成,保存到Model实体,总行数:{DayPlanMaterial.Count},耗时:" + sw.Elapsed); |
| | | var fidList = DayPlanMaterial.Select(x => x.FEntryID).Distinct().ToList(); |
| | | int i = 1; |
| | | JArray Fentity = new JArray(); |
| | |
| | | Fentity.Add(model); |
| | | if ((i >= 20 || i == fidList.Count) && (i % 20 == 0 || i == fidList.Count)) |
| | | { |
| | | LogHelper.Info("日计划用料清单批量执行,记录循环的当前条数" + i); |
| | | //LogHelper.Info("日计划用料清单批量执行,记录循环的当前条数" + i); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("日计划用料清单列表生成失败:" + jsonRoot.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | Fentity = new JArray(); |
| | |
| | | i++; |
| | | } |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("日计划用料清单+" + ex.Message.ToString()); |
| | | //LogHelper.Error("日计划用料清单+" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | /// </summary> |
| | | public void Extraction() |
| | | { |
| | | LogHelper.Info("[提料计划准备阶段]:测试测试测试测试测试测试测试测试"); |
| | | //LogHelper.Info("[提料计划准备阶段]:测试测试测试测试测试测试测试测试"); |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //sw.Start();//开始计时 |
| | | string sql = string.Format(@"/*dialect*/ select distinct FHICMOINTERID FID from JIT_MOMaterReadysBill "); |
| | | DataTable fidDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | string FDayPlanWorkID = ""; |
| | |
| | | exec [提料计划预处理] '{0}' |
| | | ", FDayPlanWorkID.Replace(",", "-")); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql); |
| | | //LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql); |
| | | //采购订单数据 |
| | | sql = @" |
| | | /*dialect*/ |
| | |
| | | and t1.FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142') |
| | | "; |
| | | List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); |
| | | LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql); |
| | | //LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql); |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT T1.FID,FHMATERID,FHMASTERDATE,FHQTY,FCOMPLETECOUNT,FPRDMOMAINID,T2.FENTRYID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t3.FMATERIALID,t6.FNumber,FHQTY*FNeedQty NeedQty,FHPRDORGID FStockOrgId FROM SC_WORKBILLSORTBILLMAIN T1 |
| | |
| | | AND T1.FID in ({0}) |
| | | order by FHMASTERDATE |
| | | ", FDayPlanWorkID); |
| | | LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql); |
| | | //LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); |
| | | //物料+库存组织分类 |
| | | var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList(); |
| | | var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "163165").ToList(); |
| | | LogHelper.Info("[提料计划准备阶段]总物料行数" + MaterialIDList.Count); |
| | | //LogHelper.Info("[提料计划准备阶段]总物料行数" + MaterialIDList.Count); |
| | | //提料计划数据集临时存储集合 |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | | //sql集合 更新采购订单占用的提料计划数量 |
| | |
| | | List<PurchaseInventory> _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | LogHelper.Info("[提料计划开始]当前物料无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | //LogHelper.Info("[提料计划开始]当前物料无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | continue; |
| | | } |
| | | //LogHelper.Info(item.FMATERIALID.ToString()); |
| | | ////LogHelper.Info(item.FMATERIALID.ToString()); |
| | | //当前物料和库存组织对应的需进行提料计划的数据 |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | | decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//最小起订量 |
| | |
| | | _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | //LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | break; |
| | | } |
| | | |
| | |
| | | FEntryIdList.Add(_item.FENTRYID); |
| | | NeedQty += _item.NeedQty; |
| | | |
| | | //LogHelper.Info("记录明细id:" + _item.FENTRYID + ""); |
| | | //LogHelper.Info("总需求量:" + NeedQty + ""); |
| | | //LogHelper.Info("最小起订量:" + FMINPOQTY + ""); |
| | | ////LogHelper.Info("记录明细id:" + _item.FENTRYID + ""); |
| | | ////LogHelper.Info("总需求量:" + NeedQty + ""); |
| | | ////LogHelper.Info("最小起订量:" + FMINPOQTY + ""); |
| | | if (NeedQty <= FMINPOQTY) |
| | | { |
| | | LogHelper.Info("[提料计划]当前物料明细无采购信息:" + item.FMATERIALID + ",数量:" + NeedQty + ",最小起订量:" + FMINPOQTY + ""); |
| | | //LogHelper.Info("[提料计划]当前物料明细无采购信息:" + item.FMATERIALID + ",数量:" + NeedQty + ",最小起订量:" + FMINPOQTY + ""); |
| | | } |
| | | |
| | | if ((FJITmaterialGroup == "总量控制规格类" || FJITmaterialGroup == "订单专用个性类") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //订单专用个性类 |
| | |
| | | //{ |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | | LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | //LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | //LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | ////LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | foreach (int id in FEntryIdList) |
| | |
| | | var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); |
| | | decimal Qty = DayPlanPpbomls.NeedQty;//订单数量 |
| | | //if (Qty == 0) |
| | | // LogHelper.Info("订单数量为0"); |
| | | // //LogHelper.Info("订单数量为0"); |
| | | if (Qty > _NeedQty) |
| | | Qty = _NeedQty; //订单数量>采购订单数量 取采购订单 |
| | | |
| | | //if (_NeedQty == 0) |
| | | // LogHelper.Info("订单数量为0"); |
| | | // //LogHelper.Info("订单数量为0"); |
| | | |
| | | _NeedQty = _NeedQty - Qty; |
| | | PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp |
| | |
| | | } |
| | | var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | LogHelper.Info($"提料计划,数据准备完成,保存到Model实体,总行数:{PODemandPlanTemp.Count},耗时:" + sw.Elapsed); |
| | | ////LogHelper.Info($"提料计划,数据准备完成,保存到Model实体,总行数:{PODemandPlanTemp.Count},耗时:" + sw.Elapsed); |
| | | int tlmmm = 1; |
| | | JArray FinalyResult = new JArray(); |
| | | foreach (var item in PODemandPlanList) |
| | |
| | | FinalyResult.Add(model); |
| | | if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) |
| | | { |
| | | LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | //LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | FinalyResult = new JArray(); |
| | | } |
| | | tlmmm++; |
| | | } |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("提料计划执行完成,运行总时长:" + sw.Elapsed); |
| | | //sw.Stop();//结束计时 |
| | | ////LogHelper.Info("提料计划执行完成,运行总时长:" + sw.Elapsed); |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | } |
| | | // var PODemandPlanList22 = PODemandPlanTemp.GroupBy(p => new {p.FSUPPLIERID, p.FHMASTERDATE }).ToList(); |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | |
| | | [Description("[直接调拨单-反审核]按钮功能]")] |
| | | [Description("[直接调拨单-反审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_ZJDBFSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Kingdee.BOS.Util; |
| | | using Kingdee.BOS.Core.Metadata; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.Contracts; |
| | | using Kingdee.BOS.App; |
| | | using Kingdee.BOS.Core.Metadata.FieldElement; |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using System.Diagnostics; |
| | | using ZD.Cloud.Logger; |
| | | using System.Data; |
| | | using Kingdee.BOS; |
| | | using Kingdee.BOS.App.Data; |
| | | |
| | | namespace Demo.DynamicForm.PRD |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | |
| | | [Description("[直接调拨单-审核]按钮功能]")] |
| | | [Description("[直接调拨单-审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class Pro_ZJDBSH : AbstractOperationServicePlugIn |
| | | { |
| | |
| | | // } |
| | | // DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | // sw.Stop();//结束计时 |
| | | // LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | // //LogHelper.Info("生成日计划用料清单运行总时长:" + sw.Elapsed); |
| | | //} |
| | | /// <summary> |
| | | ///反审核 反更新日计划用料清单调拨数量 |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using Demo.Model.Model; |
| | | using System.Collections.Generic; |
| | | using ZD.Share.Common; |
| | |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; |
| | | |
| | | namespace Demo.BillView |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("生产排程单动态表单-按钮点击事件")] |
| | | [HotUpdate] |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产排程单动态表单-Button按钮点击事件 抛出异常:" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产排程单动态表单-Button按钮点击事件 抛出异常:" + ex.Message.ToString()); |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产排程单动态表单-BarItem按钮点击事件 抛出异常:" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产排程单动态表单-BarItem按钮点击事件 抛出异常:" + ex.Message.ToString()); |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产排程单动态表单-页面展示 待排任务抛出异常:" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产排程单动态表单-页面展示 待排任务抛出异常:" + ex.Message.ToString()); |
| | | this.View.ShowErrMessage("错误:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产排程单动态表单-页面展示 生产订单抛出异常:" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产排程单动态表单-页面展示 生产订单抛出异常:" + ex.Message.ToString()); |
| | | this.View.ShowErrMessage("错误:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | |
| | | { |
| | | fMaterialID = order["FMATERIALID_Id"].ToString(); |
| | | } |
| | | decimal FChangeLine = Convert.ToDecimal(order["FChangeLine"]);//换线时间 |
| | | decimal FChangeLine = Convert.ToDecimal((order["FSczy"] as DynamicObject)?["FChangeLine"]);//换线时间 |
| | | if (fMaterialID != order["FMATERIALID_Id"].ToString()) |
| | | { |
| | | foreach (var item in _ENG_WORKCALFULLDATA) |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | this.View.ShowErrMessage(jsonRoot.ToString()); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产排程单动态表单 排程按钮点击功能" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产排程单动态表单 排程按钮点击功能" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | //LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | } |
| | |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.BillView |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("生产排程单动态表单-页面展示")] |
| | | [HotUpdate] |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error("生产排程单动态表单-页面展示 抛出异常:" + ex.Message.ToString()); |
| | | //LogHelper.Error("生产排程单动态表单-页面展示 抛出异常:" + ex.Message.ToString()); |
| | | this.View.ShowErrMessage("错误:" + ex.Message.ToString()); |
| | | } |
| | | |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | if (fentryId == "0" || fisfx) |
| | | continue; |
| | | sql = string.Format($"/*dialect*/update Cg_PODemandPlanBillSub set FReciveCount = FReciveCount + {Convert.ToDecimal(entryRow["ActReceiveQty"])} where FEntryID = {fentryId} "); |
| | | //LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | ////LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | sqlList.Add(sql); |
| | | sql = string.Format($"/*dialect*/update T_PUR_ReceiveEntry set FTlisfx = 1 where FentryId = {entryRow["Id"]}"); |
| | | sqlList.Add(sql); |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.K3.SCM.App; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | |
| | | if (fentryId == "0") |
| | | continue; |
| | | sql = string.Format($"/*dialect*/update Cg_PODemandPlanBillSub set FReciveCount = FReciveCount - {Convert.ToDecimal(entryRow["ActReceiveQty"])} where FEntryID = {fentryId} "); |
| | | //LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | ////LogHelper.Info("领料单的日计划用料清单ID:" + fentryId); |
| | | sqlList.Add(sql); |
| | | sql = string.Format($"/*dialect*/update T_PUR_ReceiveEntry set FTlisfx = 0 where FentryId = {entryRow["Id"]}"); |
| | | sqlList.Add(sql); |
| | |
| | | <package id="Portable.BouncyCastle" version="1.8.6" targetFramework="net472" /> |
| | | <package id="SharpZipLib" version="1.2.0" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.Common" version="7.2.3" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.Logger" version="1.1.0" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net452" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net452" /> |
| | | </packages> |
| | |
| | | <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net472" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <WarningLevel>4</WarningLevel> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Newtonsoft.Json.1.0.0\lib\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | |
| | | <Folder Include="PRD\" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net472" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net472" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | |
| | | <Compile Include="SCM\SAL_SaleOrder\SAL_SaleOrderSubmit.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net452" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net472" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net452" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.Logger, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Logger.1.1.0\lib\net40\ZD.Cloud.Logger.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="PRD\prd_TimelinessRateReport.cs" /> |
| | |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <ItemGroup /> |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\ZD.Cloud.Logger\ZD.Cloud.Logger.csproj"> |
| | | <Project>{876bcc4d-41be-4570-bd36-d6f11526ad64}</Project> |
| | | <Name>ZD.Cloud.Logger</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Cloud.WebApi\ZD.Cloud.WebApi.csproj"> |
| | | <Project>{96e1cc80-0e04-4f78-bbff-75faf6a69f7b}</Project> |
| | | <Name>ZD.Cloud.WebApi</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Share\ZD.Share.csproj"> |
| | | <Project>{54f8364f-3c79-43e7-9f14-de0bc63555d6}</Project> |
| | | <Name>ZD.Share</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | </Project> |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.BOS.Util; |
| | | using Newtonsoft.Json; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.Report |
| | | { |
| | |
| | | header.AddChild("FRJHQTY", new LocaleValue("工单数量"), SqlStorageType.SqlDecimal).ColIndex = 8; |
| | | header.AddChild("FQTQTY", new LocaleValue("工单齐套数量"), SqlStorageType.SqlDecimal).ColIndex = 8; |
| | | header.AddChild("FGDQTL", new LocaleValue("工单齐套率"), SqlStorageType.SqlDecimal).ColIndex = 8; |
| | | header.AddChild("FMATERIALNUMBER", new LocaleValue("原材料编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 9; |
| | | header.AddChild("FMATERIALNAME", new LocaleValue("原材料名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 10; |
| | | header.AddChild("FSPECIFICATION", new LocaleValue("原材料规格", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 11; |
| | | header.AddChild("FMATERIALNUMBER", new LocaleValue("物料编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 9; |
| | | header.AddChild("FMATERIALNAME", new LocaleValue("物料名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 10; |
| | | header.AddChild("FSPECIFICATION", new LocaleValue("物料规格", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 11; |
| | | header.AddChild("FHQTY", new LocaleValue("需求物料数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11; |
| | | header.AddChild("FREALQTY", new LocaleValue("入库数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11; |
| | | header.AddChild("FISQT", new LocaleValue("是否齐套", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 12; |
| | |
| | | FSupplyID = ((DynamicObject)customFil["FSupplyID"])["Id"].ToString(); |
| | | } |
| | | string sql = string.Format($"/*dialect*/ EXEC pr_CompleteSetRateReport '{tableName}','{FBeginDATE}','{FEndDATE}','{FMoBillNo}','{FProductLine}','{FSupplyID}'"); |
| | | LogHelper.Info(sql); |
| | | //LogHelper.Info(sql); |
| | | DBUtils.Execute(this.Context, sql); |
| | | } |
| | | public override ReportTitles GetReportTitles(IRptParams filter) |
| | |
| | | result = new ReportTitles(); |
| | | } |
| | | } |
| | | var begindate = dyFilter["FBeginDATE"]?.ToString() ?? "1990-01-01 00:00:00"; |
| | | var begindate = dyFilter["FBeginDATE"] == null ? "1990-01-01 00:00:00" : dyFilter["FBeginDATE"].ToString(); |
| | | var enddate = dyFilter["FEndDATE"]?.ToString() ?? "9999 - 01 - 01 00:00:00"; |
| | | var FMoBillNo = dyFilter["FMoBillNo"]?.ToString() ?? ""; |
| | | var FProductLine = (dyFilter["FProductLine"] as DynamicObject)?["Name"].ToString() ?? ""; |
| | |
| | | |
| | | */ |
| | | //基础资料名称 |
| | | private string GetBaseDataNameValue(DynamicObjectCollection dyobj) |
| | | { |
| | | string name = ""; |
| | | foreach (DynamicObject dynbj in dyobj) |
| | | { |
| | | if (dynbj != null || !dynbj.DynamicObjectType.Properties.Contains("Name")) |
| | | { |
| | | DynamicObject dynbj2 = (DynamicObject)dynbj[2]; |
| | | name = name + ",'" + dynbj2["Name"].ToString() + "'"; |
| | | } |
| | | } |
| | | if (name.Length > 0) |
| | | { |
| | | name = name.Substring(1, name.Length - 1); |
| | | } |
| | | return name; |
| | | } |
| | | |
| | | //设置单据列 |
| | | public override ReportHeader GetReportHeaders(IRptParams filter) |
| | | { |
| | |
| | | strwhere.AppendLine(MaterailName); |
| | | //组织 |
| | | var org = customFilter["FOrgId"] == null |
| | | ? " " : string.Format(" AND FPURCHASEORGID IN ({0}) ", (customFilter["FOrgId"] as DynamicObject)["Id"].ToString()); |
| | | ? " " : string.Format(" AND FHPURCHASEORGID IN ({0}) ", (customFilter["FOrgId"] as DynamicObject)["Id"].ToString()); |
| | | strwhere.AppendLine(org); |
| | | //供应商 |
| | | var baseSuppName = customFilter["FSUPPLIERID"]; |
| | |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.BOS.Util; |
| | | using Newtonsoft.Json; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace Demo.Report |
| | | { |
| | |
| | | header.AddChild("FMATERIALNUMBER2", new LocaleValue("产品编码"), SqlStorageType.Sqlvarchar).ColIndex = 6; |
| | | header.AddChild("FMATERIALNAME2", new LocaleValue("产品名称"), SqlStorageType.Sqlvarchar).ColIndex = 7; |
| | | header.AddChild("FSPECIFICATION2", new LocaleValue("产品规格"), SqlStorageType.Sqlvarchar).ColIndex = 8; |
| | | header.AddChild("FMATERIALNUMBER", new LocaleValue("原材料编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 9; |
| | | header.AddChild("FMATERIALNAME", new LocaleValue("原材料名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 10; |
| | | header.AddChild("FSPECIFICATION", new LocaleValue("原材料规格", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 11; |
| | | header.AddChild("FMATERIALNUMBER", new LocaleValue("物料编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 9; |
| | | header.AddChild("FMATERIALNAME", new LocaleValue("物料名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 10; |
| | | header.AddChild("FSPECIFICATION", new LocaleValue("规格型号", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 11; |
| | | header.AddChild("FHQTY", new LocaleValue("订单数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11; |
| | | header.AddChild("FREALQTY", new LocaleValue("实际到货数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11; |
| | | header.AddChild("FRKDATE", new LocaleValue("实际到货时间", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 12; |
| | |
| | | FSupplyID = ((DynamicObject)customFil["FSupplyID"])["Id"].ToString(); |
| | | } |
| | | string sql = string.Format($"/*dialect*/ EXEC pr_TimelinessRateReport '{tableName}','{FBeginDATE}','{FEndDATE}','{FMoBillNo}','{FProductLine}','{FSupplyID}','{FMaterialID}'"); |
| | | LogHelper.Info(sql); |
| | | //LogHelper.Info(sql); |
| | | DBUtils.Execute(this.Context, sql); |
| | | } |
| | | public override ReportTitles GetReportTitles(IRptParams filter) |
| | |
| | | <packages> |
| | | <package id="log4net" version="1.2.10" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.Logger" version="1.1.0" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net472" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath> |
| | | </Reference> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <packages> |
| | | <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net472" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <Reference Include="Kingdee.BOS.Web.HTML, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.Web.HTML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WeiXin.Core, Version=7.5.1507.2, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Common.7.5.1.2\lib\net452\Kingdee.BOS.WeiXin.Core.dll</HintPath> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.Logger, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.Logger.1.1.0\lib\net40\ZD.Cloud.Logger.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>C:\Users\14027\Desktop\bin文件\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="PRD\StockChangeDynamicAlignment.cs" /> |
| | |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="app.config" /> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | |
| | | <Project>{0AF059FC-D287-42C4-8835-133C3D96243A}</Project> |
| | | <Name>Demo.Utility</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Cloud.Logger\ZD.Cloud.Logger.csproj"> |
| | | <Project>{876bcc4d-41be-4570-bd36-d6f11526ad64}</Project> |
| | | <Name>ZD.Cloud.Logger</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Cloud.WebApi\ZD.Cloud.WebApi.csproj"> |
| | | <Project>{96e1cc80-0e04-4f78-bbff-75faf6a69f7b}</Project> |
| | | <Name>ZD.Cloud.WebApi</Name> |
| | | </ProjectReference> |
| | | <ProjectReference Include="..\ZD.Share\ZD.Share.csproj"> |
| | | <Project>{54f8364f-3c79-43e7-9f14-de0bc63555d6}</Project> |
| | | <Name>ZD.Share</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | </Project> |
| | |
| | | using Kingdee.BOS.Core; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using System.Data; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using Kingdee.BOS.Util; |
| | |
| | | deletemodel.Add("Numbers", DataRow[0]["FBillNo"].ToString()); |
| | | JObject _saveObj = JObject.Parse(cloudClient.Delete("Paez_Sc_DayPlanPPBomBill", deletemodel.ToString())); |
| | | string _saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (_saveIsSuc != "TRUE") |
| | | LogHelper.Error(_saveIsSuc); |
| | | //if (_saveIsSuc != "TRUE") |
| | | //LogHelper.Error(_saveIsSuc); |
| | | |
| | | } |
| | | JObject model = new JObject(); |
| | |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | |
| | | if (saveIsSuc != "TRUE") |
| | | LogHelper.Error(saveIsSuc); |
| | | // if (saveIsSuc != "TRUE") |
| | | //LogHelper.Error(saveIsSuc); |
| | | } |
| | | } |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | } |
| | | |
| | | } |
| | |
| | | using Kingdee.BOS.Core; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using System.Data; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using Kingdee.BOS.Util; |
| | | using System.Linq; |
| | | using Demo.Model.Model; |
| | | using Demo.Model.Model.PODemandPlan; |
| | | using System.Diagnostics; |
| | | using System.Collections.Generic; |
| | | using ZD.Share.Common; |
| | | using ZD.Cloud.WebApi; |
| | |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | { |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start();//开始计时 |
| | | //清空齐套临时表 |
| | | DBServiceHelper.Execute(Context, "/*dialect*/ delete JIT_MOMaterReadysBill "); |
| | | //更新状态 |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | i++; |
| | | } |
| | | // //执行完成后 更新日计划工单状态 |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '未齐套' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | //"); |
| | | // DBServiceHelper.Execute(Context, @" |
| | | ///*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | //"); |
| | | |
| | | //执行完成后 更新日计划工单状态 |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '未齐套' where FEntryID IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '未齐套' where |
| | | exists (select distinct FHICMOEntryID from JIT_MOMaterReadysBill v where isnull(FCOMPLETE,'未齐套') ='未齐套' and v.FHICMOENTRYID = Sc_WorkBillSortBillSub.FEntryID) |
| | | "); |
| | | DBServiceHelper.Execute(Context, @" |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where FEntryID NOT IN (select distinct FHICMOEntryID from JIT_MOMaterReadysBill where isnull(FCOMPLETE,'未齐套') ='未齐套') |
| | | /*dialect*/update Sc_WorkBillSortBillSub set FComplete = '齐套' where |
| | | not exists |
| | | (select distinct FHICMOEntryID from JIT_MOMaterReadysBill v where isnull(FCOMPLETE,'未齐套') ='未齐套' and v.FHICMOENTRYID = Sc_WorkBillSortBillSub.FEntryID ) |
| | | "); |
| | | sw.Stop();//结束计时 |
| | | LogHelper.Info("运行总时长:" + sw.Elapsed); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | var result = cloudClient.Save("Paez_Sc_DayPlanPPBomBill", jsonRoot.ToString()); |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | LogHelper.Error(saveIsSuc); |
| | | //if (saveIsSuc != "TRUE") |
| | | //LogHelper.Error(saveIsSuc); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | and FCloseStatus in('A') and FMRPCLOSESTATUS in('A') |
| | | "; |
| | | List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); |
| | | LogHelper.Info("采购订单数据" + sql); |
| | | //LogHelper.Info("采购订单数据" + sql); |
| | | |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | |
| | | AND T1.FID in ({0}) |
| | | order by FHMASTERDATE |
| | | ", FDayPlanWorkID); |
| | | LogHelper.Info("提料数据" + sql); |
| | | //LogHelper.Info("提料数据" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); |
| | | |
| | | var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList(); |
| | | var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "105773").ToList(); |
| | | |
| | | LogHelper.Info("物料行数" + MaterialIDList.Count); |
| | | //LogHelper.Info("物料行数" + MaterialIDList.Count); |
| | | |
| | | //提料计划数据集临时存储集合 |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | |
| | | //MaterialIDList = new List<string> { "105773" }; |
| | | foreach (var item in MaterialIDList) |
| | | { |
| | | LogHelper.Info(item.FMATERIALID.ToString()); |
| | | //LogHelper.Info(item.FMATERIALID.ToString()); |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | | |
| | | decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//最小起订量 |
| | |
| | | } |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | | LogHelper.Info("Purchase"); |
| | | LogHelper.Info("物料:" + Purchase.FMATERIALID + ",数量:" + Purchase.FQTY); |
| | | //LogHelper.Info("Purchase"); |
| | | //LogHelper.Info("物料:" + Purchase.FMATERIALID + ",数量:" + Purchase.FQTY); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | List<int> mmm = new List<int>(); |
| | |
| | | var result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString()); |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | LogHelper.Info("最后"); |
| | | LogHelper.Info(jsonRoot.ToString()); |
| | | if (saveIsSuc != "TRUE") |
| | | LogHelper.Error(saveIsSuc); |
| | | //LogHelper.Info("最后"); |
| | | //LogHelper.Info(jsonRoot.ToString()); |
| | | //if (saveIsSuc != "TRUE") |
| | | //LogHelper.Error(saveIsSuc); |
| | | } |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | } |
| | |
| | | using Kingdee.BOS.Core; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using System.Data; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using Kingdee.BOS.Util; |
| | |
| | | using ZD.Cloud.WebApi; |
| | | using Demo.Model.Model; |
| | | using Demo.Model.Model.PODemandPlan; |
| | | using System.Diagnostics; |
| | | |
| | | using System.Collections.Generic; |
| | | using ZD.Share.Common; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | namespace Demo.TimedTaskPlugIn.PRD |
| | | { |
| | |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start(); |
| | | Extraction(); |
| | | sqlList.Add($"/*dialect*/ update sc_TLPLANZXJH set FZXDATE = getdate(), FISZX = 1 where FISZX = 0 "); |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | LogHelper.Info("提料计划时长:" + sw.Elapsed); |
| | | sw.Stop(); |
| | | } |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | | public void Extraction() |
| | | { |
| | | LogHelper.Info("[生产订单缺料生成提料计划--准备阶段]:开始执行提料计划逻辑"); |
| | | //LogHelper.Info("[生产订单缺料生成提料计划--准备阶段]:开始执行提料计划逻辑"); |
| | | try |
| | | { |
| | | //Stopwatch sw = new Stopwatch(); |
| | |
| | | exec [提料计划预处理] |
| | | "); |
| | | DBServiceHelper.Execute(Context, sql); |
| | | //LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql); |
| | | ////LogHelper.Info("[提料计划准备阶段]提料计划预处理sql:" + sql); |
| | | //采购订单数据 |
| | | sql = @" |
| | | /*dialect*/ |
| | |
| | | and t1.FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142') |
| | | "; |
| | | List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<PurchaseInventory>(); |
| | | //LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql); |
| | | ////LogHelper.Info("[提料计划准备阶段]可用采购订单数据sql:" + sql); |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT T1.FID,FHMASTERDATE,t1.FEntryID,T1.FBILLNO, FNeedQty,(FLeadtime+FLeadTtime2)FFIXLEADTIME,t5.FMAXPOQTY,FJITBatch FMINPOQTY,FJITMATERIALGROUP,FJITMaterielDemand,FJITSafeStock,t1.FMATERIALID,t6.FNumber,NeedQty, FStockOrgId ,FErpClsID |
| | |
| | | AND T1.FID in (select distinct FDAYPLANID from sc_TLPLANZXJH where FISZX = 0) |
| | | order by FHMASTERDATE |
| | | "); |
| | | //LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql); |
| | | ////LogHelper.Info("[提料计划准备阶段]需要提料数据sql:" + sql); |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | List<DayPlanPpbom> DayPlanPpbom = ds.ToModelList<DayPlanPpbom>(); |
| | | //物料+库存组织分类 |
| | | var MaterialIDList = DayPlanPpbom.GroupBy(p => new { p.FMATERIALID, p.FStockOrgId }).Select(x => new PODemandPlanTemp { FMATERIALID = x.Key.FMATERIALID, FStockOrgId = x.Key.FStockOrgId }).ToList(); |
| | | var _MaterialIDList = MaterialIDList.Where(p => p.FMATERIALID == "163165").ToList(); |
| | | //LogHelper.Info("[提料计划准备阶段]总物料行数" + MaterialIDList.Count); |
| | | ////LogHelper.Info("[提料计划准备阶段]总物料行数" + MaterialIDList.Count); |
| | | //提料计划数据集临时存储集合 |
| | | List<PODemandPlanTemp> PODemandPlanTemp = new List<PODemandPlanTemp>(); |
| | | //sql集合 更新采购订单占用的提料计划数量 |
| | |
| | | LogHelper.Info("[提料计划开始]当前物料无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | continue; |
| | | } |
| | | //LogHelper.Info(item.FMATERIALID.ToString()); |
| | | ////LogHelper.Info(item.FMATERIALID.ToString()); |
| | | //当前物料和库存组织对应的需进行提料计划的数据 |
| | | List<DayPlanPpbom> _DayPlanPpbom = DayPlanPpbom.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId).ToList(); |
| | | decimal FMINPOQTY = _DayPlanPpbom.FirstOrDefault().FMINPOQTY;//最小起订量 |
| | |
| | | _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == item.FMATERIALID && x.FStockOrgId == item.FStockOrgId && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList(); |
| | | if (_PurchaseInventory.Count == 0) |
| | | { |
| | | //LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | ////LogHelper.Info("[提料计划开始]当前物料明细无采购信息:" + item.FMATERIALID + " 库存组织:" + item.FStockOrgId); |
| | | break; |
| | | } |
| | | |
| | |
| | | FEntryIdList.Add(_item.FENTRYID); |
| | | NeedQty += _item.NeedQty; |
| | | |
| | | //LogHelper.Info("记录明细id:" + _item.FENTRYID + ""); |
| | | //LogHelper.Info("总需求量:" + NeedQty + ""); |
| | | //LogHelper.Info("最小起订量:" + FMINPOQTY + ""); |
| | | ////LogHelper.Info("记录明细id:" + _item.FENTRYID + ""); |
| | | ////LogHelper.Info("总需求量:" + NeedQty + ""); |
| | | ////LogHelper.Info("最小起订量:" + FMINPOQTY + ""); |
| | | if (NeedQty <= FMINPOQTY) |
| | | { |
| | | LogHelper.Info("[提料计划]当前物料明细无采购信息:" + item.FMATERIALID + ",数量:" + NeedQty + ",最小起订量:" + FMINPOQTY + ""); |
| | | //LogHelper.Info("[提料计划]当前物料明细无采购信息:" + item.FMATERIALID + ",数量:" + NeedQty + ",最小起订量:" + FMINPOQTY + ""); |
| | | } |
| | | |
| | | if ((FJITmaterialGroup == "总量控制规格类" || FJITmaterialGroup == "订单专用个性类") && FEntryIdList.Count < Convert.ToInt32(FJITMaterielDemand) && i < _DayPlanPpbom.Count) //订单专用个性类 |
| | |
| | | //{ |
| | | foreach (var Purchase in _PurchaseInventory) |
| | | { |
| | | //LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | //LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | ////LogHelper.Info("采购订单号测试:" + Purchase.FBillNo); |
| | | ////LogHelper.Info("物料:" + Purchase.FMATERIALID + ",采购订单数量:" + Purchase.FQTY); |
| | | if (Purchase.FQTY >= NeedQty) |
| | | { |
| | | foreach (int id in FEntryIdList) |
| | |
| | | var DayPlanPpbomls = DayPlanPpbom.Where(c => c.FENTRYID == id && c.FMATERIALID == _item.FMATERIALID).FirstOrDefault(); |
| | | decimal Qty = DayPlanPpbomls.NeedQty;//订单数量 |
| | | //if (Qty == 0) |
| | | // LogHelper.Info("订单数量为0"); |
| | | // //LogHelper.Info("订单数量为0"); |
| | | if (Qty > _NeedQty) |
| | | Qty = _NeedQty; //订单数量>采购订单数量 取采购订单 |
| | | |
| | | //if (_NeedQty == 0) |
| | | // LogHelper.Info("订单数量为0"); |
| | | // //LogHelper.Info("订单数量为0"); |
| | | |
| | | _NeedQty = _NeedQty - Qty; |
| | | PODemandPlanTemp.Add(new Demo.Model.Model.PODemandPlan.PODemandPlanTemp |
| | |
| | | } |
| | | var PODemandPlanList222 = PODemandPlanTemp.GroupBy(p => new PODemandPlanTemp { PurchseFNUMBER = p.PurchseFNUMBER, FHMASTERDATE = p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | var PODemandPlanList = PODemandPlanTemp.GroupBy(p => new { p.PurchseFNUMBER, p.FHMASTERDATE }).Select(x => new PODemandPlanTemp { PurchseFNUMBER = x.Key.PurchseFNUMBER, FHMASTERDATE = x.Key.FHMASTERDATE }).ToList(); |
| | | LogHelper.Info($"提料计划,数据准备完成,保存到Model实体,总行数:{PODemandPlanTemp.Count}"); |
| | | //LogHelper.Info($"提料计划,数据准备完成,保存到Model实体,总行数:{PODemandPlanTemp.Count}"); |
| | | int tlmmm = 1; |
| | | JArray FinalyResult = new JArray(); |
| | | foreach (var item in PODemandPlanList) |
| | |
| | | FinalyResult.Add(model); |
| | | if ((tlmmm >= 20 || tlmmm == PODemandPlanList.Count) && (tlmmm % 20 == 0 || tlmmm == PODemandPlanList.Count)) |
| | | { |
| | | LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | //LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | FinalyResult = new JArray(); |
| | | } |
| | | tlmmm++; |
| | | } |
| | | //sw.Stop();//结束计时 |
| | | //LogHelper.Info("提料计划执行完成,运行总时长:" + sw.Elapsed); |
| | | ////LogHelper.Info("提料计划执行完成,运行总时长:" + sw.Elapsed); |
| | | DBServiceHelper.ExecuteBatch(Context, sqlList); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | } |
| | | // var PODemandPlanList22 = PODemandPlanTemp.GroupBy(p => new {p.FSUPPLIERID, p.FHMASTERDATE }).ToList(); |
| | | } |
| | |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.Contracts; |
| | | using Kingdee.BOS; |
| | | using Kingdee.BOS.Core; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using System.Data; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using Kingdee.BOS.Util; |
| | | using System.Linq; |
| | | using ZD.Cloud.WebApi; |
| | | using Demo.Model.Model; |
| | | using Demo.Model.Model.PODemandPlan; |
| | | using System.Diagnostics; |
| | | using System.Collections.Generic; |
| | | using ZD.Share.Common; |
| | | |
| | | namespace Demo.TimedTaskPlugIn.PRD |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start(); |
| | | Context = ctx; |
| | | string sql = @"/*dialect*/ select count(*) js from t_PUR_POOrder a |
| | | string sql = @"/*dialect*/ select count(*) js |
| | | from t_PUR_POOrder a |
| | | join t_PUR_POOrderEntry b on a.FID = b.FID |
| | | where FBILLTYPEID in |
| | | ( |
| | | select FBILLTYPEID from T_BAS_BILLTYPE |
| | | where FBILLFORMID = 'PUR_PurchaseOrder' |
| | | and FNUMBER in('CGDD09_SYS','CGDD10_SYS','CGDD06,'CGDD08') |
| | | and FNUMBER in('CGDD09_SYS','CGDD10_SYS','CGDD06','CGDD08') |
| | | ) |
| | | and FDOCUMENTSTATUS = 'C' |
| | | and a.FDOCUMENTSTATUS = 'C' --审核状态 |
| | | and a.FCLOSESTATUS = 'A' --关闭状态 |
| | | and a.FCANCELSTATUS ='A' --作废状态 |
| | | and b.FMRPCloseStatus ='A' -- 业务关闭 |
| | | and b.FMRPFreezeStatus ='A' -- 业务冻结 |
| | | and b.FMRPTerminateStatus ='A' -- 业务终止 |
| | | and FENTRYID not in (select distinct FHPOOrderEntryID from Cg_PODemandPlanBillSub)"; |
| | | int ret = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (ret == 0) |
| | | return; |
| | | Extraction(); |
| | | LogHelper.Info("提料计划时长:" + sw.Elapsed); |
| | | sw.Stop(); |
| | | |
| | | } |
| | | catch (System.Exception ex) |
| | | { |
| | | LogHelper.Error(ex.Message.ToString()); |
| | | //LogHelper.Error(ex.Message.ToString()); |
| | | } |
| | | } |
| | | |
| | |
| | | try |
| | | { |
| | | //需要生成提料计划所有数据 |
| | | string sql = @"/*dialect*/ SELECT * FROM ( |
| | | select a.FID,b.FENTRYID,B.FSEQ,a.FBILLNO,A.FSUPPLIERID,d.FNUMBER as FSUPPLIERNAME,CONVERT(NVARCHAR(50),T.FDELIVERYDATE,23)FDELIVERYDATE,b.FMATERIALID,c.FNUMBER as FMATERIALNAME,b.FQTY from t_PUR_POOrder a |
| | | string sql = @"/*dialect*/ SELECT * FROM ( |
| | | select a.FID,b.FENTRYID,B.FSEQ,a.FBILLNO,A.FSUPPLIERID,d.FNUMBER as FSUPPLIERNAME,CONVERT(NVARCHAR(50),T.FDELIVERYDATE,23)FDELIVERYDATE,b.FMATERIALID,c.FNUMBER as FMATERIALNAME,R.FREMAINRECEIVEQTY FQTY |
| | | from t_PUR_POOrder a |
| | | join t_PUR_POOrderEntry b on a.FID = b.FID |
| | | join T_PUR_POORDERENTRY_D T on B.FENTRYID = T.FENTRYID |
| | | join T_PUR_POORDERENTRY_R R on B.FENTRYID = R.FENTRYID |
| | | join T_BD_MATERIAL c on b.FMATERIALID = c.FMATERIALID |
| | | join T_BD_SUPPLIER d on a.FSUPPLIERID=d.FSUPPLIERID |
| | | left join Cg_PODemandPlanBillSub e on b.FENTRYID =e.FHPOOrderEntryID |
| | | where a.FBILLTYPEID in |
| | | ( |
| | | select FBILLTYPEID from T_BAS_BILLTYPE |
| | | where FBILLFORMID = 'PUR_PurchaseOrder' |
| | | and FNUMBER in('CGDD09_SYS','CGDD10_SYS','CGDD06,'CGDD08') |
| | | and FNUMBER in('CGDD09_SYS','CGDD10_SYS','CGDD06','CGDD08') |
| | | ) |
| | | and a.FDOCUMENTSTATUS = 'C' |
| | | and a.FDOCUMENTSTATUS = 'C' --审核状态 |
| | | and a.FCLOSESTATUS = 'A' --关闭状态 |
| | | and a.FCANCELSTATUS ='A' --作废状态 |
| | | and b.FMRPCloseStatus ='A' -- 业务关闭 |
| | | and b.FMRPFreezeStatus ='A' -- 业务冻结 |
| | | and b.FMRPTerminateStatus ='A' -- 业务终止 |
| | | and b.FENTRYID not in (select distinct FHPOOrderEntryID from Cg_PODemandPlanBillSub) |
| | | )A |
| | | "; |
| | | //交期和供应商进行分组 |
| | | DataTable purDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | sql = @"/*dialect*/ select DISTINCT A.FSUPPLIERID,CONVERT(NVARCHAR(50),T.FDELIVERYDATE,23)FDELIVERYDATE from t_PUR_POOrder a |
| | | sql = @"/*dialect*/ select DISTINCT A.FSUPPLIERID,CONVERT(NVARCHAR(50),T.FDELIVERYDATE,23)FDELIVERYDATE |
| | | from t_PUR_POOrder a |
| | | join t_PUR_POOrderEntry b on a.FID = b.FID |
| | | join T_PUR_POORDERENTRY_D T on B.FENTRYID = T.FENTRYID |
| | | left join Cg_PODemandPlanBillSub e on b.FENTRYID =e.FHPOOrderEntryID |
| | | where a.FBILLTYPEID in |
| | | ( |
| | | select FBILLTYPEID from T_BAS_BILLTYPE |
| | | where FBILLFORMID = 'PUR_PurchaseOrder' |
| | | and FNUMBER in('CGDD09_SYS','CGDD10_SYS') |
| | | and FNUMBER in('CGDD09_SYS','CGDD10_SYS','CGDD06','CGDD08') |
| | | ) |
| | | and a.FDOCUMENTSTATUS = 'C' |
| | | and a.FDOCUMENTSTATUS = 'C' --审核状态 |
| | | and a.FCLOSESTATUS = 'A' --关闭状态 |
| | | and a.FCANCELSTATUS ='A' --作废状态 |
| | | and b.FMRPCloseStatus ='A' -- 业务关闭 |
| | | and b.FMRPFreezeStatus ='A' -- 业务冻结 |
| | | and b.FMRPTerminateStatus ='A' -- 业务终止 |
| | | and b.FENTRYID not in (select distinct FHPOOrderEntryID from Cg_PODemandPlanBillSub) |
| | | "; |
| | | DataTable _purDt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | JArray FinalyResult = new JArray(); |
| | |
| | | foreach (DataRow _dr in _purDt.Rows) |
| | | { |
| | | DataRow[] purDtRows = purDt.Select($"FSUPPLIERID = '{_dr[0].ToString()}' AND FDELIVERYDATE = '{_dr[1].ToString()}'"); |
| | | LogHelper.Info(purDtRows.ToString()); |
| | | //LogHelper.Info(purDtRows.ToString()); |
| | | JObject model = new JObject(); |
| | | model.Add("FHDate", purDtRows[0]["FDELIVERYDATE"].ToString()); |
| | | model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" }); |
| | |
| | | FinalyResult.Add(model); |
| | | if ((tlmmm >= 20 || tlmmm == _purDt.Rows.Count) && (tlmmm % 20 == 0 || tlmmm == _purDt.Rows.Count)) |
| | | { |
| | | LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | //LogHelper.Info("提料计划新增批量执行,记录循环的当前条数" + tlmmm); |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | LogHelper.Error(jsonRoot.ToString()); |
| | | //LogHelper.Error(jsonRoot.ToString()); |
| | | } |
| | | FinalyResult = new JArray(); |
| | | } |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | //LogHelper.Info("提料计划跳出:" + ex.Message.ToString()); |
| | | } |
| | | } |
| | | } |
| | |
| | | <assemblyIdentity name="BouncyCastle.Crypto" publicKeyToken="0e99375e54769942" culture="neutral" /> |
| | | <bindingRedirect oldVersion="0.0.0.0-1.8.6.0" newVersion="1.8.6.0" /> |
| | | </dependentAssembly> |
| | | <dependentAssembly> |
| | | <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" /> |
| | | <bindingRedirect oldVersion="0.0.0.0-1.2.0.246" newVersion="1.2.0.246" /> |
| | | </dependentAssembly> |
| | | </assemblyBinding> |
| | | </runtime> |
| | | </configuration> |
| | |
| | | <packages> |
| | | <package id="log4net" version="1.2.10" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.Common" version="7.5.1.2" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.Logger" version="1.1.0" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net452" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net472" /> |
| | | </packages> |
| | |
| | | <Reference Include="ICSharpCode.SharpZipLib, Version=1.2.0.246, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\SharpZipLib.1.2.0\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.Client, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.FormService, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.FormService.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Kingdee.BOS.WebApi.ServicesStub, Version=7.6.2052.7, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\Kingdee.BOS.WebApi.ServicesStub.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Newtonsoft.Json.1.0.0\lib\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <Reference Include="NPOI"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI.OOXML, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <Reference Include="NPOI.OOXML"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.OOXML.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI.OpenXml4Net, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <Reference Include="NPOI.OpenXml4Net"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.OpenXml4Net.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="NPOI.OpenXmlFormats, Version=2.5.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\NPOI.OpenXmlFormats.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Configuration" /> |
| | |
| | | <Reference Include="System.Data" /> |
| | | <Reference Include="System.Net.Http" /> |
| | | <Reference Include="System.Xml" /> |
| | | <Reference Include="ZD.Cloud.WebApi, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Cloud.WebApi.7.6.1\lib\net452\ZD.Cloud.WebApi.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="ZD.Share, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
| | | <HintPath>..\..\..\packages\ZD.Share.1.0.3\lib\net452\ZD.Share.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="NpoiHelper.cs" /> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="Config\kdapi.config" /> |
| | | <None Include="app.config" /> |
| | | <None Include="packages.config" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <WCFMetadata Include="Connected Services\" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | </Project> |
| | |
| | | using System.IO; |
| | | using NPOI.HSSF.UserModel; |
| | | using System.Data; |
| | | using System.Collections; |
| | | using System.Drawing; |
| | | using NPOI.HSSF.Util; |
| | | using NPOI.SS.UserModel; |
| | |
| | | if (ds.Tables[0].Rows.Count == 0 && sb.ToString() != "") throw new Exception(sb.ToString()); |
| | | return ds; |
| | | } |
| | | public DataSet ReadExcel1(string FileName, int startRow, params NpoiDataType[] ColumnDataType) |
| | | { |
| | | string colNamePix = "F"; |
| | | int ertime = 0; |
| | | int intime = 0; |
| | | DataSet ds = new DataSet("ds"); |
| | | DataTable dt = new DataTable("dt"); |
| | | DataRow dr; |
| | | StringBuilder sb = new StringBuilder(); |
| | | using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read)) |
| | | { |
| | | IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式 |
| | | //for (int k = 0; k < 14; k++) |
| | | //{ |
| | | ISheet sheet = workbook.GetSheetAt(0);//得到里面第一个sheet |
| | | int j; |
| | | IRow row; |
| | | #region ColumnDataType赋值 |
| | | if (ColumnDataType.Length <= 0) |
| | | { |
| | | row = sheet.GetRow(startRow - 1);//得到第i行 |
| | | ColumnDataType = new NpoiDataType[row.LastCellNum]; |
| | | for (int i = 0; i < row.LastCellNum; i++) |
| | | { |
| | | ICell hs = row.GetCell(i, MissingCellPolicy.CREATE_NULL_AS_BLANK); |
| | | ColumnDataType[i] = GetCellDataType(hs); //NpoiDataType.Blank; |
| | | //if (i == 6) |
| | | //{ |
| | | // ColumnDataType[i] = NpoiDataType.Numeric; |
| | | //} |
| | | } |
| | | } |
| | | #endregion |
| | | for (j = 0; j < ColumnDataType.Length; j++) |
| | | { |
| | | Type tp = GetDataTableType(ColumnDataType[j]); |
| | | //if (j == 6) |
| | | //{ |
| | | // tp = typeof(double); |
| | | //} |
| | | dt.Columns.Add(colNamePix + (j + 1), tp); |
| | | } |
| | | |
| | | ReadExcelEndRow = ReadExcelEndRow == 0 ? sheet.PhysicalNumberOfRows : ReadExcelEndRow; |
| | | for (int i = startRow - 1; i <= ReadExcelEndRow; i++) |
| | | { |
| | | row = sheet.GetRow(i);//得到第i行 |
| | | if (row == null) continue; |
| | | dr = dt.NewRow(); |
| | | bool flg = false; |
| | | for (j = 0; j < ColumnDataType.Length; j++) |
| | | { |
| | | |
| | | try |
| | | { |
| | | object temp = GetCellData(ColumnDataType[j], row, j); |
| | | dr[colNamePix + (j + 1)] = temp; |
| | | if (temp.ToString().Trim() != "") |
| | | { |
| | | flg = true; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | ertime++; |
| | | sb.Append(string.Format("第{0}行第{1}列未读取:{2}\r\n", i + 1, j + 1, e.Message)); |
| | | } |
| | | } |
| | | if (flg) |
| | | { |
| | | dt.Rows.Add(dr); |
| | | intime++; |
| | | } |
| | | } |
| | | ds.Tables.Add(dt); |
| | | //} |
| | | } |
| | | if (ds.Tables[0].Rows.Count == 0 && sb.ToString() != "") throw new Exception(sb.ToString()); |
| | | return ds; |
| | | } |
| | | public DataSet ReadExcel(string FileName, int startRow, int endRow, params NpoiDataType[] ColumnDataType) |
| | | { |
| | | if (endRow > 0) |
| | | { |
| | | ReadExcelEndRow = endRow; |
| | | } |
| | | return ReadExcel(FileName, startRow); |
| | | } |
| | | |
| | | public DataSet ReadExcel_double(string FileName, int startRow, int[] colnums, int LastCellNum, params NpoiDataType[] ColumnDataType) |
| | | { |
| | | string colNamePix = "F"; |
| | | int ertime = 0; |
| | | int intime = 0; |
| | | DataSet ds = new DataSet("ds"); |
| | | DataTable dt = new DataTable("dt"); |
| | | DataRow dr; |
| | | StringBuilder sb = new StringBuilder(); |
| | | using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read)) |
| | | { |
| | | IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式 |
| | | ISheet sheet = workbook.GetSheetAt(0);//得到里面第一个sheet |
| | | int j; |
| | | IRow row; |
| | | #region ColumnDataType赋值 |
| | | if (ColumnDataType.Length <= 0) |
| | | { |
| | | row = sheet.GetRow(startRow - 1);//得到第i行 |
| | | ColumnDataType = new NpoiDataType[LastCellNum]; |
| | | for (int i = 0; i < LastCellNum; i++) |
| | | { |
| | | ICell hs = row.GetCell(i, MissingCellPolicy.CREATE_NULL_AS_BLANK); |
| | | ColumnDataType[i] = GetCellDataType(hs); //NpoiDataType.Blank; |
| | | } |
| | | } |
| | | #endregion |
| | | for (j = 0; j < ColumnDataType.Length; j++) |
| | | { |
| | | Type tp = GetDataTableType(ColumnDataType[j]); |
| | | dt.Columns.Add(colNamePix + j, tp); |
| | | } |
| | | |
| | | ReadExcelEndRow = ReadExcelEndRow == 0 ? sheet.PhysicalNumberOfRows : ReadExcelEndRow; |
| | | for (int i = startRow - 1; i <= ReadExcelEndRow; i++) |
| | | { |
| | | row = sheet.GetRow(i);//得到第i行 |
| | | if (row == null) continue; |
| | | try |
| | | { |
| | | dr = dt.NewRow(); |
| | | bool co = false; |
| | | for (j = 0; j < ColumnDataType.Length; j++) |
| | | { |
| | | co = false; |
| | | for (int c = 0; c < colnums.Length; c++) |
| | | { |
| | | if (j == colnums[c]) |
| | | { |
| | | co = true; |
| | | break; |
| | | } |
| | | |
| | | } |
| | | if (co && i != 0) |
| | | dr[colNamePix + j] = GetCellData_double(ColumnDataType[j], row, j); |
| | | else |
| | | dr[colNamePix + j] = GetCellData(ColumnDataType[j], row, j); |
| | | } |
| | | dt.Rows.Add(dr); |
| | | intime++; |
| | | } |
| | | catch (Exception er) |
| | | { |
| | | ertime++; |
| | | sb.Append(string.Format("第{0}行出错:{1}\r\n", i + 1, er.Message)); |
| | | continue; |
| | | } |
| | | } |
| | | ds.Tables.Add(dt); |
| | | } |
| | | if (ds.Tables[0].Rows.Count == 0 && sb.ToString() != "") throw new Exception(sb.ToString()); |
| | | return ds; |
| | | } |
| | | |
| | | public DataSet ReadExcel_Sheet2(string FileName, int startRow, int[] colnums, params NpoiDataType[] ColumnDataType) |
| | | { |
| | | string colNamePix = "F"; |
| | | int ertime = 0; |
| | | int intime = 0; |
| | | DataSet ds = new DataSet("ds"); |
| | | DataTable dt = new DataTable("dt"); |
| | | DataRow dr; |
| | | StringBuilder sb = new StringBuilder(); |
| | | using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read)) |
| | | { |
| | | IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式 |
| | | ISheet sheet = workbook.GetSheetAt(1);//得到里面第二个sheet |
| | | int j; |
| | | IRow row; |
| | | #region ColumnDataType赋值 |
| | | if (ColumnDataType.Length <= 0) |
| | | { |
| | | row = sheet.GetRow(startRow - 1);//得到第i行 |
| | | ColumnDataType = new NpoiDataType[row.LastCellNum]; |
| | | for (int i = 0; i < row.LastCellNum; i++) |
| | | { |
| | | ICell hs = row.GetCell(i, MissingCellPolicy.CREATE_NULL_AS_BLANK); |
| | | ColumnDataType[i] = GetCellDataType(hs); //NpoiDataType.Blank; |
| | | } |
| | | } |
| | | #endregion |
| | | for (j = 0; j < ColumnDataType.Length; j++) |
| | | { |
| | | Type tp = GetDataTableType(ColumnDataType[j]); |
| | | dt.Columns.Add(colNamePix + j, tp); |
| | | } |
| | | |
| | | ReadExcelEndRow = ReadExcelEndRow == 0 ? sheet.PhysicalNumberOfRows : ReadExcelEndRow; |
| | | for (int i = startRow - 1; i <= ReadExcelEndRow; i++) |
| | | { |
| | | row = sheet.GetRow(i);//得到第i行 |
| | | if (row == null) continue; |
| | | try |
| | | { |
| | | dr = dt.NewRow(); |
| | | bool co = false; |
| | | for (j = 0; j < ColumnDataType.Length; j++) |
| | | { |
| | | for (int c = 0; c < colnums.Length; c++) |
| | | { |
| | | if (j == colnums[c]) |
| | | { |
| | | co = true; |
| | | break; |
| | | } |
| | | |
| | | } |
| | | if (co) |
| | | dr[colNamePix + j] = GetCellData_double(ColumnDataType[j], row, j); |
| | | else |
| | | dr[colNamePix + j] = GetCellData(ColumnDataType[j], row, j); |
| | | } |
| | | dt.Rows.Add(dr); |
| | | intime++; |
| | | } |
| | | catch (Exception er) |
| | | { |
| | | ertime++; |
| | | sb.Append(string.Format("第{0}行出错:{1}\r\n", i + 1, er.Message)); |
| | | continue; |
| | | } |
| | | } |
| | | ds.Tables.Add(dt); |
| | | } |
| | | if (ds.Tables[0].Rows.Count == 0 && sb.ToString() != "") throw new Exception(sb.ToString()); |
| | | return ds; |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | #region//读取多个sheet |
| | | public DataSet ReadExcelSub(string FileName, int startRow, params NpoiDataType[] ColumnDataType) |
| | |
| | | cell = row.CreateCell(j);//创建第0行的第j列 |
| | | cell.CellStyle = style1;//单元格式设置样式 |
| | | |
| | | try |
| | | { |
| | | cell.SetCellType(CellType.String); |
| | | cell.SetCellValue(columnValue.ToString()); |
| | | } |
| | | catch { } |
| | | cell.SetCellType(CellType.String); |
| | | cell.SetCellValue(columnValue.ToString()); |
| | | |
| | | |
| | | } |
| | | catch |
| | |
| | | cell = row.CreateCell(j);//创建第0行的第j列 |
| | | cell.CellStyle = style1;//单元格式设置样式 |
| | | |
| | | try |
| | | { |
| | | //cell.SetCellType(CellType.STRING); |
| | | cell.SetCellValue(columnValue.ToString()); |
| | | } |
| | | catch { } |
| | | |
| | | //cell.SetCellType(CellType.STRING); |
| | | cell.SetCellValue(columnValue.ToString()); |
| | | } |
| | | catch |
| | | { |
| | |
| | | { |
| | | return null; |
| | | } |
| | | try |
| | | |
| | | if (obj.ToString().Contains("月") && obj.ToString().Contains("-") && objcell.DateCellValue != null) |
| | | { |
| | | if (obj.ToString().Contains("月") && obj.ToString().Contains("-") && objcell.DateCellValue != null) |
| | | { |
| | | datatype = NpoiDataType.Datetime; |
| | | } |
| | | else if (objcell.CellType == CellType.Numeric && (obj.ToString().Contains("-") || obj.ToString().Contains("/")) && objcell.DateCellValue != null) |
| | | { |
| | | datatype = NpoiDataType.Datetime; |
| | | } |
| | | datatype = NpoiDataType.Datetime; |
| | | } |
| | | catch { } |
| | | else if (objcell.CellType == CellType.Numeric && (obj.ToString().Contains("-") || obj.ToString().Contains("/")) && objcell.DateCellValue != null) |
| | | { |
| | | datatype = NpoiDataType.Datetime; |
| | | } |
| | | |
| | | |
| | | if (datatype == NpoiDataType.Datetime) |
| | | { |
| | |
| | | { |
| | | if (obj != null) |
| | | { |
| | | try |
| | | obj = obj.ToString().Trim().Replace("\n", "");//去掉回车,ligerui tree不支持回车 |
| | | if (obj.ToString().StartsWith(".")) |
| | | { |
| | | obj = obj.ToString().Trim().Replace("\n","");//去掉回车,ligerui tree不支持回车 |
| | | if (obj.ToString().StartsWith(".")) |
| | | { |
| | | try |
| | | { |
| | | decimal.Parse("0" + obj.ToString()); |
| | | obj = "0" + obj.ToString(); |
| | | } |
| | | catch |
| | | { |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e4) |
| | | { |
| | | |
| | | decimal.Parse("0" + obj.ToString()); |
| | | obj = "0" + obj.ToString(); |
| | | } |
| | | } |
| | | } |
| | |
| | | break; |
| | | case CellType.Numeric: |
| | | dtype = NpoiDataType.String; |
| | | try |
| | | if (hs.NumericCellValue.ToString().Contains("-") || hs.NumericCellValue.ToString().Contains("/") || hs.ToString().Contains("-") || hs.ToString().Contains("/")) |
| | | { |
| | | if (hs.NumericCellValue.ToString().Contains("-") || hs.NumericCellValue.ToString().Contains("/") || hs.ToString().Contains("-") || hs.ToString().Contains("/")) |
| | | { |
| | | hs.DateCellValue.ToString(); |
| | | dtype = NpoiDataType.Datetime; |
| | | } |
| | | hs.DateCellValue.ToString(); |
| | | dtype = NpoiDataType.Datetime; |
| | | } |
| | | catch { } |
| | | cellvalue = hs.NumericCellValue.ToString(); |
| | | break; |
| | | case CellType.String: |
New file |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <configuration> |
| | | <runtime> |
| | | <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> |
| | | <dependentAssembly> |
| | | <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" /> |
| | | <bindingRedirect oldVersion="0.0.0.0-1.2.0.246" newVersion="1.2.0.246" /> |
| | | </dependentAssembly> |
| | | </assemblyBinding> |
| | | </runtime> |
| | | </configuration> |
| | |
| | | <package id="NPOI" version="2.5.1" targetFramework="net472" /> |
| | | <package id="Portable.BouncyCastle" version="1.8.6" targetFramework="net472" /> |
| | | <package id="SharpZipLib" version="1.2.0" targetFramework="net472" /> |
| | | <package id="ZD.Cloud.WebApi" version="7.6.1" targetFramework="net452" /> |
| | | <package id="ZD.Newtonsoft.Json" version="1.0.0" targetFramework="net472" /> |
| | | <package id="ZD.Share" version="1.0.3" targetFramework="net452" /> |
| | | </packages> |
New file |
| | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Diagnostics; |
| | | using System.IO; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading; |
| | | |
| | | namespace ZD.Cloud.Logger |
| | | { |
| | | public class LogHelper |
| | | { |
| | | private readonly static object locker = new object(); |
| | | public static void Info(string msg, bool isAsync = true) |
| | | { |
| | | Func(LogType.Info, msg); |
| | | } |
| | | |
| | | public static void Error(string msg, bool isAsync = true) |
| | | { |
| | | Func(LogType.Error, msg); |
| | | } |
| | | |
| | | public static void Error(Exception ex, bool isAsync = true) |
| | | { |
| | | Func(LogType.Error, "", ex); |
| | | } |
| | | |
| | | public static void Warn(string msg, bool isAsync = true) |
| | | { |
| | | Func(LogType.Warn, msg); |
| | | } |
| | | public static void Warn(Exception ex, bool isAsync = true) |
| | | { |
| | | Func(LogType.Warn, "", ex); |
| | | } |
| | | |
| | | //带文件夹名称 |
| | | public static void Error(string logFol, string msg, bool isAsync = true) |
| | | { |
| | | FuncWithFol(LogType.Error, logFol, msg); |
| | | } |
| | | public static void Error(string logFol, Exception ex, bool isAsync = true) |
| | | { |
| | | FuncWithFol(LogType.Error, logFol, "", ex); |
| | | } |
| | | public static void Warn(string logFol, string msg, bool isAsync = true) |
| | | { |
| | | FuncWithFol(LogType.Warn, logFol, msg); |
| | | } |
| | | |
| | | public static void Warn(string logFol, Exception ex, bool isAsync = true) |
| | | { |
| | | FuncWithFol(LogType.Warn, logFol, "", ex); |
| | | } |
| | | |
| | | public static void Info(string logFol, string msg, bool isAsync = true) |
| | | { |
| | | FuncWithFol(LogType.Info, logFol, msg); |
| | | } |
| | | |
| | | private static void Func(LogType type, string msg = "", Exception ex = null, bool isAsync = true) |
| | | { |
| | | try |
| | | { |
| | | StringBuilder sb = new StringBuilder(); |
| | | string dt = DateTime.Now.ToString(@"yyyy-MM-dd HH:mm:ss fff"); |
| | | sb.AppendFormat("{0} {1} - {2}", dt, type, msg); |
| | | if (type == LogType.Error) |
| | | { |
| | | sb.AppendFormat(" [Exception:{0}]", ex); |
| | | } |
| | | WriteLog("", sb.ToString()); |
| | | |
| | | if (type == LogType.Warn) |
| | | { |
| | | Mail.SendMail(sb.ToString()); |
| | | } |
| | | } |
| | | finally |
| | | { |
| | | } |
| | | } |
| | | |
| | | private static void FuncWithFol(LogType type, string logFol, string msg = "", Exception ex = null, bool isAsync = true) |
| | | { |
| | | try |
| | | { |
| | | StringBuilder sb = new StringBuilder(); |
| | | string dt = DateTime.Now.ToString(@"yyyy-MM-dd HH:mm:ss fff"); |
| | | sb.AppendFormat("{0} {1} - {2}", dt, type, msg); |
| | | if (type == LogType.Error) |
| | | { |
| | | sb.AppendFormat(" [Exception:{0}]", ex); |
| | | } |
| | | WriteLog(logFol, sb.ToString()); |
| | | |
| | | if (type == LogType.Warn) |
| | | { |
| | | Mail.SendMail(sb.ToString()); |
| | | } |
| | | } |
| | | finally |
| | | { |
| | | } |
| | | } |
| | | |
| | | |
| | | private static void WriteLog(string logFol, string logContent) |
| | | { |
| | | if (string.IsNullOrWhiteSpace(logContent)) return; |
| | | |
| | | if (string.IsNullOrWhiteSpace(logFol)) |
| | | { |
| | | logFol = "zdlog"; |
| | | } |
| | | StackTrace trace = new StackTrace(); |
| | | StackFrame frame = trace.GetFrame(2);//1代表上级,2代表上上级,以此类推 |
| | | MethodBase method = frame.GetMethod(); |
| | | var className = method.ReflectedType.Name; |
| | | string logDir = AppDomain.CurrentDomain.BaseDirectory; |
| | | var logPath = System.Configuration.ConfigurationManager.AppSettings["LogPath"]; |
| | | if (string.IsNullOrEmpty(logPath)) |
| | | { |
| | | logPath = string.Format(@"{0}\{1}\{2}", logDir, logFol, className); |
| | | } |
| | | |
| | | logPath = logPath.Replace("_", "").Replace(" ", "").Replace("/r", "").Replace("/n", ""); |
| | | |
| | | if (!Directory.Exists(logPath)) Directory.CreateDirectory(logPath); |
| | | |
| | | string filename = string.Format(@"{0}\{1}.txt", logPath, DateTime.Now.ToString(@"yyyyMMdd")); |
| | | if (File.Exists(filename)) |
| | | { |
| | | FileStream fs = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); |
| | | StreamWriter sr = new StreamWriter(fs); |
| | | sr.WriteLine(logContent); |
| | | sr.Close(); |
| | | fs.Close(); |
| | | } |
| | | else |
| | | { |
| | | FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); |
| | | StreamWriter sr = new StreamWriter(fs); |
| | | sr.WriteLine(logContent); |
| | | sr.Close(); |
| | | fs.Close(); |
| | | } |
| | | |
| | | } |
| | | |
| | | public enum LogType |
| | | { |
| | | Info, |
| | | Error, |
| | | Warn |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Net; |
| | | using System.Net.Mail; |
| | | using System.Text; |
| | | |
| | | namespace ZD.Cloud.Logger |
| | | { |
| | | public class Mail |
| | | { |
| | | public static string smtpService = "smtp.exmail.qq.com"; |
| | | public static string sendEmail = "wjf@hz-kingdee.com"; |
| | | public static string sendpwd = "Zd87114808"; |
| | | private static List<string> addressList = new List<string> { "wjf@hz-kingdee.com", "chenfei@hz-kingdee.com", "qym@hz-kingdee.com", "lyc@hz-kingdee.com" };//暂时先写死,后期需配置 |
| | | public static void SendMail(string msg) |
| | | { |
| | | SmtpClient smtpClient = new SmtpClient(); |
| | | smtpClient.Host = smtpService; |
| | | smtpClient.UseDefaultCredentials = false; |
| | | MailAddress sendAddress = new MailAddress(sendEmail, "智德"); |
| | | foreach (var address in addressList) |
| | | { |
| | | MailAddress receiverAddress = new MailAddress(address); |
| | | MailMessage message = new MailMessage(sendAddress, receiverAddress); |
| | | message.Subject = "异常信息:" + DateTime.Now; |
| | | message.SubjectEncoding = Encoding.UTF8; |
| | | message.Body = msg; |
| | | message.BodyEncoding = Encoding.UTF8; |
| | | message.IsBodyHtml = true;//是否支持HTML |
| | | smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; |
| | | smtpClient.EnableSsl = true; |
| | | smtpClient.UseDefaultCredentials = false; |
| | | NetworkCredential senderCredential = new NetworkCredential(sendEmail, sendpwd); |
| | | smtpClient.Credentials = senderCredential; |
| | | smtpClient.Send(message); |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("ZD.Cloud.Logger")] |
| | | [assembly: AssemblyDescription("ZD.Cloud.Logger")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("ZD")] |
| | | [assembly: AssemblyProduct("ZD.Cloud.Logger")] |
| | | [assembly: AssemblyCopyright("Copyright © 2018")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID |
| | | [assembly: Guid("876bcc4d-41be-4570-bd36-d6f11526ad64")] |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 |
| | | //通过使用 "*",如下所示: |
| | | // [assembly: AssemblyVersion("1.0.*")] |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | <?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>{876BCC4D-41BE-4570-BD36-D6F11526AD64}</ProjectGuid> |
| | | <OutputType>Library</OutputType> |
| | | <AppDesignerFolder>Properties</AppDesignerFolder> |
| | | <RootNamespace>ZD.Cloud.Logger</RootNamespace> |
| | | <AssemblyName>ZD.Cloud.Logger</AssemblyName> |
| | | <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <Deterministic>true</Deterministic> |
| | | <RestorePackages>true</RestorePackages> |
| | | <BuildPackage>true</BuildPackage> |
| | | <TargetFrameworkProfile /> |
| | | </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> |
| | | <Prefer32Bit>false</Prefer32Bit> |
| | | </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> |
| | | <Prefer32Bit>false</Prefer32Bit> |
| | | </PropertyGroup> |
| | | <ItemGroup> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.configuration" /> |
| | | <Reference Include="System.Core" /> |
| | | <Reference Include="System.Net" /> |
| | | <Reference Include="System.Web" /> |
| | | <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="Properties\AssemblyInfo.cs" /> |
| | | <Compile Include="LogHelper.cs" /> |
| | | <Compile Include="Mail.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="ZD.Cloud.Logger.nuspec" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> |
| | | |
| | | </Project> |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <package > |
| | | <metadata> |
| | | <id>$id$</id> |
| | | <version>$version$</version> |
| | | <title>$title$</title> |
| | | <authors>$author$</authors> |
| | | <owners>$author$</owners> |
| | | <description>$description$</description> |
| | | <copyright>Copyright © ZD 2018</copyright> |
| | | </metadata> |
| | | </package> |
New file |
| | |
| | | using Kingdee.BOS.WebApi.Client; |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using ZD.Share.Common; |
| | | |
| | | namespace ZD.Cloud.WebApi |
| | | { |
| | | public class CloudClient : K3CloudApiClient |
| | | { |
| | | public const string KDApiUrl = "http://localhost/K3Cloud/"; |
| | | public CloudClient(string serverUrl = KDApiUrl) : base(serverUrl) |
| | | { |
| | | var dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId"); |
| | | var useName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName"); |
| | | var pwd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord"); |
| | | //var url = GetKey(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "/kdapi.config", "KDApiUrl"); |
| | | var loginResult = ValidateLogin(dbId, useName, pwd, 2052); |
| | | var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>(); |
| | | //登录结果类型等于1,代表登录成功 |
| | | if (resultType != 1) |
| | | { |
| | | throw new Exception("登录失败!"); |
| | | } |
| | | } |
| | | |
| | | public CloudClient(string serverUrl = KDApiUrl, int timeout = 3600) : base(serverUrl, timeout) |
| | | { |
| | | var dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId"); |
| | | var useName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName"); |
| | | var pwd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord"); |
| | | //var url = GetKey(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "/kdapi.config", "KDApiUrl"); |
| | | var loginResult = ValidateLogin(dbId, useName, pwd, 2052); |
| | | var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>(); |
| | | //登录结果类型等于1,代表登录成功 |
| | | if (resultType != 1) |
| | | { |
| | | throw new Exception("登录失败!"); |
| | | } |
| | | } |
| | | |
| | | |
| | | public static void K3ApiClient(string serverUrl = "", string dbId = "", string useName = "", string pwd = "") |
| | | { |
| | | if (string.IsNullOrEmpty(serverUrl)) |
| | | { |
| | | serverUrl = KDApiUrl; |
| | | } |
| | | if (string.IsNullOrEmpty(dbId)) |
| | | { |
| | | dbId = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "DbId"); |
| | | } |
| | | if (string.IsNullOrEmpty(useName)) |
| | | { |
| | | useName = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "UserName"); |
| | | } |
| | | if (string.IsNullOrEmpty(pwd)) |
| | | { |
| | | pwd = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "PassWord"); |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(dbId) || string.IsNullOrEmpty(useName) || string.IsNullOrEmpty(pwd)) |
| | | throw new Exception("配置文件或传参有误!"); |
| | | |
| | | K3CloudApiClient apiClient = new K3CloudApiClient(serverUrl); |
| | | var loginResult = apiClient.ValidateLogin(dbId, useName, pwd, 2052); |
| | | var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>(); |
| | | //登录结果类型等于1,代表登录成功 |
| | | if (resultType != 1) |
| | | { |
| | | throw new Exception("登录失败!"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("ZD.Cloud.WebApi")] |
| | | [assembly: AssemblyDescription("ZD.Cloud.WebApi dll")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("ZD")] |
| | | [assembly: AssemblyProduct("ZD.Cloud.WebApi")] |
| | | [assembly: AssemblyCopyright("Copyright © 2020")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID |
| | | [assembly: Guid("96e1cc80-0e04-4f78-bbff-75faf6a69f7b")] |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 |
| | | //通过使用 "*",如下所示: |
| | | // [assembly: AssemblyVersion("1.0.*")] |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | <?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>{96E1CC80-0E04-4F78-BBFF-75FAF6A69F7B}</ProjectGuid> |
| | | <OutputType>Library</OutputType> |
| | | <AppDesignerFolder>Properties</AppDesignerFolder> |
| | | <RootNamespace>ZD.Cloud.WebApi</RootNamespace> |
| | | <AssemblyName>ZD.Cloud.WebApi</AssemblyName> |
| | | <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <Deterministic>true</Deterministic> |
| | | <RestorePackages>true</RestorePackages> |
| | | <BuildPackage>true</BuildPackage> |
| | | <TargetFrameworkProfile /> |
| | | </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.WebApi.Client"> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\Kingdee.BOS.WebApi.Client.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Configuration" /> |
| | | <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="CloudClient.cs" /> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="kdapi.config" /> |
| | | <None Include="ZD.Cloud.WebApi.nuspec"> |
| | | <SubType>Designer</SubType> |
| | | </None> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\ZD.Share\ZD.Share.csproj"> |
| | | <Project>{54f8364f-3c79-43e7-9f14-de0bc63555d6}</Project> |
| | | <Name>ZD.Share</Name> |
| | | </ProjectReference> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <WCFMetadata Include="Connected Services\" /> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> |
| | | </Project> |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <package> |
| | | <metadata> |
| | | <id>$id$</id> |
| | | <version>$version$</version> |
| | | <title>$title$</title> |
| | | <authors>$author$</authors> |
| | | <owners>$author$</owners> |
| | | <description>$description$</description> |
| | | <copyright>Copyright © ZD 2020</copyright> |
| | | </metadata> |
| | | <files> |
| | | <file src="\kdapi.config" target="content\Config\" /> |
| | | <file src="..\..\dependencyWebApi\Kingdee.BOS.WebApi.ServicesStub.dll" target="lib\net452" /> |
| | | <file src="..\..\dependencyWebApi\Kingdee.BOS.WebApi.Client.dll" target="lib\net452" /> |
| | | </files> |
| | | </package> |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace ZD.Share.Common |
| | | { |
| | | public static class ConvertHelper |
| | | { |
| | | public static string JoinToString<T>(this IEnumerable<T> collection, string split) |
| | | { |
| | | if (collection == null || !collection.Any()) return string.Empty; |
| | | |
| | | StringBuilder sb = new StringBuilder(); |
| | | foreach (T t in collection) |
| | | { |
| | | sb.Append(t).Append(split); |
| | | } |
| | | if (sb.Length > 0) |
| | | { |
| | | sb.Remove(sb.Length - split.Length, split.Length); |
| | | } |
| | | |
| | | return sb.ToString(); |
| | | } |
| | | |
| | | public static DateTime ToDateTime(this object value, DateTime defaultValue = new DateTime()) |
| | | { |
| | | string date = value.ToString(); |
| | | if (DateTime.TryParse(date, out DateTime temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | public static int ToInt32(this object value, int defaultValue = 0) |
| | | { |
| | | string str = value.ToString(); |
| | | if (int.TryParse(str, out int temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | public static long ToInt64(this object value, long defaultValue = 0) |
| | | { |
| | | string str = value.ToString(); |
| | | if (long.TryParse(str, out long temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | public static decimal ToDecimal(this object value, decimal defaultValue = 0) |
| | | { |
| | | string str = value.ToString(); |
| | | if (decimal.TryParse(str, out decimal temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | public static double ToDouble(this object value, double defaultValue = 0) |
| | | { |
| | | string str = value.ToString(); |
| | | if (double.TryParse(str, out double temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | public static float ToFloat(this object value, float defaultValue = 0) |
| | | { |
| | | string str = value.ToString(); |
| | | if (float.TryParse(str, out float temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return defaultValue; |
| | | } |
| | | } |
| | | |
| | | public static DateTime? ToDateTimeNullable(this object value) |
| | | { |
| | | string str = value.ToString(); |
| | | if (DateTime.TryParse(str, out DateTime temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static int? ToInt32Nullable(this object value) |
| | | { |
| | | string str = value.ToString(); |
| | | if (int.TryParse(str, out int temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static long? ToInt64Nullable(this object value) |
| | | { |
| | | string str = value.ToString(); |
| | | if (long.TryParse(str, out long temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static decimal? ToDecimalNullable(this object value) |
| | | { |
| | | string str = value.ToString(); |
| | | if (decimal.TryParse(str, out decimal temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static double? ToDoubleNullable(this object value) |
| | | { |
| | | string str = value.ToString(); |
| | | if (double.TryParse(str, out double temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static float? ToFloatNullable(this object value) |
| | | { |
| | | string str = value.ToString(); |
| | | if (float.TryParse(str, out float temp)) |
| | | { |
| | | return temp; |
| | | } |
| | | else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static T? Parse<T>(this string value, Func<string, T> parseFunc) |
| | | where T : struct |
| | | { |
| | | if (string.IsNullOrEmpty(value)) |
| | | { |
| | | return null; |
| | | } |
| | | else |
| | | { |
| | | return parseFunc(value.Trim()); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 类型转换 |
| | | /// </summary> |
| | | public static T Value<T>(this object value) |
| | | { |
| | | if (value == null) |
| | | { |
| | | return default(T); |
| | | } |
| | | if (value is T) |
| | | return (T)value; |
| | | else if (value == DBNull.Value) |
| | | { |
| | | if (typeof(T) == typeof(DateTime)) |
| | | { |
| | | object o = new DateTime(1900, 1, 1); |
| | | return (T)o; |
| | | } |
| | | else |
| | | return default(T); |
| | | } |
| | | else if (value.ToString().ToLower() == "null") |
| | | return default(T); |
| | | else |
| | | return (T)Convert.ChangeType(value, typeof(T)); |
| | | } |
| | | |
| | | public static T Value<T>(this object value, Func<object, T> funcConvert) |
| | | { |
| | | if (value == null) |
| | | { |
| | | return default(T); |
| | | } |
| | | |
| | | string s = value.ToString(); |
| | | if (string.IsNullOrEmpty(s) || s.ToLower() == "null") |
| | | { |
| | | return default(T); |
| | | } |
| | | |
| | | return funcConvert(value); |
| | | } |
| | | |
| | | public static object Value(this object value) |
| | | { |
| | | return Value<object>(value); |
| | | } |
| | | |
| | | public static object IsNull(this object value, object replaceValue) |
| | | { |
| | | if (value == null) |
| | | { |
| | | return replaceValue; |
| | | } |
| | | else |
| | | { |
| | | return value; |
| | | } |
| | | } |
| | | |
| | | public static T IsNull<T>(this T value, T replaceValue) |
| | | { |
| | | if (value.Equals(default(T))) |
| | | { |
| | | return replaceValue; |
| | | } |
| | | else |
| | | { |
| | | return value; |
| | | } |
| | | } |
| | | |
| | | public static string IsNull(this string value, string replaceValue) |
| | | { |
| | | if (string.IsNullOrEmpty(value)) |
| | | { |
| | | return replaceValue; |
| | | } |
| | | else |
| | | { |
| | | return value; |
| | | } |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// 去除非法的文件字符 |
| | | ///// </summary> |
| | | ///// <param name="input"></param> |
| | | ///// <returns></returns> |
| | | //public static string RemoveInvalidFileChars(this string input) |
| | | //{ |
| | | // char[] invalidChars = Path.GetInvalidFileNameChars(); |
| | | // foreach (char c in invalidChars) |
| | | // { |
| | | // input = input.Replace(c.ToString(), ""); |
| | | // } |
| | | // return input; |
| | | //} |
| | | |
| | | public static DataTable ToDataTable(this DataSet ds) |
| | | { |
| | | try |
| | | { |
| | | if (ds == null) |
| | | { |
| | | return null; |
| | | } |
| | | else |
| | | { |
| | | return ds.Tables[0]; |
| | | } |
| | | } |
| | | catch (Exception) |
| | | { |
| | | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static string ToMonth(this int month, bool isAddPrefix = true, string Suffix = "") |
| | | { |
| | | var str = string.Empty; |
| | | if (isAddPrefix) |
| | | { |
| | | str += "F"; |
| | | } |
| | | switch (month) |
| | | { |
| | | case 1: |
| | | str += "JANUARY"; |
| | | break; |
| | | case 2: |
| | | str += "FEBRUARY"; |
| | | break; |
| | | case 3: |
| | | str += "MARCH"; |
| | | break; |
| | | case 4: |
| | | str += "APRIL"; |
| | | break; |
| | | case 5: |
| | | str += "MAY"; |
| | | break; |
| | | case 6: |
| | | str += "JUNE"; |
| | | break; |
| | | case 7: |
| | | str += "JULY"; |
| | | break; |
| | | case 8: |
| | | str += "AUGUST"; |
| | | break; |
| | | case 9: |
| | | str += "SEPTEMBER"; |
| | | break; |
| | | case 10: |
| | | str += "OCTOBER"; |
| | | break; |
| | | case 11: |
| | | str += "NOVEMBER"; |
| | | break; |
| | | case 12: |
| | | str += "DECEMBER"; |
| | | break; |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(Suffix)) str += Suffix; |
| | | return str; |
| | | } |
| | | |
| | | public static string ToMonthLower(this int month, bool isAddPrefix = true, string Suffix = "") |
| | | { |
| | | var str = string.Empty; |
| | | if (isAddPrefix) |
| | | { |
| | | str += "F"; |
| | | } |
| | | switch (month) |
| | | { |
| | | case 1: |
| | | str += "January"; |
| | | break; |
| | | case 2: |
| | | str += "February"; |
| | | break; |
| | | case 3: |
| | | str += "March"; |
| | | break; |
| | | case 4: |
| | | str += "April"; |
| | | break; |
| | | case 5: |
| | | str += "May"; |
| | | break; |
| | | case 6: |
| | | str += "June"; |
| | | break; |
| | | case 7: |
| | | str += "July"; |
| | | break; |
| | | case 8: |
| | | str += "August"; |
| | | break; |
| | | case 9: |
| | | str += "September"; |
| | | break; |
| | | case 10: |
| | | str += "October"; |
| | | break; |
| | | case 11: |
| | | str += "November"; |
| | | break; |
| | | case 12: |
| | | str += "December"; |
| | | break; |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(Suffix)) str += Suffix; |
| | | return str; |
| | | } |
| | | |
| | | public static string ToStringExt(this object value) |
| | | { |
| | | return ValueToString(value, false); |
| | | } |
| | | |
| | | public static string ValueToString(this object value, bool removeLines) |
| | | { |
| | | try |
| | | { |
| | | if (value == null) |
| | | { |
| | | return string.Empty; |
| | | } |
| | | |
| | | string s = value.ToString(); |
| | | if (string.IsNullOrEmpty(s) || s.ToLower() == "null") |
| | | { |
| | | return string.Empty; |
| | | } |
| | | |
| | | if (removeLines) |
| | | { |
| | | s = s.Replace("\r", " ").Replace("\n", " ").Replace("<br />", " ").Replace("<br/>", " ").Replace("<br>", " ").Replace("\t", " "); |
| | | } |
| | | return s; |
| | | |
| | | } |
| | | catch (Exception) |
| | | { |
| | | return string.Empty; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace ZD.Share.Common |
| | | { |
| | | public static class DataHelper |
| | | { |
| | | public static List<T> ToModelList<T>(this DataSet ds) where T : new() |
| | | { |
| | | try |
| | | { |
| | | List<T> list = new List<T>(); |
| | | if (ds.Tables[0].Rows.Count > 0) |
| | | { |
| | | foreach (DataRow row in ds.Tables[0].Rows) |
| | | { |
| | | list.Add(row.Put(new T())); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | public static List<T> ToModelList<T>(this DataTable dt) where T : new() |
| | | { |
| | | try |
| | | { |
| | | List<T> list = new List<T>(); |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | foreach (DataRow row in dt.Rows) |
| | | { |
| | | list.Add(row.Put(new T())); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 返回一条数据的Model |
| | | /// </summary> |
| | | /// <typeparam name="T">Model类型</typeparam> |
| | | /// <param name="entity">Model类型</param> |
| | | /// <param name="ds"></param> |
| | | /// <returns></returns> |
| | | public static T ToModel<T>(DataSet ds) where T : new() |
| | | { |
| | | try |
| | | { |
| | | T m = new T(); |
| | | if (ds.Tables[0].Rows.Count > 0) |
| | | { |
| | | m = ds.Tables[0].Rows[0].Put(new T()); |
| | | } |
| | | return m; |
| | | } |
| | | catch (Exception) |
| | | { |
| | | return default(T); |
| | | //throw; |
| | | } |
| | | } |
| | | |
| | | public static T Put<T>(this DataRow row, T entity) where T : new() |
| | | { |
| | | if (entity == null) |
| | | { |
| | | entity = new T(); |
| | | } |
| | | Type type = typeof(T); |
| | | PropertyInfo[] pi = type.GetProperties(); |
| | | foreach (PropertyInfo item in pi) |
| | | { |
| | | int index = row.Table.Columns.IndexOf(item.Name); |
| | | if (index != -1) |
| | | { |
| | | if (row[item.Name] != null && row[item.Name] != DBNull.Value) |
| | | { |
| | | if (item.PropertyType == typeof(DateTime)) |
| | | { |
| | | //如果对日期格式有特殊要求 可以在这里转换 |
| | | item.SetValue(entity, Convert.ToDateTime(row[item.Name].ToString()), null); |
| | | } |
| | | else |
| | | { |
| | | item.SetValue(entity, ChangeType(row[item.Name], item.PropertyType), null); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return entity; |
| | | } |
| | | |
| | | public static object ChangeType(object obj, Type conversionType) |
| | | { |
| | | return ChangeType(obj, conversionType, Thread.CurrentThread.CurrentCulture); |
| | | } |
| | | |
| | | public static object ChangeType(object obj, Type conversionType, IFormatProvider provider) |
| | | { |
| | | |
| | | #region Nullable |
| | | Type nullableType = Nullable.GetUnderlyingType(conversionType); |
| | | if (nullableType != null) |
| | | { |
| | | if (obj == null) |
| | | { |
| | | return null; |
| | | } |
| | | return Convert.ChangeType(obj, nullableType, provider); |
| | | } |
| | | #endregion |
| | | if (typeof(System.Enum).IsAssignableFrom(conversionType)) |
| | | { |
| | | return Enum.Parse(conversionType, obj.ToString()); |
| | | } |
| | | return Convert.ChangeType(obj, conversionType, provider); |
| | | } |
| | | |
| | | |
| | | |
| | | public static string ToListParam<T>(this List<T> list) |
| | | { |
| | | string str = string.Empty; |
| | | foreach (var item in list) |
| | | { |
| | | str += $"'{item}',"; |
| | | } |
| | | str = str.TrimEnd(','); |
| | | str = $"({str})"; |
| | | return str; |
| | | } |
| | | |
| | | |
| | | public static string GetUpdateStr(string table, Dictionary<string, object> dic, string condition) |
| | | { |
| | | var strSet = string.Empty; |
| | | foreach (var item in dic) |
| | | { |
| | | var type = Util.GetObjectType(item.Value); |
| | | switch (type) |
| | | { |
| | | case "string": |
| | | case "date": |
| | | strSet += $" {item.Key}='{item.Value}' "; |
| | | break; |
| | | default: |
| | | strSet += $" {item.Key}={item.Value} "; |
| | | break; |
| | | } |
| | | } |
| | | return $"update {table} set {strSet} where 1=1 {condition}"; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Net; |
| | | using System.Net.Http; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace ZD.Share.Common |
| | | { |
| | | public class HttpHelper |
| | | { |
| | | //public static string PostData(string url, string postData) |
| | | //{ |
| | | // ASCIIEncoding encoding = new ASCIIEncoding(); |
| | | // byte[] data = Encoding.UTF8.GetBytes(postData); |
| | | // HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); |
| | | |
| | | // myRequest.Method = "POST"; |
| | | // myRequest.ContentType = "application/x-www-form-urlencoded"; |
| | | // myRequest.ContentLength = data.Length; |
| | | // Stream newStream = myRequest.GetRequestStream(); |
| | | |
| | | // newStream.Write(data, 0, data.Length); |
| | | // newStream.Close(); |
| | | |
| | | // HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); |
| | | // StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); |
| | | // string content = reader.ReadToEnd(); |
| | | // reader.Close(); |
| | | // return content; |
| | | //} |
| | | |
| | | //public static string GetData(string url) |
| | | //{ |
| | | // HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); |
| | | // myRequest.Method = "GET"; |
| | | // HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); |
| | | // StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); |
| | | // string content = reader.ReadToEnd(); |
| | | // reader.Close(); |
| | | // return content; |
| | | //} |
| | | |
| | | public static string HttpPostJson(string url, Dictionary<string, string> keyValues) |
| | | { |
| | | |
| | | HttpClient httpClient = new HttpClient(); |
| | | httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); |
| | | var body = new FormUrlEncodedContent(keyValues); |
| | | var response = httpClient.PostAsync(url, body).Result; |
| | | var data = response.Content.ReadAsStringAsync().Result; |
| | | return data; |
| | | } |
| | | |
| | | public static string PostAsyncJson(string url, string json) |
| | | { |
| | | HttpClient client = new HttpClient(); |
| | | HttpContent content = new StringContent(json); |
| | | content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); |
| | | HttpResponseMessage response = client.PostAsync(url, content).Result; |
| | | string responseBody = response.Content.ReadAsStringAsync().Result; |
| | | return responseBody; |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// FORM表单POST方式上传一个多媒体文件 |
| | | ///// </summary> |
| | | ///// <param name="url">API URL</param> |
| | | ///// <param name="typeName"></param> |
| | | ///// <param name="fileName"></param> |
| | | ///// <param name="fs"></param> |
| | | ///// <param name="encoding"></param> |
| | | ///// <returns></returns> |
| | | //public static string HttpRequestPost(string url, string typeName, string fileName, Stream fs, string encoding = "UTF-8") |
| | | //{ |
| | | // HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); |
| | | // request.Method = "POST"; |
| | | // request.Timeout = 10000; |
| | | // var postStream = new MemoryStream(); |
| | | // #region 处理Form表单文件上传 |
| | | // //通过表单上传文件 |
| | | // string boundary = "----" + DateTime.Now.Ticks.ToString("x"); |
| | | // string formdataTemplate = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: application/octet-stream\r\n\r\n"; |
| | | // try |
| | | // { |
| | | // var formdata = string.Format(formdataTemplate, typeName, fileName); |
| | | // var formdataBytes = Encoding.ASCII.GetBytes(postStream.Length == 0 ? formdata.Substring(2, formdata.Length - 2) : formdata);//第一行不需要换行 |
| | | // postStream.Write(formdataBytes, 0, formdataBytes.Length); |
| | | |
| | | // //写入文件 |
| | | // byte[] buffer = new byte[1024]; |
| | | // int bytesRead = 0; |
| | | // while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) != 0) |
| | | // { |
| | | // postStream.Write(buffer, 0, bytesRead); |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // throw ex; |
| | | // } |
| | | |
| | | // //结尾 |
| | | // var footer = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n"); |
| | | // postStream.Write(footer, 0, footer.Length); |
| | | // request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary); |
| | | // #endregion |
| | | |
| | | // request.ContentLength = postStream.Length; |
| | | // request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"; |
| | | // request.KeepAlive = true; |
| | | // request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36"; |
| | | |
| | | // #region 输入二进制流 |
| | | // if (postStream != null) |
| | | // { |
| | | // postStream.Position = 0; |
| | | |
| | | // //直接写入流 |
| | | // Stream requestStream = request.GetRequestStream(); |
| | | |
| | | // byte[] buffer = new byte[1024]; |
| | | // int bytesRead = 0; |
| | | // while ((bytesRead = postStream.Read(buffer, 0, buffer.Length)) != 0) |
| | | // { |
| | | // requestStream.Write(buffer, 0, bytesRead); |
| | | // } |
| | | |
| | | // postStream.Close();//关闭文件访问 |
| | | // } |
| | | // #endregion |
| | | |
| | | // HttpWebResponse response = (HttpWebResponse)request.GetResponse(); |
| | | // using (Stream responseStream = response.GetResponseStream()) |
| | | // { |
| | | // using (StreamReader myStreamReader = new StreamReader(responseStream, Encoding.GetEncoding(encoding))) |
| | | // { |
| | | // string retString = myStreamReader.ReadToEnd(); |
| | | // return retString; |
| | | // } |
| | | // } |
| | | //} |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace ZD.Share.Common |
| | | { |
| | | public class OracleHelper |
| | | { |
| | | public static string GetOracleSQLIn(List<string> ids, string field) |
| | | { |
| | | if (!ids.Any()) |
| | | { |
| | | return string.Empty; |
| | | } |
| | | |
| | | int count = Math.Min(ids.Count, 1000); |
| | | int len = ids.Count; |
| | | int size = len % count; |
| | | if (size == 0) |
| | | { |
| | | size = len / count; |
| | | } |
| | | else |
| | | { |
| | | size = (len / count) + 1; |
| | | } |
| | | StringBuilder builder = new StringBuilder(); |
| | | for (int i = 0; i < size; i++) |
| | | { |
| | | int index = i * count; |
| | | int toIndex = Math.Min(index + count, len); |
| | | string productId = string.Join("','", GetArrayValues(index, toIndex, ids).ToArray()); |
| | | if (i != 0) |
| | | { |
| | | builder.Append(" or "); |
| | | } |
| | | builder.Append(field).Append(" in ('").Append(productId).Append("')"); |
| | | } |
| | | return builder.ToString(); |
| | | } |
| | | |
| | | public static List<string> GetArrayValues(int index, int toindex, List<string> array) |
| | | { |
| | | List<string> listret = new List<string>(); |
| | | for (int i = index; i < toindex; i++) |
| | | { |
| | | listret.Add(array[i]); |
| | | } |
| | | return listret; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using Newtonsoft.Json.Linq; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Xml.Serialization; |
| | | |
| | | namespace ZD.Share.Common |
| | | { |
| | | public class Util |
| | | { |
| | | public static string GetObjectType(object obj) |
| | | { |
| | | var isType = false; |
| | | isType = obj.GetType() == typeof(string); |
| | | if (isType) |
| | | { |
| | | return "string"; |
| | | } |
| | | |
| | | isType = obj.GetType() == typeof(double); |
| | | if (isType) |
| | | { |
| | | return "double"; |
| | | } |
| | | |
| | | isType = obj.GetType() == typeof(long); |
| | | if (isType) |
| | | { |
| | | return "long"; |
| | | } |
| | | |
| | | isType = obj.GetType() == typeof(DateTime); |
| | | if (isType) |
| | | { |
| | | return "date"; |
| | | } |
| | | |
| | | isType = obj.GetType() == typeof(int); |
| | | if (isType) |
| | | { |
| | | return "int"; |
| | | } |
| | | |
| | | isType = obj.GetType() == typeof(decimal); |
| | | if (isType) |
| | | { |
| | | return "decimal"; |
| | | } |
| | | |
| | | return "string"; |
| | | } |
| | | |
| | | public static JObject JsonVerify(string json) |
| | | { |
| | | if (string.IsNullOrEmpty(json)) |
| | | { |
| | | throw new Exception("参数不能为空"); |
| | | } |
| | | try |
| | | { |
| | | return JObject.Parse(json.ToString().Replace("\r", "").Replace("\n", "").Replace("\t", "")); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | //public static T DeepCopy<T>(T obj) |
| | | //{ |
| | | // object retval; |
| | | // using (MemoryStream ms = new MemoryStream()) |
| | | // { |
| | | // XmlSerializer xml = new XmlSerializer(typeof(T)); |
| | | // xml.Serialize(ms, obj); |
| | | // ms.Seek(0, SeekOrigin.Begin); |
| | | // retval = xml.Deserialize(ms); |
| | | // ms.Close(); |
| | | // } |
| | | // return (T)retval; |
| | | //} |
| | | |
| | | public static String GetConfigKey(String configPath, String key) |
| | | { |
| | | Configuration ConfigurationInstance = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap() |
| | | { |
| | | ExeConfigFilename = configPath |
| | | }, ConfigurationUserLevel.None); |
| | | |
| | | |
| | | if (ConfigurationInstance.AppSettings.Settings[key] != null) |
| | | return ConfigurationInstance.AppSettings.Settings[key].Value; |
| | | else |
| | | |
| | | return string.Empty; |
| | | } |
| | | |
| | | public static bool SetConfigKey(String configPath, String key, String vls) |
| | | { |
| | | try |
| | | { |
| | | Configuration ConfigurationInstance = ConfigurationManager.OpenMappedExeConfiguration(new ExeConfigurationFileMap() |
| | | { |
| | | ExeConfigFilename = configPath |
| | | }, ConfigurationUserLevel.None); |
| | | |
| | | if (ConfigurationInstance.AppSettings.Settings[key] != null) |
| | | ConfigurationInstance.AppSettings.Settings[key].Value = vls; |
| | | else |
| | | ConfigurationInstance.AppSettings.Settings.Add(key, vls); |
| | | ConfigurationInstance.Save(ConfigurationSaveMode.Modified); |
| | | ConfigurationManager.RefreshSection("appSettings"); |
| | | return true; |
| | | } |
| | | catch |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace ZD.Share.Enums |
| | | { |
| | | public enum DateEnum |
| | | { |
| | | /// <summary> |
| | | /// 1星期7天 |
| | | /// </summary> |
| | | Week = 7, |
| | | /// <summary> |
| | | /// 一年12个月 |
| | | /// </summary> |
| | | Month = 12 |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace ZD.Share.Enums |
| | | { |
| | | /// <summary> |
| | | /// 数据状态 |
| | | /// </summary> |
| | | public enum DocumentStatus |
| | | { |
| | | /// <summary> |
| | | /// 暂存 |
| | | /// </summary> |
| | | Z, |
| | | /// <summary> |
| | | /// 创建 |
| | | /// </summary> |
| | | A, |
| | | /// <summary> |
| | | /// 审核中 |
| | | /// </summary> |
| | | B, |
| | | /// <summary> |
| | | /// 已审核 |
| | | /// </summary> |
| | | C, |
| | | /// <summary> |
| | | /// 重新审核 |
| | | /// </summary> |
| | | D |
| | | } |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace ZD.Share.Enums |
| | | { |
| | | /// <summary> |
| | | /// 禁用状态 |
| | | /// </summary> |
| | | public enum ForbidStatus |
| | | { |
| | | /// <summary> |
| | | /// 否 |
| | | /// </summary> |
| | | A, |
| | | /// <summary> |
| | | /// 是 |
| | | /// </summary> |
| | | B |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using System.Reflection; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | |
| | | // 有关程序集的一般信息由以下 |
| | | // 控制。更改这些特性值可修改 |
| | | // 与程序集关联的信息。 |
| | | [assembly: AssemblyTitle("ZD.Share")] |
| | | [assembly: AssemblyDescription("ZD.Share dll")] |
| | | [assembly: AssemblyConfiguration("")] |
| | | [assembly: AssemblyCompany("ZD")] |
| | | [assembly: AssemblyProduct("ZD.Share")] |
| | | [assembly: AssemblyCopyright("Copyright © 2020")] |
| | | [assembly: AssemblyTrademark("")] |
| | | [assembly: AssemblyCulture("")] |
| | | |
| | | // 将 ComVisible 设置为 false 会使此程序集中的类型 |
| | | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 |
| | | //请将此类型的 ComVisible 特性设置为 true。 |
| | | [assembly: ComVisible(false)] |
| | | |
| | | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID |
| | | [assembly: Guid("54f8364f-3c79-43e7-9f14-de0bc63555d6")] |
| | | |
| | | // 程序集的版本信息由下列四个值组成: |
| | | // |
| | | // 主版本 |
| | | // 次版本 |
| | | // 生成号 |
| | | // 修订号 |
| | | // |
| | | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 |
| | | //通过使用 "*",如下所示: |
| | | // [assembly: AssemblyVersion("1.0.*")] |
| | | [assembly: AssemblyVersion("1.0.0.0")] |
| | | [assembly: AssemblyFileVersion("1.0.0.0")] |
New file |
| | |
| | | <?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>{54F8364F-3C79-43E7-9F14-DE0BC63555D6}</ProjectGuid> |
| | | <OutputType>Library</OutputType> |
| | | <AppDesignerFolder>Properties</AppDesignerFolder> |
| | | <RootNamespace>ZD.Share</RootNamespace> |
| | | <AssemblyName>ZD.Share</AssemblyName> |
| | | <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
| | | <FileAlignment>512</FileAlignment> |
| | | <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> |
| | | <RestorePackages>true</RestorePackages> |
| | | <BuildPackage>true</BuildPackage> |
| | | <Deterministic>true</Deterministic> |
| | | <TargetFrameworkProfile /> |
| | | </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="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> |
| | | <SpecificVersion>False</SpecificVersion> |
| | | <HintPath>..\..\..\..\..\办公\K3Cloud\WebSite\bin\Newtonsoft.Json.dll</HintPath> |
| | | </Reference> |
| | | <Reference Include="System" /> |
| | | <Reference Include="System.Configuration" /> |
| | | <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="Common\ConvertHelper.cs" /> |
| | | <Compile Include="Common\DataHelper.cs" /> |
| | | <Compile Include="Common\HttpHelper.cs" /> |
| | | <Compile Include="Common\OracleHelper.cs" /> |
| | | <Compile Include="Common\Util.cs" /> |
| | | <Compile Include="Enums\Enum.DateEnum.cs" /> |
| | | <Compile Include="Enums\Enum.DocumentStatus.cs" /> |
| | | <Compile Include="Enums\Enum.ForbidStatus.cs" /> |
| | | <Compile Include="Properties\AssemblyInfo.cs" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <None Include="ZD.Share.nuspec"> |
| | | <SubType>Designer</SubType> |
| | | </None> |
| | | </ItemGroup> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" /> |
| | | </Project> |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <package> |
| | | <metadata> |
| | | <id>$id$</id> |
| | | <version>$version$</version> |
| | | <title>$title$</title> |
| | | <authors>$author$</authors> |
| | | <owners>$author$</owners> |
| | | <description>$description$</description> |
| | | <copyright>Copyright © ZD 2020</copyright> |
| | | </metadata> |
| | | <files> |
| | | </files> |
| | | </package> |
| | |
| | | /// <summary> |
| | | /// 库存组织 |
| | | /// </summary> |
| | | public double FStockOrgId { get; set; } |
| | | public long FStockOrgId { get; set; } |
| | | /// <summary> |
| | | /// jit物料分类 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 库存组织 |
| | | /// </summary> |
| | | public double FStockOrgId { get; set; } |
| | | public long FStockOrgId { get; set; } |
| | | /// <summary> |
| | | /// 组织编码 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 库存组织 |
| | | /// </summary> |
| | | public double FStockOrgId { get; set; } |
| | | public long FStockOrgId { get; set; } |
| | | /// <summary> |
| | | /// 组织编码 |
| | | /// </summary> |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using ZD.Cloud.Logger; |
| | | |
| | | |
| | | namespace XhOA.DBService |
| | | { |
| | |
| | | public decimal GetReceiveBillRate(Context ctx, long proId) |
| | | { |
| | | string sql = $"select t2.F_PXDF_Decimal from t_AR_receivable t1 left join t_AR_receivableEntry t2 on t1.fid=t2.fid where t1.fdocumentstatus='C' and t2.FProjectNo='{proId}' "; |
| | | LogHelper.Info("GetReceiveBillRate:" + sql); |
| | | //LogHelper.Info("GetReceiveBillRate:" + sql); |
| | | return DBServiceHelper.ExecuteScalar(ctx, sql, 0); |
| | | } |
| | | } |