This commit is contained in:
余宇波 2025-08-24 19:00:55 +08:00
parent 2f8a5053ad
commit c7b9a44f8c
9 changed files with 426 additions and 8 deletions

View File

@ -8,7 +8,9 @@ namespace MyCode.Project.Domain.Message.Response.LxmZHMDReport
{
public class SalOrderResp
{
/// <summary>
/// 主键ID
/// </summary>
public int Fid { get; set; }
@ -24,8 +26,67 @@ namespace MyCode.Project.Domain.Message.Response.LxmZHMDReport
/// <summary>
/// 数量
/// 销售数量
/// </summary>
public decimal Qty { get; set; }
/// <summary>
/// 出库数量
/// </summary>
public decimal FStockOutQty { get; set; }
/// <summary>
/// 出库数量
/// </summary>
public decimal FRemainOutQty { get; set; }
/// <summary>
/// 出库比例
/// </summary>
public decimal OutboundPercentage { get; set; }
}
public class SalOrderDetailResp
{
public int Fid { get; set; }
/// <summary>
/// 主键ID
/// </summary>
public int FENTRYID { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string FNAME { get; set; }
/// <summary>
/// 订单编号
/// </summary>
public string FBILLNO { get; set; }
/// <summary>
/// 销售数量
/// </summary>
public decimal Qty { get; set; }
/// <summary>
/// 出库数量
/// </summary>
public decimal FStockOutQty { get; set; }
/// <summary>
/// 出库数量
/// </summary>
public decimal FRemainOutQty { get; set; }
/// <summary>
/// 出库比例
/// </summary>
public decimal OutboundPercentage { get; set; }
}
}

View File

@ -9,6 +9,7 @@ using MyCode.Project.Domain.Model;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Domain.Message;
using MyCode.Project.Domain.Message.Response.LxmZHMDReport;
using MyCode.Project.Domain.Message.Act.Common;
namespace MyCode.Project.Domain.Repositories
{
@ -16,5 +17,6 @@ namespace MyCode.Project.Domain.Repositories
{
PageResult<SalOrderResp> GetPageList(PagedSearch search);
PageResult<SalOrderDetailResp> GetDetailPageList(PagedSearch<IdAct> search);
}
}

View File

@ -44,6 +44,26 @@ namespace MyCode.Project.Repositories
}
public PageResult<SalOrderDetailResp> GetDetailPageList(PagedSearch<IdAct> search)
{
var Condition = search.Condition;
SearchCondition where = new SearchCondition();
where.AddCondition("a.fid ", Condition.Id ,SqlOperator.Equal,true);
string sql = $@"
SELECT a.FID, c.FNAME,a.FENTRYID,a.FQTY,f.FStockOutQty,(FQTY-FStockOutQty) AS FRemainOutQty
,OutboundPercentage=CONVERT(DECIMAL(18,2),(CASE WHEN FQTY !=0 THEN FStockOutQty/FQTY*1.00 ELSE 0 END))
FROM dbo.T_SAL_ORDERENTRY a
LEFT JOIN dbo.T_BD_MATERIAL b ON a.FMATERIALID=b.FMATERIALID
LEFT JOIN dbo.T_BD_MATERIAL_L c ON b.FMATERIALID=c.FMATERIALID
LEFT JOIN T_SAL_ORDERENTRY_R f ON a.FENTRYID=f.FENTRYID";
var list = this.SelectListPage<SalOrderDetailResp>(sql, where, search.Page, search.PageSize, $@"FENTRYID ");
return list;
}
}
}

View File

@ -45,6 +45,11 @@ namespace MyCode.Project.Repositories
return list;
}
/// <summary>
/// 销售订单详情
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
public PageResult<PurOrderDetilResp> GetPurOrderDetil(PagedSearch<IdAct> search)
{
SearchCondition where = new SearchCondition();

View File

@ -1,4 +1,5 @@
using MyCode.Project.Domain.Message.Response.LxmZHMDReport;
using MyCode.Project.Domain.Message.Act.Common;
using MyCode.Project.Domain.Message.Response.LxmZHMDReport;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.JackYun;
@ -13,5 +14,12 @@ namespace MyCode.Project.Services
/// <param name="search"></param>
/// <returns></returns>
PageResult<SalOrderResp> GetPageList(PagedSearch search);
/// <summary>
/// 销售订单明细列表
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
PageResult<SalOrderDetailResp> GetDetailPageList(PagedSearch<IdAct> search);
}
}

View File

@ -1,4 +1,5 @@
using MyCode.Project.Domain.Message.Request.JackYun;
using MyCode.Project.Domain.Message.Act.Common;
using MyCode.Project.Domain.Message.Request.JackYun;
using MyCode.Project.Domain.Message.Response.LxmZHMDReport;
using MyCode.Project.Domain.Repositories;
using MyCode.Project.Infrastructure.Common;
@ -27,5 +28,15 @@ namespace MyCode.Project.Services.Implementation
return _jackOrdersRepository.GetPageList(search);
}
/// <summary>
/// 销售订单明细列表
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
public PageResult<SalOrderDetailResp> GetDetailPageList(PagedSearch<IdAct> search)
{
return _jackOrdersRepository.GetDetailPageList(search);
}
}
}

View File

@ -1,11 +1,13 @@
using MyCode.Project.Domain.Message.Act.Common;
using MyCode.Project.Domain.Message.Response.LxmZHMDReport;
using MyCode.Project.Domain.Message.Response.PurOrder;
using MyCode.Project.Infrastructure.Cache;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.Constant;
using MyCode.Project.Infrastructure.Enumeration;
using MyCode.Project.Infrastructure.Exceptions;
using MyCode.Project.Services;
using MyCode.Project.Services.Implementation;
using MyCode.Project.WebApi.App_Filter;
using System;
using System.IO;
@ -20,10 +22,15 @@ namespace MyCode.Project.WebApi.Areas.Admin.Controllers
{
#region
private IYuyuboService _yuyuboService;
IPurOrderService _PurOrderService;
private IPrdOrderService _prdOrderService;
public DataChartController(IYuyuboService yuyuboService)
public DataChartController(IYuyuboService yuyuboService, IPurOrderService purOrderService
,IPrdOrderService prdOrderService)
{
_yuyuboService = yuyuboService;
_PurOrderService = purOrderService;
_prdOrderService = prdOrderService;
}
@ -37,11 +44,64 @@ namespace MyCode.Project.WebApi.Areas.Admin.Controllers
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public PageResult<SalOrderResp> GetPageList(PagedSearch search)
public PageResult<SalOrderResp> GetSalOrderPageList(PagedSearch search)
{
return _yuyuboService.GetPageList(search);
}
/// <summary>
/// 销售订单明细列表
/// </summary>
/// <param name="search"></param>
/// <returns></returns>
[HttpPost]
[AllowAnonymous]
public PageResult<SalOrderDetailResp> GetSalOrderDetailPageList(PagedSearch<IdAct> search)
{
return _yuyuboService.GetDetailPageList(search);
}
/// <summary>
/// 采购看板
/// </summary>
[HttpPost]
[AllowAnonymous]
public PageResult<PurOrderMainResp> GetPurOrderMain(PagedSearch search)
{
return _PurOrderService.GetPurMain(search);
}
/// <summary>
/// 采购看板详情
/// </summary>
[HttpPost]
[AllowAnonymous]
public PageResult<PurOrderDetilResp> GetPurOrderDetil(PagedSearch<IdAct> search)
{
return _PurOrderService.GetPurDetil(search);
}
/// <summary>
/// 获取生产订单
/// </summary>
[AllowAnonymous]
[HttpPost]
public PageResult<PrdMoOrderResp> GetMoRespData(PagedSearch pagedSearch)
{
return _prdOrderService.GetPrdMoPageList(pagedSearch);
}
/// <summary>
/// 获取生产订单详情
/// </summary>
[AllowAnonymous]
[HttpPost]
public PageResult<PrdMoOrderEntryResp> GetMoEntryRespData(PagedSearch<IdAct> search)
{
return _prdOrderService.GetPrdMoEntryPageList(search);
}
}
}

View File

@ -208,8 +208,6 @@
<Compile Include="Areas\Wechat\Controllers\BaseWechatController.cs" />
<Compile Include="Areas\Wechat\Controllers\ReportController.cs" />
<Compile Include="Controllers\BaseAPIController.cs" />
<Compile Include="Controllers\PrdMoController.cs" />
<Compile Include="Controllers\TestController.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>

View File

@ -0,0 +1,253 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=301879
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-type,Authorization,*" />
<add name="Access-Control-Request-Headers" value="*" />
<add name="Access-Control-Request-Method" value="*" />
<add name="Access-Control-Allow-Credentials" value="*" />
<add name="Access-Control-Max-Age" value="1728000" />
</customHeaders>
</httpProtocol>
</system.webServer>
<connectionStrings>
<!-- 数据库测试-->
<add name="WMSConn" connectionString="Data Source=8.138.110.197,1433; Initial Catalog=AIS20240310221756; User ID=sa;Password=12qw!@; Connect Timeout=120; MultipleActiveResultSets=True;App=JiKeYun2" providerName="System.Data.SqlClient" />
<add name="YunTongConn" connectionString="Data Source=8.138.110.197,1433; Initial Catalog=AIS20240310221756; User ID=sa;Password=12qw!@; Connect Timeout=120; MultipleActiveResultSets=True;App=JiKeYun1" providerName="System.Data.SqlClient" />
<!--测试MYSQL内网-->
<!--<add name="MasterConn" connectionString="" providerName="MySql.Data.MySqlClient" />-->
</connectionStrings>
<appSettings>
<!--解决swagger出错问题-->
<add key="aspnet:UseHostHeaderForRequestUrl" value="true" />
<!--当前环境,1:生产环境 0开发环境-->
<add key="Env" value="0" />
<!--因公司IP时常变化先用13跳转-->
<add key="RedisAddress" value="" />
<!--缓存前缀-->
<add key="CachePrefix" value="" />
<!--jwtkey-->
<add key="JwtKey" value="t9Hu5zhiFWunJR1+XDrUM6Jp2aAvTjOa/XoxOrZ7bbI=" />
<!--是否输出Sql命令0:不输出 1:输出-->
<add key="OutputSql" value="0" />
<!--是否输出请求日志-->
<add key="OutputRequstLog" value="1" />
<!--本地上传的存放路径-->
<add key="UploadFolder" value="D:\" />
<!--取消owin启动-->
<add key="owin:AutomaticAppStartup" value="false" />
<!--钉钉通知机器人-->
<add key="DingDingApiUrl" value="" />
<!--区域层增加的前缀路径-->
<add key="AreaUrlPrePath" value="" />
<!--生产环境D:\publish\lxm-report-api\App_File\-->
<!--服务器文件保存的路径这里调度用如果是webapi则不需要用这个-->
<add key="AppFilePath" value="D:\publish\LxmReportApi\api\App_File\" />
<!--<add key="AppFilePath" value="D:\App_File\" />-->
<add key="WebSocketUrl" value="ws://127.0.0.1:9798/" />
</appSettings>
<!--
有关 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。
可在 <httpRuntime> 标记上设置以下特性。
<system.Web>
<httpRuntime targetFramework="4.5" />
</system.Web>
-->
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
<customErrors mode="Off" />
</system.web>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="App_Log\Error\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %logger" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="ERROR" />
<filter type="log4net.Filter.DenyAllFilter" />
</filter>
</appender>
<appender name="InfoLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--日志路径-->
<param name="File" value="App_Log\Info\" />
<!--是否是向文件中追加日志-->
<param name="AppendToFile" value="true" />
<!--log保留天数-->
<param name="MaxSizeRollBackups" value="30" />
<!--日志文件名是否是固定不变的-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名格式为:2008-08-31.log-->
<param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;" />
<!--日志根据日期滚动-->
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %logger" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="INFO" />
<filter type="log4net.Filter.DenyAllFilter" />
</filter>
</appender>
<!-- MySQL Appender -->
<!--<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
<connectionString value="Server=;port=3306;Database=;Uid=;Pwd=;charset=utf8mb4" />
<commandText value="INSERT INTO api_log (level,message,api_type,create_time) VALUES (?log_level,?message,4, ?log_date)" />
<parameter>
<parameterName value="?log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="?log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="?message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="DEBUG" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>-->
<root>
<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低)-->
<level value="ALL" />
<appender-ref ref="InfoLogFileAppender" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="AdoNetAppender" />
</root>
</log4net>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Common.Logging.Core" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.1.0" newVersion="3.3.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.1.0" newVersion="3.3.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>
</configuration>