Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <configuration> |
| | | <connectionStrings> |
| | | <add name="æ¬å°_MySql_CMS" connectionString="Server=localhost;Database=4b25b01c1f7f49d19153de6b0906eafc_project;Uid=root;Pwd=123abc.com;" /> |
| | | <add name="æ¬å°_MySql_CMS" connectionString="Server=localhost;Database=07a6b2f4bbb04e8bb23a9f17a4a769c2_project;Uid=root;Pwd=123abc.com;" /> |
| | | <add name="LA22012_æ¦æ±ç§é_ç产åº_伿¬ç¯å¢" connectionString="Data Source=10.10.40.166;Initial Catalog=WHMY_Prod_Test;Persist Security Info=True;User ID=sa;Password=123abc.com" /> |
| | | <add name="LA22012_æ¦æ±ç§é_ç产åº_26æµè¯ç¯å¢" connectionString="Data Source=172.27.96.26;Initial Catalog=WHMY_Prod_Test;Persist Security Info=True;User ID=sa;Password=MJC!2022@wms" /> |
| | | <add name="LA22012_æ¦æ±ç§é_å¤ä»¶åº_伿¬ç¯å¢" connectionString="Data Source=10.10.40.166;Initial Catalog=WHMY_Admin.NET;Persist Security Info=True;User ID=sa;Password=123abc.com" /> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace GenerateCode_WeiBen_WMS.Const |
| | | { |
| | | public class SystemConst |
| | | { |
| | | /// <summary> |
| | | /// æå¡å±çæä»¶å¤¹åç§° |
| | | /// </summary> |
| | | public const string server_FolerName = @"\server\"; |
| | | /// <summary> |
| | | /// å端çæä»¶å¤¹åç§° |
| | | /// </summary> |
| | | public const string web_FolerName = @"\web\"; |
| | | } |
| | | } |
| | |
| | | //string strSql = $"SELECT COLUMN_NAME as ColumnName, COLUMN_TYPE as DataType, IS_NULLABLE as IsNullable, CHARACTER_MAXIMUM_LENGTH as DataLength,COLUMN_COMMENT as Description " + |
| | | // $"FROM INFORMATION_SCHEMA.COLUMNS " + |
| | | // $"WHERE TABLE_NAME = '{tableName}'"; |
| | | string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.COLUMN_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description, " + |
| | | string strSql = $"SELECT c.COLUMN_NAME as ColumnName, c.DATA_TYPE as DataType, c.IS_NULLABLE as IsNullable, c.CHARACTER_MAXIMUM_LENGTH as DataLength, c.COLUMN_COMMENT as Description, " + |
| | | $"CASE WHEN kcu.COLUMN_NAME IS NOT NULL THEN 'true' ELSE 'false' END AS IsPrimaryKey " + |
| | | $"FROM INFORMATION_SCHEMA.COLUMNS c " + |
| | | $"LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu " + |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class AppService_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\AppService\AppService模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | string attrString = ""; |
| | | List<ColumnModel> newColumnNameList = ListHelper.RemoveAttrForExport(param.ColumnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForUpdateModel(newColumnNameList[i], param); |
| | | } |
| | | str = str.Replace("$UpdateAttributes$", attrString); |
| | | |
| | | attrString = ""; |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForUpdateModelByImport(newColumnNameList[i], param); |
| | | } |
| | | str = str.Replace("$UpdateAttributesForImport$", attrString); |
| | | |
| | | attrString = ""; |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForCheckCreateOrUpdateDtoAsync(newColumnNameList[i], param); |
| | | } |
| | | str = str.Replace("$UpdateAttributesForCheckCreateOrUpdateDtoAsync$", attrString); |
| | | |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class IAppService_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\AppService\IAppService模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | /// </summary> |
| | | public class Controller_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(string Modulelogo, |
| | | string ChinaComment, List<ColumnModel> columnNameList, string entityName, string orderByName = "") |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Controller模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | str = str.Replace("$ChinaComment$", ChinaComment);//ä¸ææ³¨é |
| | | str = str.Replace("$EntityName$", entityName); |
| | | str = str.Replace("$Modulelogo$", Modulelogo);//模åç®å |
| | | str = str.Replace("$OrderByName$", orderByName == "" ? "Id" : orderByName);//模åç®å |
| | | |
| | | str = str.Replace("$ValidateEmptyForInsert$", StructStrHelper.GetValidateEmptyStrForController(columnNameList)); |
| | | str = str.Replace("$ValidateEmptyForUpdate$", StructStrHelper.GetValidateEmptyStrForController(columnNameList, false)); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | |
| | | var pageStr = StructStrHelper.GetPageFilterStrForController(columnNameList); |
| | | str = str.Replace("$PageSearchFilter$", pageStr); |
| | | |
| | | return str; |
| | | } |
| | |
| | | List<ColumnModel> newColumnNameList = ListHelper.RemoveIdCreatorModifier(columnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForAddModel(newColumnNameList[i]); |
| | | // attrString += StructStrHelper.GenerateAttributeForAddModel(newColumnNameList[i]); |
| | | } |
| | | str = str.Replace("$AddAttributes$", attrString); |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class CreateDto_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\CreateDto模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class CreateOrUpdateDtoBase_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\CreateOrUpdateDtoBase模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | string attrString = ""; |
| | | |
| | | List<ColumnModel> newColumnNameList = ListHelper.RemoveIdCreatorModifier(param.ColumnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForAddModel(newColumnNameList[i], param); |
| | | } |
| | | str = str.Replace("$AddAttributes$", attrString); |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class Dto_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\Dto模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | string attrString = ""; |
| | | |
| | | List<ColumnModel> newColumnNameList = ListHelper.OnlyRemoveId(param.ColumnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForDto(newColumnNameList[i], param); |
| | | } |
| | | str = str.Replace("$AddAttributesForDto$", attrString); |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class ExportModel_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\ExportModel模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | string attrString = ""; |
| | | |
| | | List<ColumnModel> newColumnNameList = ListHelper.RemoveAttrForExport(param.ColumnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForExport(newColumnNameList[i], param); |
| | | } |
| | | str = str.Replace("$AddAttributes$", attrString); |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class ImportModel_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\ImportModel模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | /// </summary> |
| | | public class InputModel_Generate : BaseGenerate |
| | | { |
| | | public static string CreateQueryModelLText(string Modulelogo, |
| | | string ChinaComment, List<ColumnModel> columnNameList, string entityName) |
| | | public static string CreateQueryModelLText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\InputModel模æ¿.txt"); |
| | | var str = TextHelper.ReadText(@"Templete\Entity\InputQueryModel模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | str = str.Replace("$ChinaComment$", ChinaComment);//ä¸ææ³¨é |
| | | str = str.Replace("$EntityName$", entityName); |
| | | |
| | | str = str.Replace("$Modulelogo$", Modulelogo);//模åç®å |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | //å¤ç å页æ¥è¯¢é¨å |
| | | string attrString = ""; |
| | | |
| | | List<ColumnModel> newColumnNameList = ListHelper.OnlyRemoveId(columnNameList); |
| | | List<ColumnModel> newColumnNameList = ListHelper.OnlyRemoveId(param.ColumnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttributeForQueryModel(newColumnNameList[i]); |
| | |
| | | |
| | | //å¤ç æ°å¢é¨å |
| | | attrString = ""; |
| | | newColumnNameList = ListHelper.RemoveIdCreatorModifier(columnNameList); |
| | | newColumnNameList = ListHelper.RemoveIdCreatorModifier(param.ColumnNameList); |
| | | for (int i = 0; i < newColumnNameList.Count; ++i) |
| | | { |
| | | attrString += StructStrHelper.GenerateAttribute(i,newColumnNameList[i]); |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | | /// <summary> |
| | | /// çææ¥è¯¢å®ä½ç±» |
| | | /// </summary> |
| | | public class UpdateDto_Generate : BaseGenerate |
| | | { |
| | | public static string CreateText(GenerateCodeParam param) |
| | | { |
| | | var str = TextHelper.ReadText(@"Templete\Entity\UpdateDto模æ¿.txt"); |
| | | CommonReplace(ref str); |
| | | |
| | | CommonHelper.CommonReplaceStr(param, ref str); |
| | | |
| | | |
| | | return str; |
| | | } |
| | | } |
| | | } |
| | |
| | | <Reference Include="System.Xml" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Compile Include="Const\SystemConst.cs" /> |
| | | <Compile Include="DataBaseFactory\DataBaseServiceHandle.cs" /> |
| | | <Compile Include="DataBaseFactory\DataBaseServiceFactory.cs" /> |
| | | <Compile Include="DataBaseFactory\Default\SqlServerDataBaseServiceHandle.cs" /> |
| | | <Compile Include="DataBaseFactory\Default\MySqlDataBaseServiceHandle.cs" /> |
| | | <Compile Include="Generate\AppService\AppService_Generate.cs" /> |
| | | <Compile Include="Generate\AppService\IAppService_Generate.cs" /> |
| | | <Compile Include="Generate\BaseGenerate.cs" /> |
| | | <Compile Include="Generate\Controller\Controller_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\AddModel_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\ImportModel_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\ExportModel_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\Dto_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\UpdateDto_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\CreateOrUpdateDtoBase_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\CreateDto_Generate.cs" /> |
| | | <Compile Include="Generate\Entity\OutputModel_Generate.cs" /> |
| | | <Compile Include="Generate\InsertSQL_Generate.cs" /> |
| | | <Compile Include="Generate\VUE\VUE_Generate.cs" /> |
| | |
| | | <Compile Include="Generate\BLL_Generate.cs" /> |
| | | <Compile Include="Generate\DAL_Generate.cs" /> |
| | | <Compile Include="Generate\Procedure_Generate.cs" /> |
| | | <Compile Include="Model\GenerateCodeParam.cs" /> |
| | | <Compile Include="Model\Enum\DataBaseEnum.cs" /> |
| | | <Compile Include="Model\Enum\DataTypeEnum.cs" /> |
| | | <Compile Include="Model\ListItem.cs" /> |
| | |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <Content Include="Robot.ico" /> |
| | | <Content Include="Templete\AppService\AppService模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\AppService\IAppService模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Controller模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\AddModel模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\ImportModel模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\ExportModel模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\Dto模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\UpdateDto模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\CreateDto模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\CreateOrUpdateDtoBase模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\InputQueryModel模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="Templete\Entity\OutputModel模æ¿.txt"> |
| | |
| | | <Content Include="Templete\InitSQL模æ¿.txt"> |
| | | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| | | </Content> |
| | | <Content Include="常ç¨.txt" /> |
| | | </ItemGroup> |
| | | <ItemGroup /> |
| | | <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
| | | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
| | | Other similar extension points exist, see Microsoft.Common.targets. |
| | |
| | | this.tb_RoutePrefix = new System.Windows.Forms.TextBox(); |
| | | this.label13 = new System.Windows.Forms.Label(); |
| | | this.groupBox1 = new System.Windows.Forms.GroupBox(); |
| | | this.label17 = new System.Windows.Forms.Label(); |
| | | this.cmb_DataBase = new System.Windows.Forms.ComboBox(); |
| | | this.lbl_DataSource = new System.Windows.Forms.Label(); |
| | | this.cmb_DataSource = new System.Windows.Forms.ComboBox(); |
| | | this.groupBox2 = new System.Windows.Forms.GroupBox(); |
| | |
| | | this.label12 = new System.Windows.Forms.Label(); |
| | | this.tb_templeteFileDownName = new System.Windows.Forms.TextBox(); |
| | | this.label14 = new System.Windows.Forms.Label(); |
| | | this.cmb_DataBase = new System.Windows.Forms.ComboBox(); |
| | | this.label17 = new System.Windows.Forms.Label(); |
| | | this.tb_EnumList = new System.Windows.Forms.TextBox(); |
| | | this.label18 = new System.Windows.Forms.Label(); |
| | | this.label19 = new System.Windows.Forms.Label(); |
| | | this.groupBox1.SuspendLayout(); |
| | | this.groupBox2.SuspendLayout(); |
| | | this.groupBox3.SuspendLayout(); |
| | |
| | | // |
| | | // btnPath |
| | | // |
| | | this.btnPath.Location = new System.Drawing.Point(425, 570); |
| | | this.btnPath.Location = new System.Drawing.Point(567, 712); |
| | | this.btnPath.Margin = new System.Windows.Forms.Padding(4); |
| | | this.btnPath.Name = "btnPath"; |
| | | this.btnPath.Size = new System.Drawing.Size(97, 23); |
| | | this.btnPath.Size = new System.Drawing.Size(129, 29); |
| | | this.btnPath.TabIndex = 1; |
| | | this.btnPath.Text = "éæ©çæè·¯å¾"; |
| | | this.btnPath.UseVisualStyleBackColor = true; |
| | |
| | | // lblds |
| | | // |
| | | this.lblds.AutoSize = true; |
| | | this.lblds.Location = new System.Drawing.Point(22, 72); |
| | | this.lblds.Location = new System.Drawing.Point(29, 90); |
| | | this.lblds.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.lblds.Name = "lblds"; |
| | | this.lblds.Size = new System.Drawing.Size(35, 12); |
| | | this.lblds.Size = new System.Drawing.Size(45, 15); |
| | | this.lblds.TabIndex = 2; |
| | | this.lblds.Text = "表å:"; |
| | | // |
| | | // tbPath |
| | | // |
| | | this.tbPath.Location = new System.Drawing.Point(106, 566); |
| | | this.tbPath.Location = new System.Drawing.Point(141, 708); |
| | | this.tbPath.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tbPath.Name = "tbPath"; |
| | | this.tbPath.ReadOnly = true; |
| | | this.tbPath.Size = new System.Drawing.Size(253, 21); |
| | | this.tbPath.Size = new System.Drawing.Size(336, 25); |
| | | this.tbPath.TabIndex = 7; |
| | | // |
| | | // btnExit |
| | | // |
| | | this.btnExit.Location = new System.Drawing.Point(649, 600); |
| | | this.btnExit.Location = new System.Drawing.Point(865, 750); |
| | | this.btnExit.Margin = new System.Windows.Forms.Padding(4); |
| | | this.btnExit.Name = "btnExit"; |
| | | this.btnExit.Size = new System.Drawing.Size(171, 67); |
| | | this.btnExit.Size = new System.Drawing.Size(228, 84); |
| | | this.btnExit.TabIndex = 8; |
| | | this.btnExit.Text = "éåº"; |
| | | this.btnExit.UseVisualStyleBackColor = true; |
| | |
| | | // |
| | | // btn_CreateFile |
| | | // |
| | | this.btn_CreateFile.Location = new System.Drawing.Point(106, 600); |
| | | this.btn_CreateFile.Location = new System.Drawing.Point(141, 750); |
| | | this.btn_CreateFile.Margin = new System.Windows.Forms.Padding(4); |
| | | this.btn_CreateFile.Name = "btn_CreateFile"; |
| | | this.btn_CreateFile.Size = new System.Drawing.Size(157, 67); |
| | | this.btn_CreateFile.Size = new System.Drawing.Size(209, 84); |
| | | this.btn_CreateFile.TabIndex = 14; |
| | | this.btn_CreateFile.Text = "çææä»¶"; |
| | | this.btn_CreateFile.UseVisualStyleBackColor = true; |
| | |
| | | // |
| | | // tb_TableName |
| | | // |
| | | this.tb_TableName.Location = new System.Drawing.Point(92, 69); |
| | | this.tb_TableName.Location = new System.Drawing.Point(123, 86); |
| | | this.tb_TableName.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_TableName.Name = "tb_TableName"; |
| | | this.tb_TableName.Size = new System.Drawing.Size(183, 21); |
| | | this.tb_TableName.Size = new System.Drawing.Size(243, 25); |
| | | this.tb_TableName.TabIndex = 15; |
| | | this.tb_TableName.TextChanged += new System.EventHandler(this.tb_TableName_TextChanged); |
| | | // |
| | | // tb_FileName |
| | | // |
| | | this.tb_FileName.Location = new System.Drawing.Point(221, 152); |
| | | this.tb_FileName.Location = new System.Drawing.Point(295, 190); |
| | | this.tb_FileName.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_FileName.Name = "tb_FileName"; |
| | | this.tb_FileName.Size = new System.Drawing.Size(199, 21); |
| | | this.tb_FileName.Size = new System.Drawing.Size(264, 25); |
| | | this.tb_FileName.TabIndex = 17; |
| | | // |
| | | // label1 |
| | | // |
| | | this.label1.AutoSize = true; |
| | | this.label1.Location = new System.Drawing.Point(25, 154); |
| | | this.label1.Location = new System.Drawing.Point(33, 192); |
| | | this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label1.Name = "label1"; |
| | | this.label1.Size = new System.Drawing.Size(191, 12); |
| | | this.label1.Size = new System.Drawing.Size(241, 15); |
| | | this.label1.TabIndex = 16; |
| | | this.label1.Text = "æä»¶åç§°(ç¨äºç»å个类åçåç¼):"; |
| | | // |
| | | // tb_WCF_NameSpacePath |
| | | // |
| | | this.tb_WCF_NameSpacePath.Location = new System.Drawing.Point(563, 247); |
| | | this.tb_WCF_NameSpacePath.Location = new System.Drawing.Point(751, 309); |
| | | this.tb_WCF_NameSpacePath.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_WCF_NameSpacePath.Name = "tb_WCF_NameSpacePath"; |
| | | this.tb_WCF_NameSpacePath.Size = new System.Drawing.Size(197, 21); |
| | | this.tb_WCF_NameSpacePath.Size = new System.Drawing.Size(261, 25); |
| | | this.tb_WCF_NameSpacePath.TabIndex = 19; |
| | | // |
| | | // label2 |
| | | // |
| | | this.label2.AutoSize = true; |
| | | this.label2.Location = new System.Drawing.Point(455, 249); |
| | | this.label2.Location = new System.Drawing.Point(607, 311); |
| | | this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label2.Name = "label2"; |
| | | this.label2.Size = new System.Drawing.Size(101, 12); |
| | | this.label2.Size = new System.Drawing.Size(105, 15); |
| | | this.label2.TabIndex = 18; |
| | | this.label2.Text = "WCF项ç®å½å空é´:"; |
| | | this.label2.Text = "项ç®å½å空é´:"; |
| | | // |
| | | // tb_ChinaComment |
| | | // |
| | | this.tb_ChinaComment.Location = new System.Drawing.Point(221, 234); |
| | | this.tb_ChinaComment.Location = new System.Drawing.Point(295, 292); |
| | | this.tb_ChinaComment.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_ChinaComment.Name = "tb_ChinaComment"; |
| | | this.tb_ChinaComment.Size = new System.Drawing.Size(197, 21); |
| | | this.tb_ChinaComment.Size = new System.Drawing.Size(261, 25); |
| | | this.tb_ChinaComment.TabIndex = 23; |
| | | // |
| | | // label4 |
| | | // |
| | | this.label4.AutoSize = true; |
| | | this.label4.Location = new System.Drawing.Point(26, 234); |
| | | this.label4.Location = new System.Drawing.Point(35, 292); |
| | | this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label4.Name = "label4"; |
| | | this.label4.Size = new System.Drawing.Size(83, 12); |
| | | this.label4.Size = new System.Drawing.Size(105, 15); |
| | | this.label4.TabIndex = 22; |
| | | this.label4.Text = "表çä¸ææ³¨è§£:"; |
| | | // |
| | | // tb_CreatePerson |
| | | // |
| | | this.tb_CreatePerson.Location = new System.Drawing.Point(221, 279); |
| | | this.tb_CreatePerson.Location = new System.Drawing.Point(295, 349); |
| | | this.tb_CreatePerson.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_CreatePerson.Name = "tb_CreatePerson"; |
| | | this.tb_CreatePerson.Size = new System.Drawing.Size(199, 21); |
| | | this.tb_CreatePerson.Size = new System.Drawing.Size(264, 25); |
| | | this.tb_CreatePerson.TabIndex = 25; |
| | | // |
| | | // label5 |
| | | // |
| | | this.label5.AutoSize = true; |
| | | this.label5.Location = new System.Drawing.Point(26, 289); |
| | | this.label5.Location = new System.Drawing.Point(35, 361); |
| | | this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label5.Name = "label5"; |
| | | this.label5.Size = new System.Drawing.Size(107, 12); |
| | | this.label5.Size = new System.Drawing.Size(135, 15); |
| | | this.label5.TabIndex = 24; |
| | | this.label5.Text = "ä½ çååæ¼é³ç¼©å:"; |
| | | // |
| | | // tb_Primary |
| | | // |
| | | this.tb_Primary.Location = new System.Drawing.Point(338, 69); |
| | | this.tb_Primary.Location = new System.Drawing.Point(451, 86); |
| | | this.tb_Primary.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_Primary.Name = "tb_Primary"; |
| | | this.tb_Primary.Size = new System.Drawing.Size(145, 21); |
| | | this.tb_Primary.Size = new System.Drawing.Size(192, 25); |
| | | this.tb_Primary.TabIndex = 27; |
| | | // |
| | | // label6 |
| | | // |
| | | this.label6.AutoSize = true; |
| | | this.label6.Location = new System.Drawing.Point(298, 72); |
| | | this.label6.Location = new System.Drawing.Point(397, 90); |
| | | this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label6.Name = "label6"; |
| | | this.label6.Size = new System.Drawing.Size(35, 12); |
| | | this.label6.Size = new System.Drawing.Size(45, 15); |
| | | this.label6.TabIndex = 26; |
| | | this.label6.Text = "主é®:"; |
| | | // |
| | | // tb_EntityProName |
| | | // |
| | | this.tb_EntityProName.Location = new System.Drawing.Point(560, 141); |
| | | this.tb_EntityProName.Location = new System.Drawing.Point(747, 176); |
| | | this.tb_EntityProName.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_EntityProName.Name = "tb_EntityProName"; |
| | | this.tb_EntityProName.Size = new System.Drawing.Size(183, 21); |
| | | this.tb_EntityProName.Size = new System.Drawing.Size(243, 25); |
| | | this.tb_EntityProName.TabIndex = 31; |
| | | this.tb_EntityProName.TextChanged += new System.EventHandler(this.tb_EntityProName_TextChanged); |
| | | // |
| | | // label7 |
| | | // |
| | | this.label7.AutoSize = true; |
| | | this.label7.Location = new System.Drawing.Point(436, 149); |
| | | this.label7.Location = new System.Drawing.Point(581, 186); |
| | | this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label7.Name = "label7"; |
| | | this.label7.Size = new System.Drawing.Size(125, 12); |
| | | this.label7.Size = new System.Drawing.Size(158, 15); |
| | | this.label7.TabIndex = 30; |
| | | this.label7.Text = "å®ä½ç±»å¯¹è±¡å/表å«å:"; |
| | | // |
| | | // tb_EntityName |
| | | // |
| | | this.tb_EntityName.Location = new System.Drawing.Point(92, 108); |
| | | this.tb_EntityName.Location = new System.Drawing.Point(123, 135); |
| | | this.tb_EntityName.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_EntityName.Name = "tb_EntityName"; |
| | | this.tb_EntityName.Size = new System.Drawing.Size(183, 21); |
| | | this.tb_EntityName.Size = new System.Drawing.Size(243, 25); |
| | | this.tb_EntityName.TabIndex = 29; |
| | | // |
| | | // label8 |
| | | // |
| | | this.label8.AutoSize = true; |
| | | this.label8.Location = new System.Drawing.Point(22, 111); |
| | | this.label8.Location = new System.Drawing.Point(29, 139); |
| | | this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label8.Name = "label8"; |
| | | this.label8.Size = new System.Drawing.Size(59, 12); |
| | | this.label8.Size = new System.Drawing.Size(75, 15); |
| | | this.label8.TabIndex = 28; |
| | | this.label8.Text = "å®ä½ç±»å:"; |
| | | // |
| | | // label9 |
| | | // |
| | | this.label9.AutoSize = true; |
| | | this.label9.Location = new System.Drawing.Point(463, 210); |
| | | this.label9.Location = new System.Drawing.Point(617, 262); |
| | | this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label9.Name = "label9"; |
| | | this.label9.Size = new System.Drawing.Size(35, 12); |
| | | this.label9.Size = new System.Drawing.Size(45, 15); |
| | | this.label9.TabIndex = 34; |
| | | this.label9.Text = "æåº:"; |
| | | // |
| | | // tb_OrderBy |
| | | // |
| | | this.tb_OrderBy.Location = new System.Drawing.Point(503, 207); |
| | | this.tb_OrderBy.Location = new System.Drawing.Point(671, 259); |
| | | this.tb_OrderBy.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_OrderBy.Name = "tb_OrderBy"; |
| | | this.tb_OrderBy.Size = new System.Drawing.Size(145, 21); |
| | | this.tb_OrderBy.Size = new System.Drawing.Size(192, 25); |
| | | this.tb_OrderBy.TabIndex = 35; |
| | | // |
| | | // label10 |
| | | // |
| | | this.label10.AutoSize = true; |
| | | this.label10.Location = new System.Drawing.Point(668, 210); |
| | | this.label10.Location = new System.Drawing.Point(891, 262); |
| | | this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label10.Name = "label10"; |
| | | this.label10.Size = new System.Drawing.Size(65, 12); |
| | | this.label10.Size = new System.Drawing.Size(83, 15); |
| | | this.label10.TabIndex = 36; |
| | | this.label10.Text = "(é»è®¤éåº)"; |
| | | // |
| | | // tb_PrimaryDesc |
| | | // |
| | | this.tb_PrimaryDesc.Location = new System.Drawing.Point(569, 69); |
| | | this.tb_PrimaryDesc.Location = new System.Drawing.Point(759, 86); |
| | | this.tb_PrimaryDesc.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_PrimaryDesc.Name = "tb_PrimaryDesc"; |
| | | this.tb_PrimaryDesc.Size = new System.Drawing.Size(145, 21); |
| | | this.tb_PrimaryDesc.Size = new System.Drawing.Size(192, 25); |
| | | this.tb_PrimaryDesc.TabIndex = 38; |
| | | // |
| | | // label11 |
| | | // |
| | | this.label11.AutoSize = true; |
| | | this.label11.Location = new System.Drawing.Point(508, 72); |
| | | this.label11.Location = new System.Drawing.Point(677, 90); |
| | | this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label11.Name = "label11"; |
| | | this.label11.Size = new System.Drawing.Size(59, 12); |
| | | this.label11.Size = new System.Drawing.Size(75, 15); |
| | | this.label11.TabIndex = 37; |
| | | this.label11.Text = "ä¸»é®æè¿°:"; |
| | | // |
| | | // tb_Modulelogo |
| | | // |
| | | this.tb_Modulelogo.Location = new System.Drawing.Point(221, 202); |
| | | this.tb_Modulelogo.Location = new System.Drawing.Point(295, 252); |
| | | this.tb_Modulelogo.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_Modulelogo.Name = "tb_Modulelogo"; |
| | | this.tb_Modulelogo.Size = new System.Drawing.Size(199, 21); |
| | | this.tb_Modulelogo.Size = new System.Drawing.Size(264, 25); |
| | | this.tb_Modulelogo.TabIndex = 41; |
| | | // |
| | | // label3 |
| | | // |
| | | this.label3.AutoSize = true; |
| | | this.label3.Location = new System.Drawing.Point(25, 206); |
| | | this.label3.Location = new System.Drawing.Point(33, 258); |
| | | this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label3.Name = "label3"; |
| | | this.label3.Size = new System.Drawing.Size(167, 12); |
| | | this.label3.Size = new System.Drawing.Size(211, 15); |
| | | this.label3.TabIndex = 40; |
| | | this.label3.Text = "模åç®å(ç¨äºç»åä¸ªæ¹æ³å):"; |
| | | // |
| | | // btn_InsertSql |
| | | // |
| | | this.btn_InsertSql.Location = new System.Drawing.Point(385, 600); |
| | | this.btn_InsertSql.Location = new System.Drawing.Point(513, 750); |
| | | this.btn_InsertSql.Margin = new System.Windows.Forms.Padding(4); |
| | | this.btn_InsertSql.Name = "btn_InsertSql"; |
| | | this.btn_InsertSql.Size = new System.Drawing.Size(157, 67); |
| | | this.btn_InsertSql.Size = new System.Drawing.Size(209, 84); |
| | | this.btn_InsertSql.TabIndex = 42; |
| | | this.btn_InsertSql.Text = "çæInitSQL"; |
| | | this.btn_InsertSql.UseVisualStyleBackColor = true; |
| | |
| | | // |
| | | // tb_RoutePrefix |
| | | // |
| | | this.tb_RoutePrefix.Location = new System.Drawing.Point(538, 276); |
| | | this.tb_RoutePrefix.Location = new System.Drawing.Point(717, 345); |
| | | this.tb_RoutePrefix.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_RoutePrefix.Name = "tb_RoutePrefix"; |
| | | this.tb_RoutePrefix.Size = new System.Drawing.Size(145, 21); |
| | | this.tb_RoutePrefix.Size = new System.Drawing.Size(192, 25); |
| | | this.tb_RoutePrefix.TabIndex = 44; |
| | | this.tb_RoutePrefix.Text = "1111"; |
| | | // |
| | | // label13 |
| | | // |
| | | this.label13.AutoSize = true; |
| | | this.label13.Location = new System.Drawing.Point(463, 282); |
| | | this.label13.Location = new System.Drawing.Point(617, 352); |
| | | this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label13.Name = "label13"; |
| | | this.label13.Size = new System.Drawing.Size(77, 12); |
| | | this.label13.Size = new System.Drawing.Size(99, 15); |
| | | this.label13.TabIndex = 43; |
| | | this.label13.Text = "WCFè·¯ç±åç¼:"; |
| | | this.label13.Click += new System.EventHandler(this.label13_Click); |
| | |
| | | this.groupBox1.Controls.Add(this.cmb_DataBase); |
| | | this.groupBox1.Controls.Add(this.lbl_DataSource); |
| | | this.groupBox1.Controls.Add(this.cmb_DataSource); |
| | | this.groupBox1.Location = new System.Drawing.Point(51, 12); |
| | | this.groupBox1.Location = new System.Drawing.Point(68, 15); |
| | | this.groupBox1.Margin = new System.Windows.Forms.Padding(4); |
| | | this.groupBox1.Name = "groupBox1"; |
| | | this.groupBox1.Size = new System.Drawing.Size(819, 72); |
| | | this.groupBox1.Padding = new System.Windows.Forms.Padding(4); |
| | | this.groupBox1.Size = new System.Drawing.Size(1092, 90); |
| | | this.groupBox1.TabIndex = 45; |
| | | this.groupBox1.TabStop = false; |
| | | this.groupBox1.Text = "æ°æ®åºé
ç½®"; |
| | | // |
| | | // label17 |
| | | // |
| | | this.label17.AutoSize = true; |
| | | this.label17.Location = new System.Drawing.Point(637, 29); |
| | | this.label17.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label17.Name = "label17"; |
| | | this.label17.Size = new System.Drawing.Size(82, 15); |
| | | this.label17.TabIndex = 3; |
| | | this.label17.Text = "æ°æ®åºç±»å"; |
| | | // |
| | | // cmb_DataBase |
| | | // |
| | | this.cmb_DataBase.FormattingEnabled = true; |
| | | this.cmb_DataBase.Location = new System.Drawing.Point(775, 25); |
| | | this.cmb_DataBase.Margin = new System.Windows.Forms.Padding(4); |
| | | this.cmb_DataBase.Name = "cmb_DataBase"; |
| | | this.cmb_DataBase.Size = new System.Drawing.Size(273, 23); |
| | | this.cmb_DataBase.TabIndex = 2; |
| | | this.cmb_DataBase.SelectedIndexChanged += new System.EventHandler(this.cmb_DataBase_SelectedIndexChanged); |
| | | // |
| | | // lbl_DataSource |
| | | // |
| | | this.lbl_DataSource.AutoSize = true; |
| | | this.lbl_DataSource.Location = new System.Drawing.Point(10, 48); |
| | | this.lbl_DataSource.Location = new System.Drawing.Point(13, 60); |
| | | this.lbl_DataSource.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.lbl_DataSource.Name = "lbl_DataSource"; |
| | | this.lbl_DataSource.Size = new System.Drawing.Size(89, 12); |
| | | this.lbl_DataSource.Size = new System.Drawing.Size(112, 15); |
| | | this.lbl_DataSource.TabIndex = 1; |
| | | this.lbl_DataSource.Text = "ææ¯é¾æ¥å符串"; |
| | | // |
| | | // cmb_DataSource |
| | | // |
| | | this.cmb_DataSource.FormattingEnabled = true; |
| | | this.cmb_DataSource.Location = new System.Drawing.Point(6, 20); |
| | | this.cmb_DataSource.Location = new System.Drawing.Point(8, 25); |
| | | this.cmb_DataSource.Margin = new System.Windows.Forms.Padding(4); |
| | | this.cmb_DataSource.Name = "cmb_DataSource"; |
| | | this.cmb_DataSource.Size = new System.Drawing.Size(206, 20); |
| | | this.cmb_DataSource.Size = new System.Drawing.Size(273, 23); |
| | | this.cmb_DataSource.TabIndex = 0; |
| | | this.cmb_DataSource.SelectedIndexChanged += new System.EventHandler(this.cmb_DataSource_SelectedIndexChanged); |
| | | // |
| | | // groupBox2 |
| | | // |
| | | this.groupBox2.Controls.Add(this.label19); |
| | | this.groupBox2.Controls.Add(this.label18); |
| | | this.groupBox2.Controls.Add(this.tb_EnumList); |
| | | this.groupBox2.Controls.Add(this.tb_GroupName); |
| | | this.groupBox2.Controls.Add(this.label16); |
| | | this.groupBox2.Controls.Add(this.label15); |
| | |
| | | this.groupBox2.Controls.Add(this.tb_EntityProName); |
| | | this.groupBox2.Controls.Add(this.tb_EntityName); |
| | | this.groupBox2.Controls.Add(this.label7); |
| | | this.groupBox2.Location = new System.Drawing.Point(51, 90); |
| | | this.groupBox2.Location = new System.Drawing.Point(68, 112); |
| | | this.groupBox2.Margin = new System.Windows.Forms.Padding(4); |
| | | this.groupBox2.Name = "groupBox2"; |
| | | this.groupBox2.Size = new System.Drawing.Size(819, 470); |
| | | this.groupBox2.Padding = new System.Windows.Forms.Padding(4); |
| | | this.groupBox2.Size = new System.Drawing.Size(1293, 588); |
| | | this.groupBox2.TabIndex = 46; |
| | | this.groupBox2.TabStop = false; |
| | | this.groupBox2.Text = "èªå®ä¹é
ç½®"; |
| | | // |
| | | // tb_GroupName |
| | | // |
| | | this.tb_GroupName.Location = new System.Drawing.Point(350, 108); |
| | | this.tb_GroupName.Location = new System.Drawing.Point(467, 135); |
| | | this.tb_GroupName.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_GroupName.Name = "tb_GroupName"; |
| | | this.tb_GroupName.Size = new System.Drawing.Size(183, 21); |
| | | this.tb_GroupName.Size = new System.Drawing.Size(243, 25); |
| | | this.tb_GroupName.TabIndex = 50; |
| | | // |
| | | // label16 |
| | | // |
| | | this.label16.AutoSize = true; |
| | | this.label16.Location = new System.Drawing.Point(298, 111); |
| | | this.label16.Location = new System.Drawing.Point(397, 139); |
| | | this.label16.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label16.Name = "label16"; |
| | | this.label16.Size = new System.Drawing.Size(47, 12); |
| | | this.label16.Size = new System.Drawing.Size(60, 15); |
| | | this.label16.TabIndex = 49; |
| | | this.label16.Text = "åç»å:"; |
| | | // |
| | | // label15 |
| | | // |
| | | this.label15.AutoSize = true; |
| | | this.label15.Location = new System.Drawing.Point(26, 24); |
| | | this.label15.Location = new System.Drawing.Point(35, 30); |
| | | this.label15.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label15.Name = "label15"; |
| | | this.label15.Size = new System.Drawing.Size(71, 12); |
| | | this.label15.Size = new System.Drawing.Size(90, 15); |
| | | this.label15.TabIndex = 47; |
| | | this.label15.Text = "项ç®ååç¼:"; |
| | | // |
| | | // tb_ProjectNamePrefix |
| | | // |
| | | this.tb_ProjectNamePrefix.Location = new System.Drawing.Point(104, 21); |
| | | this.tb_ProjectNamePrefix.Location = new System.Drawing.Point(139, 26); |
| | | this.tb_ProjectNamePrefix.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_ProjectNamePrefix.Name = "tb_ProjectNamePrefix"; |
| | | this.tb_ProjectNamePrefix.Size = new System.Drawing.Size(183, 21); |
| | | this.tb_ProjectNamePrefix.Size = new System.Drawing.Size(243, 25); |
| | | this.tb_ProjectNamePrefix.TabIndex = 48; |
| | | // |
| | | // groupBox3 |
| | |
| | | this.groupBox3.Controls.Add(this.label12); |
| | | this.groupBox3.Controls.Add(this.tb_templeteFileDownName); |
| | | this.groupBox3.Controls.Add(this.label14); |
| | | this.groupBox3.Location = new System.Drawing.Point(28, 316); |
| | | this.groupBox3.Margin = new System.Windows.Forms.Padding(2); |
| | | this.groupBox3.Location = new System.Drawing.Point(37, 395); |
| | | this.groupBox3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); |
| | | this.groupBox3.Name = "groupBox3"; |
| | | this.groupBox3.Padding = new System.Windows.Forms.Padding(2); |
| | | this.groupBox3.Size = new System.Drawing.Size(272, 118); |
| | | this.groupBox3.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2); |
| | | this.groupBox3.Size = new System.Drawing.Size(363, 148); |
| | | this.groupBox3.TabIndex = 46; |
| | | this.groupBox3.TabStop = false; |
| | | this.groupBox3.Text = "导å
¥åè½"; |
| | | // |
| | | // tb_importExcelCategroy |
| | | // |
| | | this.tb_importExcelCategroy.Location = new System.Drawing.Point(143, 86); |
| | | this.tb_importExcelCategroy.Location = new System.Drawing.Point(191, 108); |
| | | this.tb_importExcelCategroy.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_importExcelCategroy.Name = "tb_importExcelCategroy"; |
| | | this.tb_importExcelCategroy.Size = new System.Drawing.Size(113, 21); |
| | | this.tb_importExcelCategroy.Size = new System.Drawing.Size(149, 25); |
| | | this.tb_importExcelCategroy.TabIndex = 50; |
| | | // |
| | | // ck_IsShowImport |
| | | // |
| | | this.ck_IsShowImport.AutoSize = true; |
| | | this.ck_IsShowImport.Location = new System.Drawing.Point(21, 30); |
| | | this.ck_IsShowImport.Margin = new System.Windows.Forms.Padding(2); |
| | | this.ck_IsShowImport.Location = new System.Drawing.Point(28, 38); |
| | | this.ck_IsShowImport.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); |
| | | this.ck_IsShowImport.Name = "ck_IsShowImport"; |
| | | this.ck_IsShowImport.Size = new System.Drawing.Size(108, 16); |
| | | this.ck_IsShowImport.Size = new System.Drawing.Size(134, 19); |
| | | this.ck_IsShowImport.TabIndex = 45; |
| | | this.ck_IsShowImport.Text = "æ¯å¦æå¯¼å
¥åè½"; |
| | | this.ck_IsShowImport.UseVisualStyleBackColor = true; |
| | |
| | | // label12 |
| | | // |
| | | this.label12.AutoSize = true; |
| | | this.label12.Location = new System.Drawing.Point(9, 94); |
| | | this.label12.Location = new System.Drawing.Point(12, 118); |
| | | this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label12.Name = "label12"; |
| | | this.label12.Size = new System.Drawing.Size(119, 12); |
| | | this.label12.Size = new System.Drawing.Size(150, 15); |
| | | this.label12.TabIndex = 49; |
| | | this.label12.Text = "ä¸ä¼ æä»¶ç请æ±åç±»:"; |
| | | // |
| | | // tb_templeteFileDownName |
| | | // |
| | | this.tb_templeteFileDownName.Location = new System.Drawing.Point(143, 58); |
| | | this.tb_templeteFileDownName.Location = new System.Drawing.Point(191, 72); |
| | | this.tb_templeteFileDownName.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_templeteFileDownName.Name = "tb_templeteFileDownName"; |
| | | this.tb_templeteFileDownName.Size = new System.Drawing.Size(113, 21); |
| | | this.tb_templeteFileDownName.Size = new System.Drawing.Size(149, 25); |
| | | this.tb_templeteFileDownName.TabIndex = 48; |
| | | // |
| | | // label14 |
| | | // |
| | | this.label14.AutoSize = true; |
| | | this.label14.Location = new System.Drawing.Point(10, 60); |
| | | this.label14.Location = new System.Drawing.Point(13, 75); |
| | | this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label14.Name = "label14"; |
| | | this.label14.Size = new System.Drawing.Size(83, 12); |
| | | this.label14.Size = new System.Drawing.Size(105, 15); |
| | | this.label14.TabIndex = 47; |
| | | this.label14.Text = "æä»¶ä¸è½½åå:"; |
| | | // |
| | | // cmb_DataBase |
| | | // tb_EnumList |
| | | // |
| | | this.cmb_DataBase.FormattingEnabled = true; |
| | | this.cmb_DataBase.Location = new System.Drawing.Point(581, 20); |
| | | this.cmb_DataBase.Name = "cmb_DataBase"; |
| | | this.cmb_DataBase.Size = new System.Drawing.Size(206, 20); |
| | | this.cmb_DataBase.TabIndex = 2; |
| | | this.cmb_DataBase.SelectedIndexChanged += new System.EventHandler(this.cmb_DataBase_SelectedIndexChanged); |
| | | this.tb_EnumList.Location = new System.Drawing.Point(557, 451); |
| | | this.tb_EnumList.Margin = new System.Windows.Forms.Padding(4); |
| | | this.tb_EnumList.Multiline = true; |
| | | this.tb_EnumList.Name = "tb_EnumList"; |
| | | this.tb_EnumList.Size = new System.Drawing.Size(491, 129); |
| | | this.tb_EnumList.TabIndex = 51; |
| | | // |
| | | // label17 |
| | | // label18 |
| | | // |
| | | this.label17.AutoSize = true; |
| | | this.label17.Location = new System.Drawing.Point(478, 23); |
| | | this.label17.Name = "label17"; |
| | | this.label17.Size = new System.Drawing.Size(65, 12); |
| | | this.label17.TabIndex = 3; |
| | | this.label17.Text = "æ°æ®åºç±»å"; |
| | | this.label18.AutoSize = true; |
| | | this.label18.Location = new System.Drawing.Point(424, 488); |
| | | this.label18.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label18.Name = "label18"; |
| | | this.label18.Size = new System.Drawing.Size(135, 15); |
| | | this.label18.TabIndex = 52; |
| | | this.label18.Text = "æä¸¾ç±»ååæ®µéå:"; |
| | | // |
| | | // label19 |
| | | // |
| | | this.label19.AutoSize = true; |
| | | this.label19.Location = new System.Drawing.Point(424, 432); |
| | | this.label19.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); |
| | | this.label19.Name = "label19"; |
| | | this.label19.Size = new System.Drawing.Size(751, 15); |
| | | this.label19.TabIndex = 53; |
| | | this.label19.Text = "PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|Mate" + |
| | | "rialTypeDesc"; |
| | | // |
| | | // MainForm |
| | | // |
| | | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); |
| | | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); |
| | | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
| | | this.ClientSize = new System.Drawing.Size(927, 672); |
| | | this.ClientSize = new System.Drawing.Size(1374, 840); |
| | | this.Controls.Add(this.groupBox2); |
| | | this.Controls.Add(this.groupBox1); |
| | | this.Controls.Add(this.btn_InsertSql); |
| | |
| | | this.Controls.Add(this.btnExit); |
| | | this.Controls.Add(this.tbPath); |
| | | this.Controls.Add(this.btnPath); |
| | | this.Margin = new System.Windows.Forms.Padding(4); |
| | | this.Name = "MainForm"; |
| | | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; |
| | | this.Text = "伿¬-CMS-代ç çæå¨(伿¬ä¸ç¨)V1.0"; |
| | |
| | | private System.Windows.Forms.TextBox tb_GroupName; |
| | | private System.Windows.Forms.ComboBox cmb_DataBase; |
| | | private System.Windows.Forms.Label label17; |
| | | private System.Windows.Forms.Label label18; |
| | | private System.Windows.Forms.TextBox tb_EnumList; |
| | | private System.Windows.Forms.Label label19; |
| | | } |
| | | } |
| | | |
| | |
| | | using Newtonsoft.Json; |
| | | using System.Windows.Forms.VisualStyles; |
| | | using GenerateCode_WeiBen_WMS.DataBaseFactory; |
| | | using GenerateCode_WeiBen_WMS.Const; |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | | { |
| | |
| | | this.tb_OrderBy.Text = "ModifyTime";//æåºå段 |
| | | |
| | | this.tb_ProjectNamePrefix.Text = "Test"; |
| | | this.tb_TableName.Text = "scms_auditlogs";//表å |
| | | this.tb_WCF_NameSpacePath.Text = "WIP_";//WCF项ç®å½åç©ºé´ |
| | | this.tb_TableName.Text = "scms_wmsmaterials";//表å |
| | | this.tb_WCF_NameSpacePath.Text = "HIAWms";//WCF项ç®å½åç©ºé´ |
| | | this.tb_FileName.Text = "Xiangzi";//æä»¶åç¼å |
| | | this.tb_ChinaComment.Text = "表çä¸ææ³¨è§£";//ä¸ææ³¨é |
| | | this.tb_ChinaComment.Text = "ç©æåºç¡ä¿¡æ¯è¡¨";//ä¸ææ³¨é |
| | | this.tb_CreatePerson.Text = "shaocx";//å建人 |
| | | this.tb_EntityName.Text = "XiangziEntity";//å®ä½ç±»å |
| | | this.tb_EntityProName.Text = "xiangzi";//å®ä½ç±»å¯¹è±¡å |
| | | this.tb_EntityName.Text = "WmsMaterial";//å®ä½ç±»å |
| | | //this.tb_EntityProName.Text = "wmsMaterial";//å®ä½ç±»å¯¹è±¡å |
| | | this.tb_EnumList.Text = "PurchaseType|PurchaseTypeEnum|PurchaseTypeDesc,MaterialType|MaterialTypeEnum|MaterialTypeDesc,IsMainBranch|YesNoEnum|IsMainBranchDesc"; |
| | | |
| | | this.cmb_DataSource.DropDownStyle = ComboBoxStyle.DropDownList; |
| | | List<ListItem> itemList = CommonHelper.GetDataSources(); |
| | |
| | | this.tb_RoutePrefix.Focus(); |
| | | return; |
| | | } |
| | | if (wcf_NameSpacePath == "") |
| | | { |
| | | MessageBox.Show("请è¾å
¥å½å空é´ï¼"); |
| | | this.tb_WCF_NameSpacePath.Focus(); |
| | | return; |
| | | } |
| | | |
| | | //读åMysql |
| | | var handler = DataBaseServiceFactory.GetHandle(dataBaseEnum); |
| | |
| | | } |
| | | |
| | | string groupName = this.tb_GroupName.Text.Trim(); |
| | | if (groupName == "") |
| | | { |
| | | MessageBox.Show("请è¾å
¥åç»åï¼"); |
| | | this.tb_GroupName.Focus(); |
| | | return; |
| | | } |
| | | //if (groupName == "") |
| | | //{ |
| | | // MessageBox.Show("请è¾å
¥åç»åï¼"); |
| | | // this.tb_GroupName.Focus(); |
| | | // return; |
| | | //} |
| | | |
| | | string addEntityParam = "Add" + modulelogo + "Param";//æ°å¢åæ°ç±»å |
| | | string str_generate = ""; |
| | | bool tf; |
| | | |
| | | GenerateCodeParam param = new GenerateCodeParam() |
| | | { |
| | | Modulelogo = modulelogo, |
| | | ChinaComment = chinaComment, |
| | | NameSpacePath = wcf_NameSpacePath, |
| | | ColumnNameList = columnList, |
| | | EntityName = entityName, |
| | | EntityInstanceName = tableAlias |
| | | }; |
| | | //å¤çæä¸¾ç±»å |
| | | List<EnumModel> enumList = new List<EnumModel>(); |
| | | var str_enumList = this.tb_EnumList.Text.Trim(); |
| | | if (str_enumList.IndexOf(',') > -1) |
| | | { |
| | | var arr_enumList = str_enumList.Split(','); |
| | | foreach (var item in arr_enumList) |
| | | { |
| | | var arr_single = item.Split('|'); |
| | | enumList.Add(new EnumModel() |
| | | { |
| | | EnumAttrName = arr_single[0], |
| | | EnumType = arr_single[1], |
| | | EnumTypeDesc = arr_single[2] |
| | | }); |
| | | } |
| | | } |
| | | param.EnumList = enumList; |
| | | |
| | | //çæModel |
| | | //CreateModelFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo); |
| | | //CreateModelParamFile(columnList, tableName, filePrefixName, wcf_NameSpacePath, createPerson, chinaComment, entityName, modulelogo); |
| | | |
| | | //çæ InputModel æä»¶ |
| | | str_generate = InputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName); |
| | | tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | #region å®ä½ç±» |
| | | var entityFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Dtos\" + tb_EntityName.Text.Trim(); |
| | | //1ãçæ å页æ¥è¯¢å®ä½ æä»¶ |
| | | str_generate = InputModel_Generate.CreateQueryModelLText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"Get{param.EntityName}Input.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //çæ OutputModel æä»¶ |
| | | str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName); |
| | | tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.OutputModel, filePrefixName, entityName, modulelogo); |
| | | //2ãçæ CreateDto æä»¶ |
| | | str_generate = CreateDto_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateDto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //çæControlleræä»¶ |
| | | //str_generate = Controller_Generate.CreateText(modulelogo, chinaComment, columnList, entityName, orderByName); |
| | | //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Controller, filePrefixName, entityName, modulelogo); |
| | | //3ãçæ UpdateDto æä»¶ |
| | | str_generate = UpdateDto_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}UpdateDto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //çæServicesæ¥å£æä»¶ |
| | | str_generate = Services_Interface_Generate.CreateText(wcf_NameSpacePath, modulelogo, entityName, chinaComment, addEntityParam); |
| | | tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFace, filePrefixName, entityName, modulelogo); |
| | | //4ãçæ CreateOrUpdateDtoBase æä»¶ |
| | | str_generate = CreateOrUpdateDtoBase_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}CreateOrUpdateDtoBase.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //5ãçæ Dto æä»¶ |
| | | str_generate = Dto_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}Dto.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //6ãçæ Export æä»¶ |
| | | str_generate = ExportModel_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}ExportModel.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //7ãçæ Import æä»¶ |
| | | str_generate = ImportModel_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(entityFilePath, $"{param.EntityName}sImportModel.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | #endregion |
| | | |
| | | #region AppSerivice |
| | | |
| | | //8ãçæ IAppService æä»¶ |
| | | var appServiceFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application.Contracts\Services"; |
| | | str_generate = IAppService_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(appServiceFilePath, $"I{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | //9ãçæ AppService æä»¶ |
| | | appServiceFilePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Application\Implements"; |
| | | str_generate = AppService_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(appServiceFilePath, $"{param.EntityName}AppService.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | |
| | | //çæServicesæ¥å£å®ç°æä»¶ |
| | | str_generate = Services_InterfaceRealize_Generate.CreateText(wcf_NameSpacePath, modulelogo, |
| | | entityName, chinaComment, filePrefixName, primaryKey, tableAlias, addEntityParam, columnList, groupName); |
| | | tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFaceRealize, filePrefixName, entityName, modulelogo); |
| | | #endregion |
| | | |
| | | #region Contorller |
| | | |
| | | //10ãçæ Contorller æä»¶ |
| | | var continerlllePath = tbPath.Text + @"\server\src\CMS.Plugin." + tb_WCF_NameSpacePath.Text.Trim() + @".Controller"; |
| | | str_generate = Controller_Generate.CreateText(param); |
| | | tf = TextHelper.Export2File_V2(continerlllePath, $"{param.EntityName}Controller.cs", tableName, str_generate, FileType.InputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | ////çæ OutputModel æä»¶ |
| | | //str_generate = OutputModel_Generate.CreateQueryModelLText(modulelogo, chinaComment, columnList, entityName); |
| | | //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.OutputModel, filePrefixName, entityName, modulelogo); |
| | | |
| | | ////çæControlleræä»¶ |
| | | ////str_generate = Controller_Generate.CreateText(modulelogo, chinaComment, columnList, entityName, orderByName); |
| | | ////tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.Controller, filePrefixName, entityName, modulelogo); |
| | | |
| | | ////çæServicesæ¥å£æä»¶ |
| | | //str_generate = Services_Interface_Generate.CreateText(wcf_NameSpacePath, modulelogo, entityName, chinaComment, addEntityParam); |
| | | //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFace, filePrefixName, entityName, modulelogo); |
| | | |
| | | |
| | | ////çæServicesæ¥å£å®ç°æä»¶ |
| | | //str_generate = Services_InterfaceRealize_Generate.CreateText(wcf_NameSpacePath, modulelogo, |
| | | // entityName, chinaComment, filePrefixName, primaryKey, tableAlias, addEntityParam, columnList, groupName); |
| | | //tf = TextHelper.Export2File(tbPath.Text, tableName, str_generate, FileType.WCF_InterFaceRealize, filePrefixName, entityName, modulelogo); |
| | | |
| | | /* |
| | | //çæåå¨è¿ç¨æä»¶ |
| | |
| | | } |
| | | //MessageBox.Show("çææä»¶æåï¼"); |
| | | //æåä¹åæå¼æä»¶å¤¹ |
| | | using (System.Diagnostics.Process.Start(this.tbPath.Text + "\\" + this.tb_TableName.Text)) |
| | | using (System.Diagnostics.Process.Start(this.tbPath.Text)) |
| | | { |
| | | |
| | | } |
| | |
| | | tb_EntityProName.Enabled = false; |
| | | tb_FileName.Enabled = false; |
| | | tb_Modulelogo.Enabled = false; |
| | | tb_WCF_NameSpacePath.Enabled = false; |
| | | tb_WCF_NameSpacePath.Enabled = true; |
| | | tb_RoutePrefix.Enabled = false; |
| | | } |
| | | |
| | |
| | | /// <summary> |
| | | /// æ¥æ |
| | | /// </summary> |
| | | dt_datetimeoffset = 13 |
| | | dt_datetimeoffset = 13, |
| | | /// <summary> |
| | | /// mysqlä¸longtextç±»å |
| | | /// </summary> |
| | | dt_longtext = 14, |
| | | |
| | | /// <summary> |
| | | /// mysqlä¸ TINYINT æ¯ä¸ç§æ´æ°æ°æ®ç±»åï¼ç¨äºåå¨é常å°çæ´æ°å¼,å ç¨ ââ1 åèï¼8ä½ï¼ââ åå¨ç©ºé´ãå¯ä»¥åå¨ -128 å° 127ï¼æç¬¦å·ï¼æ 0 å° 255ï¼æ 符å·ï¼çæ´æ°ã |
| | | /// æè¿è¾¹è®¤ä¸ºæ¯bool |
| | | /// </summary> |
| | | dt_tinyint = 15 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using GenerateCode_GEBrilliantFactory; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace GenerateCode_WeiBen_WMS.Model |
| | | { |
| | | /// <summary> |
| | | /// çæä»£ç åæ° |
| | | /// </summary> |
| | | public class GenerateCodeParam |
| | | { |
| | | /// <summary> |
| | | /// 模åç®å |
| | | /// </summary> |
| | | public string Modulelogo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä¸ææ³¨é |
| | | /// </summary> |
| | | public string ChinaComment { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ååå表 |
| | | /// </summary> |
| | | public List<ColumnModel> ColumnNameList { get; set; } = new List<ColumnModel>(); |
| | | |
| | | /// <summary> |
| | | /// å®ä½åç§° |
| | | /// </summary> |
| | | public string EntityName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å®ä½çå®ä¾å¯¹è±¡å |
| | | /// </summary> |
| | | public string EntityInstanceName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å½åç©ºé´ |
| | | /// </summary> |
| | | public string NameSpacePath { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 使ç¨çæä¸¾å表 |
| | | /// </summary> |
| | | public List<EnumModel> EnumList { get; set; } = new List<EnumModel>(); |
| | | } |
| | | |
| | | public class EnumModel |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾å±æ§å |
| | | /// </summary> |
| | | public string EnumAttrName { get; set; } |
| | | public string EnumType { get; set; } |
| | | public string EnumTypeDesc { get; set; } |
| | | |
| | | } |
| | | } |
| | |
| | | { |
| | | public static class SystemCommonVar |
| | | { |
| | | //public const string c_Id = "Id"; |
| | | |
| | | //public const string c_creator = "creator"; |
| | | |
| | | //public const string c_createTime = "createTime"; |
| | | |
| | | //public const string c_lastModifier = "lastModifier"; |
| | | |
| | | //public const string c_ModifyTime = "ModifyTime"; |
| | | |
| | | //public const string c_lastModifyTime = "lastModifyTime"; |
| | | |
| | | //public const string c_delFlag = "delFlag"; |
| | | |
| | | //public const string c_CreateId = "CreateId"; |
| | | |
| | | //public const string c_ModifyId = "ModifyId"; |
| | | |
| | | |
| | | public const string c_Id = "Id"; |
| | | |
| | | public const string c_creator = "CreatedUserName"; |
| | | |
| | | public const string c_createTime = "CreatedTime"; |
| | | public const string c_createTime = "CreationTime"; |
| | | |
| | | public const string c_lastModifier = "UpdatedUserName"; |
| | | |
| | | public const string c_ModifyTime = "UpdatedTime"; |
| | | public const string c_ModifyTime = "LastModificationTime"; |
| | | |
| | | public const string c_lastModifyTime = "UpdatedTime"; |
| | | public const string c_lastModifyTime = "DeletionTime"; |
| | | |
| | | public const string c_delFlag = "IsDeleted"; |
| | | |
| | | public const string c_CreateId = "CreatedUserId"; |
| | | public const string c_DeleterId = "DeleterId"; |
| | | |
| | | public const string c_ModifyId = "UpdatedUserId"; |
| | | public const string c_CreateId = "CreatorId"; |
| | | |
| | | public const string c_ModifyId = "LastModifierId"; |
| | | |
| | | public const string c_ExtraProperties = "ExtraProperties"; |
| | | |
| | | public const string c_ConcurrencyStamp = "ConcurrencyStamp"; |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityInstanceName$s; |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared.Util; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared.$EntityInstanceName$s; |
| | | using CMS.Plugin.$NameSpacePath$.Domain.$EntityInstanceName$s; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$åºç¨æå¡ |
| | | /// </summary> |
| | | public class $EntityName$AppService : CMSPluginAppService, I$EntityName$AppService |
| | | { |
| | | private readonly I$EntityName$Repository $EntityInstanceName$Repository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="$EntityName$AppService"/> class. |
| | | /// </summary> |
| | | /// <param name="$EntityName$Repository">The task job repository.</param> |
| | | public $EntityName$AppService(I$EntityName$Repository $EntityName$Repository) |
| | | { |
| | | $EntityInstanceName$Repository = $EntityName$Repository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<$EntityName$Dto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<$EntityName$, $EntityName$Dto>(await $EntityInstanceName$Repository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·å$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<$EntityName$Dto>> GetListAsync(Get$EntityName$Input input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof($EntityName$.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await $EntityInstanceName$Repository.GetCountAsync(whereConditions); |
| | | var list = await $EntityInstanceName$Repository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<$EntityName$Dto>(count, ObjectMapper.Map<List<$EntityName$>, List<$EntityName$Dto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<$EntityName$, bool>>> DynamicGetQueryParams(Get$EntityName$Input input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<$EntityName$, Get$EntityName$Input>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<$EntityName$, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<$EntityName$, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»º$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<$EntityName$Dto> CreateAsync($EntityName$CreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await $EntityInstanceName$Repository.NameExistAsync(input.MaterialCode); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); |
| | | } |
| | | |
| | | var maxSort = await $EntityInstanceName$Repository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var insertObj = ObjectMapper.Map<$EntityName$CreateDto, $EntityName$>(input); |
| | | insertObj.Sort = sort; |
| | | input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await $EntityInstanceName$Repository.InsertAsync(insertObj); |
| | | |
| | | if (input.Sort.HasValue && insertObj.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(insertObj.Id, insertObj.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<$EntityName$, $EntityName$Dto>(insertObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<$EntityName$Dto> UpdateAsync(Guid id, $EntityName$UpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var updateObj = await $EntityInstanceName$Repository.GetAsync(id); |
| | | var exist = await $EntityInstanceName$Repository.NameExistAsync(input.MaterialCode, updateObj.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); |
| | | } |
| | | |
| | | updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); |
| | | |
| | | $UpdateAttributes$ |
| | | |
| | | await $EntityInstanceName$Repository.UpdateAsync(updateObj); |
| | | |
| | | return ObjectMapper.Map<$EntityName$, $EntityName$Dto>(updateObj); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
é$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<$EntityName$Dto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var $EntityInstanceName$s = new List<$EntityName$>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await $EntityInstanceName$Repository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var $EntityName$ = await $EntityInstanceName$Repository.FindAsync(id); |
| | | // if ($EntityName$ != null) |
| | | // { |
| | | // var name = $EntityName$.Name + $EntityName$Consts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await $EntityInstanceName$Repository.NameExistAsync(name); |
| | | // if (exist || $EntityInstanceName$s.Any(x => x.Name == name)) |
| | | // { |
| | | // name += $EntityName$Consts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //$EntityName$ = await $EntityInstanceName$Repository.InsertAsync($EntityName$.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // $EntityInstanceName$s.Add($EntityName$); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<$EntityName$>, List<$EntityName$Dto>>($EntityInstanceName$s); |
| | | return new List<$EntityName$Dto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å个$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return $EntityInstanceName$Repository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ª$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await $EntityInstanceName$Repository.GetListAsync(null, nameof($EntityName$.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await $EntityInstanceName$Repository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync($EntityName$sImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var $EntityInstanceName$CreateDtos = new List<(int RowIndex, $EntityName$CreateDto Item)>(); |
| | | var $EntityInstanceName$UpdateDtos = new List<(int RowIndex, Guid Id, $EntityName$UpdateDto Item)>(); |
| | | var $EntityInstanceName$s = input.$EntityInstanceName$s; |
| | | |
| | | if ($EntityInstanceName$s != null && $EntityInstanceName$s.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicate$EntityName$s = $EntityInstanceName$s.GroupBy(x => x.MaterialCode).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicate$EntityName$s?.Any() == true) |
| | | { |
| | | var duplicate$EntityName$Msgs = duplicate$EntityName$s.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicate$EntityName$Msgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var $EntityInstanceName$ in $EntityInstanceName$s) |
| | | { |
| | | if ($EntityInstanceName$.MaterialCode.IsNullOrWhiteSpace() && $EntityInstanceName$.MaterialName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if ($EntityInstanceName$.MaterialCode.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{$EntityInstanceName$.RowIndex}è¡ï¼$EntityInstanceName$åç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var old$EntityName$ = await $EntityInstanceName$Repository.FindByNameAsync($EntityName$.MaterialCode); |
| | | if (old$EntityName$ != null) |
| | | { |
| | | var $EntityInstanceName$UpdateDto = new $EntityName$UpdateDto |
| | | { |
| | | $UpdateAttributesForImport$ |
| | | }; |
| | | |
| | | $EntityInstanceName$UpdateDtos.Add(($EntityName$.RowIndex, old$EntityName$.Id, $EntityInstanceName$UpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var $EntityName$CreateDto = new $EntityName$CreateDto |
| | | { |
| | | $UpdateAttributesForImport$ |
| | | }; |
| | | |
| | | $EntityInstanceName$CreateDtos.Add(($EntityName$.RowIndex, $EntityName$CreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var $EntityName$Dto in $EntityInstanceName$CreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync($EntityName$Dto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{$EntityName$Dto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var $EntityName$Dto in $EntityInstanceName$UpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync($EntityName$Dto.Id, $EntityName$Dto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{$EntityName$Dto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åº$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(Get$EntityName$Input input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof($EntityName$.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await $EntityInstanceName$Repository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<$EntityName$>, List<$EntityName$Dto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "$EntityName$å表" : result.Count == 1 ? result[0]?.MaterialCode : "$EntityName$模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éª$ChinaComment$ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync($EntityName$CreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | $UpdateAttributesForCheckCreateOrUpdateDtoAsync$ |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$s; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface I$EntityName$AppService : ICrudAppService<$EntityName$Dto, Guid, Get$EntityName$Input, $EntityName$CreateDto, $EntityName$UpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
é$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<$EntityName$Dto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync($EntityName$sImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åº$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(Get$EntityName$Input input); |
| | | } |
| | |
| | | using $ProjectNamePrefix$.Core.Common.HttpContextUser; |
| | | using $ProjectNamePrefix$.Core.Extensions.Others; |
| | | using $ProjectNamePrefix$.Core.IServices; |
| | | using $ProjectNamePrefix$.Core.Model; |
| | | using $ProjectNamePrefix$.Core.Model.CommonModel; |
| | | using $ProjectNamePrefix$.Core.Model.Models; |
| | | using $ProjectNamePrefix$.Core.Model.ParamModels; |
| | | using $ProjectNamePrefix$.Core.Utility; |
| | | using Ao.Lang; |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | using CMS.Plugin.$NameSpacePath$.Application.Contracts.Services; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Microsoft.Extensions.Logging; |
| | | using Newtonsoft.Json; |
| | | using System.Collections.Generic; |
| | | using System.Threading.Tasks; |
| | | using System; |
| | | using MiniExcelLibs; |
| | | using System.Reflection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace $ProjectNamePrefix$.Core.Api.Controllers |
| | | namespace CMS.Plugin.$NameSpacePath$.Controller |
| | | { |
| | | /// <summary> |
| | | /// $ChinaComment$ |
| | | /// $ChinaComment$æå¡ |
| | | /// </summary> |
| | | [Route("api/[controller]/[action]")] |
| | | [ApiController] |
| | | [Authorize(Permissions.Name)] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/$NameSpacePath$/[controller]")] |
| | | public class $EntityName$Controller : ControllerBase |
| | | { |
| | | private readonly I$EntityName$Services _$EntityName$Services; |
| | | private readonly IUser _user; |
| | | private readonly ILogger<$EntityName$Controller> _logger; |
| | | private readonly I$EntityName$AppService _$EntityInstanceName$AppService; |
| | | |
| | | public $EntityName$Controller(I$EntityName$Services $EntityName$Services, IUser user, ILogger<$EntityName$Controller> logger) |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="$EntityName$Controller"/> class. |
| | | /// </summary> |
| | | /// <param name="$EntityInstanceName$AppService">The $EntityInstanceName$ application service.</param> |
| | | public $EntityName$Controller(I$EntityName$AppService $EntityInstanceName$AppService) |
| | | { |
| | | _$EntityName$Services = $EntityName$Services; |
| | | _user = user; |
| | | _logger = logger; |
| | | _$EntityInstanceName$AppService = $EntityInstanceName$AppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·å$ChinaComment$å表 |
| | | /// è·å$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="param">ç鿡件</param> |
| | | /// <returns>è·åç»æ</returns> |
| | | [HttpPost] |
| | | public async Task<MessageModel<PageModel<$EntityName$>>> Get([FromBody] $EntityName$Param param) |
| | | { |
| | | if (string.IsNullOrEmpty(param.searchVal) || string.IsNullOrWhiteSpace(param.searchVal)) |
| | | { |
| | | param.searchVal = string.Empty; |
| | | } |
| | | |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<$EntityName$, $EntityName$Param>(param); |
| | | if (!whereConditions.IsSuccess) { |
| | | return new MessageModel<PageModel<$EntityName$>>() |
| | | { |
| | | msg = whereConditions.ErrMsg, |
| | | success = false, |
| | | response = null |
| | | }; |
| | | } |
| | | var data = await _$EntityName$Services.QueryPage(whereConditions.data, param.page, param.pageSize, " $OrderByName$ desc "); |
| | | return new MessageModel<PageModel<$EntityName$>>() |
| | | { |
| | | msg = "è·åæå", |
| | | success = true, |
| | | response = data |
| | | }; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå个$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id">主é®</param> |
| | | /// <returns>è·åç»æ</returns> |
| | | [HttpGet] |
| | | public async Task<MessageModel<$EntityName$>> Get(int id = 0) |
| | | { |
| | | return new MessageModel<$EntityName$>() |
| | | { |
| | | msg = "è·åæå", |
| | | success = true, |
| | | response = await _$EntityName$Services.QueryById(id) |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å¢$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="request">è¦æ°å¢ç$ChinaComment$对象</param> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("{id}")] |
| | | public virtual Task<$EntityName$Dto> GetAsync(Guid id) |
| | | { |
| | | return _$EntityInstanceName$AppService.GetAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·å$ChinaComment$çå表. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Page")] |
| | | public virtual Task<PagedResultDto<$EntityName$Dto>> GetListAsync([FromQuery] Get$EntityName$Input input) |
| | | { |
| | | return _$EntityInstanceName$AppService.GetListAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | public async Task<MessageModel<string>> Post([FromBody] $EntityName$ request) |
| | | public virtual Task<$EntityName$Dto> CreateAsync($EntityName$CreateDto input) |
| | | { |
| | | try |
| | | { |
| | | #region éªè¯ |
| | | MessageModel<string> retBody = null; |
| | | retBody = ValidateDataHelper.CommonValidateIsNULL<$EntityName$, string>(request); |
| | | if (retBody != null) |
| | | { |
| | | return retBody; |
| | | } |
| | | |
| | | List<ValidateModel> columnsList = null; |
| | | columnsList = new List<ValidateModel>() { |
| | | $ValidateEmptyForInsert$ |
| | | }; |
| | | retBody = ValidateDataHelper.CommonValidate<$EntityName$, string>(request, columnsList); |
| | | if (retBody != null) |
| | | { |
| | | return retBody; |
| | | } |
| | | #endregion |
| | | |
| | | request.CreateTime = request.ModifyTime = DateTime.Now; |
| | | request.CreateBy = request.ModifyBy = _user.Name; |
| | | request.CreateId = request.ModifyId = _user.ID; |
| | | request.OperationRemark = "æ·»å "; |
| | | var id = await _$EntityName$Services.Add(request); |
| | | var success = id > 0; |
| | | |
| | | if (success) |
| | | { |
| | | return MessageModel<string>.Success("æ·»å æå", id.ObjToString()); |
| | | } |
| | | return MessageModel<string>.Fail("æ·»å 失败"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogError(ex,"æ°å¢$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | return MessageModel<string>.Fail("æ°å¢$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | } |
| | | return _$EntityInstanceName$AppService.CreateAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="request">è¦æ´æ°ç$ChinaComment$对象</param> |
| | | /// <returns>æ´æ°ç»æ</returns> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPut] |
| | | public async Task<MessageModel<string>> Put([FromBody] $EntityName$ request) |
| | | [Route("{id}")] |
| | | public virtual Task<$EntityName$Dto> UpdateAsync(Guid id, $EntityName$UpdateDto input) |
| | | { |
| | | try |
| | | { |
| | | #region éªè¯ |
| | | MessageModel<string> retBody = null; |
| | | retBody = ValidateDataHelper.CommonValidateIsNULL<$EntityName$, string>(request); |
| | | if (retBody != null) |
| | | { |
| | | return retBody; |
| | | return _$EntityInstanceName$AppService.UpdateAsync(id, input); |
| | | } |
| | | |
| | | List<ValidateModel> columnsList = null; |
| | | columnsList = new List<ValidateModel>() |
| | | /// <summary> |
| | | /// å
é$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="ids">Idéå.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | [Route("Clone")] |
| | | public virtual Task<List<$EntityName$Dto>> CloneAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | $ValidateEmptyForUpdate$ |
| | | }; |
| | | retBody = ValidateDataHelper.CommonValidate<$EntityName$, string>(request, columnsList); |
| | | if (retBody != null) |
| | | { |
| | | return retBody; |
| | | } |
| | | #endregion |
| | | |
| | | var dbObj = await _$EntityName$Services.QueryById(request.Id); |
| | | if (dbObj == null) |
| | | { |
| | | return MessageModel<string>.Fail("æ°æ®ä¸åå¨!"); |
| | | } |
| | | |
| | | request.ModifyTime = DateTime.Now; |
| | | request.ModifyBy = _user.Name; |
| | | request.ModifyId = _user.ID; |
| | | request.OperationRemark = "æ´æ°"; |
| | | var success = await _$EntityName$Services.Update(request); |
| | | |
| | | if (success) |
| | | { |
| | | return MessageModel<string>.Success("æ´æ°æå", request.Id.ObjToString()); |
| | | } |
| | | return MessageModel<string>.Fail("æ´æ°å¤±è´¥"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogError(ex,"æ´æ°$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | return MessageModel<string>.Fail("æ´æ°$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | } |
| | | return _$EntityInstanceName$AppService.CloneAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id">主é®</param> |
| | | /// <returns>å é¤ç»æ</returns> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public async Task<MessageModel<string>> Delete(int id = 0) |
| | | [Route("{id}")] |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | try |
| | | { |
| | | var data = new MessageModel<string>(); |
| | | if (id > 0) |
| | | { |
| | | var detail = await _$EntityName$Services.QueryById(id); |
| | | if (detail != null) |
| | | { |
| | | data.success = await _$EntityName$Services.DeleteById(detail.Id); |
| | | if (data.success) |
| | | { |
| | | data.msg = "å 餿å"; |
| | | data.response = detail?.Id.ObjToString(); |
| | | } |
| | | } |
| | | else { |
| | | return MessageModel<string>.Fail("æ°æ®ä¸åå¨!"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | data.success = false; |
| | | data.msg = "å é¤å¤±è´¥,$ChinaComment$ä¸åå¨"; |
| | | } |
| | | return data; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogError(ex,"å é¤$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | return MessageModel<string>.Fail("å é¤$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | } |
| | | return _$EntityInstanceName$AppService.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é»è¾å é¤$ChinaComment$ |
| | | /// æ¹éå é¤$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id">主é®</param> |
| | | /// <returns>å é¤ç»æ</returns> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public async Task<MessageModel<string>> LogicDelete(int id = 0) |
| | | public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | try |
| | | { |
| | | var data = new MessageModel<string>(); |
| | | if (id > 0) |
| | | { |
| | | var detail = await _$EntityName$Services.QueryById(id); |
| | | if (detail != null) |
| | | { |
| | | detail.ModifyTime = DateTime.Now; |
| | | detail.ModifyBy = _user.Name; |
| | | detail.ModifyId = _user.ID; |
| | | detail.IsDeleted = true; |
| | | detail.OperationRemark = "å é¤"; |
| | | data.success = await _$EntityName$Services.Update(detail); |
| | | if (data.success) |
| | | { |
| | | data.msg = "å 餿å"; |
| | | data.response = detail?.Id.ObjToString(); |
| | | return _$EntityInstanceName$AppService.DeleteManyAsync(ids); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº$ChinaComment$ |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpPut] |
| | | [Route("{id}/AdjustSort/{sort}")] |
| | | public virtual Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | data.success = false; |
| | | data.msg = "å é¤å¤±è´¥,æ°æ®ä¸åå¨"; |
| | | return _$EntityInstanceName$AppService.AdjustSortAsync(id, sort); |
| | | } |
| | | return data; |
| | | } |
| | | catch (Exception ex) |
| | | |
| | | /// <summary> |
| | | /// 导å
¥$ChinaComment$ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | [Route("Import")] |
| | | public virtual async Task<IActionResult> ImportAsync(IFormFile file) |
| | | { |
| | | _logger.LogError(ex,"é»è¾å é¤$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | return MessageModel<string>.Fail("é»è¾å é¤$ChinaComment$åºç°å¼å¸¸:" + ex.Message); |
| | | using var stream = new MemoryStream(); |
| | | await file.CopyToAsync(stream); |
| | | stream.Seek(0L, SeekOrigin.Begin); |
| | | |
| | | var sheetNames = stream.GetSheetNames(); |
| | | var $EntityInstanceName$Rows = sheetNames.Contains("é
ç½®") ? MiniExcel.Query<$EntityName$sImportModel.$EntityName$ImportModel>(stream, sheetName: "é
ç½®").ToList() : new(); |
| | | |
| | | if (!$EntityInstanceName$Rows.Any()) |
| | | { |
| | | throw new UserFriendlyException("è¯·æ£æ¥å¯¼å
¥çè¡¨æ ¼"); |
| | | } |
| | | |
| | | await _$EntityInstanceName$AppService.ImportAsync(new $EntityName$sImportModel |
| | | { |
| | | $EntityName$s = $EntityInstanceName$Rows, |
| | | }); |
| | | |
| | | return Ok(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åº$ChinaComment$ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Export")] |
| | | public virtual async Task<IActionResult> ExportAsync([FromQuery] Get$EntityName$Input input) |
| | | { |
| | | input.MaxResultCount = int.MaxValue; |
| | | var exportData = await _$EntityInstanceName$AppService.ExportAsync(input); |
| | | var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/$EntityName$å¯¼åºæ¨¡æ¿.xlsx"); |
| | | if (!System.IO.File.Exists(templatePath)) |
| | | { |
| | | templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/$EntityName$å¯¼åºæ¨¡æ¿.xlsx"); |
| | | } |
| | | |
| | | var memoryStream = new MemoryStream(); |
| | | await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); |
| | | memoryStream.Seek(0L, SeekOrigin.Begin); |
| | | return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$åå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class $EntityName$CreateDto : $EntityName$CreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class $EntityName$CreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | $AddAttributes$ |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="$EntityName$CreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public $EntityName$CreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.$NameSpacePath$.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$æ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class $EntityName$Dto: ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | $AddAttributesForDto$ |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$å¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class $EntityName$ExportModel |
| | | { |
| | | $AddAttributes$ |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$ |
| | | { |
| | | /// <summary> |
| | | /// $ChinaComment$导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class $EntityName$sImportModel |
| | | { |
| | | private List<$EntityName$ImportModel> _$EntityName$s = new(); |
| | | |
| | | public List<$EntityName$ImportModel> $EntityName$s |
| | | { |
| | | get => _$EntityName$s; |
| | | set |
| | | { |
| | | _$EntityName$s = value; |
| | | var rowIndex = 2; |
| | | _$EntityName$s?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class $EntityName$ImportModel : MaterialExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class Get$EntityName$Input : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | $QueryAttributes$ |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | namespace CMS.Plugin.$NameSpacePath$.Application.Contracts.Dtos.$EntityName$; |
| | | |
| | | /// <summary> |
| | | /// $ChinaComment$æ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class $EntityName$UpdateDto : $EntityName$CreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
| | |
| | | using System; |
| | | using GenerateCode_GEBrilliantFactory.Model; |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Data; |
| | |
| | | public class CommonHelper |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å¿½ç¥è¯¥å |
| | | /// </summary> |
| | | /// <param name="columnName"></param> |
| | | /// <returns></returns> |
| | | public static bool IsIgnore(string columnName) |
| | | { |
| | | if (columnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() |
| | | || columnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() |
| | | ) |
| | | { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¿æ¢å符串 |
| | | /// </summary> |
| | | /// <param name="param"></param> |
| | | /// <param name="str"></param> |
| | | public static void CommonReplaceStr(GenerateCodeParam param, ref string str) |
| | | { |
| | | str = str.Replace("$NameSpacePath$", param.NameSpacePath);//å½åç©ºé´ |
| | | str = str.Replace("$ChinaComment$", param.ChinaComment);//ä¸ææ³¨é |
| | | str = str.Replace("$EntityName$", param.EntityName);//å®ä½ç±»å |
| | | str = str.Replace("$Modulelogo$", param.Modulelogo);//模åç®å |
| | | str = str.Replace("$EntityInstanceName$", param.EntityInstanceName);//å®ä¾å |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é¦åæ¯å°å |
| | |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeleterId.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper() |
| | | ) |
| | | { |
| | | continue; |
| | | } |
| | | newList.Add(columnModel); |
| | | } |
| | | return newList; |
| | | } |
| | | |
| | | public static List<ColumnModel> RemoveAttrForExport(List<ColumnModel> columnNameList) |
| | | { |
| | | List<ColumnModel> newList = new List<ColumnModel>(); |
| | | ColumnModel columnModel = null; |
| | | for (int i = 0; i < columnNameList.Count; i++) |
| | | { |
| | | columnModel = columnNameList[i]; |
| | | if (columnModel.ColumnName.ToUpper() == SystemCommonVar.c_creator.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_createTime.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifier.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_lastModifyTime.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyTime.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_Id.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ExtraProperties.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ConcurrencyStamp.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_DeleterId.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_delFlag.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_CreateId.ToUpper() |
| | | || columnModel.ColumnName.ToUpper() == SystemCommonVar.c_ModifyId.ToUpper() |
| | | |
| | | ) |
| | | { |
| | | continue; |
| | |
| | | using System; |
| | | using GenerateCode_WeiBen_WMS.Model; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Configuration; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Linq; |
| | | using System.Text; |
| | | |
| | | namespace GenerateCode_GEBrilliantFactory |
| | |
| | | /// </summary> |
| | | /// <param name="columnModel"></param> |
| | | /// <returns></returns> |
| | | public static string GenerateAttributeForAddModel(ColumnModel columnModel) |
| | | public static string GenerateAttributeForAddModel(ColumnModel columnModel, GenerateCodeParam param) |
| | | { |
| | | try |
| | | { |
| | |
| | | case DataTypeEnum.dt_datetime: |
| | | case DataTypeEnum.dt_datetime2: |
| | | case DataTypeEnum.dt_datetimeoffset: |
| | | attrStr += " //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§\n"; |
| | | attrStr += " [HighSearchRangeAttribute]\n"; |
| | | attrStr += " public List<string>" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += " public datetime" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | case DataTypeEnum.dt_bigint: |
| | |
| | | break; |
| | | case DataTypeEnum.dt_int: |
| | | if (columnModel.IsNullable) { str_NullFlag = "? "; } |
| | | var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault(); |
| | | if (findEnumObj != null) |
| | | { |
| | | attrStr += $" public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | } |
| | | else |
| | | { |
| | | attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | } |
| | | break; |
| | | default: |
| | | attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | } |
| | | |
| | | return attrStr; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// çæå±æ§å符串ForAddModel-æ´æ°å®ä½ä¸ç¨ |
| | | /// </summary> |
| | | /// <param name="columnModel"></param> |
| | | /// <returns></returns> |
| | | public static string GenerateAttributeForUpdateModel(ColumnModel columnModel, GenerateCodeParam param) |
| | | { |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | |
| | | string attrStr = ""; |
| | | attrStr += $" updateObj.{attr} = input.{attr};\n"; |
| | | |
| | | |
| | | return attrStr; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// çæå±æ§å符串ForAddModel-æ´æ°å®ä½ä¸ç¨(导å
¥æ¶) |
| | | /// </summary> |
| | | /// <param name="columnModel"></param> |
| | | /// <returns></returns> |
| | | public static string GenerateAttributeForUpdateModelByImport(ColumnModel columnModel, GenerateCodeParam param) |
| | | { |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | |
| | | string attrStr = ""; |
| | | attrStr += $" {attr} = {param.EntityInstanceName}.{attr};\n"; |
| | | |
| | | |
| | | return attrStr; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// çæå±æ§å符串ForAddModel-CheckCreateOrUpdateDtoAsyncä¸ç¨ |
| | | /// </summary> |
| | | /// <param name="columnModel"></param> |
| | | /// <returns></returns> |
| | | public static string GenerateAttributeForCheckCreateOrUpdateDtoAsync(ColumnModel columnModel, GenerateCodeParam param) |
| | | { |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | |
| | | string attrStr = ""; |
| | | bool isHaveMaxLength = false; |
| | | if (!string.IsNullOrEmpty(columnModel.DataLength)) |
| | | { |
| | | isHaveMaxLength = true; |
| | | } |
| | | if (columnModel.IsNullable == false) |
| | | {//å¿
å¡« |
| | | DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); |
| | | switch (myDataType) |
| | | { |
| | | case DataTypeEnum.dt_datetime: |
| | | case DataTypeEnum.dt_datetime2: |
| | | case DataTypeEnum.dt_datetimeoffset: |
| | | if (isHaveMaxLength) |
| | | { |
| | | attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; |
| | | } |
| | | else |
| | | { |
| | | attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n"; |
| | | } |
| | | break; |
| | | case DataTypeEnum.dt_bigint: |
| | | if (isHaveMaxLength) |
| | | { |
| | | attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; |
| | | } |
| | | else |
| | | { |
| | | attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n"; |
| | | } |
| | | break; |
| | | case DataTypeEnum.dt_int: |
| | | case DataTypeEnum.dt_tinyint: |
| | | if (isHaveMaxLength) |
| | | { |
| | | attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; |
| | | } |
| | | else |
| | | { |
| | | attrStr += $" Check.NotNull(input.{attr}, \"{columnModel.Description}\");\n"; |
| | | } |
| | | break; |
| | | default: |
| | | if (isHaveMaxLength) |
| | | { |
| | | attrStr += $" Check.NotNullOrWhiteSpace(input.{attr}, \"{columnModel.Description}\", {columnModel.DataLength});\n"; |
| | | } |
| | | else |
| | | { |
| | | attrStr += $" Check.NotNullOrWhiteSpace(input.{attr}, \"{columnModel.Description}\");\n"; |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | return attrStr; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// çæå±æ§å符串ForAddModel-Dtoå®ä½ä¸ç¨ |
| | | /// </summary> |
| | | /// <param name="columnModel"></param> |
| | | /// <returns></returns> |
| | | public static string GenerateAttributeForDto(ColumnModel columnModel, GenerateCodeParam param) |
| | | { |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | //if (attr.ToUpper() == "DBId".ToUpper()) |
| | | //{ |
| | | // var bb = ""; |
| | | //} |
| | | string str_NullFlag = " "; |
| | | |
| | | string attrStr = ""; |
| | | attrStr += " /// <summary>\n"; |
| | | attrStr += " /// " + columnModel.Description + "\n"; |
| | | attrStr += " /// </summary>\n"; |
| | | |
| | | DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); |
| | | switch (myDataType) |
| | | { |
| | | case DataTypeEnum.dt_datetime: |
| | | case DataTypeEnum.dt_datetime2: |
| | | case DataTypeEnum.dt_datetimeoffset: |
| | | attrStr += " public datetime" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | case DataTypeEnum.dt_bigint: |
| | | if (columnModel.IsNullable) { str_NullFlag = "? "; } |
| | | attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | case DataTypeEnum.dt_int: |
| | | if (columnModel.IsNullable) { str_NullFlag = "? "; } |
| | | var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault(); |
| | | if (findEnumObj != null) |
| | | { |
| | | attrStr += $" public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | } |
| | | else |
| | | { |
| | | attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | } |
| | | |
| | | break; |
| | | default: |
| | | attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | } |
| | | |
| | | //å¢å 对æä¸¾ç±»åçæ¯æ |
| | | if (param.EnumList?.Count > 0) |
| | | { |
| | | var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault(); |
| | | if (findEnumObj != null) |
| | | { |
| | | attrStr += " /// <summary>\n"; |
| | | attrStr += " /// " + columnModel.Description + "\n"; |
| | | attrStr += " /// </summary>\n"; |
| | | attrStr += " public string" + str_NullFlag + findEnumObj.EnumTypeDesc + " { get; set; }\n"; |
| | | attrStr += " { \n"; |
| | | attrStr += " get \n"; |
| | | attrStr += " { \n"; |
| | | attrStr += $" return GetEnumDescriptionUtil.GetEnumDescription({findEnumObj.EnumAttrName}); \n"; |
| | | attrStr += " } \n"; |
| | | attrStr += " } \n"; |
| | | } |
| | | } |
| | | |
| | | return attrStr; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// çæå±æ§å符串ForAddModel-Exportå®ä½ä¸ç¨ |
| | | /// </summary> |
| | | /// <param name="columnModel"></param> |
| | | /// <returns></returns> |
| | | public static string GenerateAttributeForExport(ColumnModel columnModel, GenerateCodeParam param) |
| | | { |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | //if (attr.ToUpper() == "DBId".ToUpper()) |
| | | //{ |
| | | // var bb = ""; |
| | | //} |
| | | string str_NullFlag = " "; |
| | | |
| | | string attrStr = ""; |
| | | attrStr += " /// <summary>\n"; |
| | | attrStr += " /// " + columnModel.Description + "\n"; |
| | | attrStr += " /// </summary>\n"; |
| | | attrStr += $" [ExcelColumn(Name = \"{columnModel.Description}\", Width = 25)]\n"; |
| | | |
| | | DataTypeEnum myDataType = (DataTypeEnum)Enum.Parse(typeof(DataTypeEnum), "dt_" + columnModel.DataType); |
| | | switch (myDataType) |
| | | { |
| | | case DataTypeEnum.dt_datetime: |
| | | case DataTypeEnum.dt_datetime2: |
| | | case DataTypeEnum.dt_datetimeoffset: |
| | | attrStr += " public datetime" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | case DataTypeEnum.dt_bigint: |
| | | if (columnModel.IsNullable) { str_NullFlag = "? "; } |
| | | attrStr += " public long" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | case DataTypeEnum.dt_int: |
| | | if (columnModel.IsNullable) { str_NullFlag = "? "; } |
| | | var findEnumObj = param.EnumList.Where(x => x.EnumAttrName == attr).FirstOrDefault(); |
| | | if (findEnumObj != null) |
| | | { |
| | | attrStr += $" public {findEnumObj.EnumType}" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | } |
| | | else |
| | | { |
| | | attrStr += " public int" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | } |
| | | |
| | | break; |
| | | default: |
| | | attrStr += " public string" + str_NullFlag + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | } |
| | | |
| | | |
| | | |
| | | return attrStr; |
| | | } |
| | |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | if (CommonHelper.IsIgnore(attr)) |
| | | { |
| | | return ""; |
| | | } |
| | | //if (attr.ToUpper() == "DBId".ToUpper()) |
| | | //{ |
| | | // var bb = ""; |
| | |
| | | attrStr += " public int" + str_NullFlag + emptyStr + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | case DataTypeEnum.dt_tinyint: |
| | | attrStr += " public bool" + str_NullFlag + emptyStr + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | | default: |
| | | attrStr += " public string" + emptyStr + attr + " { get; set; }\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | |
| | | try |
| | | { |
| | | string attr = columnModel.ColumnName; |
| | | if (CommonHelper.IsIgnore(attr)) |
| | | { |
| | | return ""; |
| | | } |
| | | |
| | | string attrStr = ""; |
| | | attrStr += " /// <summary>\n"; |
| | | attrStr += " /// " + columnModel.Description + "-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ \n"; |
| | |
| | | return "\n"; |
| | | case DataTypeEnum.dt_bigint: |
| | | case DataTypeEnum.dt_int: |
| | | case DataTypeEnum.dt_tinyint: |
| | | attrStr += " public SearchFilterModeEnum " + attr + highSearchModeSuffix + " { get; set; }= SearchFilterModeEnum.ç²¾åæ¥è¯¢;\n"; |
| | | attrStr += "\n";//æåæ¯å ä¸ä¸ªç©ºæ ¼ |
| | | break; |
| | |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// çææä»¶ |
| | | /// </summary> |
| | | /// <param name="_strPath">è·¯å¾</param> |
| | | /// <param name="_tableName">表å</param> |
| | | /// <param name="_code">çæç代ç å符串</param> |
| | | /// <param name="fileType">çæçæä»¶ç±»å</param> |
| | | /// <param name="filePrefixName">åç¼</param> |
| | | /// <param name="entityName">å®ä½ç±»å</param> |
| | | /// <param name="modulelogo">模ååå</param> |
| | | /// <returns></returns> |
| | | public static bool Export2File_V2(string _strPath,string fileName, string _tableName, string _code, FileType fileType, |
| | | string filePrefixName, string entityName, string modulelogo) |
| | | { |
| | | string fileFolderPath = _strPath + "\\"; |
| | | |
| | | //string fileTypeName = ""; |
| | | //switch (fileType) |
| | | //{ |
| | | // case FileType.Model: |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.AddModelParam: |
| | | // entityName = "Add" + modulelogo + "Param"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.IBLL: |
| | | // entityName = "I" + filePrefixName + "BLL"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.Controller: |
| | | // entityName = entityName + "Controller"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.JS: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = ".js"; |
| | | // break; |
| | | // case FileType.CSHTML_List: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = ".cshtml"; |
| | | // break; |
| | | // case FileType.CSHTML_Detail: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = "Detail.cshtml"; |
| | | // break; |
| | | // case FileType.XML: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = ".xml"; |
| | | // break; |
| | | // case FileType.Proc: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = "Proc.sql"; |
| | | // break; |
| | | // case FileType.DAL: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = "DAL.cs"; |
| | | // break; |
| | | // case FileType.BLL: |
| | | // entityName = filePrefixName; |
| | | // fileTypeName = "BLL.cs"; |
| | | // break; |
| | | // case FileType.InputModel: |
| | | // entityName = entityName + "Input"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.OutputModel: |
| | | // entityName = entityName + "Output"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.WCF_InterFace: |
| | | // entityName = "I" + entityName + "Service"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.WCF_InterFaceRealize: |
| | | // entityName = entityName + "Service"; |
| | | // fileTypeName = ".cs"; |
| | | // break; |
| | | // case FileType.SQL_Insert: |
| | | // entityName = _tableName + "InsertSQL"; |
| | | // fileTypeName = ".txt"; |
| | | // break; |
| | | // case FileType.VUE_FunConfig: |
| | | // entityName = _tableName + "VUEæ¹æ³é
ç½®"; |
| | | // fileTypeName = ".txt"; |
| | | // break; |
| | | // case FileType.VUEFile: |
| | | // entityName = modulelogo; |
| | | // fileTypeName = ".vue"; |
| | | // break; |
| | | //} |
| | | if (!Directory.Exists(fileFolderPath)) |
| | | { |
| | | Directory.CreateDirectory(fileFolderPath); |
| | | } |
| | | string filePath = fileFolderPath + "\\" + fileName; |
| | | using (StreamWriter outfile = new StreamWriter(filePath, false, Encoding.GetEncoding("UTF-8"))) |
| | | { |
| | | outfile.Write(_code); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | $ChinaComment$ |
| | | |
| | | $EntityName$ |
| | | |
| | | $NameSpacePath$ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # Paths |
| | | $rootFolder = (Get-Item -Path "./" -Verbose).FullName |
| | | |
| | | $serverFolder = Join-Path $rootFolder ("/server") |
| | | |
| | | Set-Location $serverFolder |
| | | & dotnet tool install --global dotnet-ef |
| | | |
| | | & dotnet restore -s https://nexus.sycdev.com/repository/nuget-group/index.json |
| | | |
| | | $migrationFolder = Join-Path $serverFolder ("/src/CMS.Plugin.HIAWms.MySQL") |
| | | Set-Location $migrationFolder |
| | | dotnet ef migrations add InitialCreate -c CMSPluginDbContext -o Migrations |
| | | |
| | | Set-Location $serverFolder |
| | | & dotnet build |
| | | |
| | | Set-Location $rootFolder |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # Paths |
| | | $rootFolder = (Get-Item -Path "./" -Verbose).FullName |
| | | |
| | | $webFolder = Join-Path $rootFolder ("/web") |
| | | |
| | | Set-Location $rootFolder |
| | | & npm install yarn -g |
| | | & npm install lmes-cli -g |
| | | |
| | | & lmes-cli create web |
| | | |
| | | Set-Location $webFolder |
| | | & yarn |
| | | & npm run build |
| | | |
| | | Set-Location $rootFolder |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | </PropertyGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | Microsoft Visual Studio Solution File, Format Version 12.00 |
| | | # Visual Studio Version 17 |
| | | VisualStudioVersion = 17.4.33213.308 |
| | | MinimumVisualStudioVersion = 10.0.40219.1 |
| | | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CmsQueryExtensions", "CmsQueryExtensions.csproj", "{D2B006DA-D473-4E98-A588-C1F52945A027}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | | Debug|Any CPU = Debug|Any CPU |
| | | Release|Any CPU = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
| | | {D2B006DA-D473-4E98-A588-C1F52945A027}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {D2B006DA-D473-4E98-A588-C1F52945A027}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {D2B006DA-D473-4E98-A588-C1F52945A027}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {D2B006DA-D473-4E98-A588-C1F52945A027}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| | | EndGlobalSection |
| | | GlobalSection(ExtensibilityGlobals) = postSolution |
| | | SolutionGuid = {912E75B5-EC51-46E7-B058-838F9373EC2E} |
| | | EndGlobalSection |
| | | EndGlobal |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | /// </summary> |
| | | public class HighSearchRangeAttribute : Attribute |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// ä¸èªå¨æ¥è¯¢ç¹æ§ |
| | | /// ç¨äºä¸éè¦èªå¨åè§£æ¥è¯¢çåæ®µ |
| | | /// </summary> |
| | | public class NoAutoQueryAttribute : Attribute |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// æ¹æ³è¿åå®ä½ç±» |
| | | /// </summary> |
| | | public class FunReturnResultModel |
| | | { |
| | | public FunReturnResultModel() |
| | | { |
| | | this.IsSuccess = false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ§è¡æ¯å¦æå |
| | | /// </summary> |
| | | public bool IsSuccess { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè¯¯ä¿¡æ¯ |
| | | /// </summary> |
| | | public string ErrMsg { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¹æ³è¿åå®ä½ç±» |
| | | /// </summary> |
| | | public class FunReturnResultModel<T> |
| | | { |
| | | /// <summary> |
| | | /// æ§è¡æ¯å¦æå |
| | | /// </summary> |
| | | public bool IsSuccess { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè¯¯ä¿¡æ¯ |
| | | /// </summary> |
| | | public string ErrMsg { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¿åæ°æ® |
| | | /// </summary> |
| | | public T data { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// ç³»ç»éç¨ç常é |
| | | /// </summary> |
| | | public static class SystemCommonVar |
| | | { |
| | | /// <summary> |
| | | /// éç¨çæ¥è¯¢å符串 |
| | | /// </summary> |
| | | public const string searchVal = "searchVal"; |
| | | |
| | | /// <summary> |
| | | /// é«çº§æ¥è¯¢çåç¼å |
| | | /// </summary> |
| | | public const string highSearchModeSuffix = "_FilterMode"; |
| | | |
| | | |
| | | /// <summary> |
| | | /// éç¨çæ¥è¯¢å符串çé
ç½®æ¨¡å¼ |
| | | /// </summary> |
| | | public const string searchVal_FilterMode = searchVal + highSearchModeSuffix; |
| | | |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éç屿§å |
| | | /// </summary> |
| | | public const string searchFormInputAttrs = "searchFormInputAttrs"; |
| | | |
| | | /// <summary> |
| | | /// CMSç³»ç»ä¸ç¨çä¸äºæ¥è¯¢è¿æ»¤åæ° |
| | | /// </summary> |
| | | public const string cms_no_query = "str_searchFormInputAttrs|Sorting|SkipCount|DefaultMaxResultCount|MaxMaxResultCount|MaxResultCount|"; |
| | | |
| | | /// <summary> |
| | | /// éç¨çæ¥è¯¢åæ°ç±»çç¶ç±»ä¸çåæ®µ |
| | | /// </summary> |
| | | public const string commnParamFatherPros = cms_no_query + "SortField|SortOrder|DescStr|PageNo|PageSize|page|pageSize|" + searchVal + "|" + searchVal_FilterMode + "|" + searchFormInputAttrs; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// é«çº§æ¥è¯¢å®ä½ |
| | | /// </summary> |
| | | public class HighSearchModel |
| | | { |
| | | public string fieldName { get; set; } |
| | | |
| | | public string fieldValue { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç鿍¡å¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum filterMode { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é«çº§æ¥æèå´æ¥è¯¢å®ä½ |
| | | /// </summary> |
| | | public class HighSearchForDateTimeRangeModel |
| | | { |
| | | public string fieldName { get; set; } |
| | | |
| | | public string start_fieldValue { get; set; } |
| | | |
| | | public string end_fieldValue { get; set; } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½®æ¨¡å¼ |
| | | /// </summary> |
| | | public enum SearchFilterModeEnum |
| | | { |
| | | ä¸çé = 0, |
| | | æ¨¡ç³æ¥è¯¢ = 1, |
| | | ç²¾åæ¥è¯¢ = 2, |
| | | 大äºçäº = 3, |
| | | å°äºçäº = 4, |
| | | å¤§äº = 5, |
| | | å°äº = 6, |
| | | ä¸çäº = 7 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Reflection; |
| | | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// ç±»å¸®å© |
| | | /// </summary> |
| | | public class ClassHelper |
| | | { |
| | | /// <summary> |
| | | /// å®ä½äºè½¬ |
| | | /// </summary> |
| | | /// <typeparam name="T">æ°è½¬æ¢çå®ä½</typeparam> |
| | | /// <typeparam name="S">è¦è½¬æ¢çå®ä½</typeparam> |
| | | /// <param name="s"></param> |
| | | /// <returns></returns> |
| | | public static T RotationMapping<T, S>(S s) |
| | | { |
| | | T target = Activator.CreateInstance<T>(); |
| | | var originalObj = s.GetType(); |
| | | var targetObj = typeof(T); |
| | | foreach (PropertyInfo original in originalObj.GetProperties()) |
| | | { |
| | | foreach (PropertyInfo t in targetObj.GetProperties()) |
| | | { |
| | | if (t.Name == original.Name) |
| | | { |
| | | t.SetValue(target, original.GetValue(s, null), null); |
| | | } |
| | | } |
| | | } |
| | | return target; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å屿§å¯¹è±¡å表 |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="proName"></param> |
| | | /// <param name="errMsg"></param> |
| | | /// <returns></returns> |
| | | public static PropertyInfo[] GetPropertyInfoList<T>(T t) |
| | | { |
| | | var pros = typeof(T).GetProperties(); |
| | | return pros; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å屿§å¯¹è±¡ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="proName"></param> |
| | | /// <param name="errMsg"></param> |
| | | /// <returns></returns> |
| | | public static PropertyInfo GetPropertyInfo<T>(T t, string proName, out string errMsg) |
| | | { |
| | | errMsg = ""; |
| | | var pro = typeof(T).GetProperty(proName); |
| | | if (pro == null) |
| | | { |
| | | errMsg = "屿§å'" + proName + "'ä¸åå¨ç±»'" + typeof(T).Name + "'ä¸"; |
| | | return null; |
| | | } |
| | | return pro; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å屿§çå¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="proName"></param> |
| | | /// <param name="errMsg"></param> |
| | | /// <returns></returns> |
| | | public static string GetPropertyValue<T>(T t, string proName, out string errMsg) |
| | | { |
| | | var pro = GetPropertyInfo(t, proName, out errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | return string.Empty; |
| | | } |
| | | var pro_value = pro.GetValue(t, null); |
| | | var str = pro_value == null ? string.Empty : Convert.ToString(pro_value); |
| | | return str; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å屿§çå¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="proName"></param> |
| | | /// <param name="errMsg"></param> |
| | | /// <returns></returns> |
| | | public static object GetPropertyValueForReObject<T>(T t, string proName, out string errMsg) |
| | | { |
| | | var pro = GetPropertyInfo(t, proName, out errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | return null; |
| | | } |
| | | var pro_value = pro.GetValue(t, null); |
| | | var str = pro_value == null ? null : (pro_value); |
| | | return str; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// éè¿å±æ§å¯¹è±¡è·å屿§çå¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="pro"></param> |
| | | /// <returns></returns> |
| | | public static string GetPropertyValueByObject<T>(T t, PropertyInfo pro) |
| | | { |
| | | var pro_value = pro.GetValue(t, null); |
| | | var str = pro_value == null ? string.Empty : Convert.ToString(pro_value); |
| | | return str; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿å±æ§å¯¹è±¡è·å屿§çå¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="pro"></param> |
| | | /// <returns></returns> |
| | | public static object GetPropertyValue<T>(T t, PropertyInfo pro) |
| | | { |
| | | var pro_value = pro.GetValue(t, null); |
| | | return pro_value; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åç¹æ§ãé«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ã |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="pro"></param> |
| | | /// <returns></returns> |
| | | public static object[] GetHighSearchRangeAttributeByPro(PropertyInfo pro) |
| | | { |
| | | object[] Attributes = pro.GetCustomAttributes(typeof(HighSearchRangeAttribute), false); |
| | | return Attributes; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åç¹æ§ãä¸èªå¨æ¥è¯¢ç¹æ§ã |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="pro"></param> |
| | | /// <returns></returns> |
| | | public static bool IsExistNoAutoQueryAttribute(PropertyInfo pro) |
| | | { |
| | | object[] attributes = pro.GetCustomAttributes(typeof(NoAutoQueryAttribute), false); |
| | | if (attributes.Length > 0) |
| | | { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·å屿§çå¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="t"></param> |
| | | /// <param name="proName"></param> |
| | | /// <param name="errMsg"></param> |
| | | /// <returns></returns> |
| | | public static List<string> GetPropertyValueForList<T>(T t, string proName, out string errMsg) |
| | | { |
| | | var pro = GetPropertyInfo(t, proName, out errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | return null; |
| | | } |
| | | var pro_value = pro.GetValue(t, null); |
| | | var list = pro_value == null ? null : (List<string>)pro_value; |
| | | return list; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | internal class ParameterRebinder : ExpressionVisitor |
| | | { |
| | | private readonly Dictionary<ParameterExpression, ParameterExpression> map; |
| | | public ParameterRebinder(Dictionary<ParameterExpression, ParameterExpression> map) |
| | | { |
| | | this.map = map ?? new Dictionary<ParameterExpression, ParameterExpression>(); |
| | | } |
| | | public static Expression ReplaceParameters(Dictionary<ParameterExpression, ParameterExpression> map, Expression exp) |
| | | { |
| | | return new ParameterRebinder(map).Visit(exp); |
| | | } |
| | | protected override Expression VisitParameter(ParameterExpression p) |
| | | { |
| | | ParameterExpression replacement; |
| | | if (map.TryGetValue(p, out replacement)) |
| | | { |
| | | p = replacement; |
| | | } |
| | | return base.VisitParameter(p); |
| | | } |
| | | } |
| | | |
| | | internal static class PredicateExtensions |
| | | { |
| | | public static Expression<Func<T, bool>> True<T>() { return f => true; } |
| | | public static Expression<Func<T, bool>> False<T>() { return f => false; } |
| | | public static Expression<T> Compose<T>(this Expression<T> first, Expression<T> second, Func<Expression, Expression, Expression> merge) |
| | | { |
| | | // build parameter map (from parameters of second to parameters of first) |
| | | var map = first.Parameters.Select((f, i) => new { f, s = second.Parameters[i] }).ToDictionary(p => p.s, p => p.f); |
| | | |
| | | // replace parameters in the second lambda expression with parameters from the first |
| | | var secondBody = ParameterRebinder.ReplaceParameters(map, second.Body); |
| | | |
| | | // apply composition of lambda expression bodies to parameters from the first expression |
| | | return Expression.Lambda<T>(merge(first.Body, secondBody), first.Parameters); |
| | | } |
| | | |
| | | public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> second) |
| | | { |
| | | return first.Compose(second, Expression.And); |
| | | } |
| | | |
| | | public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> second) |
| | | { |
| | | return first.Compose(second, Expression.Or); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¼æ¥æ c.Name.contains("1111")||c.Name.Contains("2222")||c.Name.Contains("3333")) å½¢å¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="options"></param> |
| | | /// <param name="fieldName"></param> |
| | | /// <returns></returns> |
| | | public static Expression<Func<T, bool>> GetConditionExpression<T>(string[] options, string fieldName) |
| | | { |
| | | ParameterExpression left = Expression.Parameter(typeof(T), "c");//c=> |
| | | Expression expression = Expression.Constant(false); |
| | | foreach (var optionName in options) |
| | | { |
| | | Expression right = Expression.Call |
| | | ( |
| | | Expression.Property(left, typeof(T).GetProperty(fieldName)), //c.DataSourceName |
| | | typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),// åå°ä½¿ç¨.Contains()æ¹æ³ |
| | | Expression.Constant(optionName) // .Contains(optionName) |
| | | ); |
| | | expression = Expression.Or(right, expression);//c.DataSourceName.contain("") || c.DataSourceName.contain("") |
| | | } |
| | | Expression<Func<T, bool>> finalExpression |
| | | = Expression.Lambda<Func<T, bool>>(expression, new ParameterExpression[] { left }); |
| | | return finalExpression; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// (æ¨¡ç³æ¥è¯¢)æ¼æ¥æ c.Name.contains("1111")||c.Code.Contains("1111")||c.Address.Contains("1111")) å½¢å¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="options"></param> |
| | | /// <param name="fieldName"></param> |
| | | /// <returns></returns> |
| | | public static Expression<Func<T, bool>> GetConditionExpressionForFuzzyQuery<T>(string[] fieldNames, string fieldValue) |
| | | { |
| | | try |
| | | { |
| | | ParameterExpression left = Expression.Parameter(typeof(T), "c");//c=> |
| | | Expression expression = Expression.Constant(false); |
| | | foreach (var fieldName in fieldNames) |
| | | { |
| | | try |
| | | { |
| | | Expression right = Expression.Call |
| | | ( |
| | | Expression.Property(left, typeof(T).GetProperty(fieldName)), //c.DataSourceName |
| | | typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),// åå°ä½¿ç¨.Contains()æ¹æ³ |
| | | Expression.Constant(fieldValue) // .Contains(fieldValue) |
| | | ); |
| | | expression = Expression.Or(right, expression);//c.AAA.contain("") || c.BBB.contain("") |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"åæ°{fieldName}å¹é
å
³é®åæ¥è¯¢æ¶å¤±è´¥:" + ex.Message); |
| | | } |
| | | } |
| | | Expression<Func<T, bool>> finalExpression |
| | | = Expression.Lambda<Func<T, bool>>(expression, new ParameterExpression[] { left }); |
| | | return finalExpression; |
| | | } |
| | | catch (Exception) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ï¼ç²¾åæ¥è¯¢ï¼æ¼æ¥æ c.Name.equals("1111")||c.Code.equals("1111")||c.Address.equals("1111")) å½¢å¼ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="options"></param> |
| | | /// <param name="fieldName"></param> |
| | | /// <returns></returns> |
| | | public static Expression<Func<T, bool>> GetConditionExpressionForPreciseQuery<T>(string[] fieldNames, string fieldValue) |
| | | { |
| | | ParameterExpression left = Expression.Parameter(typeof(T), "c");//c=> |
| | | Expression expression = Expression.Constant(false); |
| | | foreach (var fieldName in fieldNames) |
| | | { |
| | | Expression right = Expression.Call |
| | | ( |
| | | Expression.Property(left, typeof(T).GetProperty(fieldName)), //c.DataSourceName |
| | | typeof(string).GetMethod("Equals", new Type[] { typeof(string) }),// åå°ä½¿ç¨.Equals()æ¹æ³ |
| | | Expression.Constant(fieldValue) // .Equals(fieldValue) |
| | | ); |
| | | expression = Expression.Or(right, expression);//c.AAA.equals("") || c.BBB.equals("") |
| | | } |
| | | Expression<Func<T, bool>> finalExpression |
| | | = Expression.Lambda<Func<T, bool>>(expression, new ParameterExpression[] { left }); |
| | | return finalExpression; |
| | | } |
| | | |
| | | |
| | | public static Expression<Func<T, bool>> GetConditionExpressionForHighFieldByAnd<T>(List<HighSearchModel> hsmList) |
| | | { |
| | | var whereHelper = new WhereHelper<T>(); |
| | | foreach (var field in hsmList) |
| | | { |
| | | switch (field.filterMode) |
| | | { |
| | | case SearchFilterModeEnum.ä¸çäº: |
| | | whereHelper.NotEqual(field.fieldName, field.fieldValue); |
| | | break; |
| | | case SearchFilterModeEnum.大äº: |
| | | whereHelper.GreaterThan(field.fieldName, field.fieldValue); |
| | | break; |
| | | case SearchFilterModeEnum.大äºçäº: |
| | | whereHelper.GreaterThanOrEqual(field.fieldName, field.fieldValue); |
| | | break; |
| | | case SearchFilterModeEnum.å°äº: |
| | | whereHelper.LessThan(field.fieldName, field.fieldValue); |
| | | break; |
| | | case SearchFilterModeEnum.å°äºçäº: |
| | | whereHelper.LessThanOrEqual(field.fieldName, field.fieldValue); |
| | | break; |
| | | case SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢: |
| | | whereHelper.Contains(field.fieldName, field.fieldValue); |
| | | break; |
| | | case SearchFilterModeEnum.ç²¾åæ¥è¯¢: |
| | | whereHelper.Equal(field.fieldName, field.fieldValue); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | Expression<Func<T, bool>> finalExpression |
| | | = Expression.Lambda<Func<T, bool>>(whereHelper.filter, new ParameterExpression[] { whereHelper.param }); |
| | | return finalExpression; |
| | | } |
| | | |
| | | public static Expression<Func<T, bool>> GetConditionExpressionForHighFieldByAnd<T>(List<HighSearchForDateTimeRangeModel> hsmForDatetimeList) |
| | | { |
| | | var whereHelper = new WhereHelper<T>(); |
| | | foreach (var field in hsmForDatetimeList) |
| | | { |
| | | whereHelper.GreaterThanOrEqual(field.fieldName, field.start_fieldValue); |
| | | whereHelper.LessThanOrEqual(field.fieldName, field.end_fieldValue); |
| | | } |
| | | Expression<Func<T, bool>> finalExpression |
| | | = Expression.Lambda<Func<T, bool>>(whereHelper.filter, new ParameterExpression[] { whereHelper.param }); |
| | | return finalExpression; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æèå´ORè¿æ¥ |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="hsmForDatetimeList"></param> |
| | | /// <returns></returns> |
| | | public static Expression<Func<T, bool>> GetConditionExpressionForHighDateTimeRangeFieldByOr<T>(List<HighSearchForDateTimeRangeModel> hsmForDatetimeList) |
| | | { |
| | | Expression<Func<T, bool>> finalExpression = null; |
| | | var whereHelper = new WhereHelper<T>(); |
| | | foreach (var field in hsmForDatetimeList) |
| | | { |
| | | whereHelper.GreaterThanOrEqual(field.fieldName, field.start_fieldValue); |
| | | whereHelper.LessThanOrEqual(field.fieldName, field.end_fieldValue); |
| | | |
| | | finalExpression |
| | | = Expression.Lambda<Func<T, bool>>(whereHelper.filter, new ParameterExpression[] { whereHelper.param }); |
| | | |
| | | finalExpression = finalExpression.Or(finalExpression); |
| | | } |
| | | |
| | | return finalExpression; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.ComponentModel; |
| | | using System.Linq.Expressions; |
| | | using System.Reflection; |
| | | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | public class WhereHelper<T> |
| | | |
| | | //where T : class |
| | | |
| | | { |
| | | |
| | | public ParameterExpression param; |
| | | |
| | | public BinaryExpression filter; |
| | | |
| | | private MemberExpression common_left; |
| | | |
| | | private UnaryExpression common_right; |
| | | |
| | | public WhereHelper() |
| | | |
| | | { |
| | | |
| | | param = Expression.Parameter(typeof(T), "c");//æå»º c=> ç»æ |
| | | |
| | | //1==1 |
| | | Expression left = Expression.Constant(1); |
| | | filter = Expression.Equal(left, left);//æå»ºåº c=> 1=1 |
| | | |
| | | } |
| | | |
| | | public Expression<Func<T, bool>> GetExpression() |
| | | |
| | | { |
| | | |
| | | return Expression.Lambda<Func<T, bool>>(filter, param); |
| | | |
| | | } |
| | | |
| | | private void CommonLeftRight(string propertyName, object value) |
| | | { |
| | | |
| | | common_left = Expression.Property(param, typeof(T).GetProperty(propertyName));//æå»ºæå»ºc.{propertyName}çç»æ |
| | | |
| | | var member = Expression.Property(param, propertyName); |
| | | var propertyType = ((PropertyInfo)member.Member).PropertyType; |
| | | var converter = TypeDescriptor.GetConverter(propertyType); // 1 |
| | | |
| | | if (!converter.CanConvertFrom(typeof(string))) // 2 |
| | | throw new NotSupportedException(); |
| | | |
| | | var propertyValue = converter.ConvertFromInvariantString(value.ToString()); // 3 |
| | | var constant = Expression.Constant(propertyValue); |
| | | common_right = Expression.Convert(constant, propertyType); // 4 |
| | | |
| | | // common_right = Expression.Constant(value, value.GetType());//æå»ºä¸ä¸ªå¸¸é,弿¯ value |
| | | } |
| | | |
| | | /// <summary> |
| | | /// çäº = |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void Equal(string propertyName, object value) |
| | | { |
| | | CommonLeftRight(propertyName, value); |
| | | |
| | | Expression result = Expression.Equal(common_left, common_right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸çäº <> |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void NotEqual(string propertyName, object value) |
| | | { |
| | | |
| | | CommonLeftRight(propertyName, value); |
| | | |
| | | Expression result = Expression.NotEqual(common_left, common_right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤§äº > |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void GreaterThan(string propertyName, object value) |
| | | { |
| | | |
| | | CommonLeftRight(propertyName, value); |
| | | |
| | | Expression result = Expression.GreaterThan(common_left, common_right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 大äºçäº >= |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void GreaterThanOrEqual(string propertyName, object value) |
| | | { |
| | | |
| | | CommonLeftRight(propertyName, value); |
| | | |
| | | Expression result = Expression.GreaterThanOrEqual(common_left, common_right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å°äº < |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void LessThan(string propertyName, object value) |
| | | { |
| | | |
| | | CommonLeftRight(propertyName, value); |
| | | |
| | | Expression result = Expression.LessThan(common_left, common_right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å°äºçäº <= |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void LessThanOrEqual(string propertyName, object value) |
| | | { |
| | | |
| | | CommonLeftRight(propertyName, value); |
| | | |
| | | Expression result = Expression.LessThanOrEqual(common_left, common_right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
å« LIKE |
| | | /// </summary> |
| | | /// <param name="propertyName"></param> |
| | | /// <param name="value"></param> |
| | | public void Contains(string propertyName, string value) |
| | | |
| | | { |
| | | |
| | | Expression left = Expression.Property(param, typeof(T).GetProperty(propertyName)); |
| | | |
| | | Expression right = Expression.Constant(value, value.GetType()); |
| | | |
| | | Expression result = Expression.Call(left, typeof(string).GetMethod("Contains", new Type[] { typeof(string) }), right); |
| | | |
| | | filter = Expression.And(filter, result); |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Expressions; |
| | | using System.Reflection; |
| | | |
| | | namespace CmsQueryExtensions.Extension |
| | | { |
| | | /// <summary> |
| | | /// çæWhereæ¡ä»¶æ©å± |
| | | /// </summary> |
| | | public class WhereConditionsExtensions |
| | | { |
| | | public static FunReturnResultModel<Expression<Func<T, bool>>> GetWhereConditions<T, TParam>(TParam param) |
| | | { |
| | | FunReturnResultModel<Expression<Func<T, bool>>> result = new FunReturnResultModel<Expression<Func<T, bool>>>(); |
| | | try |
| | | { |
| | | Expression<Func<T, bool>> conditions = PredicateExtensions.True<T>(); |
| | | |
| | | var errMsg = ""; |
| | | |
| | | #region 1ãéç¨æ¥è¯¢searchVal |
| | | |
| | | //夿éç¨æ¥è¯¢searchVal |
| | | var pro_value_searchVal = ClassHelper.GetPropertyValue<TParam>(param, SystemCommonVar.searchVal, out errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrMsg = errMsg; |
| | | return result; |
| | | } |
| | | if (!string.IsNullOrEmpty(pro_value_searchVal)) |
| | | {//表示 éç¨æ¥è¯¢searchValä¸ä¸ºç©ºï¼éè¦æ¥è¯¢ |
| | | var pro_value_searchValMode = ClassHelper.GetPropertyValue<TParam>(param, SystemCommonVar.searchVal_FilterMode, out errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrMsg = errMsg; |
| | | return result; |
| | | } |
| | | |
| | | var pro_value_searchFormInputAttrs = ClassHelper.GetPropertyValueForList<TParam>(param, SystemCommonVar.searchFormInputAttrs, out errMsg); |
| | | if (!string.IsNullOrEmpty(errMsg)) |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrMsg = errMsg; |
| | | return result; |
| | | } |
| | | if (pro_value_searchFormInputAttrs != null && pro_value_searchFormInputAttrs.Count > 0) |
| | | { |
| | | var i_pro_value_searchValMode = Convert.ToInt32(((SearchFilterModeEnum)Enum.Parse(typeof(SearchFilterModeEnum), pro_value_searchValMode))); |
| | | if (i_pro_value_searchValMode == Convert.ToInt32(SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢)) |
| | | {//æ¨¡ç³æ¥è¯¢ |
| | | try |
| | | { |
| | | var new_conditions = PredicateExtensions.GetConditionExpressionForFuzzyQuery<T>(pro_value_searchFormInputAttrs.ToArray(), pro_value_searchVal); |
| | | conditions = conditions.And(new_conditions); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | result.data = null; |
| | | result.IsSuccess = false; |
| | | result.ErrMsg = ex.Message; |
| | | return result; |
| | | } |
| | | } |
| | | else if (i_pro_value_searchValMode == Convert.ToInt32(SearchFilterModeEnum.ç²¾åæ¥è¯¢)) |
| | | {//ç²¾åæ¥è¯¢ |
| | | var new_conditions = PredicateExtensions.GetConditionExpressionForPreciseQuery<T>(pro_value_searchFormInputAttrs.ToArray(), pro_value_searchVal); |
| | | conditions = conditions.And(new_conditions); |
| | | /* |
| | | pro_value_searchFormInputAttrs.ForEach(x => |
| | | { |
| | | if (!string.IsNullOrEmpty(x)) |
| | | { |
| | | var myParam = Expression.Parameter(typeof(T)); |
| | | var condition = |
| | | Expression.Lambda<Func<T, bool>>( |
| | | Expression.Equal( |
| | | Expression.Property(myParam, x), |
| | | Expression.Constant(pro_value_searchVal, typeof(string)) |
| | | ), |
| | | myParam |
| | | ); // for LINQ to SQl/Entities skip Compile() call |
| | | conditions = conditions.And(condition); |
| | | |
| | | } |
| | | |
| | | }); |
| | | //*/ |
| | | } |
| | | else |
| | | { |
| | | result.IsSuccess = false; |
| | | result.ErrMsg = "éç¨æ¥è¯¢é
ç½®ä¸æ£ç¡®"; |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region 2ãé«çº§æ¥è¯¢ |
| | | |
| | | var high_pros = FilterHigh_pros<TParam>(param); |
| | | List<HighSearchForDateTimeRangeModel> hsmForDatetimeList = new List<HighSearchForDateTimeRangeModel>(); |
| | | List<HighSearchModel> hsmList = GetHighSearchModelList<TParam>(param, high_pros, ref hsmForDatetimeList); |
| | | if (hsmList.Count > 0) |
| | | { |
| | | var high_conditions = PredicateExtensions.GetConditionExpressionForHighFieldByAnd<T>(hsmList); |
| | | conditions = conditions.And(high_conditions); |
| | | } |
| | | if (hsmForDatetimeList.Count > 0) |
| | | { |
| | | var high_conditions = PredicateExtensions.GetConditionExpressionForHighFieldByAnd<T>(hsmForDatetimeList); |
| | | conditions = conditions.And(high_conditions); |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | result.data = conditions; |
| | | result.IsSuccess = true; |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// è¿æ»¤æModeåç¼ç屿§ åä¸äºç¹æ®å±æ§çï¼å¦DateTimeRange |
| | | /// </summary> |
| | | /// <typeparam name="TParam"></typeparam> |
| | | /// <param name="param"></param> |
| | | /// <param name="high_pros"></param> |
| | | /// <returns></returns> |
| | | private static List<HighSearchModel> GetHighSearchModelList<TParam>(TParam param, List<PropertyInfo> high_pros, ref List<HighSearchForDateTimeRangeModel> hsmForDatetimeList) |
| | | { |
| | | List<HighSearchModel> hsmList = new List<HighSearchModel>(); |
| | | string errMsg = ""; |
| | | SearchFilterModeEnum _svmEnum = default(SearchFilterModeEnum); |
| | | var hsmValue = ""; |
| | | var pro_value = ""; |
| | | foreach (var pro in high_pros) |
| | | { |
| | | if (!pro.Name.Contains(SystemCommonVar.highSearchModeSuffix)) |
| | | {//䏿¯Modeåç¼çåæ®µ |
| | | //夿æ¯ä¸æ¯æç¹æ§ç¹æ§çå¼ |
| | | var _highSearchRangeAttribute = ClassHelper.GetHighSearchRangeAttributeByPro(pro); |
| | | if (_highSearchRangeAttribute.Length > 0) |
| | | { |
| | | object v = ClassHelper.GetPropertyValue<TParam>(param, pro); |
| | | if (v == null) |
| | | { |
| | | continue; |
| | | } |
| | | List<string> arr_value = v as List<string>; |
| | | if (arr_value.Count < 2) |
| | | { |
| | | continue; |
| | | } |
| | | //string[] arr_value = (string[])v; |
| | | //string[] arr_value = Convert.ToString(v).Split(','); |
| | | hsmForDatetimeList.Add(new HighSearchForDateTimeRangeModel() |
| | | { |
| | | fieldName = pro.Name, |
| | | start_fieldValue = arr_value[0], |
| | | end_fieldValue = arr_value[1] |
| | | }); |
| | | continue; |
| | | } |
| | | |
| | | pro_value = ClassHelper.GetPropertyValueByObject<TParam>(param, pro); |
| | | if (string.IsNullOrEmpty(pro_value)) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (!ClassHelper.IsExistNoAutoQueryAttribute(pro)) |
| | | { |
| | | //æ¥æ¾æ¯ç¸åºModeåç¼çåæ®µçå¼ |
| | | try |
| | | { |
| | | //ä¿®å¤æ¥è¯¢å¼å¸¸bug ãEditby shaocx,2025-05-03ã |
| | | SearchFilterModeEnum? _svmEnum_obj = null; |
| | | _svmEnum_obj = (SearchFilterModeEnum?)ClassHelper.GetPropertyValueForReObject<TParam>(param, pro.Name + SystemCommonVar.highSearchModeSuffix, out errMsg); |
| | | if (_svmEnum_obj != null) { _svmEnum = _svmEnum_obj.Value; } |
| | | else |
| | | { |
| | | _svmEnum = SearchFilterModeEnum.ä¸çé; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //å¤çå¼å¸¸ä¿¡æ¯ ãEditby shaocx,2025-05-03ã |
| | | _svmEnum = SearchFilterModeEnum.ä¸çé; |
| | | } |
| | | |
| | | //if (!string.IsNullOrEmpty(errMsg)) |
| | | //{ |
| | | // throw new Exception(errMsg); |
| | | //} |
| | | //if (hsmValue == "0" || string.IsNullOrEmpty(hsmValue)) |
| | | //{ |
| | | // continue; |
| | | //} |
| | | //_svmEnum = (SearchFilterModeEnum)Enum.Parse(typeof(SearchFilterModeEnum), hsmValue); |
| | | if (_svmEnum == SearchFilterModeEnum.ä¸çé) |
| | | { |
| | | continue; |
| | | } |
| | | hsmList.Add(new HighSearchModel() |
| | | { |
| | | fieldName = pro.Name, |
| | | fieldValue = pro_value, |
| | | filterMode = _svmEnum |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | return hsmList; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// è¿æ»¤ä¸äºä¸éè¦çåæ®µ,å¦PageãPageSizeç |
| | | /// </summary> |
| | | /// <typeparam name="TParam"></typeparam> |
| | | /// <param name="param"></param> |
| | | /// <returns></returns> |
| | | private static List<PropertyInfo> FilterHigh_pros<TParam>(TParam param) |
| | | { |
| | | var all_high_pros = ClassHelper.GetPropertyInfoList<TParam>(param); |
| | | var high_pros = new List<PropertyInfo>(); |
| | | //æé¤ä¸ç¨ç |
| | | for (int i = 0; i < all_high_pros.Length; i++) |
| | | { |
| | | if (!SystemCommonVar.commnParamFatherPros.Contains(all_high_pros[i].Name)) |
| | | { |
| | | high_pros.Add(all_high_pros[i]); |
| | | } |
| | | } |
| | | return high_pros; |
| | | } |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" /> |
| | | </project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="UserContentModel"> |
| | | <attachedFolders /> |
| | | <explicitIncludes /> |
| | | <explicitExcludes /> |
| | | </component> |
| | | </project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="VcsDirectoryMappings"> |
| | | <mapping directory="$PROJECT_DIR$/../../../../.." vcs="Git" /> |
| | | </component> |
| | | </project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | |  |
| | | Microsoft Visual Studio Solution File, Format Version 12.00 |
| | | # Visual Studio Version 17 |
| | | VisualStudioVersion = 17.4.33110.190 |
| | | MinimumVisualStudioVersion = 10.0.40219.1 |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "è§£å³æ¹æ¡é¡¹", "è§£å³æ¹æ¡é¡¹", "{28C418E6-AF1D-4B74-ACDF-7B81FA4C256E}" |
| | | ProjectSection(SolutionItems) = preProject |
| | | .editorconfig = .editorconfig |
| | | .gitignore = .gitignore |
| | | common.props = common.props |
| | | common.test.props = common.test.props |
| | | configureawait.props = configureawait.props |
| | | delete-bin-obj-folders.bat = delete-bin-obj-folders.bat |
| | | Directory.Build.props = Directory.Build.props |
| | | NuGet.config = NuGet.config |
| | | package.reference.props = package.reference.props |
| | | publish.ps1 = publish.ps1 |
| | | README.md = README.md |
| | | stylecop.json = stylecop.json |
| | | EndProjectSection |
| | | EndProject |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{19F68F40-2A05-48EB-86F0-56928B3CCE9C}" |
| | | EndProject |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{5632E2B3-5592-4C6A-9493-768E5B04804D}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms", "src\CMS.Plugin.HIAWms\CMS.Plugin.HIAWms.csproj", "{9926DE4C-376D-487E-9C64-494913D94379}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.EntityFrameworkCore", "src\CMS.Plugin.HIAWms.EntityFrameworkCore\CMS.Plugin.HIAWms.EntityFrameworkCore.csproj", "{0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Domain", "src\CMS.Plugin.HIAWms.Domain\CMS.Plugin.HIAWms.Domain.csproj", "{8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Domain.Shared", "src\CMS.Plugin.HIAWms.Domain.Shared\CMS.Plugin.HIAWms.Domain.Shared.csproj", "{F405C633-8100-49B8-A270-D5340A165742}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Application.Contracts", "src\CMS.Plugin.HIAWms.Application.Contracts\CMS.Plugin.HIAWms.Application.Contracts.csproj", "{D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Application", "src\CMS.Plugin.HIAWms.Application\CMS.Plugin.HIAWms.Application.csproj", "{02CB86F3-E614-4193-8B7F-C2FB665C8A5A}" |
| | | EndProject |
| | | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{A68B3B6B-DDE8-431E-90F3-A9FEE1D14A53}" |
| | | ProjectSection(SolutionItems) = preProject |
| | | doc\Domain-Drive-Design.md = doc\Domain-Drive-Design.md |
| | | EndProjectSection |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.TestBase", "test\CMS.Plugin.HIAWms.TestBase\CMS.Plugin.HIAWms.TestBase.csproj", "{33999EE8-73A1-4CF2-BDFD-CE353B05A727}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.EntityFrameworkCore.Tests", "test\CMS.Plugin.HIAWms.EntityFrameworkCore.Tests\CMS.Plugin.HIAWms.EntityFrameworkCore.Tests.csproj", "{C6AFC427-C51D-4BD2-BBA6-8841D3495077}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Domain.Tests", "test\CMS.Plugin.HIAWms.Domain.Tests\CMS.Plugin.HIAWms.Domain.Tests.csproj", "{74E86B03-F185-47B2-A4C3-04C1CEC84F14}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Application.Tests", "test\CMS.Plugin.HIAWms.Application.Tests\CMS.Plugin.HIAWms.Application.Tests.csproj", "{731DE36F-27F5-48B8-865D-DA43C8910010}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.Abstractions", "src\CMS.Plugin.HIAWms.Abstractions\CMS.Plugin.HIAWms.Abstractions.csproj", "{87D957E4-FE12-4432-9B7B-827A98DD41D1}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.MySQL", "src\CMS.Plugin.HIAWms.MySQL\CMS.Plugin.HIAWms.MySQL.csproj", "{2F71D6DF-F19A-410C-BD79-F2F871E63902}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.PostgreSql", "src\CMS.Plugin.HIAWms.PostgreSql\CMS.Plugin.HIAWms.PostgreSql.csproj", "{698D9FFA-080C-4F22-9FBF-B9509B28A954}" |
| | | EndProject |
| | | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMS.Plugin.HIAWms.SqlServer", "src\CMS.Plugin.HIAWms.SqlServer\CMS.Plugin.HIAWms.SqlServer.csproj", "{521D17FF-BD3A-43B4-9BEE-183FDE3522F4}" |
| | | EndProject |
| | | Global |
| | | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| | | Debug|Any CPU = Debug|Any CPU |
| | | Release|Any CPU = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {9926DE4C-376D-487E-9C64-494913D94379}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {F405C633-8100-49B8-A270-D5340A165742}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Debug|Any CPU.Build.0 = Debug|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Release|Any CPU.ActiveCfg = Release|Any CPU |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4}.Release|Any CPU.Build.0 = Release|Any CPU |
| | | EndGlobalSection |
| | | GlobalSection(SolutionProperties) = preSolution |
| | | HideSolutionNode = FALSE |
| | | EndGlobalSection |
| | | GlobalSection(NestedProjects) = preSolution |
| | | {9926DE4C-376D-487E-9C64-494913D94379} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {0022A80F-6D52-4B58-B2B3-F029DB4AEC0A} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {8B2BED13-2B0E-49B5-8B0A-F272D27B2F37} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {F405C633-8100-49B8-A270-D5340A165742} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {D65BB57E-618A-468C-AA28-BD8C9EBF0AF2} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {02CB86F3-E614-4193-8B7F-C2FB665C8A5A} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {33999EE8-73A1-4CF2-BDFD-CE353B05A727} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {C6AFC427-C51D-4BD2-BBA6-8841D3495077} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {74E86B03-F185-47B2-A4C3-04C1CEC84F14} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {731DE36F-27F5-48B8-865D-DA43C8910010} = {5632E2B3-5592-4C6A-9493-768E5B04804D} |
| | | {87D957E4-FE12-4432-9B7B-827A98DD41D1} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {2F71D6DF-F19A-410C-BD79-F2F871E63902} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {698D9FFA-080C-4F22-9FBF-B9509B28A954} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | {521D17FF-BD3A-43B4-9BEE-183FDE3522F4} = {19F68F40-2A05-48EB-86F0-56928B3CCE9C} |
| | | EndGlobalSection |
| | | GlobalSection(ExtensibilityGlobals) = postSolution |
| | | SolutionGuid = {220123E7-A888-4DE7-8F9A-8FE271543889} |
| | | EndGlobalSection |
| | | EndGlobal |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <!-- C# compiler options (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/) --> |
| | | <PropertyGroup> |
| | | <!-- Nullable (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/language#nullable) --> |
| | | <Nullable>disable</Nullable> |
| | | <Deterministic>true</Deterministic> |
| | | <!-- report errors and warnings (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings) --> |
| | | <WarningLevel>5</WarningLevel> |
| | | </PropertyGroup> |
| | | |
| | | <!-- Generated file properties (https://docs.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#generated-file-properties) --> |
| | | <PropertyGroup> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | </PropertyGroup> |
| | | |
| | | <!-- Code analysis properties (https://docs.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props#code-analysis-properties) --> |
| | | <PropertyGroup> |
| | | <EnableNETAnalyzers>true</EnableNETAnalyzers> |
| | | <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> |
| | | <AnalysisMode>All</AnalysisMode> |
| | | <AnalysisLevel>latest</AnalysisLevel> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <AdditionalFiles Include="$([MSBuild]::GetPathOfFileAbove('stylecop.json'))" Visible="false" /> |
| | | </ItemGroup> |
| | | |
| | | <!-- Dependencies --> |
| | | <ItemGroup Condition="$(MSBuildProjectExtension) == '.csproj'" > |
| | | <PackageReference Include="SonarAnalyzer.CSharp" Version="8.32.0.39516" PrivateAssets="all" /> |
| | | <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" /> |
| | | <PackageReference Include="Roslynator.Analyzers" Version="3.3.0" PrivateAssets="all" /> |
| | | </ItemGroup> |
| | | |
| | | <PropertyGroup Condition=" '$(Configuration)' == 'Debug'"> |
| | | <DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants> |
| | | <Optimize>false</Optimize> |
| | | <NullableReferenceTypes>true</NullableReferenceTypes> |
| | | <!-- report errors and warnings (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings) --> |
| | | <TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
| | | <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> |
| | | </PropertyGroup> |
| | | |
| | | <PropertyGroup Condition="'$(Configuration)' == 'Release'"> |
| | | <DefineConstants>$(DefineConstants);RELEASE</DefineConstants> |
| | | <Optimize>true</Optimize> |
| | | <!-- report errors and warnings (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings) --> |
| | | <TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
| | | <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors> |
| | | </PropertyGroup> |
| | | |
| | | <!-- Import reference package --> |
| | | <Import Project="package.reference.props" /> |
| | | |
| | | <!-- Test Project coverlet collector --> |
| | | <PropertyGroup> |
| | | <IsTestProject Condition="$(MSBuildProjectFullPath.Contains('test')) and ($(MSBuildProjectName.EndsWith('.Tests')) or $(MSBuildProjectName.EndsWith('.TestBase')))">true</IsTestProject> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Condition="'$(IsTestProject)' == 'true'" Include="coverlet.collector" Version="3.1.0"> |
| | | <PrivateAssets>all</PrivateAssets> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <configuration> |
| | | <packageSources> |
| | | <clear /> |
| | | <add key="nexus" value="https://nexus.sycdev.com/repository/nuget-group/index.json" /> |
| | | <add key="nuget" value="https://api.nuget.org/v3/index.json" /> |
| | | </packageSources> |
| | | </configuration> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <Company>SYC</Company> |
| | | <Copyright>Copyright © SYC. All rights reserved.</Copyright> |
| | | <NoWarn>$(NoWarn);CS1591</NoWarn> |
| | | <VersionMajor>1</VersionMajor> |
| | | <VersionMinor>0</VersionMinor> |
| | | <VersionPatch>0</VersionPatch> |
| | | <VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix> |
| | | <!--<VersionSuffix>-preview1</VersionSuffix>--> |
| | | <Version>$(VersionPrefix)$(VersionSuffix)</Version> |
| | | <AssemblyVersion>$(VersionMajor).0.0.0</AssemblyVersion> |
| | | <LangVersion>latest</LangVersion> |
| | | <GenerateDocumentationFile>true</GenerateDocumentationFile> |
| | | <!-- Include symbol files (*.pdb) in the built .nupkg --> |
| | | <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <LangVersion>latest</LangVersion> |
| | | <NoWarn>$(NoWarn);CS1591</NoWarn> |
| | | <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles> |
| | | <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> |
| | | <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> |
| | | <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <ItemGroup> |
| | | <PackageReference Include="ConfigureAwait.Fody" Version="3.3.1" PrivateAssets="All" /> |
| | | <PackageReference Include="Fody" Version="6.6.1"> |
| | | <PrivateAssets>All</PrivateAssets> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @ECHO off |
| | | cls |
| | | |
| | | ECHO Deleting all BIN and OBJ folders... |
| | | ECHO. |
| | | |
| | | FOR /d /r . %%d in (bin,obj) DO ( |
| | | IF EXIST "%%d" ( |
| | | ECHO %%d | FIND /I "\node_modules\" > Nul && ( |
| | | ECHO.Skipping: %%d |
| | | ) || ( |
| | | ECHO.Deleting: %%d |
| | | rd /s/q "%%d" |
| | | ) |
| | | ) |
| | | ) |
| | | |
| | | ECHO. |
| | | ECHO.BIN and OBJ folders have been successfully deleted. Press any key to exit. |
| | | pause > nul |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # é¢å模å设计 |
| | | |
| | | ## ä¸ãæ¯è¯ä¸å®ä¹ |
| | | |
| | | | è±æç¼©å | è±æå
¨ç§° | ä¸æç¿»è¯ | |
| | | | -------- | -------- | -------- | |
| | | | | | | |
| | | |
| | | ## äºãä¸å¡æµç¨ |
| | | |
| | | 䏿¶å |
| | | |
| | | ## ä¸ãæ°æ®ç±»å |
| | | |
| | | æ°æ®ç±»åéç¨çæ¯C#çæ°æ®ç±»åï¼ä¸»è¦æä¸é¢çä¸äºç±»åï¼ |
| | | |
| | | | æ°æ®ç±»å | å«ä¹ | æå°å¼/æå¤§å¼/精度 | å ç¨ç©ºé´ | 说æ | |
| | | | -------------- | -------------- | ------------------------------------------------------------ | ------------- | -------------------------------- | |
| | | | bool | å¸å°å¼ | false/true | 1åè | | |
| | | | sbyte | è¶
çæ´å | -128127 | 1åè | | |
| | | | byte | æ 符å·è¶
çæ´å | 0255 | 1åè | | |
| | | | short | çæ´å | -32,76832,767 | 2åè | | |
| | | | ushort | æ 符å·çæ´å | 065,535 | 2åè | | |
| | | | int | æ´å | -2,147,483,6482,147,483,647 | 4åè | | |
| | | | uint | æ ç¬¦å·æ´å | 04,294,967,295 | 4åè | | |
| | | | long | é¿æ´å | -9,223,372,036,854,775,8089,223,372,036,854,775,807 | 8åè | | |
| | | | ulong | æ 符å·é¿æ´å | 0/18,446,744,073,709,551,615 | 8åè | | |
| | | | float | åç²¾åº¦æµ®ç¹æ° | -3.40282347E+38/F3.40282347E+38F/6~7ä½æææ°å | 4åè | | |
| | | | double | åç²¾åº¦æµ®ç¹æ° | -1.7976931348623157E+308/1.7976931348623157E+308/15~16ä½æææ°å | 8åè | | |
| | | | DateTime | æ¥ææ¶é´ | 0000-01-01 00:00:00.0000000/9999-12-31 23:59:59.9999999/100ns | 8åè | ç»ä¸ä½¿ç¨UTCæ¶é´è¿è¡ä¼ è¾ååå¨ã | |
| | | | TimeSpan | æ¶é´è·¨åº¦ | -10,675,199.02:48:05.4775808/10,675,199.02:48:05.4775807100ns | 8åè | | |
| | | | string | å符串 | | nåè | ç»ä¸ä½¿ç¨UTF8ç¼ç è¿è¡ä¼ è¾ååå¨ã | |
| | | | Complex | 夿° | | 16åè | | |
| | | | IList<T> | å表 | [0]~[n-1] | n * sizeof(T) | | |
| | | | ICollection<T> | éå | | n * sizeof(T) | ä¸IList类似ï¼åªæ¯æ²¡æé¡ºåºå
³ç³»ã | |
| | | |
| | | ## åãå®ä½ï¼Entityï¼åèåæ ¹ï¼AggregateRootï¼ |
| | | |
| | | å®ä½æ¯æ¨¡åä¸éè¦åºå个ä½çå¯¹è±¡ï¼æ¥ææ è¯ãæ°æ®åè¡ä¸ºãå®ä½ææ è¯ï¼å
许ååï¼å¤æä¸¤ä¸ªå®ä½ç¸ççæ åæ¯æ è¯ç¸çãèåï¼Aggregateï¼è¡¨ç¤ºä¸ç»é¢å对象ï¼å
æ¬å®ä½åå¼å¯¹è±¡ï¼ï¼ç¨æ¥è¡¨è¿°ä¸ä¸ªå®æ´çé¢åæ¦å¿µãèæ¯ä¸ªèå齿ä¸ä¸ªæ ¹å®ä½ï¼è¿ä¸ªæ ¹å®ä½åå«åèåæ ¹ãèåæ ¹æ¯èåæè¡¨è¿°çé¢åæ¦å¿µç主ä½ï¼å¤é¨å¯¹è±¡éè¦è®¿é®èåå
çå®ä½æ¶ï¼åªè½éè¿èåæ ¹è¿è¡è®¿é®ï¼èä¸è½ç´æ¥è®¿é®ã |
| | | |
| | | ## äºãæä¸¾ |
| | | |
| | | |
| | | ## å
ãå¼å¯¹è±¡ï¼ValueObjectï¼ |
| | | |
| | | å¼å¯¹è±¡æ¯éè¿å±æ§æ¥è¯å«ç对象ï¼å®å°å¤ä¸ªç¸å
³å±æ§ç»å为ä¸ä¸ªæ¦å¿µæ´ä½ãå¼å¯¹è±¡æ²¡ææ è¯ï¼ä¸å
许ååï¼å¤æä¸¤ä¸ªå¼å¯¹è±¡ç¸ççæ åæ¯å¼å¯¹è±¡å
鍿æå±æ§å¼ç¸çã |
| | | |
| | | |
| | | ## å
ãé¢åæå¡ |
| | | |
| | | 䏿¶å |
| | | |
| | | ## ä¸ãé¢åäºä»¶ |
| | | |
| | | 䏿¶å |
| | | |
| | | ## å
«ãå
¶ä» |
| | | |
| | | 䏿¶å |
| | | |
| | | ## ä¹ãåèå¼ç¨ |
| | | |
| | | 䏿¶å |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <!-- All Microsoft packages --> |
| | | <MicrosoftPackageVersion>6.0.0</MicrosoftPackageVersion> |
| | | |
| | | <!-- All Abp packages --> |
| | | <ABPPackageVersion>6.0.0</ABPPackageVersion> |
| | | |
| | | <!-- All LMES packages --> |
| | | <LMESPackageVersion>2.3.*</LMESPackageVersion> |
| | | |
| | | <!-- Microsoft.NET.Test.Sdk https://www.nuget.org/packages/Microsoft.NET.Test.Sdk --> |
| | | <MicrosoftNETTestSdkPackageVersion>16.11.0</MicrosoftNETTestSdkPackageVersion> |
| | | |
| | | <!-- NSubstitute https://www.nuget.org/packages/NSubstitute --> |
| | | <NSubstitutePackageVersion>4.2.2</NSubstitutePackageVersion> |
| | | |
| | | <!-- Shouldly https://www.nuget.org/packages/Shouldly --> |
| | | <ShouldlyPackageVersion>4.0.3</ShouldlyPackageVersion> |
| | | |
| | | <!-- xunit https://www.nuget.org/packages/xUnit --> |
| | | <xUnitPackageVersion>2.4.1</xUnitPackageVersion> |
| | | |
| | | <!-- xunit.extensibility.execution https://www.nuget.org/packages/xunit.extensibility.execution --> |
| | | <xUnitExtensibilityExecutionPackageVersion>2.4.1</xUnitExtensibilityExecutionPackageVersion> |
| | | |
| | | <!-- xunit.runner.visualstudio https://www.nuget.org/packages/xunit.runner.visualstudio --> |
| | | <xUnitRunnerVisualstudioPackageVersion>2.4.3</xUnitRunnerVisualstudioPackageVersion> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # publishFolder |
| | | $publishFolder= $args[0] |
| | | |
| | | # Paths |
| | | $rootFolder = (Get-Item -Path "./" -Verbose).FullName |
| | | if ([String]::IsNullOrEmpty($publishFolder)) { |
| | | $publishFolder = Join-Path $rootFolder "output/publish" |
| | | $hasPath = Test-Path($publishFolder) |
| | | if (-Not $hasPath) { |
| | | new-item -path $rootFolder -name "output/publish" -type directory |
| | | } |
| | | } |
| | | Write-Host ("Publish Output " + $publishFolder) |
| | | |
| | | # List of projects |
| | | $projects = ( |
| | | "src/CMS.Plugin.HIAWms" |
| | | ) |
| | | |
| | | # Rebuild solution |
| | | Set-Location $rootFolder |
| | | dotnet restore -s https://nexus.sycdev.com/repository/nuget-hosted/ --runtime win-x64 |
| | | # dotnet restore --configfile NuGet.config --runtime win-x64 |
| | | Write-Host ("Restore Completed ! ") |
| | | # Publish all projects |
| | | foreach($project in $projects) { |
| | | $projectFolder = Join-Path $rootFolder $project |
| | | $projectName = $project.Substring($project.LastIndexOf("/") + 1) |
| | | Set-Location $projectFolder |
| | | Write-Host ("Publish " + $projectName) |
| | | # & dotnet publish ($projectName + ".csproj ") --configuration Release --output (Join-Path $publishFolder ("/" + $projectName.ToLower())) --nologo --verbosity quiet --no-restore |
| | | & dotnet publish ($projectName + ".csproj ") --configuration Release --output (Join-Path $publishFolder ("/" + $projectName.ToLower())) --nologo --verbosity quiet --no-restore --runtime win-x64 |
| | | } |
| | | |
| | | Write-Host ("Publish Completed ! ") |
| | | |
| | | # Go back to the root folder |
| | | Set-Location $rootFolder |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <EnableDynamicLoading>true</EnableDynamicLoading> |
| | | <ProduceReferenceAssembly>false</ProduceReferenceAssembly> |
| | | <GenerateDocumentationFile>true</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="CMS.Plugin.FlowManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.BarcodeManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.FormulaManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.MaterialManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProductManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProductionManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProcessManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.ProductManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.QualityManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.OrderManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | <PackageReference Include="CMS.Plugin.TraceManagement.Abstractions" Version="$(LMESPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Abstractions; |
| | | |
| | | /// <summary> |
| | | /// æµç¨ä¸å¡æ©å±æ¨¡å |
| | | /// </summary> |
| | | public class CMSPluginHIAWmsAbstractionsModule |
| | | { |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// æ©å±æ¹æ³ |
| | | /// </summary> |
| | | public static class CMSPluginHIAWmsExtensions |
| | | { |
| | | /// <summary> |
| | | /// Tries the add setting management. |
| | | /// </summary> |
| | | /// <param name="services">The services.</param> |
| | | /// <param name="configureOptions">The configure options.</param> |
| | | /// <returns></returns> |
| | | public static IServiceCollection TryAddHIAWms(this IServiceCollection services, Action<CMSPluginHIAWmsOptions>? configureOptions = null) |
| | | { |
| | | if (configureOptions == null) |
| | | { |
| | | services.AddOptions().Configure<CMSPluginHIAWmsOptions>(options => {}); |
| | | } |
| | | else |
| | | { |
| | | services.AddOptions().PostConfigure(configureOptions); |
| | | } |
| | | |
| | | return services; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// åè½å®ä¹. |
| | | /// </summary> |
| | | public class CMSPluginHIAWmsFeatures |
| | | { |
| | | /// <summary> |
| | | /// The prefix |
| | | /// </summary> |
| | | private const string Prefix = "LMES"; |
| | | |
| | | /// <summary> |
| | | /// GroupName |
| | | /// </summary> |
| | | public const string GroupName = Prefix + ".HIAWms"; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å¼å¯ |
| | | /// </summary> |
| | | public const string Enable = GroupName + ".Enable"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.MesSuite.Abstractions.Models; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | public class CMSPluginHIAWmsOptions |
| | | { |
| | | public CMSPluginHIAWmsOptions() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ©å±å±æ§ |
| | | /// </summary> |
| | | public List<ExtraProperty> ExtraProperties { get; set; } = new(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// CMSSettingNames |
| | | /// </summary> |
| | | public static class CMSPluginHIAWmsSettings |
| | | { |
| | | /// <summary> |
| | | /// The prefix |
| | | /// </summary> |
| | | private const string Prefix = "SCMS"; |
| | | |
| | | /// <summary> |
| | | /// The application settings prefix |
| | | /// </summary> |
| | | private const string AppSettingsPrefix = Prefix + ".AppSettings"; |
| | | |
| | | /// <summary> |
| | | /// ç»ä»¶ç¶æï¼0=å
³é,1=å¼å¯ |
| | | /// </summary> |
| | | public const string PluginState = AppSettingsPrefix + ".HIAWms.PluginState"; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.ComponentModel; |
| | | using System.Runtime.Serialization; |
| | | using CMS.Plugin.FlowManagement.Abstractions.Enums; |
| | | using CMS.Plugin.FlowManagement.Abstractions.FlowBusiness.Activitys; |
| | | using CMS.Plugin.MesSuite.Abstractions.Models; |
| | | using CMS.Plugin.OrderManagement.Abstractions.Models; |
| | | using CMS.Plugin.ProcessManagement.Abstractions.Models; |
| | | using CMS.Plugin.TraceManagement.Abstractions.Models.Traces; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using SYC.Flow.Kernel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// HIAWms ä¸å¡æ¥éª¤ |
| | | /// </summary> |
| | | [Design("HIAWms", "HIAWms ä¸å¡æ¥éª¤", Sort = 99), Category("å®å¶æ¥éª¤")] |
| | | [Serializable] |
| | | public class HIAWmsActivity : BusinessActivity |
| | | { |
| | | /// <summary> |
| | | /// é
ç½®å±æ§1 |
| | | /// </summary> |
| | | [Design("é
ç½®å±æ§1", "é
ç½®å±æ§1", Sort = 1), Category("é
置信æ¯")] |
| | | [DataMember] |
| | | public string MyProperty1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é
ç½®å±æ§2 |
| | | /// </summary> |
| | | [Design("é
ç½®å±æ§2", "é
ç½®å±æ§2", Sort = 2), Category("é
置信æ¯")] |
| | | [DataMember] |
| | | public int MyProperty2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æµç¨ä¸ä¸ææ è¯éå |
| | | /// </summary> |
| | | public override List<FlowItemKey> FlowItemKeys => GetFlowItemKeys(); |
| | | |
| | | /// <summary> |
| | | /// å·¥èºæµç¨å¤ç |
| | | /// </summary> |
| | | public override async Task ProcessAsync(ProcessflowEventArgs args) |
| | | { |
| | | // å·¥èºæ¨¡å |
| | | var processModel = Flow.DataItems.ApplicationData as ProcessModel; |
| | | |
| | | // 工忍¡å |
| | | var orderModel = Flow.DataItems[FlowItemCollection.OrderModel] as OrderModel; |
| | | |
| | | // äº§åæ¨¡å |
| | | var productModel = Flow.DataItems[FlowItemCollection.ProductModel] as AssociationProductModel; |
| | | |
| | | // 追溯模å |
| | | var traceModel = Flow.DataItems[FlowItemCollection.TraceModel] as TraceModel; |
| | | |
| | | Flow.Logger.LogInformation($"æ§è¡æµç¨ï¼å®ä¾={Flow.Instance.ProcID} -> {Flow.Name} -> {Name} HIAWmsActivity"); |
| | | |
| | | // ä¸å¡å¤ç |
| | | // ç±äºServiceProvideræ¥æºäºFlowç»ä»¶ï¼æ¤å¤éå
±äº«CMS.Plugin.HIAWms.Abstractionsç¨åºéï¼å¦åæ æ³è°ç¨ï¼ä¿®æ¹CMS.Plugin.HIAWms项ç®ä¸çCMSPluginModule.csæä»¶ï¼åæ¶æ³¨éGetSharedAssemblies()æ¹æ³ |
| | | var hiawmsFlowService = Flow.ServiceProvider.GetService<IHIAWmsFlowService>(); |
| | | if (hiawmsFlowService != null) |
| | | { |
| | | await hiawmsFlowService.ProcessAsync(args); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Gets the flow item keys. |
| | | /// </summary> |
| | | protected virtual List<FlowItemKey> GetFlowItemKeys() |
| | | { |
| | | var result = new List<FlowItemKey>(); |
| | | return result; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using SYC.Flow.Kernel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Abstractions |
| | | { |
| | | /// <summary> |
| | | /// HIAWms æµç¨æå¡ |
| | | /// </summary> |
| | | public interface IHIAWmsFlowService |
| | | { |
| | | /// <summary> |
| | | /// å·¥èºæµç¨å¤ç |
| | | /// </summary> |
| | | Task ProcessAsync(ProcessflowEventArgs args); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using SYC.Flow.Kernel; |
| | | |
| | | [assembly: ProcessflowExtention(true)] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <GenerateDocumentationFile>True</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Ddd.Application.Contracts" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Authorization.Abstractions" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="MiniExcel" Version="1.31.3" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain.Shared\CMS.Plugin.HIAWms.Domain.Shared.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using Volo.Abp.Application; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts; |
| | | |
| | | /// <summary> |
| | | /// æä»¶åºç¨æå¡å¥çº¦æ¨¡å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginDomainSharedModule), |
| | | typeof(AbpDddApplicationContractsModule) |
| | | )] |
| | | public class CMSPluginApplicationContractsModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginDtoExtensions.Configure(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Threading; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts; |
| | | |
| | | /// <summary> |
| | | /// Dtoæ©å± |
| | | /// </summary> |
| | | public static class CMSPluginDtoExtensions |
| | | { |
| | | private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); |
| | | |
| | | /// <summary> |
| | | /// Configures this instance. |
| | | /// </summary> |
| | | public static void Configure() |
| | | { |
| | | OneTimeRunner.Run(() => |
| | | { |
| | | /* You can add extension properties to DTOs |
| | | * defined in the depended modules. |
| | | * |
| | | * Example: |
| | | * |
| | | * ObjectExtensionManager.Instance |
| | | * .AddOrUpdateProperty<IdentityRoleDto, string>("Title"); |
| | | * |
| | | * See the documentation for more: |
| | | * https://docs.abp.io/en/abp/latest/Object-Extensions |
| | | */ |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsAreasInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the filter. |
| | | /// </summary> |
| | | public string Filter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the name. |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string? AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsAreaCreateDto : WmsAreaCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsAreaCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string? AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsAreaCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | public class AreaForListOuptut |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsAreaDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string? AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public string AreaStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(AreaStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public string AreaTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(AreaType); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsAreaUpdateDto : WmsAreaCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsAreasExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºç¼å· |
| | | /// </summary> |
| | | /// <example>WH-AREA-001</example> |
| | | [ExcelColumn(Name = "åºåºç¼å·", Width = 20)] |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºåç§° |
| | | /// </summary> |
| | | /// <example>åææAåº</example> |
| | | [ExcelColumn(Name = "åºåºåç§°", Width = 25)] |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºæè¿°ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <example>åæ¾çµåå
å¨ä»¶</example> |
| | | [ExcelColumn(Name = "æè¿°", Width = 30)] |
| | | public string AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºç¶æ |
| | | /// </summary> |
| | | /// <example>Normal</example> |
| | | [ExcelColumn(Name = "åºåºç¶æ", Width = 15)] |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åºåºç±»å |
| | | /// </summary> |
| | | /// <example>Storage</example> |
| | | [ExcelColumn(Name = "åºåºç±»å", Width = 15)] |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary |
| | | [ExcelColumn(Name = "ä»åºä»£ç ", Width = 15)] |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ä»åºåç§°", Width = 15)] |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段1 |
| | | /// </summary> |
| | | /// <example>èªå®ä¹ç¨é</example> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 20)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 20)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 20)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreasExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas |
| | | { |
| | | /// <summary> |
| | | /// WmsAreas导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsAreasImportModel |
| | | { |
| | | private List<WmsAreaImportModel> _wmsareas = new(); |
| | | |
| | | public List<WmsAreaImportModel> WmsAreas |
| | | { |
| | | get => _wmsareas; |
| | | set |
| | | { |
| | | _wmsareas = value; |
| | | var rowIndex = 2; |
| | | _wmsareas?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsArea导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsAreaImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineræ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsContainersInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the filter. |
| | | /// </summary> |
| | | public string Filter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the name. |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineråå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerCreateDto : WmsContainerCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineråå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsContainerCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | ///ç©ææ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsContainerCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineræ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public string ContainerTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(ContainerType); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public string ContainerStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(ContainerStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | ///ç©ææ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineræ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsContainerUpdateDto : WmsContainerCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers |
| | | { |
| | | /// <summary> |
| | | /// WmsContainerså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsContainersExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsContainerå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç¼å·", Width = 25)] |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç±»å", Width = 25)] |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æçç¶æ", Width = 25)] |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é¿åº¦", Width = 25)] |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "宽度", Width = 25)] |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é«åº¦", Width = 25)] |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "éé¿", Width = 25)] |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "é宽", Width = 25)] |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | [ExcelColumn(Name = "éé«", Width = 25)] |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "è½½éä¸é", Width = 25)] |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "å¼å¸¸æ°é", Width = 25)] |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©ææ°é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "ç©ææ°é", Width = 25)] |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段1", Width = 25)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段2", Width = 25)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | [ExcelColumn(Name = "åä½å段3", Width = 25)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers.WmsContainersExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers |
| | | { |
| | | /// <summary> |
| | | /// WmsContainers导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsContainersImportModel |
| | | { |
| | | private List<WmsContainerImportModel> _wmscontainers = new(); |
| | | |
| | | public List<WmsContainerImportModel> WmsContainers |
| | | { |
| | | get => _wmscontainers; |
| | | set |
| | | { |
| | | _wmscontainers = value; |
| | | var rowIndex = 2; |
| | | _wmscontainers?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsContainer导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsContainerImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾è¾å
¥åæ° |
| | | /// </summary> |
| | | public class WmsEnumInput |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾ç±»ååç§° |
| | | /// </summary> |
| | | /// <example>AccountTypeEnum</example> |
| | | public string EnumName { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CmsQueryExtensions.Extension; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯è¡¨æ¥è¯¢åæ° |
| | | /// </summary> |
| | | public class GetWmsMaterialInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | |
| | | #region å
³é®åæ¥è¯¢ |
| | | |
| | | /// <summary> |
| | | /// å
³é®åæ¨¡ç³æ¥è¯¢ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public string searchVal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éç¨æ¥è¯¢é
ç½® (1:æ¨¡ç³æ¥è¯¢ , 2:ç²¾åæ¥è¯¢)ï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | [NoAutoQuery] |
| | | public string str_searchFormInputAttrs { get; set; } |
| | | /// <summary> |
| | | /// åæç´¢ç»ä»¶ä¼ éçéç¨æ¥è¯¢é
ç½®ç屿§åï¼æ³¨ææ¯å°åï¼ï¼ |
| | | /// </summary> |
| | | public List<string> searchFormInputAttrs |
| | | { |
| | | get |
| | | { |
| | | if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) |
| | | { |
| | | return str_searchFormInputAttrs.Split(',').ToList(); |
| | | } |
| | | return new List<string>(); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialCode_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§°-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialName_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public int? PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PurchaseType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public int? MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialType_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmã个ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum PrimaryUnit_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Standard_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public string OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum OuterDiameter_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public string WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum WallThickness_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum MaterialQuality_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public string Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Length_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | public int? IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsMainBranch_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工å-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Factory_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å· |
| | | /// </summary> |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å·-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Certification_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField1_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField2_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum RedundantField3_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Sort_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum Remark_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨-æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDisabled_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum ConcurrencyStamp_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> CreationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string CreatorId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum CreatorId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> LastModificationTime { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string LastModifierId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum LastModifierId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public bool? IsDeleted { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum IsDeleted_FilterMode { get; set; } = SearchFilterModeEnum.ç²¾åæ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public string DeleterId { get; set; } |
| | | |
| | | /// <summary> |
| | | /// -æ¥è¯¢å
³ç³»è¿ç®ç¬¦ |
| | | /// </summary> |
| | | public SearchFilterModeEnum DeleterId_FilterMode { get; set; } = SearchFilterModeEnum.æ¨¡ç³æ¥è¯¢; |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | //è¡¨ç¤ºæ¯ é«çº§æ¥è¯¢èå´æ¥è¯¢ç¹æ§ |
| | | [HighSearchRangeAttribute] |
| | | public List<string> DeletionTime { get; set; } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialCreateDto : WmsMaterialCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯åå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsMaterialCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public MaterialTypeEnum MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ï¼true: 主æ¯ç®¡, false: é主æ¯ç®¡ï¼ |
| | | /// </summary> |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å·ï¼å¦ï¼åå容å¨è®¤è¯ï¼ |
| | | /// </summary> |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsMaterialCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string PurchaseTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(PurchaseType); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public MaterialTypeEnum MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public string MaterialTypeDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(MaterialType); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ï¼1: 主æ¯ç®¡, 2: é主æ¯ç®¡ï¼ |
| | | /// </summary> |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ |
| | | /// </summary> |
| | | public string IsMainBranchDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(IsMainBranch); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å·ï¼å¦ï¼åå容å¨è®¤è¯ï¼ |
| | | /// </summary> |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial |
| | | { |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class MaterialExportModel |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | /// <example>MAT-2023-001</example> |
| | | [ExcelColumn(Name = "ç©æç¼ç ", Width = 25)] |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | /// <example>304ä¸éé¢ç®¡</example> |
| | | [ExcelColumn(Name = "ç©æåç§°", Width = 25)] |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»å |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// 0:æ åéè´ 1:ç´§æ¥éè´ 2:åè®®éè´ |
| | | /// </remarks> |
| | | /// <example>0</example> |
| | | [ExcelColumn(Name = "éè´ç±»å", Width = 25)] |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»å |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// 1:åææ 2:åæå 3:æå |
| | | /// </remarks> |
| | | /// <example>1</example> |
| | | [ExcelColumn(Name = "ç©æç±»å", Width = 25)] |
| | | public MaterialTypeEnum MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主计éåä½ |
| | | /// </summary> |
| | | /// <example>kg</example> |
| | | [ExcelColumn(Name = "主åä½", Width = 25)] |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/ææ¯æ å |
| | | /// </summary> |
| | | /// <example>GB/T 8163-2018</example> |
| | | [ExcelColumn(Name = "è§æ ¼/æ å", Width = 25)] |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼æ¯«ç±³ï¼ |
| | | /// </summary> |
| | | /// <example>50.5</example> |
| | | [ExcelColumn(Name = "å¤å¾(mm)", Width = 25)] |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼æ¯«ç±³ï¼ |
| | | /// </summary> |
| | | /// <example>2.5</example> |
| | | [ExcelColumn(Name = "å£å(mm)", Width = 25)] |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨è¯´æ |
| | | /// </summary> |
| | | /// <example>304ä¸éé¢</example> |
| | | [ExcelColumn(Name = "æè´¨", Width = 25)] |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼ç±³ï¼ |
| | | /// </summary> |
| | | /// <example>6.0</example> |
| | | [ExcelColumn(Name = "é¿åº¦(m)", Width = 25)] |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸»æ¯ç®¡æ è¯ |
| | | /// </summary> |
| | | /// <example>true</example> |
| | | [ExcelColumn(Name = "æ¯å¦ä¸»æ¯ç®¡", Width = 25)] |
| | | [Description("æ¯/å¦")] |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工ååç§° |
| | | /// </summary> |
| | | /// <example>䏿µ·ç¬¬ä¸å·¥å</example> |
| | | [ExcelColumn(Name = "ç产工å", Width = 25)] |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 认è¯è¯ä¹¦ç¼å· |
| | | /// </summary> |
| | | /// <example>CER-2023-001</example> |
| | | [ExcelColumn(Name = "è¯ä¹¦ç¼å·", Width = 25)] |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢çæ©å±å段1 |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// å¯ç¨äºä¸´æ¶åå¨ä¾åºåç¼ç çæ©å±ä¿¡æ¯ |
| | | /// </remarks> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 25)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢çæ©å±å段2 |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// å¯ç¨äºä¸´æ¶å卿¹æ¬¡å·çæ©å±ä¿¡æ¯ |
| | | /// </remarks> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 25)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢çæ©å±å段3 |
| | | /// </summary> |
| | | /// <remarks> |
| | | /// å¯ç¨äºä¸´æ¶åå¨èªå®ä¹åç±»çæ©å±ä¿¡æ¯ |
| | | /// </remarks> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 25)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨",Width = 25)] |
| | | public string Remark { get; set; } |
| | | |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsMaterialUpdateDto : WmsMaterialCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterials导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialsImportModel |
| | | { |
| | | private List<WmsMaterialImportModel> _wmsmaterials = new(); |
| | | |
| | | public List<WmsMaterialImportModel> WmsMaterials |
| | | { |
| | | get => _wmsmaterials; |
| | | set |
| | | { |
| | | _wmsmaterials = value; |
| | | var rowIndex = 2; |
| | | _wmsmaterials?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsMaterial导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsMaterialImportModel : MaterialExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsPlacesInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the filter. |
| | | /// </summary> |
| | | public string Filter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the name. |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsPlaceCreateDto : WmsPlaceCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsPlaceCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public YesNoEnum Islock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsPlaceCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsPlaceDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string PlaceNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public string StorageTypeNoDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(StorageTypeNo); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public string PlaceStatusDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(PlaceStatus); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public string AreaCode { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int Aisle { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int RowNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int ColumnNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int LayerNo { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public YesNoEnum Islock { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public string IslockDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(Islock); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; protected set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public string EmptyContainerDesc |
| | | { |
| | | get |
| | | { |
| | | return GetEnumDescriptionUtil.GetEnumDescription(EmptyContainer); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsPlaceUpdateDto : WmsPlaceCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsPlacesExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®è´§ä½ç¼å· |
| | | /// </summary> |
| | | /// <example>PL-001-01-01</example> |
| | | [ExcelColumn(Name = "è´§ä½ç¼å·", Width = 20)] |
| | | public string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®è´§ä½ç±»å |
| | | /// </summary> |
| | | /// <example>Normal</example> |
| | | [ExcelColumn(Name = "è´§ä½ç±»å", Width = 15)] |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®è´§ä½ç¶æ |
| | | /// </summary> |
| | | /// <example>Available</example> |
| | | [ExcelColumn(Name = "è´§ä½ç¶æ", Width = 15)] |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®æå¨åºåºç¼å· |
| | | /// </summary> |
| | | /// <example>AREA-001</example> |
| | | [ExcelColumn(Name = "æå±åºåº", Width = 20)] |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®å··éç¼å· |
| | | /// </summary> |
| | | /// <example>1</example> |
| | | [ExcelColumn(Name = "å··é", Width = 10)] |
| | | public int Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®æå· |
| | | /// </summary> |
| | | /// <example>2</example> |
| | | [ExcelColumn(Name = "æ", Width = 10)] |
| | | public int RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®åå· |
| | | /// </summary> |
| | | /// <example>3</example> |
| | | [ExcelColumn(Name = "å", Width = 10)] |
| | | public int ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®å±å· |
| | | /// </summary> |
| | | /// <example>1</example> |
| | | [ExcelColumn(Name = "å±", Width = 10)] |
| | | public int LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®éå®ç¶æ |
| | | /// </summary> |
| | | /// <example>No</example> |
| | | [ExcelColumn(Name = "æ¯å¦éå®", Width = 12)] |
| | | public YesNoEnum Islock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®ç©ºæç¶æ |
| | | /// </summary> |
| | | /// <example>Yes</example> |
| | | [ExcelColumn(Name = "æ¯å¦ç©ºæ", Width = 12)] |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段1 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 20)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 20)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 20)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlacesExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaces导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsPlacesImportModel |
| | | { |
| | | private List<WmsPlaceImportModel> _wmsplaces = new(); |
| | | |
| | | public List<WmsPlaceImportModel> WmsPlaces |
| | | { |
| | | get => _wmsplaces; |
| | | set |
| | | { |
| | | _wmsplaces = value; |
| | | var rowIndex = 2; |
| | | _wmsplaces?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsPlace导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsPlaceImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreæ¥è¯¢åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class GetWmsStoresInput : ExtensiblePagedAndSortedResultRequestDto |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the filter. |
| | | /// </summary> |
| | | public string Filter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the name. |
| | | /// </summary> |
| | | public string Name { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreåå»ºåæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsStoreCreateDto : WmsStoreCreateOrUpdateDtoBase |
| | | { |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int? Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public bool? IsDisabled { get; set; } = false; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreåå»ºææ´æ°åºç±» |
| | | /// </summary> |
| | | public abstract class WmsStoreCreateOrUpdateDtoBase : ExtensibleEntityDto |
| | | { |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreCreateOrUpdateDtoBase"/> class. |
| | | /// </summary> |
| | | public WmsStoreCreateOrUpdateDtoBase() : base(false) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreæ°æ®åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsStoreDto : ExtensibleEntityDto<Guid>, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets the export data. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dictionary<string, object> GetExportData() |
| | | { |
| | | var exportData = new Dictionary<string, object>(); |
| | | foreach (var property in this.GetType().GetProperties()) |
| | | { |
| | | exportData.Add(property.Name, property.GetValue(this)); |
| | | } |
| | | |
| | | return exportData; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åä»åºéæ©ä½¿ç¨ |
| | | /// </summary> |
| | | public class WmsStoreForAreaOutpur |
| | | { |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Entities; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreæ´æ°åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | public class WmsStoreUpdateDto : WmsStoreCreateOrUpdateDtoBase, IHasConcurrencyStamp |
| | | { |
| | | /// <summary> |
| | | /// å¹¶åæ³ |
| | | /// </summary> |
| | | public string ConcurrencyStamp { get; set; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using MiniExcelLibs.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreså¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WmsStoresExportModel |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreå¯¼åºæ¨¡å |
| | | /// </summary> |
| | | public class WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®ä»åºä»£ç |
| | | /// </summary> |
| | | /// <example>WH-001</example> |
| | | [ExcelColumn(Name = "ä»åºä»£ç ", Width = 20)] |
| | | public string StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®ä»åºåç§° |
| | | /// </summary> |
| | | /// <example>䏿µ·ä¸å¿ä»</example> |
| | | [ExcelColumn(Name = "ä»åºåç§°", Width = 25)] |
| | | public string StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段1 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段1", Width = 20)] |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段2 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段2", Width = 20)] |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è·åæè®¾ç½®é¢çæ©å±å段3 |
| | | /// </summary> |
| | | [ExcelColumn(Name = "æ©å±å段3", Width = 20)] |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | [ExcelColumn(Name = "夿³¨", Width = 25)] |
| | | public virtual string Remark { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores.WmsStoresExportModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores |
| | | { |
| | | /// <summary> |
| | | /// WmsStores导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsStoresImportModel |
| | | { |
| | | private List<WmsStoreImportModel> _wmsstores = new(); |
| | | |
| | | public List<WmsStoreImportModel> WmsStores |
| | | { |
| | | get => _wmsstores; |
| | | set |
| | | { |
| | | _wmsstores = value; |
| | | var rowIndex = 2; |
| | | _wmsstores?.ForEach(x => x.RowIndex = rowIndex++); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WmsStore导å
¥æ¨¡å |
| | | /// </summary> |
| | | public class WmsStoreImportModel : WorkSectionExportModel |
| | | { |
| | | /// <summary> |
| | | /// è¡å· |
| | | /// </summary> |
| | | public int RowIndex { get; set; } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts; |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢åºç¨æå¡ |
| | | /// </summary> |
| | | public interface ICMSPluginQueryAppService : IApplicationService |
| | | { |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsAreaAppService : ICrudAppService<WmsAreaDto, Guid, GetWmsAreasInput, WmsAreaCreateDto, WmsAreaUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsAreaDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsAreasImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsAreasInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineråºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsContainerAppService : ICrudAppService<WmsContainerDto, Guid, GetWmsContainersInput, WmsContainerCreateDto, WmsContainerUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsContainerDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsContainersImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainersInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsEnumAppService |
| | | { |
| | | /// <summary> |
| | | /// è·åæä¸¾. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | List<EnumItem> GetEnumDataList(WmsEnumInput enumInput); |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<WmsStoreForAreaOutpur>> GetStreList(); |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<List<AreaForListOuptut>> GetAreaListAsync(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯åºç¨æå¡æ¥å£ |
| | | /// </summary> |
| | | public interface IWmsMaterialAppService : ICrudAppService<WmsMaterialDto, Guid, GetWmsMaterialInput, WmsMaterialCreateDto, WmsMaterialUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// å
éç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// å é¤ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsMaterialsImportModel input); |
| | | |
| | | /// <summary> |
| | | /// 导åºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsPlaceAppService : ICrudAppService<WmsPlaceDto, Guid, GetWmsPlacesInput, WmsPlaceCreateDto, WmsPlaceUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsPlaceDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsPlacesImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsPlacesInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreåºç¨æå¡ |
| | | /// </summary> |
| | | public interface IWmsStoreAppService : ICrudAppService<WmsStoreDto, Guid, GetWmsStoresInput, WmsStoreCreateDto, WmsStoreUpdateDto> |
| | | { |
| | | /// <summary> |
| | | /// Clones the asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsStoreDto>> CloneAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Deletes the many asynchronous. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | Task DeleteManyAsync(IEnumerable<Guid> ids); |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort asynchronous. |
| | | /// </summary> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <param name="sort">The sort.</param> |
| | | /// <returns></returns> |
| | | Task AdjustSortAsync(Guid id, int sort); |
| | | |
| | | /// <summary> |
| | | /// Imports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task ImportAsync(WmsStoresImportModel input); |
| | | |
| | | /// <summary> |
| | | /// Exports the asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | /// <returns></returns> |
| | | Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsStoresInput input); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Dapper" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.AutoMapper" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Ddd.Application" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Application.Contracts\CMS.Plugin.HIAWms.Application.Contracts.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain\CMS.Plugin.HIAWms.Domain.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Localization; |
| | | using Volo.Abp.Application.Services; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application; |
| | | |
| | | /// <summary> |
| | | /// Inherit your application services from this class. |
| | | /// </summary> |
| | | public abstract class CMSPluginAppService : ApplicationService |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginAppService"/> class. |
| | | /// </summary> |
| | | protected CMSPluginAppService() |
| | | { |
| | | ObjectMapperContext = typeof(CMSPluginApplicationModule); |
| | | LocalizationResource = typeof(HIAWmsResource); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts; |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp.Application; |
| | | using Volo.Abp.AutoMapper; |
| | | using Volo.Abp.EventBus; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application; |
| | | |
| | | /// <summary> |
| | | /// æä»¶åºç¨æå¡æ¨¡å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginDomainModule), |
| | | typeof(CMSPluginApplicationContractsModule), |
| | | typeof(AbpAutoMapperModule), |
| | | typeof(AbpEventBusModule), |
| | | typeof(AbpDddApplicationModule) |
| | | )] |
| | | public class CMSPluginApplicationModule : AbpModule |
| | | { |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | context.Services.AddAutoMapperObjectMapper<CMSPluginApplicationModule>(); |
| | | Configure<AbpAutoMapperOptions>(options => |
| | | { |
| | | options.AddMaps<CMSPluginApplicationModule>(validate: true); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts; |
| | | using CMS.Plugin.HIAWms.Domain.Data; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application; |
| | | |
| | | /// <inheritdoc /> |
| | | public class CMSPluginQueryAppService : CMSPluginAppService, ICMSPluginQueryAppService |
| | | { |
| | | private readonly ICMSPluginDapperRepository _dapperRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginQueryAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="dapperRepository">The dapper repository.</param> |
| | | public CMSPluginQueryAppService(ICMSPluginDapperRepository dapperRepository) |
| | | { |
| | | _dapperRepository = dapperRepository; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsAreaAppService : CMSPluginAppService, IWmsAreaAppService |
| | | { |
| | | private readonly IWmsAreaRepository _wmsareaRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsareaRepository">The task job repository.</param> |
| | | public WmsAreaAppService(IWmsAreaRepository wmsareaRepository) |
| | | { |
| | | _wmsareaRepository = wmsareaRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsAreaDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsArea, WmsAreaDto>(await _wmsareaRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsAreaDto>> GetListAsync(GetWmsAreasInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsArea.Sort); |
| | | } |
| | | |
| | | var specification = new WmsAreaSpecification(input.Name); |
| | | var area = ObjectMapper.Map<GetWmsAreasInput, WmsArea>(input); |
| | | var count = await _wmsareaRepository.GetCountAsync(area,input.Filter, specification); |
| | | var list = await _wmsareaRepository.GetListAsync(area,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | |
| | | return new PagedResultDto<WmsAreaDto>(count, ObjectMapper.Map<List<WmsArea>, List<WmsAreaDto>>(list)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsAreaDto> CreateAsync(WmsAreaCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsareaRepository.NameExistAsync(input.AreaNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.AreaNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmsareaRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsarea = ObjectMapper.Map<WmsAreaCreateDto, WmsArea>(input); |
| | | wmsarea.Sort = sort; |
| | | input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await _wmsareaRepository.InsertAsync(wmsarea); |
| | | |
| | | if (input.Sort.HasValue && wmsarea.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsarea.Id, wmsarea.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsArea, WmsAreaDto>(wmsarea); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsAreaDto> UpdateAsync(Guid id, WmsAreaUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsarea = await _wmsareaRepository.GetAsync(id); |
| | | var exist = await _wmsareaRepository.NameExistAsync(input.AreaNo, wmsarea.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.AreaNo]); |
| | | } |
| | | |
| | | wmsarea.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsarea, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsarea.AreaName = input.AreaName; |
| | | wmsarea.AreaDesc = input.AreaDesc; |
| | | wmsarea.AreaStatus = input.AreaStatus; |
| | | wmsarea.AreaType = input.AreaType; |
| | | wmsarea.StoreCode = input.StoreCode; |
| | | wmsarea.StoreName = input.StoreName; |
| | | |
| | | await _wmsareaRepository.UpdateAsync(wmsarea); |
| | | |
| | | return ObjectMapper.Map<WmsArea, WmsAreaDto>(wmsarea); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsAreaDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsareas = new List<WmsArea>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsareaRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsarea = await _wmsareaRepository.FindAsync(id); |
| | | if (wmsarea != null) |
| | | { |
| | | var name = wmsarea.AreaNo + WmsAreaConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsareaRepository.NameExistAsync(name); |
| | | if (exist || wmsareas.Any(x => x.AreaNo == name)) |
| | | { |
| | | name += WmsAreaConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | wmsareas.Add(wmsarea); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsArea>, List<WmsAreaDto>>(wmsareas); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsareaRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsareaRepository.GetListAsync(null,nameof(WmsArea.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsareaRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsAreasImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsareaCreateDtos = new List<(int RowIndex, WmsAreaCreateDto Item)>(); |
| | | var wmsareaUpdateDtos = new List<(int RowIndex, Guid Id, WmsAreaUpdateDto Item)>(); |
| | | var wmsareas = input.WmsAreas; |
| | | |
| | | if (wmsareas != null && wmsareas.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsAreas = wmsareas.GroupBy(x => x.AreaNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsAreas?.Any() == true) |
| | | { |
| | | var duplicateWmsAreaMsgs = duplicateWmsAreas.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsAreaMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsarea in wmsareas) |
| | | { |
| | | if (wmsarea.AreaNo.IsNullOrWhiteSpace() && wmsarea.AreaName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsarea.AreaName.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsarea.RowIndex}è¡ï¼WmsAreaåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsArea = await _wmsareaRepository.FindByNameAsync(wmsarea.AreaName); |
| | | if (oldWmsArea != null) |
| | | { |
| | | var wmsareaUpdateDto = new WmsAreaUpdateDto |
| | | { |
| | | AreaName = wmsarea.AreaName, |
| | | AreaDesc = wmsarea.AreaDesc, |
| | | AreaStatus = wmsarea.AreaStatus, |
| | | AreaType = wmsarea.AreaType, |
| | | StoreCode = wmsarea.StoreCode, |
| | | StoreName = wmsarea.StoreName, |
| | | Remark = wmsarea.Remark, |
| | | }; |
| | | |
| | | wmsareaUpdateDtos.Add((wmsarea.RowIndex, oldWmsArea.Id, wmsareaUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsareaCreateDto = new WmsAreaCreateDto |
| | | { |
| | | AreaName = wmsarea.AreaName, |
| | | AreaDesc = wmsarea.AreaDesc, |
| | | AreaStatus = wmsarea.AreaStatus, |
| | | AreaType = wmsarea.AreaType, |
| | | StoreCode = wmsarea.StoreCode, |
| | | StoreName = wmsarea.StoreName, |
| | | Remark = wmsarea.Remark, |
| | | }; |
| | | |
| | | wmsareaCreateDtos.Add((wmsarea.RowIndex, wmsareaCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsareaDto in wmsareaCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsareaDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsareaDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsareaDto in wmsareaUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsareaDto.Id, wmsareaDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsareaDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsAreasInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsArea.Sort); |
| | | } |
| | | |
| | | var specification = new WmsAreaSpecification(input.Name); |
| | | var area = ObjectMapper.Map<GetWmsAreasInput, WmsArea>(input); |
| | | var list = await _wmsareaRepository.GetListAsync(area,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsArea>, List<WmsAreaDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsAreaå表" : result.Count == 1 ? result.First()?.AreaName : "WmsArea模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsAreaCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.AreaNo, "ç¼å·", WmsAreaConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.AreaName, "åç§°", WmsAreaConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsAreaConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsContainerAppService : CMSPluginAppService, IWmsContainerAppService |
| | | { |
| | | private readonly IWmsContainerRepository _wmscontainerRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmscontainerRepository">The task job repository.</param> |
| | | public WmsContainerAppService(IWmsContainerRepository wmscontainerRepository) |
| | | { |
| | | _wmscontainerRepository = wmscontainerRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainerDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsContainer, WmsContainerDto>(await _wmscontainerRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsContainerDto>> GetListAsync(GetWmsContainersInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsContainer.Sort); |
| | | } |
| | | |
| | | var specification = new WmsContainerSpecification(input.Name); |
| | | var container = ObjectMapper.Map < GetWmsContainersInput, WmsContainer>(input); |
| | | var count = await _wmscontainerRepository.GetCountAsync(container,input.Filter, specification); |
| | | var list = await _wmscontainerRepository.GetListAsync(container,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | |
| | | return new PagedResultDto<WmsContainerDto>(count, ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainerDto> CreateAsync(WmsContainerCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmscontainerRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmscontainer = ObjectMapper.Map<WmsContainerCreateDto,WmsContainer>(input); |
| | | input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None); |
| | | wmscontainer.Sort = sort; |
| | | await _wmscontainerRepository.InsertAsync(wmscontainer); |
| | | |
| | | if (input.Sort.HasValue && wmscontainer.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmscontainer.Id, wmscontainer.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsContainer, WmsContainerDto>(wmscontainer); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainerDto> UpdateAsync(Guid id, WmsContainerUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmscontainer = await _wmscontainerRepository.GetAsync(id); |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo, wmscontainer.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]); |
| | | } |
| | | |
| | | wmscontainer.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmscontainer.ContainerStatus = input.ContainerStatus; |
| | | wmscontainer.ContainerType = input.ContainerType; |
| | | wmscontainer.SpecLength = input.SpecLength; |
| | | wmscontainer.SpecWidth = input.SpecWidth; |
| | | wmscontainer.SpecHeight = input.SpecHeight; |
| | | wmscontainer.LimitLength = input.LimitLength; |
| | | wmscontainer.LimitWidth = input.LimitWidth; |
| | | wmscontainer.LimitHeight = input.LimitHeight; |
| | | wmscontainer.MaxWeight = input.MaxWeight; |
| | | wmscontainer.MaterialNumber = input.MaterialNumber; |
| | | wmscontainer.ExceptionNumber = input.ExceptionNumber; |
| | | |
| | | await _wmscontainerRepository.UpdateAsync(wmscontainer); |
| | | |
| | | return ObjectMapper.Map<WmsContainer, WmsContainerDto>(wmscontainer); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsContainerDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmscontainers = new List<WmsContainer>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmscontainerRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmscontainer = await _wmscontainerRepository.FindAsync(id); |
| | | if (wmscontainer != null) |
| | | { |
| | | var containerNo = wmscontainer.ContainerNo + WmsContainerConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmscontainerRepository.NameExistAsync(containerNo); |
| | | if (exist || wmscontainers.Any(x => x.ContainerNo == containerNo)) |
| | | { |
| | | containerNo += WmsContainerConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmscontainer = await _wmscontainerRepository.InsertAsync(wmscontainer.Clone(GuidGenerator.Create(), containerNo, sort++)); |
| | | wmscontainers.Add(wmscontainer); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(wmscontainers); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmscontainerRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmscontainerRepository.GetListAsync(null,nameof(WmsContainer.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmscontainerRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsContainersImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmscontainerCreateDtos = new List<(int RowIndex, WmsContainerCreateDto Item)>(); |
| | | var wmscontainerUpdateDtos = new List<(int RowIndex, Guid Id, WmsContainerUpdateDto Item)>(); |
| | | var wmscontainers = input.WmsContainers; |
| | | |
| | | if (wmscontainers != null && wmscontainers.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsContainers = wmscontainers.GroupBy(x => x.ContainerNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsContainers?.Any() == true) |
| | | { |
| | | var duplicateWmsContainerMsgs = duplicateWmsContainers.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsContainerMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmscontainer in wmscontainers) |
| | | { |
| | | if (wmscontainer.ContainerNo.IsNullOrWhiteSpace() && wmscontainer.ContainerNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmscontainer.ContainerNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmscontainer.RowIndex}è¡ï¼WmsContaineråç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsContainer = await _wmscontainerRepository.FindByNameAsync(wmscontainer.ContainerNo); |
| | | if (oldWmsContainer != null) |
| | | { |
| | | var wmscontainerUpdateDto = new WmsContainerUpdateDto |
| | | { |
| | | ContainerNo = wmscontainer.ContainerNo, |
| | | ContainerType = wmscontainer.ContainerType, |
| | | ContainerStatus = wmscontainer.ContainerStatus, |
| | | SpecLength = wmscontainer.SpecLength, |
| | | SpecWidth = wmscontainer.SpecWidth, |
| | | SpecHeight = wmscontainer.SpecHeight, |
| | | LimitLength = wmscontainer.LimitLength, |
| | | LimitWidth = wmscontainer.LimitWidth, |
| | | LimitHeight = wmscontainer.LimitHeight, |
| | | MaxWeight = wmscontainer.MaxWeight, |
| | | Remark = wmscontainer.Remark, |
| | | }; |
| | | |
| | | wmscontainerUpdateDtos.Add((wmscontainer.RowIndex, oldWmsContainer.Id, wmscontainerUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmscontainerCreateDto = new WmsContainerCreateDto |
| | | { |
| | | ContainerNo = wmscontainer.ContainerNo, |
| | | ContainerType = wmscontainer.ContainerType, |
| | | ContainerStatus = wmscontainer.ContainerStatus, |
| | | SpecLength = wmscontainer.SpecLength, |
| | | SpecWidth = wmscontainer.SpecWidth, |
| | | SpecHeight = wmscontainer.SpecHeight, |
| | | LimitLength = wmscontainer.LimitLength, |
| | | LimitWidth = wmscontainer.LimitWidth, |
| | | LimitHeight = wmscontainer.LimitHeight, |
| | | MaxWeight = wmscontainer.MaxWeight, |
| | | Remark = wmscontainer.Remark |
| | | }; |
| | | |
| | | wmscontainerCreateDtos.Add((wmscontainer.RowIndex, wmscontainerCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmscontainerDto in wmscontainerCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmscontainerDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmscontainerDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmscontainerDto in wmscontainerUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmscontainerDto.Id, wmscontainerDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmscontainerDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainersInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsContainer.Sort); |
| | | } |
| | | |
| | | var specification = new WmsContainerSpecification(input.Name); |
| | | var container = ObjectMapper.Map<GetWmsContainersInput, WmsContainer>(input); |
| | | var list = await _wmscontainerRepository.GetListAsync(container,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsContainerå表" : result.Count == 1 ? result.First()?.ContainerNo : "WmsContainer模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsContainerCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.ContainerNo, "ç¼å·", WmsContainerConsts.MaxCodeLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsContainerConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾ç±»åæ¥å£å®ç° |
| | | /// </summary> |
| | | public class WmsEnumAppService : CMSPluginAppService, IWmsEnumAppService |
| | | { |
| | | private readonly IWmsStoreRepository _storeRepository; |
| | | private readonly IWmsAreaRepository _wmsAreaRepository; |
| | | |
| | | public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository) |
| | | { |
| | | _storeRepository = storeRepository; |
| | | _wmsAreaRepository = wmsAreaRepository; |
| | | } |
| | | |
| | | public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput) |
| | | { |
| | | return EnumHelper.GetEnumItems(enumInput.EnumName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsStoreForAreaOutpur>> GetStreList() |
| | | { |
| | | var list = await _storeRepository.GetListForSelectAsync(); |
| | | if (list == null || list.Count <= 0) { return new List<WmsStoreForAreaOutpur>(); } |
| | | |
| | | var result = list.Select(x => new WmsStoreForAreaOutpur |
| | | { |
| | | StoreCode = x.StoreCode, |
| | | StoreName = x.StoreName, |
| | | }).ToList(); |
| | | return result; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<List<AreaForListOuptut>> GetAreaListAsync() |
| | | { |
| | | var list = await _wmsAreaRepository.GetListForSelectAsync(); |
| | | if (list == null || list.Count <= 0) { return new List<AreaForListOuptut>(); } |
| | | var result = list.Select(x=>new AreaForListOuptut |
| | | { |
| | | AreaName = x.AreaName, |
| | | AreaNo = x.AreaNo, |
| | | }).ToList(); |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using Volo.Abp.ObjectMapping; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯åºç¨æå¡ |
| | | /// </summary> |
| | | public class WmsMaterialAppService : CMSPluginAppService, IWmsMaterialAppService |
| | | { |
| | | private readonly IWmsMaterialRepository _wmsmaterialRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsmaterialRepository">The task job repository.</param> |
| | | public WmsMaterialAppService(IWmsMaterialRepository wmsmaterialRepository) |
| | | { |
| | | _wmsmaterialRepository = wmsmaterialRepository; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæå®ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsMaterialDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(await _wmsmaterialRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·åç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<PagedResultDto<WmsMaterialDto>> GetListAsync(GetWmsMaterialInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterial.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var count = await _wmsmaterialRepository.GetCountAsync(whereConditions); |
| | | var list = await _wmsmaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); |
| | | |
| | | return new PagedResultDto<WmsMaterialDto>(count, ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 卿æé æ¥è¯¢æ¡ä»¶ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥åæ°</param> |
| | | /// <returns></returns> |
| | | private FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> DynamicGetQueryParams(GetWmsMaterialInput input) |
| | | { |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterial, GetWmsMaterialInput>(input); |
| | | if (!whereConditions.IsSuccess) |
| | | { |
| | | throw new Exception("卿æé æ¥è¯¢æ¡ä»¶å¤±è´¥:" + whereConditions.ErrMsg); |
| | | } |
| | | |
| | | //ä¹å¯å次èªå®ä¹æå»ºæ¥è¯¢æ¡ä»¶ |
| | | Expression<Func<WmsMaterial, bool>> extendExpression = a => a.IsDeleted == false; |
| | | // ä½¿ç¨ System.Linq.PredicateBuilder ç And |
| | | var pres = (System.Linq.Expressions.Expression<Func<WmsMaterial, bool>>)(whereConditions.data); |
| | | whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); |
| | | |
| | | return whereConditions; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ°å»ºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); |
| | | } |
| | | |
| | | var maxSort = await _wmsmaterialRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | |
| | | var wmsmaterial = ObjectMapper.Map<WmsMaterialCreateDto, WmsMaterial>(input); |
| | | wmsmaterial.Sort = sort; |
| | | input.MapExtraPropertiesTo(wmsmaterial, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await _wmsmaterialRepository.InsertAsync(wmsmaterial); |
| | | |
| | | if (input.Sort.HasValue && wmsmaterial.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsmaterial.Id, wmsmaterial.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public virtual async Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsmaterial = await _wmsmaterialRepository.GetAsync(id); |
| | | var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode, wmsmaterial.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]); |
| | | } |
| | | |
| | | wmsmaterial.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsmaterial, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsmaterial.MaterialName = input.MaterialName; |
| | | wmsmaterial.PurchaseType = input.PurchaseType; |
| | | wmsmaterial.MaterialType = input.MaterialType; |
| | | wmsmaterial.PrimaryUnit = input.PrimaryUnit; |
| | | wmsmaterial.Standard = input.Standard; |
| | | wmsmaterial.OuterDiameter = input.OuterDiameter; |
| | | wmsmaterial.WallThickness = input.WallThickness; |
| | | wmsmaterial.MaterialQuality = input.MaterialQuality; |
| | | wmsmaterial.Length = input.Length; |
| | | wmsmaterial.IsMainBranch = input.IsMainBranch; |
| | | wmsmaterial.Factory = input.Factory; |
| | | wmsmaterial.Certification = input.Certification; |
| | | |
| | | await _wmsmaterialRepository.UpdateAsync(wmsmaterial); |
| | | |
| | | return ObjectMapper.Map<WmsMaterial, WmsMaterialDto>(wmsmaterial); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | //var wmsmaterials = new List<WmsMaterial>(); |
| | | //if (ids != null) |
| | | //{ |
| | | // var sort = await _wmsmaterialRepository.GetMaxSortAsync(); |
| | | // foreach (var id in ids) |
| | | // { |
| | | // var wmsmaterial = await _wmsmaterialRepository.FindAsync(id); |
| | | // if (wmsmaterial != null) |
| | | // { |
| | | // var name = wmsmaterial.Name + WmsMaterialConsts.CloneTag; |
| | | // var notExist = false; |
| | | // while (!notExist) |
| | | // { |
| | | // var exist = await _wmsmaterialRepository.NameExistAsync(name); |
| | | // if (exist || wmsmaterials.Any(x => x.Name == name)) |
| | | // { |
| | | // name += WmsMaterialConsts.CloneTag; |
| | | // continue; |
| | | // } |
| | | |
| | | // notExist = true; |
| | | // } |
| | | |
| | | // //wmsmaterial = await _wmsmaterialRepository.InsertAsync(wmsmaterial.Clone(GuidGenerator.Create(), name, sort++)); |
| | | // wmsmaterials.Add(wmsmaterial); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | //return ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(wmsmaterials); |
| | | return new List<WmsMaterialDto>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤åä¸ªç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsmaterialRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤å¤ä¸ªç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids"></param> |
| | | /// <returns></returns> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="sort"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsmaterialRepository.GetListAsync(null, nameof(WmsMaterial.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsmaterialRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task ImportAsync(WmsMaterialsImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsmaterialCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>(); |
| | | var wmsmaterialUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialUpdateDto Item)>(); |
| | | var wmsmaterials = input.WmsMaterials; |
| | | |
| | | if (wmsmaterials != null && wmsmaterials.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsMaterials = wmsmaterials.GroupBy(x => x.MaterialCode).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsMaterials?.Any() == true) |
| | | { |
| | | var duplicateWmsMaterialMsgs = duplicateWmsMaterials.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsMaterialMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsmaterial in wmsmaterials) |
| | | { |
| | | if (wmsmaterial.MaterialCode.IsNullOrWhiteSpace() && wmsmaterial.MaterialName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsmaterial.MaterialCode.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterial.RowIndex}è¡ï¼WmsMaterialåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(wmsmaterial.MaterialCode); |
| | | if (oldWmsMaterial != null) |
| | | { |
| | | var wmsmaterialUpdateDto = new WmsMaterialUpdateDto |
| | | { |
| | | MaterialCode = wmsmaterial.MaterialCode, |
| | | MaterialName = wmsmaterial.MaterialName, |
| | | PurchaseType = wmsmaterial.PurchaseType, |
| | | MaterialType = wmsmaterial.MaterialType, |
| | | PrimaryUnit = wmsmaterial.PrimaryUnit, |
| | | Standard = wmsmaterial.Standard, |
| | | OuterDiameter = wmsmaterial.OuterDiameter, |
| | | WallThickness = wmsmaterial.WallThickness, |
| | | MaterialQuality = wmsmaterial.MaterialQuality, |
| | | Length = wmsmaterial.Length, |
| | | IsMainBranch = wmsmaterial.IsMainBranch, |
| | | Factory = wmsmaterial.Factory, |
| | | Certification = wmsmaterial.Certification, |
| | | Remark = wmsmaterial.Remark, |
| | | }; |
| | | |
| | | wmsmaterialUpdateDtos.Add((wmsmaterial.RowIndex, oldWmsMaterial.Id, wmsmaterialUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsmaterialCreateDto = new WmsMaterialCreateDto |
| | | { |
| | | MaterialCode = wmsmaterial.MaterialCode, |
| | | MaterialName = wmsmaterial.MaterialName, |
| | | PurchaseType = wmsmaterial.PurchaseType, |
| | | MaterialType = wmsmaterial.MaterialType, |
| | | PrimaryUnit = wmsmaterial.PrimaryUnit, |
| | | Standard = wmsmaterial.Standard, |
| | | OuterDiameter = wmsmaterial.OuterDiameter, |
| | | WallThickness = wmsmaterial.WallThickness, |
| | | MaterialQuality = wmsmaterial.MaterialQuality, |
| | | Length = wmsmaterial.Length, |
| | | IsMainBranch = wmsmaterial.IsMainBranch, |
| | | Factory = wmsmaterial.Factory, |
| | | Certification = wmsmaterial.Certification, |
| | | Remark = wmsmaterial.Remark, |
| | | }; |
| | | |
| | | wmsmaterialCreateDtos.Add((wmsmaterial.RowIndex, wmsmaterialCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsmaterialDto in wmsmaterialCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsmaterialDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsmaterialDto in wmsmaterialUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsmaterialDto.Id, wmsmaterialDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsmaterialDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterial.Sort); |
| | | } |
| | | |
| | | #region 卿æé æ¥è¯¢æ¡ä»¶ |
| | | |
| | | //卿æé æ¥è¯¢æ¡ä»¶ |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | var list = await _wmsmaterialRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsMaterial>, List<WmsMaterialDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsMaterialå表" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¡éªç©æåºç¡ä¿¡æ¯ï¼å½æ°å»ºææ´æ°æ¶ |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.MaterialCode, "ç¼å·", WmsMaterialConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.MaterialName, "åç§°", WmsMaterialConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsMaterialConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsPlaceAppService : CMSPluginAppService, IWmsPlaceAppService |
| | | { |
| | | private readonly IWmsPlaceRepository _wmsplaceRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsplaceRepository">The task job repository.</param> |
| | | public WmsPlaceAppService(IWmsPlaceRepository wmsplaceRepository) |
| | | { |
| | | _wmsplaceRepository = wmsplaceRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlaceDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsPlace, WmsPlaceDto>(await _wmsplaceRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsPlaceDto>> GetListAsync(GetWmsPlacesInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsPlace.Sort); |
| | | } |
| | | |
| | | var specification = new WmsPlaceSpecification(input.Name); |
| | | var place = ObjectMapper.Map<GetWmsPlacesInput, WmsPlace>(input); |
| | | var count = await _wmsplaceRepository.GetCountAsync(place,input.Filter, specification); |
| | | var list = await _wmsplaceRepository.GetListAsync(place, input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | |
| | | return new PagedResultDto<WmsPlaceDto>(count, ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlaceDto> CreateAsync(WmsPlaceCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsplaceRepository.NameExistAsync(input.PlaceNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmsplaceRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsplace = ObjectMapper.Map<WmsPlaceCreateDto,WmsPlace>(input); |
| | | input.MapExtraPropertiesTo(wmsplace, MappingPropertyDefinitionChecks.None); |
| | | wmsplace.Sort = sort; |
| | | await _wmsplaceRepository.InsertAsync(wmsplace); |
| | | |
| | | if (input.Sort.HasValue && wmsplace.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsplace.Id, wmsplace.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsPlace, WmsPlaceDto>(wmsplace); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlaceDto> UpdateAsync(Guid id, WmsPlaceUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsplace = await _wmsplaceRepository.GetAsync(id); |
| | | var exist = await _wmsplaceRepository.NameExistAsync(input.PlaceNo, wmsplace.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]); |
| | | } |
| | | |
| | | wmsplace.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsplace, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsplace.StorageTypeNo = input.StorageTypeNo; |
| | | wmsplace.PlaceStatus = input.PlaceStatus; |
| | | wmsplace.AreaCode = input.AreaCode; |
| | | wmsplace.Aisle = input.Aisle; |
| | | wmsplace.RowNo = input.RowNo; |
| | | wmsplace.ColumnNo = input.ColumnNo; |
| | | wmsplace.LayerNo = input.LayerNo; |
| | | wmsplace.Islock = input.Islock; |
| | | wmsplace.EmptyContainer = input.EmptyContainer; |
| | | wmsplace.RedundantField1 = input.RedundantField1; |
| | | wmsplace.RedundantField2 = input.RedundantField2; |
| | | wmsplace.RedundantField3 = input.RedundantField3; |
| | | wmsplace.Remark = input.Remark; |
| | | |
| | | await _wmsplaceRepository.UpdateAsync(wmsplace); |
| | | |
| | | return ObjectMapper.Map<WmsPlace, WmsPlaceDto>(wmsplace); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsPlaceDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsplaces = new List<WmsPlace>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsplaceRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsplace = await _wmsplaceRepository.FindAsync(id); |
| | | if (wmsplace != null) |
| | | { |
| | | var name = wmsplace.PlaceNo + WmsPlaceConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsplaceRepository.NameExistAsync(name); |
| | | if (exist || wmsplaces.Any(x => x.PlaceNo == name)) |
| | | { |
| | | name += WmsPlaceConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmsplace = await _wmsplaceRepository.InsertAsync(wmsplace.Clone(GuidGenerator.Create(), name, sort++)); |
| | | wmsplaces.Add(wmsplace); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(wmsplaces); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsplaceRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsplaceRepository.GetListAsync(null,nameof(WmsPlace.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsplaceRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsPlacesImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsplaceCreateDtos = new List<(int RowIndex, WmsPlaceCreateDto Item)>(); |
| | | var wmsplaceUpdateDtos = new List<(int RowIndex, Guid Id, WmsPlaceUpdateDto Item)>(); |
| | | var wmsplaces = input.WmsPlaces; |
| | | |
| | | if (wmsplaces != null && wmsplaces.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsPlaces = wmsplaces.GroupBy(x => x.PlaceNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsPlaces?.Any() == true) |
| | | { |
| | | var duplicateWmsPlaceMsgs = duplicateWmsPlaces.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsPlaceMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsplace in wmsplaces) |
| | | { |
| | | if (wmsplace.PlaceNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsplace.PlaceNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsplace.RowIndex}è¡ï¼WmsPlaceåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsPlace = await _wmsplaceRepository.FindByNameAsync(wmsplace.PlaceNo); |
| | | if (oldWmsPlace != null) |
| | | { |
| | | var wmsplaceUpdateDto = new WmsPlaceUpdateDto |
| | | { |
| | | PlaceNo = wmsplace.PlaceNo, |
| | | PlaceStatus = wmsplace.PlaceStatus, |
| | | Remark = wmsplace.Remark, |
| | | }; |
| | | |
| | | wmsplaceUpdateDtos.Add((wmsplace.RowIndex, oldWmsPlace.Id, wmsplaceUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsplaceCreateDto = new WmsPlaceCreateDto |
| | | { |
| | | PlaceNo = wmsplace.PlaceNo, |
| | | PlaceStatus = wmsplace.PlaceStatus, |
| | | Remark = wmsplace.Remark, |
| | | }; |
| | | |
| | | wmsplaceCreateDtos.Add((wmsplace.RowIndex, wmsplaceCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsplaceDto in wmsplaceCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsplaceDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsplaceDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsplaceDto in wmsplaceUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsplaceDto.Id, wmsplaceDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsplaceDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsPlacesInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsPlace.Sort); |
| | | } |
| | | |
| | | var specification = new WmsPlaceSpecification(input.Name); |
| | | var place = ObjectMapper.Map<GetWmsPlacesInput, WmsPlace>(input); |
| | | var list = await _wmsplaceRepository.GetListAsync(place, input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsPlaceå表" : result.Count == 1 ? result.First()?.PlaceNo : "WmsPlace模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsPlaceCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.PlaceNo, "ç¼å·", WmsPlaceConsts.MaxCodeLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsPlaceConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.ObjectExtending; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Implements; |
| | | |
| | | /// <inheritdoc /> |
| | | public class WmsStoreAppService : CMSPluginAppService, IWmsStoreAppService |
| | | { |
| | | private readonly IWmsStoreRepository _wmsstoreRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreAppService"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsstoreRepository">The task job repository.</param> |
| | | public WmsStoreAppService(IWmsStoreRepository wmsstoreRepository) |
| | | { |
| | | _wmsstoreRepository = wmsstoreRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStoreDto> GetAsync(Guid id) |
| | | { |
| | | return ObjectMapper.Map<WmsStore, WmsStoreDto>(await _wmsstoreRepository.GetAsync(id)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<PagedResultDto<WmsStoreDto>> GetListAsync(GetWmsStoresInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsStore.Sort); |
| | | } |
| | | |
| | | var specification = new WmsStoreSpecification(input.Name); |
| | | var store = ObjectMapper.Map<GetWmsStoresInput, WmsStore>(input); |
| | | var count = await _wmsstoreRepository.GetCountAsync(store,input.Filter, specification); |
| | | var list = await _wmsstoreRepository.GetListAsync(store,input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | |
| | | return new PagedResultDto<WmsStoreDto>(count, ObjectMapper.Map<List<WmsStore>, List<WmsStoreDto>>(list)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStoreDto> CreateAsync(WmsStoreCreateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmsstoreRepository.NameExistAsync(input.StoreCode); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.StoreCode]); |
| | | } |
| | | |
| | | var maxSort = await _wmsstoreRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmsstore = ObjectMapper.Map<WmsStoreCreateDto,WmsStore>(input); |
| | | wmsstore.Sort = sort; |
| | | input.MapExtraPropertiesTo(wmsstore, MappingPropertyDefinitionChecks.None); |
| | | |
| | | await _wmsstoreRepository.InsertAsync(wmsstore); |
| | | |
| | | if (input.Sort.HasValue && wmsstore.Sort != maxSort) |
| | | { |
| | | await AdjustSortAsync(wmsstore.Id, wmsstore.Sort); |
| | | } |
| | | |
| | | return ObjectMapper.Map<WmsStore, WmsStoreDto>(wmsstore); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStoreDto> UpdateAsync(Guid id, WmsStoreUpdateDto input) |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmsstore = await _wmsstoreRepository.GetAsync(id); |
| | | var exist = await _wmsstoreRepository.NameExistAsync(input.StoreCode, wmsstore.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.StoreCode]); |
| | | } |
| | | |
| | | wmsstore.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmsstore, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmsstore.StoreName = input.StoreName; |
| | | wmsstore.Remark = input.Remark; |
| | | |
| | | await _wmsstoreRepository.UpdateAsync(wmsstore); |
| | | |
| | | return ObjectMapper.Map<WmsStore, WmsStoreDto>(wmsstore); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsStoreDto>> CloneAsync(IEnumerable<Guid> ids) |
| | | { |
| | | var wmsstores = new List<WmsStore>(); |
| | | if (ids != null) |
| | | { |
| | | var sort = await _wmsstoreRepository.GetMaxSortAsync(); |
| | | foreach (var id in ids) |
| | | { |
| | | var wmsstore = await _wmsstoreRepository.FindAsync(id); |
| | | if (wmsstore != null) |
| | | { |
| | | var name = wmsstore.StoreName + WmsStoreConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmsstoreRepository.NameExistAsync(name); |
| | | if (exist || wmsstores.Any(x => x.StoreCode == name)) |
| | | { |
| | | name += WmsStoreConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | //wmsstore = await _wmsstoreRepository.InsertAsync(wmsstore.Clone(GuidGenerator.Create(), name, sort++)); |
| | | wmsstores.Add(wmsstore); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return ObjectMapper.Map<List<WmsStore>, List<WmsStoreDto>>(wmsstores); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsstoreRepository.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task DeleteManyAsync(IEnumerable<Guid> ids) |
| | | { |
| | | foreach (var id in ids) |
| | | { |
| | | await DeleteAsync(id); |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | var list = await _wmsstoreRepository.GetListAsync(null,nameof(WmsStore.Sort)); |
| | | if (list != null && list.Any()) |
| | | { |
| | | var initSort = 1; |
| | | list.ForEach(x => x.AdjustSort(initSort++)); |
| | | var entity = list.FirstOrDefault(x => x.Id == id); |
| | | if (entity != null) |
| | | { |
| | | if (sort == 1) |
| | | { |
| | | list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | } |
| | | else if (entity.Sort > sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | else if (entity.Sort < sort) |
| | | { |
| | | list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); |
| | | list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); |
| | | } |
| | | |
| | | entity.AdjustSort(sort); |
| | | } |
| | | } |
| | | |
| | | await _wmsstoreRepository.UpdateManyAsync(list); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ImportAsync(WmsStoresImportModel input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | var wmsstoreCreateDtos = new List<(int RowIndex, WmsStoreCreateDto Item)>(); |
| | | var wmsstoreUpdateDtos = new List<(int RowIndex, Guid Id, WmsStoreUpdateDto Item)>(); |
| | | var wmsstores = input.WmsStores; |
| | | |
| | | if (wmsstores != null && wmsstores.Any()) |
| | | { |
| | | #region 导å
¥æ ¡éª |
| | | |
| | | // 夿åç§°æ¯å¦éå¤ï¼å¹¶è¾åºç¬¬å è¡éå¤ |
| | | var duplicateWmsStores = wmsstores.GroupBy(x => x.StoreCode).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsStores?.Any() == true) |
| | | { |
| | | var duplicateWmsStoreMsgs = duplicateWmsStores.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} è¡ï¼{x.Key} åç§°éå¤"); |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ {string.Join(",", duplicateWmsStoreMsgs)}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | foreach (var wmsstore in wmsstores) |
| | | { |
| | | if (wmsstore.StoreCode.IsNullOrWhiteSpace() && wmsstore.StoreName.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmsstore.StoreCode.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsstore.RowIndex}è¡ï¼WmsStoreåç§°ä¸è½ä¸ºç©º"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsStore = await _wmsstoreRepository.FindByNameAsync(wmsstore.StoreCode); |
| | | if (oldWmsStore != null) |
| | | { |
| | | var wmsstoreUpdateDto = new WmsStoreUpdateDto |
| | | { |
| | | StoreCode = wmsstore.StoreCode, |
| | | StoreName = wmsstore.StoreName, |
| | | Remark = wmsstore.Remark, |
| | | }; |
| | | |
| | | wmsstoreUpdateDtos.Add((wmsstore.RowIndex, oldWmsStore.Id, wmsstoreUpdateDto)); |
| | | } |
| | | else |
| | | { |
| | | var wmsstoreCreateDto = new WmsStoreCreateDto |
| | | { |
| | | StoreCode = wmsstore.StoreCode, |
| | | StoreName = wmsstore.StoreName, |
| | | Remark = wmsstore.Remark, |
| | | }; |
| | | |
| | | wmsstoreCreateDtos.Add((wmsstore.RowIndex, wmsstoreCreateDto)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ°å¢ |
| | | foreach (var wmsstoreDto in wmsstoreCreateDtos) |
| | | { |
| | | try |
| | | { |
| | | await CreateAsync(wmsstoreDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsstoreDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | |
| | | // æ´æ° |
| | | foreach (var wmsstoreDto in wmsstoreUpdateDtos) |
| | | { |
| | | try |
| | | { |
| | | await UpdateAsync(wmsstoreDto.Id, wmsstoreDto.Item); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | var errorMsg = $"导å
¥å¤±è´¥ï¼é
ç½®ï¼ç¬¬{wmsstoreDto.RowIndex}è¡ï¼{e.Message}ï¼ç»æ¢å¯¼å
¥"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsStoresInput input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsStore.Sort); |
| | | } |
| | | |
| | | var specification = new WmsStoreSpecification(input.Name); |
| | | var store = ObjectMapper.Map<GetWmsStoresInput, WmsStore>(input); |
| | | var list = await _wmsstoreRepository.GetListAsync(store, input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true); |
| | | var result = ObjectMapper.Map<List<WmsStore>, List<WmsStoreDto>>(list); |
| | | |
| | | var sheets = new Dictionary<string, object> |
| | | { |
| | | ["é
ç½®"] = ExportHelper.ConvertListToExportData(result), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsStoreå表" : result.Count == 1 ? result.First()?.StoreCode : "WmsStore模ç"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Checks the create or update dto asynchronous. |
| | | /// </summary> |
| | | /// <param name="input">The input.</param> |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsStoreCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.StoreCode, "ç¼å·", WmsStoreConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.StoreName, "åç§°", WmsStoreConsts.MaxNameLength); |
| | | Check.Length(input.Remark, "夿³¨", WmsStoreConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsAreaAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsAreaAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsArea, WmsAreaDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsAreaCreateDto, WmsArea>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsAreasInput, WmsArea>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsContainerAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsContainerAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsContainer, WmsContainerDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsContainerCreateDto, WmsContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsContainersInput, WmsContainer>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsMaterialAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsMaterialAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsMaterial, WmsMaterialDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsMaterialCreateDto, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsMaterialInput, WmsMaterial>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsPlaceAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsPlaceAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsPlace, WmsPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsPlaceCreateDto, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsPlacesInput, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using AutoMapper; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using Volo.Abp.ObjectExtending; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.MapperProfiles; |
| | | |
| | | /// <summary> |
| | | /// AutoMapperé
ç½® |
| | | /// </summary> |
| | | /// <seealso cref="AutoMapper.Profile" /> |
| | | public class WmsStoreAutoMapperProfile : Profile |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreAutoMapperProfile"/> class. |
| | | /// </summary> |
| | | public WmsStoreAutoMapperProfile() |
| | | { |
| | | /* You can configure your AutoMapper mapping configuration here. |
| | | * Alternatively, you can split your mapping configurations |
| | | * into multiple profile classes for a better organization. */ |
| | | CreateMap<WmsStore, WmsStoreDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<WmsStoreCreateDto, WmsStore>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | CreateMap<GetWmsStoresInput, WmsStore>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Runtime.CompilerServices; |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.Application.Tests")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest> |
| | | <GenerateDocumentationFile>True</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="KissUtil" Version="1.0.1" /> |
| | | <PackageReference Include="Volo.Abp.Localization" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Validation" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <EmbeddedResource Include="Localization\HIAWms\*.json" /> |
| | | <Content Remove="Localization\HIAWms\*.json" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> |
| | | <PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="6.0.20" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared; |
| | | |
| | | /// <summary> |
| | | /// é误ç¼ç å®ä¹ |
| | | /// </summary> |
| | | public static class CMSPluginDomainErrorCodes |
| | | { |
| | | /// <summary> |
| | | /// The prefix |
| | | /// </summary> |
| | | private const string Prefix = "CMS.Plugin.HIAWms:"; |
| | | |
| | | /* You can add your business exception error codes here, as constants */ |
| | | |
| | | public const string NameAlreadyExists = Prefix + nameof(NameAlreadyExists); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Localization; |
| | | using Volo.Abp.Localization; |
| | | using Volo.Abp.Modularity; |
| | | using Volo.Abp.Validation; |
| | | using Volo.Abp.Validation.Localization; |
| | | using Volo.Abp.VirtualFileSystem; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared; |
| | | |
| | | /// <summary> |
| | | /// é¢åå
±äº«æ¨¡å |
| | | /// </summary> |
| | | [DependsOn(typeof(AbpLocalizationModule), |
| | | typeof(AbpValidationModule))] |
| | | public class CMSPluginDomainSharedModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginModuleExtensionConfigurator.Configure(); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | Configure<AbpVirtualFileSystemOptions>(options => |
| | | { |
| | | options.FileSets.AddEmbedded<CMSPluginDomainSharedModule>(); |
| | | }); |
| | | |
| | | Configure<AbpLocalizationOptions>(options => |
| | | { |
| | | options.Resources |
| | | .Add<HIAWmsResource>("en") |
| | | .AddBaseTypes(typeof(AbpValidationResource)) |
| | | .AddVirtualJson("/Localization/HIAWms"); |
| | | |
| | | options.DefaultResourceType = typeof(HIAWmsResource); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Threading; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared; |
| | | |
| | | /// <summary> |
| | | /// æ¨¡åæ©å±é
ç½®å¨ |
| | | /// </summary> |
| | | public static class CMSPluginModuleExtensionConfigurator |
| | | { |
| | | private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); |
| | | |
| | | /// <summary> |
| | | /// Configures this instance. |
| | | /// </summary> |
| | | public static void Configure() |
| | | { |
| | | OneTimeRunner.Run(() => |
| | | { |
| | | ConfigureExistingProperties(); |
| | | ConfigureExtraProperties(); |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the existing properties. |
| | | /// </summary> |
| | | private static void ConfigureExistingProperties() |
| | | { |
| | | /* You can change max lengths for properties of the |
| | | * entities defined in the modules used by your application. |
| | | * |
| | | * Example: Change user and role name max lengths |
| | | |
| | | IdentityUserConsts.MaxNameLength = 99; |
| | | IdentityRoleConsts.MaxNameLength = 99; |
| | | |
| | | * Notice: It is not suggested to change property lengths |
| | | * unless you really need it. Go with the standard values wherever possible. |
| | | * |
| | | * If you are using EF Core, you will need to run the add-migration command after your changes. |
| | | */ |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the extra properties. |
| | | /// </summary> |
| | | private static void ConfigureExtraProperties() |
| | | { |
| | | /* You can configure extra properties for the |
| | | * entities defined in the modules used by your application. |
| | | * |
| | | * This class can be used to define these extra properties |
| | | * with a high level, easy to use API. |
| | | * |
| | | * Example: Add a new property to the user entity of the identity module |
| | | |
| | | ObjectExtensionManager.Instance.Modules() |
| | | .ConfigureIdentity(identity => |
| | | { |
| | | identity.ConfigureUser(user => |
| | | { |
| | | user.AddOrUpdateProperty<string>( //property type: string |
| | | "SocialSecurityNumber", //property name |
| | | property => |
| | | { |
| | | //validation rules |
| | | property.Attributes.Add(new RequiredAttribute()); |
| | | property.Attributes.Add(new StringLengthAttribute(64) {MinimumLength = 4}); |
| | | |
| | | property.Configuration[IdentityModuleExtensionConsts.ConfigurationNames.AllowUserToEdit] = true; |
| | | |
| | | //...other configurations for this property |
| | | } |
| | | ); |
| | | }); |
| | | }); |
| | | |
| | | * See the documentation for more: |
| | | * https://docs.abp.io/en/abp/latest/Module-Entity-Extensions |
| | | */ |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | [Description("åºåºç¶æ")] |
| | | public enum AreaStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// æ£å¸¸ |
| | | /// </summary> |
| | | [Description("æ£å¸¸")] |
| | | ZHEGNCHANGSHIYONG = 1, |
| | | |
| | | /// <summary> |
| | | /// åç¨ |
| | | /// </summary> |
| | | [Description("åç¨")] |
| | | TINGYONG = 2 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | [Description("åºåºç±»å")] |
| | | public enum AreaTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// ç«ä½åº |
| | | /// </summary> |
| | | [Description("ç«ä½åº")] |
| | | LITIKU = 1, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | [Description("æçç¶æ")] |
| | | public enum ContainerStatusEnum |
| | | { |
| | | |
| | | /// <summary> |
| | | /// ç©ºé² |
| | | /// </summary> |
| | | [Description("空é²")] |
| | | KOUXIAN = 1, |
| | | |
| | | /// <summary> |
| | | /// ç»ç |
| | | /// </summary> |
| | | [Description("ç»ç")] |
| | | ZUPANG = 2, |
| | | |
| | | /// <summary> |
| | | /// åºä½ |
| | | /// </summary> |
| | | [Description("åºä½")] |
| | | KUWEI = 3, |
| | | |
| | | /// <summary> |
| | | /// èæåºä½ |
| | | /// </summary> |
| | | [Description("èæåºä½")] |
| | | XUNIKUWEI = 4, |
| | | |
| | | /// <summary> |
| | | /// ç»æ |
| | | /// </summary> |
| | | [Description("ç»æ")] |
| | | ZUTUO = 5, |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸ |
| | | /// </summary> |
| | | [Description("å¼å¸¸")] |
| | | EXCEPTION = 9, |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | [Description("æçç±»å")] |
| | | public enum ContainerTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// èªå¶ä»¶æç |
| | | /// </summary> |
| | | [Description("èªå¶ä»¶æç")] |
| | | ZIZHIJIAN = 1, |
| | | |
| | | /// <summary> |
| | | /// å¤åä»¶æç |
| | | /// </summary> |
| | | [Description("å¤åä»¶æç")] |
| | | WAIXIEJIAN = 2, |
| | | |
| | | /// <summary> |
| | | /// èææç |
| | | /// </summary> |
| | | [Description("èææç")] |
| | | XUNI = 3, |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.ComponentModel; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// HIAWmsç¶æ |
| | | /// </summary> |
| | | public enum HIAWmsStatus : byte |
| | | { |
| | | /// <summary> |
| | | /// æªæ§è¡ |
| | | /// </summary> |
| | | [Description("æªæ§è¡")] |
| | | Initial = 0, |
| | | |
| | | /// <summary> |
| | | /// æ§è¡ä¸ |
| | | /// </summary> |
| | | [Description("æ§è¡ä¸")] |
| | | Excuting = 1, |
| | | |
| | | /// <summary> |
| | | /// 已宿 |
| | | /// </summary> |
| | | [Description("已宿")] |
| | | Completed = 4, |
| | | |
| | | /// <summary> |
| | | /// 已强å¶å®æ |
| | | /// </summary> |
| | | [Description("已宿")] |
| | | Finished = 5, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// ç©æç±»å |
| | | /// </summary> |
| | | [Description("ç©æç±»å")] |
| | | public enum MaterialTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// æå |
| | | /// </summary> |
| | | [Description(" æå")] |
| | | FinishedGoods =1, |
| | | |
| | | /// <summary> |
| | | /// åæå |
| | | /// </summary> |
| | | [Description("åæå")] |
| | | SemiFinishedGoods =2, |
| | | |
| | | /// <summary> |
| | | /// åææ |
| | | /// </summary> |
| | | [Description("åææ")] |
| | | RawMaterials =3, |
| | | |
| | | /// <summary> |
| | | /// éä»¶ |
| | | /// </summary> |
| | | [Description(" éä»¶")] |
| | | Attachments =4 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç¶æ |
| | | /// </summary> |
| | | [Description("åºä½ç¶æ")] |
| | | public enum PlaceStatusEnum |
| | | { |
| | | /// <summary> |
| | | /// ç©ºé² |
| | | /// </summary> |
| | | [Description("空é²")] |
| | | KONGXIAN = 1, |
| | | /// <summary> |
| | | /// å¾
å
¥ |
| | | /// </summary> |
| | | [Description("å¾
å
¥")] |
| | | DAIRU = 2, |
| | | /// <summary> |
| | | /// åè´§ |
| | | /// </summary> |
| | | [Description("åè´§")] |
| | | CUNHUO = 3, |
| | | /// <summary> |
| | | /// å¾
åº |
| | | /// </summary> |
| | | [Description("å¾
åº")] |
| | | DAICHU = 4, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// åºä½ç±»å |
| | | /// </summary> |
| | | [Description("åºä½ç±»å")] |
| | | public enum PlaceTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// åæåºä½ |
| | | /// </summary> |
| | | [Description("åæåºä½")] |
| | | YUANLIAOKUWEI = 1, |
| | | |
| | | [Description("èæåºä½")] |
| | | XUNIKUWEI = 2, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// éè´ç±»å |
| | | /// </summary> |
| | | [Description("éè´ç±»å")] |
| | | public enum PurchaseTypeEnum |
| | | { |
| | | /// <summary> |
| | | /// /èªå¶ |
| | | /// </summary> |
| | | [Description("èªå¶")] |
| | | SelfMade = 1, |
| | | |
| | | /// <summary> |
| | | /// éè´ |
| | | /// </summary> |
| | | [Description("éè´")] |
| | | Purchased = 2, |
| | | |
| | | /// <summary> |
| | | /// åå¯ |
| | | /// </summary> |
| | | [Description("åå¯")] |
| | | Both = 3 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Enums |
| | | { |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | [Description("æ¯å¦éå®")] |
| | | public enum YesNoEnum |
| | | { |
| | | /// <summary> |
| | | /// æ¯ |
| | | /// </summary> |
| | | [Description("æ¯")] |
| | | Y = 1, |
| | | |
| | | /// <summary> |
| | | /// å¦ |
| | | /// </summary> |
| | | [Description("å¦")] |
| | | N = 2 |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "culture": "en", |
| | | "texts": { |
| | | "DisplayName:SCMS.AppSettings.HIAWms.PluginState": "HIAWms plugin state", |
| | | "CMS.Plugin.HIAWms:NameAlreadyExists": "The '{0}' name already exists, please re-enter it !" |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "culture": "zh-Hans", |
| | | "texts": { |
| | | "DisplayName:SCMS.AppSettings.HIAWms.PluginState": "HIAWms æä»¶ç¶æ", |
| | | "CMS.Plugin.HIAWms:NameAlreadyExists": "该'{0}'åç§°å·²åå¨ï¼è¯·éæ°è¾å
¥ï¼" |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Localization; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Localization; |
| | | |
| | | /// <summary> |
| | | /// HIAWmsæ¬å°åèµæº |
| | | /// </summary> |
| | | [LocalizationResourceName("HIAWms")] |
| | | public class HIAWmsResource |
| | | { |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using KissUtil.Helpers; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Volo.Abp; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Util |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾å¸®å©ç±». |
| | | /// </summary> |
| | | public static class EnumHelper |
| | | { |
| | | /// <summary> |
| | | /// è·åæä¸¾. |
| | | /// </summary> |
| | | /// <param name="enumName"> </param> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | public static List<EnumItem> GetEnumItems(string enumName) |
| | | { |
| | | // è·åå½åç¨åºéä¸çææç±»å |
| | | var enumType = AppDomain.CurrentDomain.GetAssemblies() |
| | | .SelectMany(a => a.GetTypes()) |
| | | .FirstOrDefault(t => t.Name == enumName && t.IsEnum); |
| | | |
| | | if (enumType == null) |
| | | { |
| | | throw new UserFriendlyException($"æä¸¾ç±»å {enumName} ä¸åå¨"); |
| | | } |
| | | |
| | | return GetEnumItems(enumType); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæä¸¾ç±»å. |
| | | /// </summary> |
| | | /// <param name="enumType"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | public static List<EnumItem> GetEnumItems(Type enumType) |
| | | { |
| | | if (!enumType.IsEnum) |
| | | { |
| | | throw new UserFriendlyException("æä¾çç±»å䏿¯æä¸¾ç±»å"); |
| | | } |
| | | |
| | | var result = new List<EnumItem>(); |
| | | var values = Enum.GetValues(enumType); |
| | | |
| | | foreach (var value in values) |
| | | { |
| | | var fieldInfo = enumType.GetField(value.ToString()); |
| | | var description = fieldInfo? |
| | | .GetCustomAttributes(typeof(DescriptionAttribute), false) |
| | | .FirstOrDefault() as DescriptionAttribute; |
| | | |
| | | result.Add(new EnumItem |
| | | { |
| | | Value = (int)value, |
| | | Name = value.ToString(), |
| | | Description = description?.Description ?? value.ToString(), |
| | | }); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æä¸¾æè¿°. |
| | | /// </summary> |
| | | public class EnumItem |
| | | { |
| | | public int Value { get; set; } |
| | | |
| | | public string Name { get; set; } |
| | | |
| | | public string Description { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Reflection; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.Util |
| | | { |
| | | /// <summary> |
| | | /// 导åºå¸®å©ç±». |
| | | /// </summary> |
| | | public static class ExportHelper |
| | | { |
| | | // éç¨è½¬æ¢æ¹æ³ï¼å
¼å®¹ Func<T, Dictionary<string, object>>ï¼ |
| | | public static Dictionary<string, object> ConvertToExportData<T>(T entity) |
| | | { |
| | | var dict = new Dictionary<string, object>(); |
| | | if (entity == null) return dict; |
| | | |
| | | foreach (var prop in typeof(T).GetProperties()) |
| | | { |
| | | var value = prop.GetValue(entity); |
| | | dict[prop.Name] = FormatValue(value); |
| | | } |
| | | return dict; |
| | | } |
| | | |
| | | // æ¹éè½¬æ¢æ¹æ³ |
| | | public static List<Dictionary<string, object>> ConvertListToExportData<T>(IEnumerable<T> list) |
| | | { |
| | | return list.Select(ConvertToExportData).ToList(); |
| | | } |
| | | |
| | | private static object FormatValue(object value) |
| | | { |
| | | if (value == null) return string.Empty; |
| | | |
| | | // å¤çæä¸¾ |
| | | if (value is Enum enumValue) |
| | | return GetEnumDescriptionUtil.GetEnumDescription(enumValue); |
| | | |
| | | // å¤çå¸å° |
| | | if (value is bool boolValue) |
| | | return boolValue ? "æ¯" : "å¦"; |
| | | |
| | | return value; |
| | | } |
| | | |
| | | private static string GetEnumDescription(Enum value) |
| | | { |
| | | var fieldInfo = value.GetType().GetField(value.ToString()); |
| | | var description = fieldInfo? |
| | | .GetCustomAttributes(typeof(DescriptionAttribute), false) |
| | | .FirstOrDefault() as DescriptionAttribute; |
| | | return description?.Description ?? value.ToString(); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace CMS.Plugin.HIAWms |
| | | { |
| | | public class GetEnumDescriptionUtil |
| | | { |
| | | /// <summary> |
| | | /// è·åæä¸¾çæè¿° |
| | | /// </summary> |
| | | /// <param name="enumValue"></param> |
| | | /// <returns></returns> |
| | | public static string GetEnumDescription(Enum enumValue) |
| | | { |
| | | string value = enumValue.ToString(); |
| | | if (string.IsNullOrWhiteSpace(value) || value == "0") return ""; |
| | | FieldInfo field = enumValue.GetType().GetField(value); |
| | | object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false); //è·åæè¿°å±æ§ |
| | | if (objs == null || objs.Length == 0) //å½æè¿°å±æ§æ²¡ææ¶ï¼ç´æ¥è¿ååç§° |
| | | return value; |
| | | DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0]; |
| | | return descriptionAttribute.Description; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsArea常éå®ä¹ |
| | | /// </summary> |
| | | public static class WmsAreaConsts |
| | | { |
| | | public const string CloneTag = "_坿¬"; |
| | | public static int MaxCodeLength { get; set; } = 64; |
| | | public static int MaxNameLength { get; set; } = 64; |
| | | public static int MaxRemarkLength { get; set; } = 256; |
| | | |
| | | public static int MaxAreaNoLength = 50; |
| | | |
| | | public static int MaxAreaNameLength = 100; |
| | | |
| | | public static int MaxAreaDescLength = 200; |
| | | |
| | | public static int MaxRedundantFieldLength = 100; |
| | | |
| | | public static int MaxStoreCodeLength = 50; |
| | | |
| | | public static int MaxStoreNameLength = 100; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaäºä»¶åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | [Serializable] |
| | | public class WmsAreaEto |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaEto"/> class. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | public WmsAreaEto(string name) |
| | | { |
| | | Name = name; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string Name { get; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContainer常éå®ä¹ |
| | | /// </summary> |
| | | public static class WmsContainerConsts |
| | | { |
| | | public const string CloneTag = "_坿¬"; |
| | | public static int MaxCodeLength { get; set; } = 64; |
| | | public static int MaxNameLength { get; set; } = 64; |
| | | public static int MaxRemarkLength { get; set; } = 256; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineräºä»¶åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | [Serializable] |
| | | public class WmsContainerEto |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerEto"/> class. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | public WmsContainerEto(string name) |
| | | { |
| | | Name = name; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string Name { get; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterial常éå®ä¹ |
| | | /// </summary> |
| | | public static class WmsMaterialConsts |
| | | { |
| | | public const string CloneTag = "_坿¬"; |
| | | public static int MaxCodeLength { get; set; } = 64; |
| | | public static int MaxNameLength { get; set; } = 64; |
| | | public static int MaxRemarkLength { get; set; } = 256; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialäºä»¶åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | [Serializable] |
| | | public class WmsMaterialEto |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialEto"/> class. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | public WmsMaterialEto(string name) |
| | | { |
| | | Name = name; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string Name { get; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlace常éå®ä¹ |
| | | /// </summary> |
| | | public static class WmsPlaceConsts |
| | | { |
| | | public const string CloneTag = "_坿¬"; |
| | | public static int MaxCodeLength { get; set; } = 64; |
| | | public static int MaxNameLength { get; set; } = 64; |
| | | public static int MaxRemarkLength { get; set; } = 256; |
| | | |
| | | public const int MaxPlaceNoLength = 50; |
| | | |
| | | public const int MaxAreaCodeLength = 50; |
| | | |
| | | public const int MaxRedundantFieldLength = 100; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceäºä»¶åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | [Serializable] |
| | | public class WmsPlaceEto |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceEto"/> class. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | public WmsPlaceEto(string name) |
| | | { |
| | | Name = name; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string Name { get; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStore常éå®ä¹ |
| | | /// </summary> |
| | | public static class WmsStoreConsts |
| | | { |
| | | public const string CloneTag = "_坿¬"; |
| | | public static int MaxCodeLength { get; set; } = 64; |
| | | public static int MaxNameLength { get; set; } = 64; |
| | | public static int MaxRemarkLength { get; set; } = 256; |
| | | |
| | | public const int MaxStoreCodeLength = 50; |
| | | |
| | | public const int MaxStoreNameLength = 100; |
| | | |
| | | public const int MaxRedundantFieldLength = 100; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreäºä»¶åæ°å¯¹è±¡ |
| | | /// </summary> |
| | | [Serializable] |
| | | public class WmsStoreEto |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreEto"/> class. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | public WmsStoreEto(string name) |
| | | { |
| | | Name = name; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åç§° |
| | | /// </summary> |
| | | public string Name { get; } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Ddd.Domain" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Settings" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Caching" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Abstractions\CMS.Plugin.HIAWms.Abstractions.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain.Shared\CMS.Plugin.HIAWms.Domain.Shared.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain; |
| | | |
| | | /// <summary> |
| | | /// æ°æ®åºå±æ§å®ä¹ |
| | | /// </summary> |
| | | public static class CMSPluginDbProperties |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the database table prefix. |
| | | /// </summary> |
| | | public static string DbTablePrefix { get; set; } = "SCMS"; |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the database schema. |
| | | /// </summary> |
| | | public static string DbSchema { get; set; } |
| | | |
| | | /// <summary> |
| | | /// The connection string name |
| | | /// </summary> |
| | | public const string ConnectionStringName = "HIAWms"; |
| | | |
| | | /// <summary> |
| | | /// The migrations history table |
| | | /// </summary> |
| | | public const string MigrationsHistoryTable = "__EFMigrationsHistoryForHIAWms"; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using Volo.Abp.Caching; |
| | | using Volo.Abp.Domain; |
| | | using Volo.Abp.Modularity; |
| | | using Volo.Abp.Settings; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain; |
| | | |
| | | /// <summary> |
| | | /// é¢å模å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginDomainSharedModule), |
| | | typeof(AbpSettingsModule), |
| | | typeof(AbpDddDomainModule), |
| | | typeof(AbpCachingModule) |
| | | )] |
| | | public class CMSPluginDomainModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.Extensions.Logging; |
| | | using System.Diagnostics; |
| | | using System.Runtime.InteropServices; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Data; |
| | | |
| | | /// <summary> |
| | | /// æ°æ®åºè¿ç§»æå¡ |
| | | /// </summary> |
| | | public class CMSPluginDbMigrationService : ITransientDependency |
| | | { |
| | | private readonly IDataSeeder _dataSeeder; |
| | | private readonly IEnumerable<ICMSPluginDbSchemaMigrator> _dbSchemaMigrators; |
| | | private readonly ILogger<CMSPluginDbMigrationService> _logger; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginDbMigrationService"/> class. |
| | | /// </summary> |
| | | /// <param name="dataSeeder">The data seeder.</param> |
| | | /// <param name="dbSchemaMigrators">The database schema migrators.</param> |
| | | /// <param name="logger">The logger.</param> |
| | | public CMSPluginDbMigrationService(IDataSeeder dataSeeder, |
| | | IEnumerable<ICMSPluginDbSchemaMigrator> dbSchemaMigrators, ILogger<CMSPluginDbMigrationService> logger) |
| | | { |
| | | _dataSeeder = dataSeeder; |
| | | _dbSchemaMigrators = dbSchemaMigrators; |
| | | _logger = logger; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Migrates the asynchronous. |
| | | /// </summary> |
| | | public async Task MigrateAsync() |
| | | { |
| | | var initialMigrationAdded = AddInitialMigrationIfNotExist(); |
| | | |
| | | if (initialMigrationAdded) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | _logger.LogDebug("Started database migrations..."); |
| | | |
| | | await MigrateDatabaseSchemaAsync(); |
| | | await SeedDataAsync(); |
| | | |
| | | _logger.LogDebug($"Successfully completed host database migrations."); |
| | | _logger.LogDebug("You can safely end this process..."); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Migrates the database schema asynchronous. |
| | | /// </summary> |
| | | private async Task MigrateDatabaseSchemaAsync() |
| | | { |
| | | _logger.LogDebug($"Migrating schema for database..."); |
| | | |
| | | foreach (var migrator in _dbSchemaMigrators) |
| | | { |
| | | await migrator.MigrateAsync(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Seeds the data asynchronous. |
| | | /// </summary> |
| | | private async Task SeedDataAsync() |
| | | { |
| | | _logger.LogDebug($"Executing database seed..."); |
| | | |
| | | await _dataSeeder.SeedAsync(new DataSeedContext().WithProperty(CMSPluginDbProperties.ConnectionStringName, CMSPluginDbProperties.ConnectionStringName)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Adds the initial migration if not exist. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool AddInitialMigrationIfNotExist() |
| | | { |
| | | try |
| | | { |
| | | if (!DbMigrationsProjectExists()) |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | catch (Exception) |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | try |
| | | { |
| | | if (!MigrationsFolderExists()) |
| | | { |
| | | AddInitialMigration(); |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | return false; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | _logger.LogWarning("Couldn't determinate if any migrations exist : " + e.Message); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Databases the migrations project exists. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool DbMigrationsProjectExists() |
| | | { |
| | | var dbMigrationsProjectFolder = GetEntityFrameworkCoreProjectFolderPath(); |
| | | |
| | | return dbMigrationsProjectFolder != null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Migrationses the folder exists. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private bool MigrationsFolderExists() |
| | | { |
| | | var dbMigrationsProjectFolder = GetEntityFrameworkCoreProjectFolderPath(); |
| | | |
| | | return Directory.Exists(Path.Combine(dbMigrationsProjectFolder, "Migrations")); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Adds the initial migration. |
| | | /// </summary> |
| | | /// <exception cref="System.Exception">Couldn't run ABP CLI...</exception> |
| | | private void AddInitialMigration() |
| | | { |
| | | _logger.LogDebug("Creating initial migration..."); |
| | | |
| | | string argumentPrefix; |
| | | string fileName; |
| | | |
| | | if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) |
| | | { |
| | | argumentPrefix = "-c"; |
| | | fileName = "/bin/bash"; |
| | | } |
| | | else |
| | | { |
| | | argumentPrefix = "/C"; |
| | | fileName = "cmd.exe"; |
| | | } |
| | | |
| | | var procStartInfo = new ProcessStartInfo(fileName, |
| | | $"{argumentPrefix} \"abp create-migration-and-run-migrator \"{GetEntityFrameworkCoreProjectFolderPath()}\"\"" |
| | | ); |
| | | |
| | | try |
| | | { |
| | | Process.Start(procStartInfo); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | throw new Exception("Couldn't run ABP CLI..."); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Gets the entity framework core project folder path. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /// <exception cref="System.Exception">Solution folder not found!</exception> |
| | | private string GetEntityFrameworkCoreProjectFolderPath() |
| | | { |
| | | var slnDirectoryPath = GetSolutionDirectoryPath(); |
| | | |
| | | if (slnDirectoryPath == null) |
| | | { |
| | | throw new Exception("Solution folder not found!"); |
| | | } |
| | | |
| | | var srcDirectoryPath = Path.Combine(slnDirectoryPath, "src"); |
| | | |
| | | return Directory.GetDirectories(srcDirectoryPath) |
| | | .FirstOrDefault(d => d.EndsWith(".EntityFrameworkCore")); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Gets the solution directory path. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private string GetSolutionDirectoryPath() |
| | | { |
| | | var currentDirectory = new DirectoryInfo(Directory.GetCurrentDirectory()); |
| | | |
| | | while (Directory.GetParent(currentDirectory.FullName) != null) |
| | | { |
| | | currentDirectory = Directory.GetParent(currentDirectory.FullName); |
| | | |
| | | if (Directory.GetFiles(currentDirectory.FullName).FirstOrDefault(f => f.EndsWith(".sln")) != null) |
| | | { |
| | | return currentDirectory.FullName; |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Data; |
| | | |
| | | /// <summary> |
| | | /// Dapperä»å¨ |
| | | /// </summary> |
| | | public interface ICMSPluginDapperRepository : ITransientDependency |
| | | { |
| | | /// <summary> |
| | | /// Gets the database connection asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<IDbConnection> GetDbConnectionAsync(); |
| | | |
| | | /// <summary> |
| | | /// Gets the database transaction asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<IDbTransaction> GetDbTransactionAsync(); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Domain.Data; |
| | | |
| | | /// <summary> |
| | | /// æ°æ®åºæ¶æè¿ç§»å¨ |
| | | /// </summary> |
| | | public interface ICMSPluginDbSchemaMigrator |
| | | { |
| | | /// <summary> |
| | | /// Migrates the asynchronous. |
| | | /// </summary> |
| | | Task MigrateAsync(); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Data; |
| | | |
| | | /// <summary> |
| | | /// This is used if database provider does't define |
| | | /// ICMSDbSchemaMigrator implementation. |
| | | /// </summary> |
| | | public class NullCMSPluginDbSchemaMigrator : ICMSPluginDbSchemaMigrator, ITransientDependency |
| | | { |
| | | /// <inheritdoc /> |
| | | public Task MigrateAsync() |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.EventBus.Distributed; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.EventHandlers; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaäºä»¶å¤çç¨åº |
| | | /// </summary> |
| | | public class WmsAreaEventHandler : IDistributedEventHandler<WmsAreaEto>, ITransientDependency |
| | | { |
| | | /// <inheritdoc /> |
| | | public Task HandleEventAsync(WmsAreaEto eventData) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.EventBus.Distributed; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.EventHandlers; |
| | | |
| | | /// <summary> |
| | | /// WmsContaineräºä»¶å¤çç¨åº |
| | | /// </summary> |
| | | public class WmsContainerEventHandler : IDistributedEventHandler<WmsContainerEto>, ITransientDependency |
| | | { |
| | | /// <inheritdoc /> |
| | | public Task HandleEventAsync(WmsContainerEto eventData) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.EventBus.Distributed; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.EventHandlers; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialäºä»¶å¤çç¨åº |
| | | /// </summary> |
| | | public class WmsMaterialEventHandler : IDistributedEventHandler<WmsMaterialEto>, ITransientDependency |
| | | { |
| | | /// <inheritdoc /> |
| | | public Task HandleEventAsync(WmsMaterialEto eventData) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.EventBus.Distributed; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.EventHandlers; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceäºä»¶å¤çç¨åº |
| | | /// </summary> |
| | | public class WmsPlaceEventHandler : IDistributedEventHandler<WmsPlaceEto>, ITransientDependency |
| | | { |
| | | /// <inheritdoc /> |
| | | public Task HandleEventAsync(WmsPlaceEto eventData) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.EventBus.Distributed; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.EventHandlers; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreäºä»¶å¤çç¨åº |
| | | /// </summary> |
| | | public class WmsStoreEventHandler : IDistributedEventHandler<WmsStoreEto>, ITransientDependency |
| | | { |
| | | /// <inheritdoc /> |
| | | public Task HandleEventAsync(WmsStoreEto eventData) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Runtime.CompilerServices; |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.Domain.Tests")] |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.TestBase")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Abstractions; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Localization; |
| | | using Volo.Abp.Localization; |
| | | using Volo.Abp.Settings; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Settings; |
| | | |
| | | /// <summary> |
| | | /// 设置å®ä¹æä¾ç¨åº |
| | | /// </summary> |
| | | public class CMSPluginSettingDefinitionProvider : SettingDefinitionProvider |
| | | { |
| | | public override void Define(ISettingDefinitionContext context) |
| | | { |
| | | context.Add(new SettingDefinition(CMSPluginHIAWmsSettings.PluginState, "1", L($"DisplayName:{CMSPluginHIAWmsSettings.PluginState}"), isInherited: true)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ls the specified name. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <returns></returns> |
| | | private static LocalizableString L(string name) |
| | | { |
| | | return LocalizableString.Create<HIAWmsResource>(name); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Repositories; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | |
| | | /// <summary> |
| | | /// WmsAreaä»å¨ |
| | | /// </summary> |
| | | public interface IWmsAreaRepository : IBasicRepository<WmsArea, Guid> |
| | | { |
| | | /// <summary> |
| | | /// Finds the by name asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<WmsArea> FindByNameAsync(string name, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Names the exist asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <returns></returns> |
| | | Task<bool> NameExistAsync(string name, Guid? id = null); |
| | | |
| | | /// <summary> |
| | | /// Gets the maximum sort asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<int> GetMaxSortAsync(); |
| | | |
| | | /// <summary> |
| | | /// Gets the list asynchronous. |
| | | /// </summary> |
| | | /// <param name="sorting">The sorting.</param> |
| | | /// <param name="maxResultCount">The maximum result count.</param> |
| | | /// <param name="skipCount">The skip count.</param> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="includeDetails">if set to <c>true</c> [include details].</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsArea>> GetListAsync(WmsArea? area, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsArea> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºå表 |
| | | /// </summary> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsArea>> GetListForSelectAsync(CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Gets the count asynchronous. |
| | | /// </summary> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<long> GetCountAsync(WmsArea? area, string filter = null, Specification<WmsArea> specification = null, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | using Microsoft.EntityFrameworkCore.Metadata.Internal; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Domain.Entities.Auditing; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsAreas |
| | | { |
| | | /// <summary> |
| | | /// WmsArea |
| | | /// </summary> |
| | | public class WmsArea : FullAuditedAggregateRoot<Guid> |
| | | { |
| | | /// <summary> |
| | | /// åºåºç¼å· |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºåç§° |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè¿° |
| | | /// </summary> |
| | | public string? AreaDesc { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç¶æ |
| | | /// </summary> |
| | | public AreaStatusEnum AreaStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºç±»å |
| | | /// </summary> |
| | | public AreaTypeEnum AreaType { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort. |
| | | /// </summary> |
| | | /// <param name="sort">The sort.</param> |
| | | public void AdjustSort(int sort) |
| | | { |
| | | Sort = sort; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Guids; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsAreas |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaç§åæ°æ®æä¾ç¨åº |
| | | /// </summary> |
| | | public class WmsAreaDataSeedContributor : IDataSeedContributor, ITransientDependency |
| | | { |
| | | private readonly IUnitOfWorkManager _unitOfWorkManager; |
| | | private readonly IWmsAreaRepository _wmsareaRepository; |
| | | private readonly IGuidGenerator _guidGenerator; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaDataSeedContributor"/> class. |
| | | /// </summary> |
| | | /// <param name="unitOfWorkManager">The unit of work manager.</param> |
| | | /// <param name="guidGenerator">The unique identifier generator.</param> |
| | | /// <param name="wmsareaRepository">The work section repository.</param> |
| | | public WmsAreaDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IWmsAreaRepository wmsareaRepository) |
| | | { |
| | | _unitOfWorkManager = unitOfWorkManager; |
| | | _wmsareaRepository = wmsareaRepository; |
| | | _guidGenerator = guidGenerator; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task SeedAsync(DataSeedContext context) |
| | | { |
| | | if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName) |
| | | { |
| | | try |
| | | { |
| | | //using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true); |
| | | //await unitofWork.SaveChangesAsync(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message); |
| | | } |
| | | } |
| | | |
| | | if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData") |
| | | { |
| | | try |
| | | { |
| | | await SeedWmsAreaDataAsync(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Console.WriteLine(e.Message); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Seeds the work section data asynchronous. |
| | | /// </summary> |
| | | private async Task SeedWmsAreaDataAsync() |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsAreas |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaè§çº¦ |
| | | /// </summary> |
| | | public class WmsAreaSpecification : Volo.Abp.Specifications.Specification<WmsArea> |
| | | { |
| | | private readonly string _areaCode; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaSpecification"/> class. |
| | | /// </summary> |
| | | public WmsAreaSpecification() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaSpecification"/> class. |
| | | /// </summary> |
| | | /// <param name="areaCode">The name.</param> |
| | | public WmsAreaSpecification(string areaCode = null) |
| | | { |
| | | _areaCode = areaCode; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override Expression<Func<WmsArea, bool>> ToExpression() |
| | | { |
| | | Expression<Func<WmsArea, bool>> expression = c => 1 == 1; |
| | | |
| | | if (_areaCode != null) |
| | | { |
| | | expression = expression.And(c => c.AreaNo == _areaCode); |
| | | } |
| | | |
| | | return expression; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Repositories; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | |
| | | /// <summary> |
| | | /// WmsContainerä»å¨ |
| | | /// </summary> |
| | | public interface IWmsContainerRepository : IBasicRepository<WmsContainer, Guid> |
| | | { |
| | | /// <summary> |
| | | /// Finds the by name asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<WmsContainer> FindByNameAsync(string name, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Names the exist asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <returns></returns> |
| | | Task<bool> NameExistAsync(string name, Guid? id = null); |
| | | |
| | | /// <summary> |
| | | /// Gets the maximum sort asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<int> GetMaxSortAsync(); |
| | | |
| | | /// <summary> |
| | | /// Gets the list asynchronous. |
| | | /// </summary> |
| | | /// <param name="sorting">The sorting.</param> |
| | | /// <param name="maxResultCount">The maximum result count.</param> |
| | | /// <param name="skipCount">The skip count.</param> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="includeDetails">if set to <c>true</c> [include details].</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsContainer>> GetListAsync(WmsContainer? container, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsContainer> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Gets the count asynchronous. |
| | | /// </summary> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<long> GetCountAsync(WmsContainer? container, string filter = null, Specification<WmsContainer> specification = null, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Domain.Entities.Auditing; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsContainers |
| | | { |
| | | /// <summary> |
| | | /// WmsContainer |
| | | /// </summary> |
| | | public class WmsContainer : FullAuditedAggregateRoot<Guid> |
| | | { |
| | | /// <summary> |
| | | /// ID |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | /// <summary> |
| | | /// æçç¼å· |
| | | /// </summary> |
| | | public string ContainerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç±»å |
| | | /// </summary> |
| | | public ContainerTypeEnum ContainerType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æçç¶æ |
| | | /// </summary> |
| | | public ContainerStatusEnum ContainerStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ |
| | | /// </summary> |
| | | public decimal? SpecLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 宽度 |
| | | /// </summary> |
| | | public decimal? SpecWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é«åº¦ |
| | | /// </summary> |
| | | public decimal? SpecHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé¿ |
| | | /// </summary> |
| | | public decimal? LimitLength { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é宽 |
| | | /// </summary> |
| | | public decimal? LimitWidth { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éé« |
| | | /// </summary> |
| | | public decimal? LimitHeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è½½éä¸é |
| | | /// </summary> |
| | | public decimal? MaxWeight { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æ°é |
| | | /// </summary> |
| | | public int? ExceptionNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | ///ç©ææ°é |
| | | /// </summary> |
| | | public int? MaterialNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort. |
| | | /// </summary> |
| | | /// <param name="sort">The sort.</param> |
| | | public void AdjustSort(int sort) |
| | | { |
| | | Sort = sort; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Guids; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsContainers |
| | | { |
| | | /// <summary> |
| | | /// WmsContainerç§åæ°æ®æä¾ç¨åº |
| | | /// </summary> |
| | | public class WmsContainerDataSeedContributor : IDataSeedContributor, ITransientDependency |
| | | { |
| | | private readonly IUnitOfWorkManager _unitOfWorkManager; |
| | | private readonly IWmsContainerRepository _wmscontainerRepository; |
| | | private readonly IGuidGenerator _guidGenerator; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerDataSeedContributor"/> class. |
| | | /// </summary> |
| | | /// <param name="unitOfWorkManager">The unit of work manager.</param> |
| | | /// <param name="guidGenerator">The unique identifier generator.</param> |
| | | /// <param name="wmscontainerRepository">The work section repository.</param> |
| | | public WmsContainerDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IWmsContainerRepository wmscontainerRepository) |
| | | { |
| | | _unitOfWorkManager = unitOfWorkManager; |
| | | _wmscontainerRepository = wmscontainerRepository; |
| | | _guidGenerator = guidGenerator; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task SeedAsync(DataSeedContext context) |
| | | { |
| | | if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName) |
| | | { |
| | | try |
| | | { |
| | | //using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true); |
| | | //await unitofWork.SaveChangesAsync(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message); |
| | | } |
| | | } |
| | | |
| | | if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData") |
| | | { |
| | | try |
| | | { |
| | | await SeedWmsContainerDataAsync(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Console.WriteLine(e.Message); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Seeds the work section data asynchronous. |
| | | /// </summary> |
| | | private async Task SeedWmsContainerDataAsync() |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsContainers |
| | | { |
| | | /// <summary> |
| | | /// WmsContainerè§çº¦ |
| | | /// </summary> |
| | | public class WmsContainerSpecification : Volo.Abp.Specifications.Specification<WmsContainer> |
| | | { |
| | | private readonly string _containerNo; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerSpecification"/> class. |
| | | /// </summary> |
| | | public WmsContainerSpecification() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerSpecification"/> class. |
| | | /// </summary> |
| | | /// <param name="containerNo">The name.</param> |
| | | public WmsContainerSpecification(string containerNo = null) |
| | | { |
| | | _containerNo = containerNo; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override Expression<Func<WmsContainer, bool>> ToExpression() |
| | | { |
| | | Expression<Func<WmsContainer, bool>> expression = c => 1 == 1; |
| | | |
| | | if (_containerNo != null) |
| | | { |
| | | expression = expression.And(c => c.ContainerNo == _containerNo); |
| | | } |
| | | |
| | | return expression; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CmsQueryExtensions.Extension; |
| | | using System.Linq.Expressions; |
| | | using Volo.Abp.Domain.Repositories; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | |
| | | /// <summary> |
| | | /// WmsMaterialä»å¨ |
| | | /// </summary> |
| | | public interface IWmsMaterialRepository : IBasicRepository<WmsMaterial, Guid> |
| | | { |
| | | /// <summary> |
| | | /// Finds the by name asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Names the exist asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <returns></returns> |
| | | Task<bool> NameExistAsync(string name, Guid? id = null); |
| | | |
| | | /// <summary> |
| | | /// Gets the maximum sort asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<int> GetMaxSortAsync(); |
| | | |
| | | /// <summary> |
| | | /// è·åå页å表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="sorting"></param> |
| | | /// <param name="maxResultCount"></param> |
| | | /// <param name="skipCount"></param> |
| | | /// <param name="includeDetails"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsMaterial>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// è·åæ»æ° |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | using MathNet.Numerics; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Domain.Entities.Auditing; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsMaterials |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterial |
| | | /// </summary> |
| | | public class WmsMaterial : FullAuditedAggregateRoot<Guid> |
| | | { |
| | | /// <summary> |
| | | /// ç©æç¼ç ï¼å¯ä¸æ è¯ï¼ |
| | | /// </summary> |
| | | public string MaterialCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æåç§° |
| | | /// </summary> |
| | | public string MaterialName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// éè´ç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public PurchaseTypeEnum PurchaseType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç©æç±»åï¼æä¸¾å¼ï¼ |
| | | /// </summary> |
| | | public MaterialTypeEnum MaterialType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 主åä½ï¼å¦ï¼kgãmãä¸ªï¼ |
| | | /// </summary> |
| | | public string PrimaryUnit { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼ |
| | | /// </summary> |
| | | public string Standard { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å¤å¾ï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal OuterDiameter { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å£åï¼åä½ï¼mmï¼ |
| | | /// </summary> |
| | | public decimal WallThickness { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æè´¨ï¼å¦ï¼304ä¸éé¢ï¼ |
| | | /// </summary> |
| | | public string MaterialQuality { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¿åº¦ï¼åä½ï¼mï¼ |
| | | /// </summary> |
| | | public decimal Length { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ä¸ºä¸»æ¯ç®¡ï¼true: 主æ¯ç®¡, false: é主æ¯ç®¡ï¼ |
| | | /// </summary> |
| | | public YesNoEnum IsMainBranch { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ç产工å |
| | | /// </summary> |
| | | public string Factory { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è¯ä¹¦ç¼å·ï¼å¦ï¼åå容å¨è®¤è¯ï¼ |
| | | /// </summary> |
| | | public string Certification { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort. |
| | | /// </summary> |
| | | /// <param name="sort">The sort.</param> |
| | | public void AdjustSort(int sort) |
| | | { |
| | | Sort = sort; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Guids; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsMaterials |
| | | { |
| | | /// <summary> |
| | | /// WmsMaterialç§åæ°æ®æä¾ç¨åº |
| | | /// </summary> |
| | | public class WmsMaterialDataSeedContributor : IDataSeedContributor, ITransientDependency |
| | | { |
| | | private readonly IUnitOfWorkManager _unitOfWorkManager; |
| | | private readonly IWmsMaterialRepository _wmsmaterialRepository; |
| | | private readonly IGuidGenerator _guidGenerator; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialDataSeedContributor"/> class. |
| | | /// </summary> |
| | | /// <param name="unitOfWorkManager">The unit of work manager.</param> |
| | | /// <param name="guidGenerator">The unique identifier generator.</param> |
| | | /// <param name="wmsmaterialRepository">The work section repository.</param> |
| | | public WmsMaterialDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IWmsMaterialRepository wmsmaterialRepository) |
| | | { |
| | | _unitOfWorkManager = unitOfWorkManager; |
| | | _wmsmaterialRepository = wmsmaterialRepository; |
| | | _guidGenerator = guidGenerator; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task SeedAsync(DataSeedContext context) |
| | | { |
| | | if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName) |
| | | { |
| | | try |
| | | { |
| | | //using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true); |
| | | //await unitofWork.SaveChangesAsync(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message); |
| | | } |
| | | } |
| | | |
| | | if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData") |
| | | { |
| | | try |
| | | { |
| | | await SeedWmsMaterialDataAsync(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Console.WriteLine(e.Message); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Seeds the work section data asynchronous. |
| | | /// </summary> |
| | | private async Task SeedWmsMaterialDataAsync() |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | //using System.Linq.Expressions; |
| | | |
| | | //namespace CMS.Plugin.HIAWms.Domain.WmsMaterials |
| | | //{ |
| | | // /// <summary> |
| | | // /// WmsMaterialè§çº¦ |
| | | // /// </summary> |
| | | // public class WmsMaterialSpecification : Volo.Abp.Specifications.Specification<WmsMaterial> |
| | | // { |
| | | // private readonly string _materialCode; |
| | | |
| | | // /// <summary> |
| | | // /// Initializes a new instance of the <see cref="WmsMaterialSpecification"/> class. |
| | | // /// </summary> |
| | | // public WmsMaterialSpecification() |
| | | // { |
| | | // } |
| | | |
| | | // /// <summary> |
| | | // /// Initializes a new instance of the <see cref="WmsMaterialSpecification"/> class. |
| | | // /// </summary> |
| | | // /// <param name="materialCode">The name.</param> |
| | | // public WmsMaterialSpecification(string materialCode = null) |
| | | // { |
| | | // _materialCode = materialCode; |
| | | // } |
| | | |
| | | // /// <inheritdoc /> |
| | | // public override Expression<Func<WmsMaterial, bool>> ToExpression() |
| | | // { |
| | | // Expression<Func<WmsMaterial, bool>> expression = c => 1 == 1; |
| | | |
| | | // if (_materialCode != null) |
| | | // { |
| | | // expression = expression.And(c => c.MaterialCode == _materialCode); |
| | | // } |
| | | |
| | | // return expression; |
| | | // } |
| | | // } |
| | | //} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Repositories; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | |
| | | /// <summary> |
| | | /// WmsPlaceä»å¨ |
| | | /// </summary> |
| | | public interface IWmsPlaceRepository : IBasicRepository<WmsPlace, Guid> |
| | | { |
| | | /// <summary> |
| | | /// Finds the by name asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<WmsPlace> FindByNameAsync(string name, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Names the exist asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <returns></returns> |
| | | Task<bool> NameExistAsync(string name, Guid? id = null); |
| | | |
| | | /// <summary> |
| | | /// Gets the maximum sort asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<int> GetMaxSortAsync(); |
| | | |
| | | /// <summary> |
| | | /// Gets the list asynchronous. |
| | | /// </summary> |
| | | /// <param name="sorting">The sorting.</param> |
| | | /// <param name="maxResultCount">The maximum result count.</param> |
| | | /// <param name="skipCount">The skip count.</param> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="includeDetails">if set to <c>true</c> [include details].</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsPlace>> GetListAsync(WmsPlace? place, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Gets the count asynchronous. |
| | | /// </summary> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Domain.Entities.Auditing; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsPlaces |
| | | { |
| | | /// <summary> |
| | | /// WmsPlace |
| | | /// </summary> |
| | | public class WmsPlace : FullAuditedAggregateRoot<Guid> |
| | | { |
| | | /// <summary> |
| | | /// ç¼å· |
| | | /// </summary> |
| | | public virtual string PlaceNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç±»å |
| | | /// </summary> |
| | | public PlaceTypeEnum StorageTypeNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§ä½ç¶æ |
| | | /// </summary> |
| | | public PlaceStatusEnum PlaceStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æå¨åºåº |
| | | /// </summary> |
| | | public string AreaCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å··é |
| | | /// </summary> |
| | | public int Aisle { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ |
| | | /// </summary> |
| | | public int RowNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å |
| | | /// </summary> |
| | | public int ColumnNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å± |
| | | /// </summary> |
| | | public int LayerNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦éå® |
| | | /// </summary> |
| | | public YesNoEnum Islock { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç©ºæ |
| | | /// </summary> |
| | | public YesNoEnum EmptyContainer { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨ |
| | | /// </summary> |
| | | public virtual string Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort. |
| | | /// </summary> |
| | | /// <param name="sort">The sort.</param> |
| | | public void AdjustSort(int sort) |
| | | { |
| | | Sort = sort; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Guids; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsPlaces |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceç§åæ°æ®æä¾ç¨åº |
| | | /// </summary> |
| | | public class WmsPlaceDataSeedContributor : IDataSeedContributor, ITransientDependency |
| | | { |
| | | private readonly IUnitOfWorkManager _unitOfWorkManager; |
| | | private readonly IWmsPlaceRepository _wmsplaceRepository; |
| | | private readonly IGuidGenerator _guidGenerator; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceDataSeedContributor"/> class. |
| | | /// </summary> |
| | | /// <param name="unitOfWorkManager">The unit of work manager.</param> |
| | | /// <param name="guidGenerator">The unique identifier generator.</param> |
| | | /// <param name="wmsplaceRepository">The work section repository.</param> |
| | | public WmsPlaceDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IWmsPlaceRepository wmsplaceRepository) |
| | | { |
| | | _unitOfWorkManager = unitOfWorkManager; |
| | | _wmsplaceRepository = wmsplaceRepository; |
| | | _guidGenerator = guidGenerator; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task SeedAsync(DataSeedContext context) |
| | | { |
| | | if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName) |
| | | { |
| | | try |
| | | { |
| | | //using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true); |
| | | //await unitofWork.SaveChangesAsync(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message); |
| | | } |
| | | } |
| | | |
| | | if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData") |
| | | { |
| | | try |
| | | { |
| | | await SeedWmsPlaceDataAsync(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Console.WriteLine(e.Message); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Seeds the work section data asynchronous. |
| | | /// </summary> |
| | | private async Task SeedWmsPlaceDataAsync() |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsPlaces |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceè§çº¦ |
| | | /// </summary> |
| | | public class WmsPlaceSpecification : Volo.Abp.Specifications.Specification<WmsPlace> |
| | | { |
| | | private readonly string _placeNo; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceSpecification"/> class. |
| | | /// </summary> |
| | | public WmsPlaceSpecification() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceSpecification"/> class. |
| | | /// </summary> |
| | | /// <param name="placeNo">The name.</param> |
| | | public WmsPlaceSpecification(string placeNo = null) |
| | | { |
| | | _placeNo = placeNo; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override Expression<Func<WmsPlace, bool>> ToExpression() |
| | | { |
| | | Expression<Func<WmsPlace, bool>> expression = c => 1 == 1; |
| | | |
| | | if (_placeNo != null) |
| | | { |
| | | expression = expression.And(c => c.PlaceNo == _placeNo); |
| | | } |
| | | |
| | | return expression; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Domain.Repositories; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | |
| | | /// <summary> |
| | | /// WmsStoreä»å¨ |
| | | /// </summary> |
| | | public interface IWmsStoreRepository : IBasicRepository<WmsStore, Guid> |
| | | { |
| | | /// <summary> |
| | | /// Finds the by name asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<WmsStore> FindByNameAsync(string name, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Names the exist asynchronous. |
| | | /// </summary> |
| | | /// <param name="name">The name.</param> |
| | | /// <param name="id">The identifier.</param> |
| | | /// <returns></returns> |
| | | Task<bool> NameExistAsync(string name, Guid? id = null); |
| | | |
| | | /// <summary> |
| | | /// Gets the maximum sort asynchronous. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Task<int> GetMaxSortAsync(); |
| | | |
| | | /// <summary> |
| | | /// Gets the list asynchronous. |
| | | /// </summary> |
| | | /// <param name="sorting">The sorting.</param> |
| | | /// <param name="maxResultCount">The maximum result count.</param> |
| | | /// <param name="skipCount">The skip count.</param> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="includeDetails">if set to <c>true</c> [include details].</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<List<WmsStore>> GetListAsync(WmsStore? store, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsStore> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢ä»åºå表 |
| | | /// </summary> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | Task<List<WmsStore>> GetListForSelectAsync(CancellationToken cancellationToken = default); |
| | | |
| | | /// <summary> |
| | | /// Gets the count asynchronous. |
| | | /// </summary> |
| | | /// <param name="filter">The filter.</param> |
| | | /// <param name="specification">The specification.</param> |
| | | /// <param name="cancellationToken">The cancellation token.</param> |
| | | /// <returns></returns> |
| | | Task<long> GetCountAsync(WmsStore? store, string filter = null, Specification<WmsStore> specification = null, CancellationToken cancellationToken = default); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | using Microsoft.EntityFrameworkCore.Metadata.Internal; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Domain.Entities.Auditing; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsStores |
| | | { |
| | | /// <summary> |
| | | /// WmsStore |
| | | /// </summary> |
| | | public class WmsStore : FullAuditedAggregateRoot<Guid> |
| | | { |
| | | |
| | | /// <summary> |
| | | /// ä»åºä»£ç |
| | | /// </summary> |
| | | public string? StoreCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»åºåç§° |
| | | /// </summary> |
| | | public string? StoreName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段1 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField1 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段2 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField2 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åä½å段3 - é¢çæ©å±ç¨é |
| | | /// </summary> |
| | | public string RedundantField3 { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 夿³¨. |
| | | /// </summary> |
| | | public string? Remark { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æåº |
| | | /// </summary> |
| | | public virtual int Sort { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦ç¦ç¨ |
| | | /// </summary> |
| | | public virtual bool? IsDisabled { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Adjusts the sort. |
| | | /// </summary> |
| | | /// <param name="sort">The sort.</param> |
| | | public void AdjustSort(int sort) |
| | | { |
| | | Sort = sort; |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Guids; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsStores |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreç§åæ°æ®æä¾ç¨åº |
| | | /// </summary> |
| | | public class WmsStoreDataSeedContributor : IDataSeedContributor, ITransientDependency |
| | | { |
| | | private readonly IUnitOfWorkManager _unitOfWorkManager; |
| | | private readonly IWmsStoreRepository _wmsstoreRepository; |
| | | private readonly IGuidGenerator _guidGenerator; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreDataSeedContributor"/> class. |
| | | /// </summary> |
| | | /// <param name="unitOfWorkManager">The unit of work manager.</param> |
| | | /// <param name="guidGenerator">The unique identifier generator.</param> |
| | | /// <param name="wmsstoreRepository">The work section repository.</param> |
| | | public WmsStoreDataSeedContributor(IUnitOfWorkManager unitOfWorkManager, IGuidGenerator guidGenerator, IWmsStoreRepository wmsstoreRepository) |
| | | { |
| | | _unitOfWorkManager = unitOfWorkManager; |
| | | _wmsstoreRepository = wmsstoreRepository; |
| | | _guidGenerator = guidGenerator; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task SeedAsync(DataSeedContext context) |
| | | { |
| | | if (context.Properties.ContainsKey(CMSPluginDbProperties.ConnectionStringName) && context.Properties[CMSPluginDbProperties.ConnectionStringName]?.ToString() == CMSPluginDbProperties.ConnectionStringName) |
| | | { |
| | | try |
| | | { |
| | | //using var unitofWork = _unitOfWorkManager.Begin(requiresNew: true); |
| | | //await unitofWork.SaveChangesAsync(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message); |
| | | } |
| | | } |
| | | |
| | | if (context.Properties.ContainsKey("SeedTestData") && context.Properties["SeedTestData"]?.ToString() == "SeedTestData") |
| | | { |
| | | try |
| | | { |
| | | await SeedWmsStoreDataAsync(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Console.WriteLine(e.Message); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Seeds the work section data asynchronous. |
| | | /// </summary> |
| | | private async Task SeedWmsStoreDataAsync() |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Expressions; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.WmsStores |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreè§çº¦ |
| | | /// </summary> |
| | | public class WmsStoreSpecification : Volo.Abp.Specifications.Specification<WmsStore> |
| | | { |
| | | private readonly string _storeCode; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreSpecification"/> class. |
| | | /// </summary> |
| | | public WmsStoreSpecification() |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreSpecification"/> class. |
| | | /// </summary> |
| | | /// <param name="storeCode">The name.</param> |
| | | public WmsStoreSpecification(string storeCode = null) |
| | | { |
| | | _storeCode = storeCode; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override Expression<Func<WmsStore, bool>> ToExpression() |
| | | { |
| | | Expression<Func<WmsStore, bool>> expression = c => 1 == 1; |
| | | |
| | | if (_storeCode != null) |
| | | { |
| | | expression = expression.And(c => c.StoreCode == _storeCode); |
| | | } |
| | | |
| | | return expression; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Dapper" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain\CMS.Plugin.HIAWms.Domain.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Data; |
| | | using Volo.Abp.Domain.Repositories.Dapper; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | |
| | | /// <inheritdoc /> |
| | | public class CMSPluginDapperRepository : DapperRepository<ICMSPluginDbContext>, ICMSPluginDapperRepository |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginDapperRepository"/> class. |
| | | /// </summary> |
| | | /// <param name="dbContextProvider">The database context provider.</param> |
| | | public CMSPluginDapperRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) |
| | | : base(dbContextProvider) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Data; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using Volo.Abp.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | |
| | | /// <inheritdoc /> |
| | | public class CMSPluginDbSchemaMigrator : ICMSPluginDbSchemaMigrator, ITransientDependency |
| | | { |
| | | private readonly IServiceProvider _serviceProvider; |
| | | private readonly ILogger<CMSPluginDbSchemaMigrator> _logger; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginDbSchemaMigrator"/> class. |
| | | /// </summary> |
| | | /// <param name="serviceProvider">The service provider.</param> |
| | | public CMSPluginDbSchemaMigrator(IServiceProvider serviceProvider, ILogger<CMSPluginDbSchemaMigrator> logger) |
| | | { |
| | | _serviceProvider = serviceProvider; |
| | | _logger = logger; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task MigrateAsync() |
| | | { |
| | | /* We intentionally resolving the CMSDbContext |
| | | * from IServiceProvider (instead of directly injecting it) |
| | | * to properly get the connection string of the current tenant in the |
| | | * current scope. |
| | | */ |
| | | var database = _serviceProvider.GetRequiredService<ICMSPluginDbContext>().Database; |
| | | _logger.LogInformation($"Start database {database.GetDbConnection().Database} migrate"); |
| | | await database.MigrateAsync(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Shared; |
| | | using Volo.Abp.Threading; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | |
| | | /// <summary> |
| | | /// EfCoreå®ä½æ©å± |
| | | /// </summary> |
| | | public static class CMSPluginEfCoreEntityExtensionMappings |
| | | { |
| | | private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); |
| | | |
| | | /// <summary> |
| | | /// Configures this instance. |
| | | /// </summary> |
| | | public static void Configure() |
| | | { |
| | | CMSPluginModuleExtensionConfigurator.Configure(); |
| | | |
| | | OneTimeRunner.Run(() => |
| | | { |
| | | /* You can configure extra properties for the |
| | | * entities defined in the modules used by your application. |
| | | * |
| | | * This class can be used to map these extra properties to table fields in the database. |
| | | * |
| | | * USE THIS CLASS ONLY TO CONFIGURE EF CORE RELATED MAPPING. |
| | | * USE CMSModuleExtensionConfigurator CLASS (in the Domain.Shared project) |
| | | * FOR A HIGH LEVEL API TO DEFINE EXTRA PROPERTIES TO ENTITIES OF THE USED MODULES |
| | | * |
| | | * Example: Map a property to a table field: |
| | | |
| | | ObjectExtensionManager.Instance |
| | | .MapEfCoreProperty<WmsContainer, string>( |
| | | "MyProperty", |
| | | (entityBuilder, propertyBuilder) => |
| | | { |
| | | propertyBuilder.HasMaxLength(128); |
| | | } |
| | | ); |
| | | |
| | | * See the documentation for more: |
| | | * https://docs.abp.io/en/abp/latest/Customizing-Application-Modules-Extending-Entities |
| | | */ |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | |
| | | /// <summary> |
| | | /// EntityFrameworkCore模å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginDomainModule), |
| | | typeof(AbpEntityFrameworkCoreModule) |
| | | )] |
| | | public class CMSPluginEntityFrameworkCoreModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsAreas; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | |
| | | /// <summary> |
| | | /// EfCoreæ©å± |
| | | /// </summary> |
| | | public static partial class CMSPluginEfCoreExtensions |
| | | { |
| | | /// <summary> |
| | | /// Includes the details. |
| | | /// </summary> |
| | | /// <param name="queryable">The queryable.</param> |
| | | /// <param name="include">if set to <c>true</c> [include].</param> |
| | | /// <returns></returns> |
| | | public static IQueryable<WmsArea> IncludeDetails(this IQueryable<WmsArea> queryable, bool include = true) |
| | | { |
| | | if (!include) |
| | | { |
| | | return queryable; |
| | | } |
| | | |
| | | return queryable; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the wmsarea. |
| | | /// </summary> |
| | | /// <param name="builder">The builder.</param> |
| | | public static void ConfigureWmsArea(this ModelBuilder builder) |
| | | { |
| | | Check.NotNull(builder, nameof(builder)); |
| | | |
| | | builder.Entity<WmsArea>(b => |
| | | { |
| | | // Configure table & schema name |
| | | b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsAreas").ToLower(), CMSPluginDbProperties.DbSchema).HasComment("åºåºè¡¨"); |
| | | |
| | | b.ConfigureByConvention(); |
| | | |
| | | // Properties |
| | | b.Property(x => x.AreaNo).HasMaxLength(WmsAreaConsts.MaxNameLength).IsRequired().HasComment("åºåºç¼å·"); |
| | | b.Property(x => x.AreaName).HasMaxLength(WmsAreaConsts.MaxAreaNameLength).IsRequired().HasComment("åºåºåç§°"); |
| | | b.Property(x => x.AreaDesc).HasMaxLength(WmsAreaConsts.MaxAreaDescLength).IsRequired(false).HasComment("æè¿°"); |
| | | b.Property(x => x.AreaStatus).HasComment("åºåºç¶æ"); |
| | | b.Property(x => x.AreaType).HasComment("åºåºç±»å"); |
| | | b.Property(x => x.RedundantField1).HasMaxLength(WmsAreaConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.RedundantField2).HasMaxLength(WmsAreaConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.RedundantField3).HasMaxLength(WmsAreaConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.StoreCode).HasMaxLength(WmsAreaConsts.MaxStoreCodeLength).IsRequired(false).HasComment("ä»åºä»£ç "); |
| | | b.Property(x => x.StoreName).HasMaxLength(WmsAreaConsts.MaxStoreNameLength).IsRequired(false).HasComment("ä»åºåç§°"); |
| | | b.Property(x => x.Sort).HasComment("æåº"); |
| | | b.Property(x => x.Remark).HasMaxLength(WmsAreaConsts.MaxRemarkLength).IsRequired(false).HasComment("夿³¨"); |
| | | b.Property(x => x.IsDisabled).IsRequired(false).HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | // Indexes |
| | | b.HasIndex(u => u.AreaName); |
| | | |
| | | // Apply object extension mappings |
| | | b.ApplyObjectExtensionMappings(); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsContainers; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | |
| | | /// <summary> |
| | | /// EfCoreæ©å± |
| | | /// </summary> |
| | | public static partial class CMSPluginEfCoreExtensions |
| | | { |
| | | /// <summary> |
| | | /// Includes the details. |
| | | /// </summary> |
| | | /// <param name="queryable">The queryable.</param> |
| | | /// <param name="include">if set to <c>true</c> [include].</param> |
| | | /// <returns></returns> |
| | | public static IQueryable<WmsContainer> IncludeDetails(this IQueryable<WmsContainer> queryable, bool include = true) |
| | | { |
| | | if (!include) |
| | | { |
| | | return queryable; |
| | | } |
| | | |
| | | return queryable; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the wmscontainer. |
| | | /// </summary> |
| | | /// <param name="builder">The builder.</param> |
| | | public static void ConfigureWmsContainer(this ModelBuilder builder) |
| | | { |
| | | Check.NotNull(builder, nameof(builder)); |
| | | |
| | | builder.Entity<WmsContainer>(b => |
| | | { |
| | | b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsContainers").ToLower(), CMSPluginDbProperties.DbSchema) |
| | | .HasComment("æçä¿¡æ¯è¡¨"); |
| | | |
| | | b.ConfigureByConvention(); |
| | | |
| | | //Properties |
| | | b.Property(x => x.ContainerNo) |
| | | .HasMaxLength(50) |
| | | .IsRequired() |
| | | .HasComment("æçç¼å·"); |
| | | |
| | | b.Property(x => x.ContainerType) |
| | | .IsRequired() |
| | | .HasComment("æçç±»å"); |
| | | |
| | | b.Property(x => x.ContainerStatus) |
| | | .IsRequired() |
| | | .HasComment("æçç¶æ"); |
| | | |
| | | b.Property(x => x.SpecLength) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("é¿åº¦"); |
| | | |
| | | b.Property(x => x.SpecWidth) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("宽度"); |
| | | |
| | | b.Property(x => x.SpecHeight) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("é«åº¦"); |
| | | |
| | | b.Property(x => x.LimitLength) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("éé¿"); |
| | | |
| | | b.Property(x => x.LimitWidth) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("é宽"); |
| | | |
| | | b.Property(x => x.LimitHeight) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("éé«"); |
| | | |
| | | b.Property(x => x.MaxWeight) |
| | | .HasPrecision(18, 2) |
| | | .HasComment("è½½éä¸é"); |
| | | |
| | | b.Property(x => x.ExceptionNumber) |
| | | .HasComment("å¼å¸¸æ°é"); |
| | | |
| | | b.Property(x => x.MaterialNumber) |
| | | .HasComment("ç©ææ°é"); |
| | | |
| | | b.Property(x => x.RedundantField1) |
| | | .HasMaxLength(200) |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property(x => x.RedundantField2) |
| | | .HasMaxLength(200) |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property(x => x.RedundantField3) |
| | | .HasMaxLength(200) |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property(x => x.Sort).HasComment("æåº"); |
| | | b.Property(x => x.IsDisabled).IsRequired(false).HasComment("æ¯å¦ç¦ç¨"); |
| | | b.Property(x => x.Remark).HasMaxLength(WmsContainerConsts.MaxRemarkLength).IsRequired(false).HasComment("夿³¨"); |
| | | |
| | | b.HasIndex(u => u.ContainerNo).IsUnique(); |
| | | b.HasIndex(u => u.ContainerType); |
| | | b.HasIndex(u => u.ContainerStatus); |
| | | |
| | | b.ApplyObjectExtensionMappings(); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsMaterials; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Enums; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | |
| | | /// <summary> |
| | | /// EfCoreæ©å± |
| | | /// </summary> |
| | | public static partial class CMSPluginEfCoreExtensions |
| | | { |
| | | /// <summary> |
| | | /// Includes the details. |
| | | /// </summary> |
| | | /// <param name="queryable">The queryable.</param> |
| | | /// <param name="include">if set to <c>true</c> [include].</param> |
| | | /// <returns></returns> |
| | | public static IQueryable<WmsMaterial> IncludeDetails(this IQueryable<WmsMaterial> queryable, bool include = true) |
| | | { |
| | | if (!include) |
| | | { |
| | | return queryable; |
| | | } |
| | | |
| | | return queryable; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the wmsmaterial. |
| | | /// </summary> |
| | | /// <param name="builder">The builder.</param> |
| | | public static void ConfigureWmsMaterial(this ModelBuilder builder) |
| | | { |
| | | Check.NotNull(builder, nameof(builder)); |
| | | |
| | | builder.Entity<WmsMaterial>(b => |
| | | { |
| | | // é
置表ååæ³¨é |
| | | b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsMaterials").ToLower(), |
| | | CMSPluginDbProperties.DbSchema) |
| | | .HasComment("ç©æåºç¡ä¿¡æ¯è¡¨"); |
| | | |
| | | b.ConfigureByConvention(); |
| | | |
| | | // 主é®é
ç½®ï¼FullAuditedAggregateRoot<Guid> å·²é»è®¤å
å« Idï¼ |
| | | b.HasKey(x => x.Id); |
| | | |
| | | // åæ®µé
ç½® |
| | | b.Property(x => x.MaterialCode) |
| | | .HasMaxLength(64) |
| | | .IsRequired() |
| | | .HasComment("ç©æç¼ç ï¼å¯ä¸æ è¯ï¼"); |
| | | |
| | | b.Property(x => x.MaterialName) |
| | | .HasMaxLength(128) |
| | | .IsRequired() |
| | | .HasComment("ç©æåç§°"); |
| | | |
| | | b.Property(x => x.PurchaseType) |
| | | .HasComment("éè´ç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property(x => x.MaterialType) |
| | | .HasComment("ç©æç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property(x => x.PrimaryUnit) |
| | | .HasMaxLength(20) |
| | | .HasComment("主åä½ï¼å¦ï¼kgãmã个ï¼"); |
| | | |
| | | b.Property(x => x.Standard) |
| | | .HasMaxLength(128) |
| | | .HasComment("è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼"); |
| | | |
| | | b.Property(x => x.OuterDiameter) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å¤å¾ï¼åä½ï¼mmï¼"); |
| | | |
| | | b.Property(x => x.WallThickness) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å£åï¼åä½ï¼mmï¼"); |
| | | |
| | | b.Property(x => x.MaterialQuality) |
| | | .HasMaxLength(64) |
| | | .HasComment("æè´¨ï¼å¦ï¼304ä¸éé¢ï¼"); |
| | | |
| | | b.Property(x => x.Length) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦ï¼åä½ï¼mï¼"); |
| | | |
| | | b.Property(x => x.IsMainBranch) |
| | | .HasDefaultValue(YesNoEnum.N) |
| | | .HasComment("æ¯å¦ä¸ºä¸»æ¯ç®¡"); |
| | | |
| | | b.Property(x => x.Factory) |
| | | .HasMaxLength(64) |
| | | .HasComment("ç产工å"); |
| | | |
| | | b.Property(x => x.Certification) |
| | | .HasMaxLength(128) |
| | | .HasComment("è¯ä¹¦ç¼å·"); |
| | | |
| | | // åä½å段é
ç½® |
| | | b.Property(x => x.RedundantField1) |
| | | .HasMaxLength(256) |
| | | .IsRequired(false) |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property(x => x.RedundantField2) |
| | | .HasMaxLength(256) |
| | | .IsRequired(false) |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property(x => x.RedundantField3) |
| | | .HasMaxLength(256) |
| | | .IsRequired(false) |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | // å
¶ä»éç¨å段 |
| | | b.Property(x => x.Sort) |
| | | .HasDefaultValue(0) |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property(x => x.Remark) |
| | | .HasMaxLength(500) |
| | | .IsRequired(false) |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property(x => x.IsDisabled) |
| | | .IsRequired(false) |
| | | .HasDefaultValue(false) |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | // ç´¢å¼é
ç½® |
| | | b.HasIndex(x => x.MaterialCode).IsUnique(); // ç©æç¼ç å¯ä¸ç´¢å¼ |
| | | b.HasIndex(x => x.MaterialName); // ç©æåç§°æ®éç´¢å¼ |
| | | b.HasIndex(x => x.PurchaseType); // éè´ç±»åç´¢å¼ï¼å¦éæ¥è¯¢è¿æ»¤ï¼ |
| | | b.HasIndex(x => x.MaterialType); // ç©æç±»åç´¢å¼ï¼å¦éæ¥è¯¢è¿æ»¤ï¼ |
| | | |
| | | b.ApplyObjectExtensionMappings(); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsPlaces; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | |
| | | /// <summary> |
| | | /// EfCoreæ©å± |
| | | /// </summary> |
| | | public static partial class CMSPluginEfCoreExtensions |
| | | { |
| | | /// <summary> |
| | | /// Includes the details. |
| | | /// </summary> |
| | | /// <param name="queryable">The queryable.</param> |
| | | /// <param name="include">if set to <c>true</c> [include].</param> |
| | | /// <returns></returns> |
| | | public static IQueryable<WmsPlace> IncludeDetails(this IQueryable<WmsPlace> queryable, bool include = true) |
| | | { |
| | | if (!include) |
| | | { |
| | | return queryable; |
| | | } |
| | | |
| | | return queryable; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the wmsplace. |
| | | /// </summary> |
| | | /// <param name="builder">The builder.</param> |
| | | public static void ConfigureWmsPlace(this ModelBuilder builder) |
| | | { |
| | | Check.NotNull(builder, nameof(builder)); |
| | | |
| | | builder.Entity<WmsPlace>(b => |
| | | { |
| | | // Configure table & schema name |
| | | b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsPlaces").ToLower(), CMSPluginDbProperties.DbSchema).HasComment("åºä½è¡¨"); |
| | | |
| | | b.ConfigureByConvention(); |
| | | |
| | | // Properties |
| | | b.Property(x => x.PlaceNo).HasMaxLength(WmsPlaceConsts.MaxPlaceNoLength).IsRequired().HasComment("ç¼å·"); |
| | | b.Property(x => x.StorageTypeNo).HasComment("è´§ä½ç±»å"); |
| | | b.Property(x => x.PlaceStatus).HasComment("è´§ä½ç¶æ"); |
| | | b.Property(x => x.AreaCode).HasMaxLength(WmsPlaceConsts.MaxAreaCodeLength).IsRequired().HasComment("æå¨åºåº"); |
| | | b.Property(x => x.Aisle).HasComment("å··é"); |
| | | b.Property(x => x.RowNo).HasComment("æ"); |
| | | b.Property(x => x.ColumnNo).HasComment("å"); |
| | | b.Property(x => x.LayerNo).HasComment("å±"); |
| | | b.Property(x => x.Islock).HasComment("æ¯å¦éå®"); |
| | | b.Property(x => x.EmptyContainer).HasComment("æ¯å¦ç©ºæ"); |
| | | b.Property(x => x.RedundantField1).HasMaxLength(WmsPlaceConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.RedundantField2).HasMaxLength(WmsPlaceConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.RedundantField3).HasMaxLength(WmsPlaceConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.Sort).HasComment("æåº"); |
| | | b.Property(x => x.Remark).HasMaxLength(WmsPlaceConsts.MaxRemarkLength).IsRequired(false).HasComment("夿³¨"); |
| | | b.Property(x => x.IsDisabled).IsRequired(false).HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | // Indexes |
| | | b.HasIndex(u => u.PlaceNo).IsUnique(); // ç¼å·å段添å å¯ä¸ç´¢å¼ |
| | | b.HasIndex(u => u.AreaCode); // æå¨åºåºåæ®µæ·»å æ®éç´¢å¼ |
| | | b.HasIndex(u => u.StorageTypeNo); // è´§ä½ç±»ååæ®µæ·»å æ®éç´¢å¼ |
| | | b.HasIndex(u => u.PlaceStatus); // è´§ä½ç±»ååæ®µæ·»å æ®éç´¢å¼ |
| | | |
| | | // Apply object extension mappings |
| | | b.ApplyObjectExtensionMappings(); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.WmsStores; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | |
| | | /// <summary> |
| | | /// EfCoreæ©å± |
| | | /// </summary> |
| | | public static partial class CMSPluginEfCoreExtensions |
| | | { |
| | | /// <summary> |
| | | /// Includes the details. |
| | | /// </summary> |
| | | /// <param name="queryable">The queryable.</param> |
| | | /// <param name="include">if set to <c>true</c> [include].</param> |
| | | /// <returns></returns> |
| | | public static IQueryable<WmsStore> IncludeDetails(this IQueryable<WmsStore> queryable, bool include = true) |
| | | { |
| | | if (!include) |
| | | { |
| | | return queryable; |
| | | } |
| | | |
| | | return queryable; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Configures the wmsstore. |
| | | /// </summary> |
| | | /// <param name="builder">The builder.</param> |
| | | public static void ConfigureWmsStore(this ModelBuilder builder) |
| | | { |
| | | Check.NotNull(builder, nameof(builder)); |
| | | |
| | | builder.Entity<WmsStore>(b => |
| | | { |
| | | // Configure table & schema name |
| | | b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsStores").ToLower(), CMSPluginDbProperties.DbSchema).HasComment("ä»åºä¿¡æ¯è¡¨"); |
| | | |
| | | b.ConfigureByConvention(); |
| | | |
| | | // Properties |
| | | b.Property(x => x.StoreCode).HasMaxLength(WmsStoreConsts.MaxStoreCodeLength).IsRequired(false).HasComment("ä»åºä»£ç "); |
| | | b.Property(x => x.StoreName).HasMaxLength(WmsStoreConsts.MaxStoreNameLength).IsRequired(false).HasComment("ä»åºåç§°"); |
| | | b.Property(x => x.RedundantField1).HasMaxLength(WmsStoreConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.RedundantField2).HasMaxLength(WmsStoreConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.RedundantField3).HasMaxLength(WmsStoreConsts.MaxRedundantFieldLength).IsRequired(false).HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | b.Property(x => x.Remark).HasMaxLength(WmsStoreConsts.MaxRemarkLength).IsRequired(false).HasComment("夿³¨"); |
| | | b.Property(x => x.Sort).HasComment("æåº"); |
| | | b.Property(x => x.IsDisabled).IsRequired(false).HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | // Indexes |
| | | b.HasIndex(u => u.StoreName); |
| | | |
| | | // Apply object extension mappings |
| | | b.ApplyObjectExtensionMappings(); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore |
| | | { |
| | | /// <summary> |
| | | /// æ°æ®åºä¸ä¸æ |
| | | /// </summary> |
| | | [ConnectionStringName(CMSPluginDbProperties.ConnectionStringName)] |
| | | public interface ICMSPluginDbContext : IEfCoreDbContext |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Runtime.CompilerServices; |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.EntityFrameworkCore.Tests")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Linq.Dynamic.Core; |
| | | using CMS.Plugin.HIAWms.Domain.WmsAreas; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using DatabaseSchemaReader.Filters; |
| | | using MathNet.Numerics; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; |
| | | |
| | | /// <inheritdoc /> |
| | | public class EfCoreWmsAreaRepository : EfCoreRepository<ICMSPluginDbContext, WmsArea, Guid>, IWmsAreaRepository |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="EfCoreWmsAreaRepository"/> class. |
| | | /// </summary> |
| | | /// <param name="dbContextProvider">The database context provider.</param> |
| | | public EfCoreWmsAreaRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) |
| | | : base(dbContextProvider) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsArea> FindByNameAsync(string name, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails() |
| | | .OrderBy(t => t.Sort) |
| | | .Where(x => !x.IsDeleted) |
| | | .FirstOrDefaultAsync(t => t.AreaName == name, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¥çåºåºæ¯å¦åå¨ |
| | | /// </summary> |
| | | /// <param name="areaNo"></param> |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | public async Task<bool> NameExistAsync(string areaNo, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id) |
| | | .Where(x => !x.IsDeleted).AnyAsync(x => x.AreaNo == areaNo); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<int> GetMaxSortAsync() |
| | | { |
| | | var hasAny = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).AnyAsync(); |
| | | if (!hasAny) |
| | | { |
| | | return 1; |
| | | } |
| | | |
| | | var sort = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); |
| | | return sort + 1; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsArea>> GetListAsync(WmsArea? area, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsArea> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsAreaSpecification(); |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails(includeDetails) |
| | | .Where(specification.ToExpression()) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.AreaNo.Contains(filter)) |
| | | .WhereIf(!string.IsNullOrEmpty(area.AreaNo), u => u.AreaNo.Contains(area.AreaNo)) |
| | | .WhereIf(!string.IsNullOrEmpty(area.AreaName), u => u.AreaNo.Contains(area.AreaName)) |
| | | .WhereIf(!string.IsNullOrEmpty(area.StoreCode), u => u.AreaNo == area.StoreCode) |
| | | .WhereIf(area.AreaStatus > 0, u => u.AreaStatus == area.AreaStatus) |
| | | .WhereIf(area.AreaType > 0, u => u.AreaType == area.AreaType) |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsArea.Sort) : sorting) |
| | | .PageBy(skipCount, maxResultCount) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·ååºåºå表 |
| | | /// </summary> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsArea>> GetListForSelectAsync(CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<long> GetCountAsync(WmsArea? area, string filter = null, Specification<WmsArea> specification = null, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsAreaSpecification(); |
| | | return await (await GetQueryableAsync()) |
| | | .Where(specification.ToExpression()) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.AreaNo.Contains(filter)) |
| | | .WhereIf(!string.IsNullOrEmpty(area.AreaNo), u => u.AreaNo.Contains(area.AreaNo)) |
| | | .WhereIf(!string.IsNullOrEmpty(area.AreaName), u => u.AreaNo.Contains(area.AreaName)) |
| | | .WhereIf(!string.IsNullOrEmpty(area.StoreCode), u => u.AreaNo == area.StoreCode) |
| | | .WhereIf(area.AreaStatus > 0, u => u.AreaStatus == area.AreaStatus) |
| | | .WhereIf(area.AreaType > 0, u => u.AreaType == area.AreaType) |
| | | .Where(x => !x.IsDeleted) |
| | | .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task<IQueryable<WmsArea>> WithDetailsAsync() |
| | | { |
| | | return (await GetQueryableAsync()).Where(x => !x.IsDeleted).IncludeDetails(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Dynamic.Core; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; |
| | | |
| | | /// <inheritdoc /> |
| | | public class EfCoreWmsContainerRepository : EfCoreRepository<ICMSPluginDbContext, WmsContainer, Guid>, IWmsContainerRepository |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="EfCoreWmsContainerRepository"/> class. |
| | | /// </summary> |
| | | /// <param name="dbContextProvider">The database context provider.</param> |
| | | public EfCoreWmsContainerRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) |
| | | : base(dbContextProvider) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsContainer> FindByNameAsync(string containerNo, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails() |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(t => t.Sort) |
| | | .FirstOrDefaultAsync(t => t.ContainerNo == containerNo, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<bool> NameExistAsync(string containerNo, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.ContainerNo == containerNo); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<int> GetMaxSortAsync() |
| | | { |
| | | var hasAny = await (await GetQueryableAsync()).Where(x => !x.IsDeleted).AnyAsync(); |
| | | if (!hasAny) |
| | | { |
| | | return 1; |
| | | } |
| | | |
| | | var sort = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); |
| | | return sort + 1; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢å表 |
| | | /// </summary> |
| | | /// <param name="container"></param> |
| | | /// <param name="sorting"></param> |
| | | /// <param name="maxResultCount"></param> |
| | | /// <param name="skipCount"></param> |
| | | /// <param name="filter"></param> |
| | | /// <param name="specification"></param> |
| | | /// <param name="includeDetails"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsContainer>> GetListAsync(WmsContainer? container,string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsContainer> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsContainerSpecification(); |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails(includeDetails) |
| | | .Where(specification.ToExpression()) |
| | | .Where(x => !x.IsDeleted) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.ContainerNo.Contains(filter)) |
| | | .WhereIf(!string.IsNullOrEmpty(container.ContainerNo),u=>u.ContainerNo.Contains(container.ContainerNo)) |
| | | .WhereIf(container.ContainerStatus>0, u=>u.ContainerStatus == u.ContainerStatus) |
| | | .WhereIf(container.ContainerType>0, u=>u.ContainerType == u.ContainerType) |
| | | .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsContainer.Sort) : sorting) |
| | | .PageBy(skipCount, maxResultCount) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢æ°é |
| | | /// </summary> |
| | | /// <param name="container"></param> |
| | | /// <param name="filter"></param> |
| | | /// <param name="specification"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<long> GetCountAsync(WmsContainer? container, string filter = null, Specification<WmsContainer> specification = null, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsContainerSpecification(); |
| | | return await (await GetQueryableAsync()) |
| | | .Where(specification.ToExpression()) |
| | | .Where(x => !x.IsDeleted) |
| | | .WhereIf(!string.IsNullOrEmpty(container.ContainerNo), u => u.ContainerNo.Contains(container.ContainerNo)) |
| | | .WhereIf(container.ContainerStatus > 0, u => u.ContainerStatus == u.ContainerStatus) |
| | | .WhereIf(container.ContainerType > 0, u => u.ContainerType == u.ContainerType) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.ContainerNo.Contains(filter)) |
| | | .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task<IQueryable<WmsContainer>> WithDetailsAsync() |
| | | { |
| | | return (await GetQueryableAsync()).Where(x => !x.IsDeleted).IncludeDetails(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Linq.Dynamic.Core; |
| | | using System.Linq.Expressions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsMaterials; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using CmsQueryExtensions.Extension; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; |
| | | |
| | | /// <inheritdoc /> |
| | | public class EfCoreWmsMaterialRepository : EfCoreRepository<ICMSPluginDbContext, WmsMaterial, Guid>, IWmsMaterialRepository |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="EfCoreWmsMaterialRepository"/> class. |
| | | /// </summary> |
| | | /// <param name="dbContextProvider">The database context provider.</param> |
| | | public EfCoreWmsMaterialRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) |
| | | : base(dbContextProvider) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails() |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(t => t.Sort) |
| | | .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<bool> NameExistAsync(string materialCode, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<int> GetMaxSortAsync() |
| | | { |
| | | var hasAny = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).AnyAsync(); |
| | | if (!hasAny) |
| | | { |
| | | return 1; |
| | | } |
| | | |
| | | var sort = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); |
| | | return sort + 1; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åå页å表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="sorting"></param> |
| | | /// <param name="maxResultCount"></param> |
| | | /// <param name="skipCount"></param> |
| | | /// <param name="includeDetails"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterial>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails(includeDetails) |
| | | .WhereIf(whereConditions != null, whereConditions.data) |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterial.Sort) : sorting) |
| | | .PageBy(skipCount, maxResultCount) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæ»æ° |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterial, bool>>> whereConditions, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetQueryableAsync()) |
| | | .WhereIf(whereConditions != null, whereConditions.data) |
| | | .Where(x => !x.IsDeleted) |
| | | .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task<IQueryable<WmsMaterial>> WithDetailsAsync() |
| | | { |
| | | return (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).IncludeDetails(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Dynamic.Core; |
| | | using CMS.Plugin.HIAWms.Domain.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using Microsoft.AspNetCore.Components.Forms; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; |
| | | |
| | | /// <inheritdoc /> |
| | | public class EfCoreWmsPlaceRepository : EfCoreRepository<ICMSPluginDbContext, WmsPlace, Guid>, IWmsPlaceRepository |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="EfCoreWmsPlaceRepository"/> class. |
| | | /// </summary> |
| | | /// <param name="dbContextProvider">The database context provider.</param> |
| | | public EfCoreWmsPlaceRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) |
| | | : base(dbContextProvider) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsPlace> FindByNameAsync(string name, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails() |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(t => t.Sort) |
| | | .FirstOrDefaultAsync(t => t.PlaceNo == name, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<bool> NameExistAsync(string name, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.PlaceNo == name); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<int> GetMaxSortAsync() |
| | | { |
| | | var hasAny = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).AnyAsync(); |
| | | if (!hasAny) |
| | | { |
| | | return 1; |
| | | } |
| | | |
| | | var sort = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); |
| | | return sort + 1; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsPlace>> GetListAsync(WmsPlace? place, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsPlaceSpecification(); |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails(includeDetails) |
| | | .Where(specification.ToExpression()) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.PlaceNo.Contains(filter)) |
| | | .WhereIf(!string.IsNullOrEmpty(place.PlaceNo), u => u.PlaceNo == place.PlaceNo) |
| | | .WhereIf(place.PlaceStatus > 0, u => u.PlaceStatus == place.PlaceStatus) |
| | | .WhereIf(place.StorageTypeNo > 0, u => u.StorageTypeNo == place.StorageTypeNo) |
| | | .WhereIf(place.Aisle > 0, u => u.Aisle == place.Aisle) |
| | | .WhereIf(place.RowNo > 0, u => u.RowNo == place.RowNo) |
| | | .WhereIf(place.ColumnNo > 0, u => u.ColumnNo == place.ColumnNo) |
| | | .WhereIf(place.LayerNo > 0, u => u.LayerNo == place.LayerNo) |
| | | .WhereIf(place.Islock > 0, u => u.Islock == place.Islock) |
| | | .WhereIf(place.EmptyContainer > 0, u => u.EmptyContainer == place.EmptyContainer) |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsPlace.Sort) : sorting) |
| | | .PageBy(skipCount, maxResultCount) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsPlaceSpecification(); |
| | | return await (await GetQueryableAsync()) |
| | | .Where(specification.ToExpression()) |
| | | .WhereIf(!string.IsNullOrEmpty(place.PlaceNo), u => u.PlaceNo == place.PlaceNo) |
| | | .WhereIf(place.PlaceStatus > 0, u => u.PlaceStatus == place.PlaceStatus) |
| | | .WhereIf(place.StorageTypeNo > 0, u => u.StorageTypeNo == place.StorageTypeNo) |
| | | .WhereIf(place.Aisle > 0, u => u.Aisle == place.Aisle) |
| | | .WhereIf(place.RowNo > 0, u => u.RowNo == place.RowNo) |
| | | .WhereIf(place.ColumnNo > 0, u => u.ColumnNo == place.ColumnNo) |
| | | .WhereIf(place.LayerNo > 0, u => u.LayerNo == place.LayerNo) |
| | | .WhereIf(place.Islock > 0, u => u.Islock == place.Islock) |
| | | .WhereIf(place.EmptyContainer > 0, u => u.EmptyContainer == place.EmptyContainer) |
| | | .Where(x => !x.IsDeleted) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.PlaceNo.Contains(filter)) |
| | | .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task<IQueryable<WmsPlace>> WithDetailsAsync() |
| | | { |
| | | return (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).IncludeDetails(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Linq.Dynamic.Core; |
| | | using CMS.Plugin.HIAWms.Domain.WmsStores; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Domain.Repositories.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Specifications; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; |
| | | |
| | | /// <inheritdoc /> |
| | | public class EfCoreWmsStoreRepository : EfCoreRepository<ICMSPluginDbContext, WmsStore, Guid>, IWmsStoreRepository |
| | | { |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="EfCoreWmsStoreRepository"/> class. |
| | | /// </summary> |
| | | /// <param name="dbContextProvider">The database context provider.</param> |
| | | public EfCoreWmsStoreRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) |
| | | : base(dbContextProvider) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public virtual async Task<WmsStore> FindByNameAsync(string name, CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails() |
| | | .Where(x => !x.IsDeleted) |
| | | .OrderBy(t => t.Sort) |
| | | .FirstOrDefaultAsync(t => t.StoreCode == name, GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<bool> NameExistAsync(string storeCode, Guid? id = null) |
| | | { |
| | | return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.StoreCode == storeCode); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<int> GetMaxSortAsync() |
| | | { |
| | | var hasAny = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).AnyAsync(); |
| | | if (!hasAny) |
| | | { |
| | | return 1; |
| | | } |
| | | |
| | | var sort = await (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); |
| | | return sort + 1; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<List<WmsStore>> GetListAsync(WmsStore? store, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsStore> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsStoreSpecification(); |
| | | return await (await GetDbSetAsync()) |
| | | .IncludeDetails(includeDetails) |
| | | .Where(specification.ToExpression()) |
| | | .Where(x => !x.IsDeleted) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.StoreCode.Contains(filter)) |
| | | .WhereIf(!string.IsNullOrEmpty(store.StoreCode),u=>u.StoreCode.Contains(store.StoreCode)) |
| | | .WhereIf(!string.IsNullOrEmpty(store.StoreName),u=>u.StoreName.Contains(store.StoreName)) |
| | | .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsStore.Sort) : sorting) |
| | | .PageBy(skipCount, maxResultCount) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢ä»åºå表 |
| | | /// </summary> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsStore>> GetListForSelectAsync( CancellationToken cancellationToken = default) |
| | | { |
| | | return await (await GetDbSetAsync()) |
| | | .ToListAsync(GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task<long> GetCountAsync(WmsStore? store, string filter = null, Specification<WmsStore> specification = null, CancellationToken cancellationToken = default) |
| | | { |
| | | specification ??= new WmsStoreSpecification(); |
| | | return await (await GetQueryableAsync()) |
| | | .Where(specification.ToExpression()) |
| | | .Where(x => !x.IsDeleted) |
| | | .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.StoreCode.Contains(filter)) |
| | | .WhereIf(!string.IsNullOrEmpty(store.StoreCode), u => u.StoreCode.Contains(store.StoreCode)) |
| | | .WhereIf(!string.IsNullOrEmpty(store.StoreName), u => u.StoreName.Contains(store.StoreName)) |
| | | .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task<IQueryable<WmsStore>> WithDetailsAsync() |
| | | { |
| | | return (await GetQueryableAsync()) |
| | | .Where(x => !x.IsDeleted).IncludeDetails(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "ConnectionStrings": { |
| | | "Default": "Server=localhost;Database=CMS.Plugin.HIAWms;User ID=root;Password=123abc.com" |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.EntityFrameworkCore.MySQL" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.5"> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.EntityFrameworkCore\CMS.Plugin.HIAWms.EntityFrameworkCore.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL; |
| | | |
| | | /// <summary> |
| | | /// æ°æ®åºä¸ä¸æ |
| | | /// </summary> |
| | | [ConnectionStringName(CMSPluginDbProperties.ConnectionStringName)] |
| | | public class CMSPluginDbContext : AbpDbContext<CMSPluginDbContext>, ICMSPluginDbContext |
| | | { |
| | | /* Add DbSet properties for your Aggregate Roots / Entities here. */ |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginDbContext"/> class. |
| | | /// </summary> |
| | | /// <param name="options">The options.</param> |
| | | public CMSPluginDbContext(DbContextOptions<CMSPluginDbContext> options) |
| | | : base(options) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | protected override void OnModelCreating(ModelBuilder builder) |
| | | { |
| | | base.OnModelCreating(builder); |
| | | |
| | | /* Include modules to your migration db context */ |
| | | |
| | | builder.ConfigureWmsContainer(); |
| | | builder.ConfigureWmsStore(); |
| | | builder.ConfigureWmsArea(); |
| | | builder.ConfigureWmsPlace(); |
| | | builder.ConfigureWmsMaterial(); |
| | | |
| | | /* Configure your own tables/entities inside here */ |
| | | |
| | | //builder.Entity<YourEntity>(b => |
| | | //{ |
| | | // b.ToTable(CMSPluginDbProperties.DbTablePrefix + "YourEntities", CMSPluginDbProperties.DbSchema); |
| | | // b.ConfigureByConvention(); //auto configure for the base class props |
| | | // //... |
| | | //}); |
| | | |
| | | builder.TryConfigureObjectExtensions<CMSPluginDbContext>(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Design; |
| | | using Microsoft.Extensions.Configuration; |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL; |
| | | |
| | | /// <summary> |
| | | /// This class is needed for EF Core console commands |
| | | /// (like Add-Migration and Update-Database commands) |
| | | /// </summary> |
| | | public class CMSPluginDbContextFactory : IDesignTimeDbContextFactory<CMSPluginDbContext> |
| | | { |
| | | /// <summary> |
| | | /// Creates a new instance of a derived context. |
| | | /// </summary> |
| | | /// <param name="args">Arguments provided by the design-time service.</param> |
| | | public CMSPluginDbContext CreateDbContext(string[] args) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | |
| | | var configuration = BuildConfiguration(); |
| | | |
| | | var builder = new DbContextOptionsBuilder<CMSPluginDbContext>() |
| | | .UseMySql(configuration.GetConnectionString("Default"), MySqlServerVersion.LatestSupportedServerVersion, x => x.MigrationsHistoryTable(CMSPluginDbProperties.MigrationsHistoryTable, CMSPluginDbProperties.DbSchema)); |
| | | |
| | | return new CMSPluginDbContext(builder.Options); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Builds the configuration. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private static IConfigurationRoot BuildConfiguration() |
| | | { |
| | | var builder = new ConfigurationBuilder() |
| | | .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../CMS.Plugin.HIAWms.EntityFrameworkCore/")) |
| | | .AddJsonFile("appsettings.json", optional: false); |
| | | |
| | | return builder.Build(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL; |
| | | |
| | | /// <summary> |
| | | /// EntityFrameworkCore模å |
| | | /// </summary> |
| | | [DependsOn(typeof(CMSPluginEntityFrameworkCoreModule))] |
| | | public class CMSPluginMySQLModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | context.Services.AddAbpDbContext<CMSPluginDbContext>(options => |
| | | { |
| | | /* Remove "includeAllEntities: true" to create |
| | | * default repositories only for aggregate roots */ |
| | | //options.AddDefaultRepositories(includeAllEntities: true); |
| | | }); |
| | | |
| | | Configure<AbpDbContextOptions>(options => |
| | | { |
| | | /* The main point to change your DBMS. |
| | | * See also CMSMigrationsDbContextFactory for EF Core tooling. */ |
| | | options.UseMySQL(x => |
| | | { |
| | | x.MigrationsHistoryTable(CMSPluginDbProperties.MigrationsHistoryTable, CMSPluginDbProperties.DbSchema); |
| | | //x.EnableRetryOnFailure(); |
| | | }); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // <auto-generated /> |
| | | using System; |
| | | using CMS.Plugin.HIAWms.MySQL; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Infrastructure; |
| | | using Microsoft.EntityFrameworkCore.Migrations; |
| | | using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | |
| | | #nullable disable |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL.Migrations |
| | | { |
| | | [DbContext(typeof(CMSPluginDbContext))] |
| | | [Migration("20250429025531_InitialCreate")] |
| | | partial class InitialCreate |
| | | { |
| | | protected override void BuildTargetModel(ModelBuilder modelBuilder) |
| | | { |
| | | #pragma warning disable 612, 618 |
| | | modelBuilder |
| | | .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) |
| | | .HasAnnotation("ProductVersion", "6.0.16") |
| | | .HasAnnotation("Relational:MaxIdentifierLength", 64); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("AreaDesc") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("æè¿°"); |
| | | |
| | | b.Property<string>("AreaName") |
| | | .IsRequired() |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åºåºåç§°"); |
| | | |
| | | b.Property<string>("AreaNo") |
| | | .IsRequired() |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("åºåºç¼å·"); |
| | | |
| | | b.Property<int>("AreaStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("åºåºç¶æ"); |
| | | |
| | | b.Property<int>("AreaType") |
| | | .HasColumnType("int") |
| | | .HasComment("åºåºç±»å"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("StoreCode") |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ä»åºä»£ç "); |
| | | |
| | | b.Property<string>("StoreName") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("ä»åºåç§°"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("AreaName"); |
| | | |
| | | b.ToTable("scms_wmsareas", (string)null); |
| | | |
| | | b.HasComment("åºåºè¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<string>("ContainerNo") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("æçç¼å·"); |
| | | |
| | | b.Property<int>("ContainerStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("æçç¶æ"); |
| | | |
| | | b.Property<int>("ContainerType") |
| | | .HasColumnType("int") |
| | | .HasComment("æçç±»å"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<int?>("ExceptionNumber") |
| | | .HasColumnType("int") |
| | | .HasComment("å¼å¸¸æ°é"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<decimal?>("LimitHeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("éé«"); |
| | | |
| | | b.Property<decimal?>("LimitLength") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("éé¿"); |
| | | |
| | | b.Property<decimal?>("LimitWidth") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é宽"); |
| | | |
| | | b.Property<int?>("MaterialNumber") |
| | | .HasColumnType("int") |
| | | .HasComment("ç©ææ°é"); |
| | | |
| | | b.Property<decimal?>("MaxWeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("è½½éä¸é"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<decimal?>("SpecHeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é«åº¦"); |
| | | |
| | | b.Property<decimal?>("SpecLength") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦"); |
| | | |
| | | b.Property<decimal?>("SpecWidth") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("宽度"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("ContainerNo") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("ContainerStatus"); |
| | | |
| | | b.HasIndex("ContainerType"); |
| | | |
| | | b.ToTable("scms_wmscontainers", (string)null); |
| | | |
| | | b.HasComment("æçä¿¡æ¯è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("Certification") |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("è¯ä¹¦ç¼å·"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<string>("Factory") |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("ç产工å"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<bool>("IsMainBranch") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasComment("æ¯å¦ä¸ºä¸»æ¯ç®¡"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<decimal>("Length") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦ï¼åä½ï¼mï¼"); |
| | | |
| | | b.Property<string>("MaterialCode") |
| | | .IsRequired() |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("ç©æç¼ç ï¼å¯ä¸æ è¯ï¼"); |
| | | |
| | | b.Property<string>("MaterialName") |
| | | .IsRequired() |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("ç©æåç§°"); |
| | | |
| | | b.Property<string>("MaterialQuality") |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("æè´¨ï¼å¦ï¼304ä¸éé¢ï¼"); |
| | | |
| | | b.Property<int>("MaterialType") |
| | | .HasColumnType("int") |
| | | .HasComment("ç©æç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property<decimal>("OuterDiameter") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å¤å¾ï¼åä½ï¼mmï¼"); |
| | | |
| | | b.Property<string>("PrimaryUnit") |
| | | .HasMaxLength(20) |
| | | .HasColumnType("varchar(20)") |
| | | .HasComment("主åä½ï¼å¦ï¼kgãmã个ï¼"); |
| | | |
| | | b.Property<int>("PurchaseType") |
| | | .HasColumnType("int") |
| | | .HasComment("éè´ç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(500) |
| | | .HasColumnType("varchar(500)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("int") |
| | | .HasDefaultValue(0) |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("Standard") |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼"); |
| | | |
| | | b.Property<decimal>("WallThickness") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å£åï¼åä½ï¼mmï¼"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("MaterialCode") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("MaterialName"); |
| | | |
| | | b.HasIndex("MaterialType"); |
| | | |
| | | b.HasIndex("PurchaseType"); |
| | | |
| | | b.ToTable("scms_wmsmaterials", (string)null); |
| | | |
| | | b.HasComment("ç©æåºç¡ä¿¡æ¯è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<int>("Aisle") |
| | | .HasColumnType("int") |
| | | .HasComment("å··é"); |
| | | |
| | | b.Property<string>("AreaCode") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("æå¨åºåº"); |
| | | |
| | | b.Property<int>("ColumnNo") |
| | | .HasColumnType("int") |
| | | .HasComment("å"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<int>("EmptyContainer") |
| | | .HasColumnType("int") |
| | | .HasComment("æ¯å¦ç©ºæ"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<int>("Islock") |
| | | .HasColumnType("int") |
| | | .HasComment("æ¯å¦éå®"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<int>("LayerNo") |
| | | .HasColumnType("int") |
| | | .HasComment("å±"); |
| | | |
| | | b.Property<string>("PlaceNo") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ç¼å·"); |
| | | |
| | | b.Property<int>("PlaceStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("è´§ä½ç¶æ"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("RowNo") |
| | | .HasColumnType("int") |
| | | .HasComment("æ"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<int>("StorageTypeNo") |
| | | .HasColumnType("int") |
| | | .HasComment("è´§ä½ç±»å"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("AreaCode"); |
| | | |
| | | b.HasIndex("PlaceNo") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("PlaceStatus"); |
| | | |
| | | b.HasIndex("StorageTypeNo"); |
| | | |
| | | b.ToTable("scms_wmsplaces", (string)null); |
| | | |
| | | b.HasComment("åºä½è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("StoreCode") |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ä»åºä»£ç "); |
| | | |
| | | b.Property<string>("StoreName") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("ä»åºåç§°"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("StoreName"); |
| | | |
| | | b.ToTable("scms_wmsstores", (string)null); |
| | | |
| | | b.HasComment("ä»åºä¿¡æ¯è¡¨"); |
| | | }); |
| | | #pragma warning restore 612, 618 |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using Microsoft.EntityFrameworkCore.Migrations; |
| | | |
| | | #nullable disable |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL.Migrations |
| | | { |
| | | public partial class InitialCreate : Migration |
| | | { |
| | | protected override void Up(MigrationBuilder migrationBuilder) |
| | | { |
| | | migrationBuilder.AlterDatabase() |
| | | .Annotation("MySql:CharSet", "utf8mb4"); |
| | | |
| | | migrationBuilder.CreateTable( |
| | | name: "scms_wmsareas", |
| | | columns: table => new |
| | | { |
| | | Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
| | | AreaNo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "åºåºç¼å·") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | AreaName = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false, comment: "åºåºåç§°") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | AreaDesc = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true, comment: "æè¿°") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | AreaStatus = table.Column<int>(type: "int", nullable: false, comment: "åºåºç¶æ"), |
| | | AreaType = table.Column<int>(type: "int", nullable: false, comment: "åºåºç±»å"), |
| | | RedundantField1 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段1 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField2 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段2 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField3 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段3 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | StoreCode = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "ä»åºä»£ç ") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | StoreName = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "ä»åºåç§°") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Sort = table.Column<int>(type: "int", nullable: false, comment: "æåº"), |
| | | Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "夿³¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "æ¯å¦ç¦ç¨"), |
| | | ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
| | | CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
| | | LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
| | | DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
| | | }, |
| | | constraints: table => |
| | | { |
| | | table.PrimaryKey("PK_scms_wmsareas", x => x.Id); |
| | | }, |
| | | comment: "åºåºè¡¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"); |
| | | |
| | | migrationBuilder.CreateTable( |
| | | name: "scms_wmscontainers", |
| | | columns: table => new |
| | | { |
| | | Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
| | | ContainerNo = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "æçç¼å·") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | ContainerType = table.Column<int>(type: "int", nullable: false, comment: "æçç±»å"), |
| | | ContainerStatus = table.Column<int>(type: "int", nullable: false, comment: "æçç¶æ"), |
| | | SpecLength = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "é¿åº¦"), |
| | | SpecWidth = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "宽度"), |
| | | SpecHeight = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "é«åº¦"), |
| | | LimitLength = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "éé¿"), |
| | | LimitWidth = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "é宽"), |
| | | LimitHeight = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "éé«"), |
| | | MaxWeight = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: true, comment: "è½½éä¸é"), |
| | | ExceptionNumber = table.Column<int>(type: "int", nullable: true, comment: "å¼å¸¸æ°é"), |
| | | MaterialNumber = table.Column<int>(type: "int", nullable: true, comment: "ç©ææ°é"), |
| | | RedundantField1 = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true, comment: "åä½å段1 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField2 = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true, comment: "åä½å段2 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField3 = table.Column<string>(type: "varchar(200)", maxLength: 200, nullable: true, comment: "åä½å段3 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Sort = table.Column<int>(type: "int", nullable: false, comment: "æåº"), |
| | | Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "夿³¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "æ¯å¦ç¦ç¨"), |
| | | ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
| | | CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
| | | LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
| | | DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
| | | }, |
| | | constraints: table => |
| | | { |
| | | table.PrimaryKey("PK_scms_wmscontainers", x => x.Id); |
| | | }, |
| | | comment: "æçä¿¡æ¯è¡¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"); |
| | | |
| | | migrationBuilder.CreateTable( |
| | | name: "scms_wmsmaterials", |
| | | columns: table => new |
| | | { |
| | | Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
| | | MaterialCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "ç©æç¼ç ï¼å¯ä¸æ è¯ï¼") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | MaterialName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "ç©æåç§°") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | PurchaseType = table.Column<int>(type: "int", nullable: false, comment: "éè´ç±»åï¼æä¸¾å¼ï¼"), |
| | | MaterialType = table.Column<int>(type: "int", nullable: false, comment: "ç©æç±»åï¼æä¸¾å¼ï¼"), |
| | | PrimaryUnit = table.Column<string>(type: "varchar(20)", maxLength: 20, nullable: true, comment: "主åä½ï¼å¦ï¼kgãmã个ï¼") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Standard = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | OuterDiameter = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "å¤å¾ï¼åä½ï¼mmï¼"), |
| | | WallThickness = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "å£åï¼åä½ï¼mmï¼"), |
| | | MaterialQuality = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "æè´¨ï¼å¦ï¼304ä¸éé¢ï¼") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Length = table.Column<decimal>(type: "decimal(18,2)", nullable: false, comment: "é¿åº¦ï¼åä½ï¼mï¼"), |
| | | IsMainBranch = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "æ¯å¦ä¸ºä¸»æ¯ç®¡"), |
| | | Factory = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: true, comment: "ç产工å") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Certification = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "è¯ä¹¦ç¼å·") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField1 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "åä½å段1 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField2 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "åä½å段2 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField3 = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "åä½å段3 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Sort = table.Column<int>(type: "int", nullable: false, defaultValue: 0, comment: "æåº"), |
| | | Remark = table.Column<string>(type: "varchar(500)", maxLength: 500, nullable: true, comment: "夿³¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, defaultValue: false, comment: "æ¯å¦ç¦ç¨"), |
| | | ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
| | | CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
| | | LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
| | | DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
| | | }, |
| | | constraints: table => |
| | | { |
| | | table.PrimaryKey("PK_scms_wmsmaterials", x => x.Id); |
| | | }, |
| | | comment: "ç©æåºç¡ä¿¡æ¯è¡¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"); |
| | | |
| | | migrationBuilder.CreateTable( |
| | | name: "scms_wmsplaces", |
| | | columns: table => new |
| | | { |
| | | Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
| | | PlaceNo = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "ç¼å·") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | StorageTypeNo = table.Column<int>(type: "int", nullable: false, comment: "è´§ä½ç±»å"), |
| | | PlaceStatus = table.Column<int>(type: "int", nullable: false, comment: "è´§ä½ç¶æ"), |
| | | AreaCode = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "æå¨åºåº") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Aisle = table.Column<int>(type: "int", nullable: false, comment: "å··é"), |
| | | RowNo = table.Column<int>(type: "int", nullable: false, comment: "æ"), |
| | | ColumnNo = table.Column<int>(type: "int", nullable: false, comment: "å"), |
| | | LayerNo = table.Column<int>(type: "int", nullable: false, comment: "å±"), |
| | | Islock = table.Column<int>(type: "int", nullable: false, comment: "æ¯å¦éå®"), |
| | | EmptyContainer = table.Column<int>(type: "int", nullable: false, comment: "æ¯å¦ç©ºæ"), |
| | | RedundantField1 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段1 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField2 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段2 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField3 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段3 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Sort = table.Column<int>(type: "int", nullable: false, comment: "æåº"), |
| | | Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "夿³¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "æ¯å¦ç¦ç¨"), |
| | | ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
| | | CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
| | | LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
| | | DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
| | | }, |
| | | constraints: table => |
| | | { |
| | | table.PrimaryKey("PK_scms_wmsplaces", x => x.Id); |
| | | }, |
| | | comment: "åºä½è¡¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"); |
| | | |
| | | migrationBuilder.CreateTable( |
| | | name: "scms_wmsstores", |
| | | columns: table => new |
| | | { |
| | | Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"), |
| | | StoreCode = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "ä»åºä»£ç ") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | StoreName = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "ä»åºåç§°") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField1 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段1 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField2 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段2 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | RedundantField3 = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: true, comment: "åä½å段3 - é¢çæ©å±ç¨é") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Remark = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "夿³¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | Sort = table.Column<int>(type: "int", nullable: false, comment: "æåº"), |
| | | IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true, comment: "æ¯å¦ç¦ç¨"), |
| | | ExtraProperties = table.Column<string>(type: "longtext", nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true) |
| | | .Annotation("MySql:CharSet", "utf8mb4"), |
| | | CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), |
| | | CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true), |
| | | LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false), |
| | | DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, collation: "ascii_general_ci"), |
| | | DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true) |
| | | }, |
| | | constraints: table => |
| | | { |
| | | table.PrimaryKey("PK_scms_wmsstores", x => x.Id); |
| | | }, |
| | | comment: "ä»åºä¿¡æ¯è¡¨") |
| | | .Annotation("MySql:CharSet", "utf8mb4"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsareas_AreaName", |
| | | table: "scms_wmsareas", |
| | | column: "AreaName"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmscontainers_ContainerNo", |
| | | table: "scms_wmscontainers", |
| | | column: "ContainerNo", |
| | | unique: true); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmscontainers_ContainerStatus", |
| | | table: "scms_wmscontainers", |
| | | column: "ContainerStatus"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmscontainers_ContainerType", |
| | | table: "scms_wmscontainers", |
| | | column: "ContainerType"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsmaterials_MaterialCode", |
| | | table: "scms_wmsmaterials", |
| | | column: "MaterialCode", |
| | | unique: true); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsmaterials_MaterialName", |
| | | table: "scms_wmsmaterials", |
| | | column: "MaterialName"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsmaterials_MaterialType", |
| | | table: "scms_wmsmaterials", |
| | | column: "MaterialType"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsmaterials_PurchaseType", |
| | | table: "scms_wmsmaterials", |
| | | column: "PurchaseType"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsplaces_AreaCode", |
| | | table: "scms_wmsplaces", |
| | | column: "AreaCode"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsplaces_PlaceNo", |
| | | table: "scms_wmsplaces", |
| | | column: "PlaceNo", |
| | | unique: true); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsplaces_PlaceStatus", |
| | | table: "scms_wmsplaces", |
| | | column: "PlaceStatus"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsplaces_StorageTypeNo", |
| | | table: "scms_wmsplaces", |
| | | column: "StorageTypeNo"); |
| | | |
| | | migrationBuilder.CreateIndex( |
| | | name: "IX_scms_wmsstores_StoreName", |
| | | table: "scms_wmsstores", |
| | | column: "StoreName"); |
| | | } |
| | | |
| | | protected override void Down(MigrationBuilder migrationBuilder) |
| | | { |
| | | migrationBuilder.DropTable( |
| | | name: "scms_wmsareas"); |
| | | |
| | | migrationBuilder.DropTable( |
| | | name: "scms_wmscontainers"); |
| | | |
| | | migrationBuilder.DropTable( |
| | | name: "scms_wmsmaterials"); |
| | | |
| | | migrationBuilder.DropTable( |
| | | name: "scms_wmsplaces"); |
| | | |
| | | migrationBuilder.DropTable( |
| | | name: "scms_wmsstores"); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // <auto-generated /> |
| | | using System; |
| | | using CMS.Plugin.HIAWms.MySQL; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Infrastructure; |
| | | using Microsoft.EntityFrameworkCore.Migrations; |
| | | using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | |
| | | #nullable disable |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL.Migrations |
| | | { |
| | | [DbContext(typeof(CMSPluginDbContext))] |
| | | [Migration("20250430035549_InitialCreate1")] |
| | | partial class InitialCreate1 |
| | | { |
| | | protected override void BuildTargetModel(ModelBuilder modelBuilder) |
| | | { |
| | | #pragma warning disable 612, 618 |
| | | modelBuilder |
| | | .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) |
| | | .HasAnnotation("ProductVersion", "6.0.16") |
| | | .HasAnnotation("Relational:MaxIdentifierLength", 64); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("AreaDesc") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("æè¿°"); |
| | | |
| | | b.Property<string>("AreaName") |
| | | .IsRequired() |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åºåºåç§°"); |
| | | |
| | | b.Property<string>("AreaNo") |
| | | .IsRequired() |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("åºåºç¼å·"); |
| | | |
| | | b.Property<int>("AreaStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("åºåºç¶æ"); |
| | | |
| | | b.Property<int>("AreaType") |
| | | .HasColumnType("int") |
| | | .HasComment("åºåºç±»å"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("StoreCode") |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ä»åºä»£ç "); |
| | | |
| | | b.Property<string>("StoreName") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("ä»åºåç§°"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("AreaName"); |
| | | |
| | | b.ToTable("scms_wmsareas", (string)null); |
| | | |
| | | b.HasComment("åºåºè¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<string>("ContainerNo") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("æçç¼å·"); |
| | | |
| | | b.Property<int>("ContainerStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("æçç¶æ"); |
| | | |
| | | b.Property<int>("ContainerType") |
| | | .HasColumnType("int") |
| | | .HasComment("æçç±»å"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<int?>("ExceptionNumber") |
| | | .HasColumnType("int") |
| | | .HasComment("å¼å¸¸æ°é"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<decimal?>("LimitHeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("éé«"); |
| | | |
| | | b.Property<decimal?>("LimitLength") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("éé¿"); |
| | | |
| | | b.Property<decimal?>("LimitWidth") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é宽"); |
| | | |
| | | b.Property<int?>("MaterialNumber") |
| | | .HasColumnType("int") |
| | | .HasComment("ç©ææ°é"); |
| | | |
| | | b.Property<decimal?>("MaxWeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("è½½éä¸é"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<decimal?>("SpecHeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é«åº¦"); |
| | | |
| | | b.Property<decimal?>("SpecLength") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦"); |
| | | |
| | | b.Property<decimal?>("SpecWidth") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("宽度"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("ContainerNo") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("ContainerStatus"); |
| | | |
| | | b.HasIndex("ContainerType"); |
| | | |
| | | b.ToTable("scms_wmscontainers", (string)null); |
| | | |
| | | b.HasComment("æçä¿¡æ¯è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("Certification") |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("è¯ä¹¦ç¼å·"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<string>("Factory") |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("ç产工å"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<int>("IsMainBranch") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("int") |
| | | .HasDefaultValue(2) |
| | | .HasComment("æ¯å¦ä¸ºä¸»æ¯ç®¡"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<decimal>("Length") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦ï¼åä½ï¼mï¼"); |
| | | |
| | | b.Property<string>("MaterialCode") |
| | | .IsRequired() |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("ç©æç¼ç ï¼å¯ä¸æ è¯ï¼"); |
| | | |
| | | b.Property<string>("MaterialName") |
| | | .IsRequired() |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("ç©æåç§°"); |
| | | |
| | | b.Property<string>("MaterialQuality") |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("æè´¨ï¼å¦ï¼304ä¸éé¢ï¼"); |
| | | |
| | | b.Property<int>("MaterialType") |
| | | .HasColumnType("int") |
| | | .HasComment("ç©æç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property<decimal>("OuterDiameter") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å¤å¾ï¼åä½ï¼mmï¼"); |
| | | |
| | | b.Property<string>("PrimaryUnit") |
| | | .HasMaxLength(20) |
| | | .HasColumnType("varchar(20)") |
| | | .HasComment("主åä½ï¼å¦ï¼kgãmã个ï¼"); |
| | | |
| | | b.Property<int>("PurchaseType") |
| | | .HasColumnType("int") |
| | | .HasComment("éè´ç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(500) |
| | | .HasColumnType("varchar(500)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("int") |
| | | .HasDefaultValue(0) |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("Standard") |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼"); |
| | | |
| | | b.Property<decimal>("WallThickness") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å£åï¼åä½ï¼mmï¼"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("MaterialCode") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("MaterialName"); |
| | | |
| | | b.HasIndex("MaterialType"); |
| | | |
| | | b.HasIndex("PurchaseType"); |
| | | |
| | | b.ToTable("scms_wmsmaterials", (string)null); |
| | | |
| | | b.HasComment("ç©æåºç¡ä¿¡æ¯è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<int>("Aisle") |
| | | .HasColumnType("int") |
| | | .HasComment("å··é"); |
| | | |
| | | b.Property<string>("AreaCode") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("æå¨åºåº"); |
| | | |
| | | b.Property<int>("ColumnNo") |
| | | .HasColumnType("int") |
| | | .HasComment("å"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<int>("EmptyContainer") |
| | | .HasColumnType("int") |
| | | .HasComment("æ¯å¦ç©ºæ"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<int>("Islock") |
| | | .HasColumnType("int") |
| | | .HasComment("æ¯å¦éå®"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<int>("LayerNo") |
| | | .HasColumnType("int") |
| | | .HasComment("å±"); |
| | | |
| | | b.Property<string>("PlaceNo") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ç¼å·"); |
| | | |
| | | b.Property<int>("PlaceStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("è´§ä½ç¶æ"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("RowNo") |
| | | .HasColumnType("int") |
| | | .HasComment("æ"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<int>("StorageTypeNo") |
| | | .HasColumnType("int") |
| | | .HasComment("è´§ä½ç±»å"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("AreaCode"); |
| | | |
| | | b.HasIndex("PlaceNo") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("PlaceStatus"); |
| | | |
| | | b.HasIndex("StorageTypeNo"); |
| | | |
| | | b.ToTable("scms_wmsplaces", (string)null); |
| | | |
| | | b.HasComment("åºä½è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("StoreCode") |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ä»åºä»£ç "); |
| | | |
| | | b.Property<string>("StoreName") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("ä»åºåç§°"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("StoreName"); |
| | | |
| | | b.ToTable("scms_wmsstores", (string)null); |
| | | |
| | | b.HasComment("ä»åºä¿¡æ¯è¡¨"); |
| | | }); |
| | | #pragma warning restore 612, 618 |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.EntityFrameworkCore.Migrations; |
| | | |
| | | #nullable disable |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL.Migrations |
| | | { |
| | | public partial class InitialCreate1 : Migration |
| | | { |
| | | protected override void Up(MigrationBuilder migrationBuilder) |
| | | { |
| | | migrationBuilder.AlterColumn<int>( |
| | | name: "IsMainBranch", |
| | | table: "scms_wmsmaterials", |
| | | type: "int", |
| | | nullable: false, |
| | | defaultValue: 2, |
| | | comment: "æ¯å¦ä¸ºä¸»æ¯ç®¡", |
| | | oldClrType: typeof(bool), |
| | | oldType: "tinyint(1)", |
| | | oldDefaultValue: false, |
| | | oldComment: "æ¯å¦ä¸ºä¸»æ¯ç®¡"); |
| | | } |
| | | |
| | | protected override void Down(MigrationBuilder migrationBuilder) |
| | | { |
| | | migrationBuilder.AlterColumn<bool>( |
| | | name: "IsMainBranch", |
| | | table: "scms_wmsmaterials", |
| | | type: "tinyint(1)", |
| | | nullable: false, |
| | | defaultValue: false, |
| | | comment: "æ¯å¦ä¸ºä¸»æ¯ç®¡", |
| | | oldClrType: typeof(int), |
| | | oldType: "int", |
| | | oldDefaultValue: 2, |
| | | oldComment: "æ¯å¦ä¸ºä¸»æ¯ç®¡"); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // <auto-generated /> |
| | | using System; |
| | | using CMS.Plugin.HIAWms.MySQL; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Infrastructure; |
| | | using Microsoft.EntityFrameworkCore.Storage.ValueConversion; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | |
| | | #nullable disable |
| | | |
| | | namespace CMS.Plugin.HIAWms.MySQL.Migrations |
| | | { |
| | | [DbContext(typeof(CMSPluginDbContext))] |
| | | partial class CMSPluginDbContextModelSnapshot : ModelSnapshot |
| | | { |
| | | protected override void BuildModel(ModelBuilder modelBuilder) |
| | | { |
| | | #pragma warning disable 612, 618 |
| | | modelBuilder |
| | | .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql) |
| | | .HasAnnotation("ProductVersion", "6.0.16") |
| | | .HasAnnotation("Relational:MaxIdentifierLength", 64); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("AreaDesc") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("æè¿°"); |
| | | |
| | | b.Property<string>("AreaName") |
| | | .IsRequired() |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åºåºåç§°"); |
| | | |
| | | b.Property<string>("AreaNo") |
| | | .IsRequired() |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("åºåºç¼å·"); |
| | | |
| | | b.Property<int>("AreaStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("åºåºç¶æ"); |
| | | |
| | | b.Property<int>("AreaType") |
| | | .HasColumnType("int") |
| | | .HasComment("åºåºç±»å"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("StoreCode") |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ä»åºä»£ç "); |
| | | |
| | | b.Property<string>("StoreName") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("ä»åºåç§°"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("AreaName"); |
| | | |
| | | b.ToTable("scms_wmsareas", (string)null); |
| | | |
| | | b.HasComment("åºåºè¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<string>("ContainerNo") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("æçç¼å·"); |
| | | |
| | | b.Property<int>("ContainerStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("æçç¶æ"); |
| | | |
| | | b.Property<int>("ContainerType") |
| | | .HasColumnType("int") |
| | | .HasComment("æçç±»å"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<int?>("ExceptionNumber") |
| | | .HasColumnType("int") |
| | | .HasComment("å¼å¸¸æ°é"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<decimal?>("LimitHeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("éé«"); |
| | | |
| | | b.Property<decimal?>("LimitLength") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("éé¿"); |
| | | |
| | | b.Property<decimal?>("LimitWidth") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é宽"); |
| | | |
| | | b.Property<int?>("MaterialNumber") |
| | | .HasColumnType("int") |
| | | .HasComment("ç©ææ°é"); |
| | | |
| | | b.Property<decimal?>("MaxWeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("è½½éä¸é"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(200) |
| | | .HasColumnType("varchar(200)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<decimal?>("SpecHeight") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é«åº¦"); |
| | | |
| | | b.Property<decimal?>("SpecLength") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦"); |
| | | |
| | | b.Property<decimal?>("SpecWidth") |
| | | .HasPrecision(18, 2) |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("宽度"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("ContainerNo") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("ContainerStatus"); |
| | | |
| | | b.HasIndex("ContainerType"); |
| | | |
| | | b.ToTable("scms_wmscontainers", (string)null); |
| | | |
| | | b.HasComment("æçä¿¡æ¯è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("Certification") |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("è¯ä¹¦ç¼å·"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<string>("Factory") |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("ç产工å"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<int>("IsMainBranch") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("int") |
| | | .HasDefaultValue(2) |
| | | .HasComment("æ¯å¦ä¸ºä¸»æ¯ç®¡"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<decimal>("Length") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("é¿åº¦ï¼åä½ï¼mï¼"); |
| | | |
| | | b.Property<string>("MaterialCode") |
| | | .IsRequired() |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("ç©æç¼ç ï¼å¯ä¸æ è¯ï¼"); |
| | | |
| | | b.Property<string>("MaterialName") |
| | | .IsRequired() |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("ç©æåç§°"); |
| | | |
| | | b.Property<string>("MaterialQuality") |
| | | .HasMaxLength(64) |
| | | .HasColumnType("varchar(64)") |
| | | .HasComment("æè´¨ï¼å¦ï¼304ä¸éé¢ï¼"); |
| | | |
| | | b.Property<int>("MaterialType") |
| | | .HasColumnType("int") |
| | | .HasComment("ç©æç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property<decimal>("OuterDiameter") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å¤å¾ï¼åä½ï¼mmï¼"); |
| | | |
| | | b.Property<string>("PrimaryUnit") |
| | | .HasMaxLength(20) |
| | | .HasColumnType("varchar(20)") |
| | | .HasComment("主åä½ï¼å¦ï¼kgãmã个ï¼"); |
| | | |
| | | b.Property<int>("PurchaseType") |
| | | .HasColumnType("int") |
| | | .HasComment("éè´ç±»åï¼æä¸¾å¼ï¼"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(500) |
| | | .HasColumnType("varchar(500)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("int") |
| | | .HasDefaultValue(0) |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("Standard") |
| | | .HasMaxLength(128) |
| | | .HasColumnType("varchar(128)") |
| | | .HasComment("è§æ ¼/æ åï¼å¦ï¼GB/T 8163-2018ï¼"); |
| | | |
| | | b.Property<decimal>("WallThickness") |
| | | .HasColumnType("decimal(18,2)") |
| | | .HasComment("å£åï¼åä½ï¼mmï¼"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("MaterialCode") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("MaterialName"); |
| | | |
| | | b.HasIndex("MaterialType"); |
| | | |
| | | b.HasIndex("PurchaseType"); |
| | | |
| | | b.ToTable("scms_wmsmaterials", (string)null); |
| | | |
| | | b.HasComment("ç©æåºç¡ä¿¡æ¯è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<int>("Aisle") |
| | | .HasColumnType("int") |
| | | .HasComment("å··é"); |
| | | |
| | | b.Property<string>("AreaCode") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("æå¨åºåº"); |
| | | |
| | | b.Property<int>("ColumnNo") |
| | | .HasColumnType("int") |
| | | .HasComment("å"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<int>("EmptyContainer") |
| | | .HasColumnType("int") |
| | | .HasComment("æ¯å¦ç©ºæ"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<int>("Islock") |
| | | .HasColumnType("int") |
| | | .HasComment("æ¯å¦éå®"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<int>("LayerNo") |
| | | .HasColumnType("int") |
| | | .HasComment("å±"); |
| | | |
| | | b.Property<string>("PlaceNo") |
| | | .IsRequired() |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ç¼å·"); |
| | | |
| | | b.Property<int>("PlaceStatus") |
| | | .HasColumnType("int") |
| | | .HasComment("è´§ä½ç¶æ"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("RowNo") |
| | | .HasColumnType("int") |
| | | .HasComment("æ"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<int>("StorageTypeNo") |
| | | .HasColumnType("int") |
| | | .HasComment("è´§ä½ç±»å"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("AreaCode"); |
| | | |
| | | b.HasIndex("PlaceNo") |
| | | .IsUnique(); |
| | | |
| | | b.HasIndex("PlaceStatus"); |
| | | |
| | | b.HasIndex("StorageTypeNo"); |
| | | |
| | | b.ToTable("scms_wmsplaces", (string)null); |
| | | |
| | | b.HasComment("åºä½è¡¨"); |
| | | }); |
| | | |
| | | modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b => |
| | | { |
| | | b.Property<Guid>("Id") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("char(36)"); |
| | | |
| | | b.Property<string>("ConcurrencyStamp") |
| | | .IsConcurrencyToken() |
| | | .HasMaxLength(40) |
| | | .HasColumnType("varchar(40)") |
| | | .HasColumnName("ConcurrencyStamp"); |
| | | |
| | | b.Property<DateTime>("CreationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("CreationTime"); |
| | | |
| | | b.Property<Guid?>("CreatorId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("CreatorId"); |
| | | |
| | | b.Property<Guid?>("DeleterId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("DeleterId"); |
| | | |
| | | b.Property<DateTime?>("DeletionTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("DeletionTime"); |
| | | |
| | | b.Property<string>("ExtraProperties") |
| | | .HasColumnType("longtext") |
| | | .HasColumnName("ExtraProperties"); |
| | | |
| | | b.Property<bool>("IsDeleted") |
| | | .ValueGeneratedOnAdd() |
| | | .HasColumnType("tinyint(1)") |
| | | .HasDefaultValue(false) |
| | | .HasColumnName("IsDeleted"); |
| | | |
| | | b.Property<bool?>("IsDisabled") |
| | | .HasColumnType("tinyint(1)") |
| | | .HasComment("æ¯å¦ç¦ç¨"); |
| | | |
| | | b.Property<DateTime?>("LastModificationTime") |
| | | .HasColumnType("datetime(6)") |
| | | .HasColumnName("LastModificationTime"); |
| | | |
| | | b.Property<Guid?>("LastModifierId") |
| | | .HasColumnType("char(36)") |
| | | .HasColumnName("LastModifierId"); |
| | | |
| | | b.Property<string>("RedundantField1") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段1 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField2") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段2 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("RedundantField3") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("åä½å段3 - é¢çæ©å±ç¨é"); |
| | | |
| | | b.Property<string>("Remark") |
| | | .HasMaxLength(256) |
| | | .HasColumnType("varchar(256)") |
| | | .HasComment("夿³¨"); |
| | | |
| | | b.Property<int>("Sort") |
| | | .HasColumnType("int") |
| | | .HasComment("æåº"); |
| | | |
| | | b.Property<string>("StoreCode") |
| | | .HasMaxLength(50) |
| | | .HasColumnType("varchar(50)") |
| | | .HasComment("ä»åºä»£ç "); |
| | | |
| | | b.Property<string>("StoreName") |
| | | .HasMaxLength(100) |
| | | .HasColumnType("varchar(100)") |
| | | .HasComment("ä»åºåç§°"); |
| | | |
| | | b.HasKey("Id"); |
| | | |
| | | b.HasIndex("StoreName"); |
| | | |
| | | b.ToTable("scms_wmsstores", (string)null); |
| | | |
| | | b.HasComment("ä»åºä¿¡æ¯è¡¨"); |
| | | }); |
| | | #pragma warning restore 612, 618 |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Runtime.CompilerServices; |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.EntityFrameworkCore.Tests")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | cd ../ |
| | | dotnet ef database update -c CMSPluginDbContext |
| | | cmd |
¶Ô±ÈÐÂÎļþ |
| | |
| | | cd ../ |
| | | dotnet ef migrations add InitialCreate1 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations |
| | | cmd |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.EntityFrameworkCore.PostgreSql" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.5"> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.EntityFrameworkCore\CMS.Plugin.HIAWms.EntityFrameworkCore.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Folder Include="Migrations\" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.PostgreSql; |
| | | |
| | | /// <summary> |
| | | /// æ°æ®åºä¸ä¸æ |
| | | /// </summary> |
| | | [ConnectionStringName(CMSPluginDbProperties.ConnectionStringName)] |
| | | public class CMSPluginDbContext : AbpDbContext<CMSPluginDbContext>, ICMSPluginDbContext |
| | | { |
| | | /* Add DbSet properties for your Aggregate Roots / Entities here. */ |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginDbContext"/> class. |
| | | /// </summary> |
| | | /// <param name="options">The options.</param> |
| | | public CMSPluginDbContext(DbContextOptions<CMSPluginDbContext> options) |
| | | : base(options) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | protected override void OnModelCreating(ModelBuilder builder) |
| | | { |
| | | base.OnModelCreating(builder); |
| | | |
| | | /* Include modules to your migration db context */ |
| | | |
| | | builder.ConfigureWmsContainer(); |
| | | builder.ConfigureWmsStore(); |
| | | builder.ConfigureWmsArea(); |
| | | builder.ConfigureWmsPlace(); |
| | | builder.ConfigureWmsMaterial(); |
| | | /* Configure your own tables/entities inside here */ |
| | | |
| | | //builder.Entity<YourEntity>(b => |
| | | //{ |
| | | // b.ToTable(CMSPluginDbProperties.DbTablePrefix + "YourEntities", CMSPluginDbProperties.DbSchema); |
| | | // b.ConfigureByConvention(); //auto configure for the base class props |
| | | // //... |
| | | //}); |
| | | |
| | | builder.TryConfigureObjectExtensions<CMSPluginDbContext>(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Design; |
| | | using Microsoft.Extensions.Configuration; |
| | | |
| | | namespace CMS.Plugin.HIAWms.PostgreSql; |
| | | |
| | | /// <summary> |
| | | /// This class is needed for EF Core console commands |
| | | /// (like Add-Migration and Update-Database commands) |
| | | /// </summary> |
| | | public class CMSPluginDbContextFactory : IDesignTimeDbContextFactory<CMSPluginDbContext> |
| | | { |
| | | /// <summary> |
| | | /// Creates a new instance of a derived context. |
| | | /// </summary> |
| | | /// <param name="args">Arguments provided by the design-time service.</param> |
| | | public CMSPluginDbContext CreateDbContext(string[] args) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | |
| | | var configuration = BuildConfiguration(); |
| | | |
| | | var builder = new DbContextOptionsBuilder<CMSPluginDbContext>() |
| | | .UseNpgsql(configuration.GetConnectionString("Default"), x => x.MigrationsHistoryTable(CMSPluginDbProperties.MigrationsHistoryTable, CMSPluginDbProperties.DbSchema)); |
| | | |
| | | return new CMSPluginDbContext(builder.Options); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Builds the configuration. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private static IConfigurationRoot BuildConfiguration() |
| | | { |
| | | var builder = new ConfigurationBuilder() |
| | | .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../CMS.Plugin.HIAWms.EntityFrameworkCore/")) |
| | | .AddJsonFile("appsettings.json", optional: false); |
| | | |
| | | return builder.Build(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.PostgreSql; |
| | | |
| | | /// <summary> |
| | | /// EntityFrameworkCore模å |
| | | /// </summary> |
| | | [DependsOn(typeof(CMSPluginEntityFrameworkCoreModule))] |
| | | public class CMSPluginPostgreSqlModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | context.Services.AddAbpDbContext<CMSPluginDbContext>(options => |
| | | { |
| | | /* Remove "includeAllEntities: true" to create |
| | | * default repositories only for aggregate roots */ |
| | | //options.AddDefaultRepositories(includeAllEntities: true); |
| | | }); |
| | | |
| | | Configure<AbpDbContextOptions>(options => |
| | | { |
| | | /* The main point to change your DBMS. |
| | | * See also CMSMigrationsDbContextFactory for EF Core tooling. */ |
| | | options.UseNpgsql(x => |
| | | { |
| | | x.MigrationsHistoryTable(CMSPluginDbProperties.MigrationsHistoryTable, CMSPluginDbProperties.DbSchema); |
| | | //x.EnableRetryOnFailure(); |
| | | }); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Runtime.CompilerServices; |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.EntityFrameworkCore.Tests")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | cd ../ |
| | | dotnet ef database update -c CMSPluginDbContext |
| | | cmd |
¶Ô±ÈÐÂÎļþ |
| | |
| | | cd ../ |
| | | dotnet ef migrations add InitialCreate -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations |
| | | cmd |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.EntityFrameworkCore.SqlServer" Version="$(ABPPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.5"> |
| | | <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> |
| | | <PrivateAssets>compile; contentFiles; build; buildMultitargeting; buildTransitive; analyzers; native</PrivateAssets> |
| | | </PackageReference> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.EntityFrameworkCore\CMS.Plugin.HIAWms.EntityFrameworkCore.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Folder Include="Migrations\" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore.Modeling; |
| | | |
| | | namespace CMS.Plugin.HIAWms.SqlServer; |
| | | |
| | | /// <summary> |
| | | /// æ°æ®åºä¸ä¸æ |
| | | /// </summary> |
| | | [ConnectionStringName(CMSPluginDbProperties.ConnectionStringName)] |
| | | public class CMSPluginDbContext : AbpDbContext<CMSPluginDbContext>, ICMSPluginDbContext |
| | | { |
| | | /* Add DbSet properties for your Aggregate Roots / Entities here. */ |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="CMSPluginDbContext"/> class. |
| | | /// </summary> |
| | | /// <param name="options">The options.</param> |
| | | public CMSPluginDbContext(DbContextOptions<CMSPluginDbContext> options) |
| | | : base(options) |
| | | { |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | protected override void OnModelCreating(ModelBuilder builder) |
| | | { |
| | | base.OnModelCreating(builder); |
| | | |
| | | /* Include modules to your migration db context */ |
| | | |
| | | builder.ConfigureWmsContainer(); |
| | | builder.ConfigureWmsStore(); |
| | | builder.ConfigureWmsArea(); |
| | | builder.ConfigureWmsPlace(); |
| | | builder.ConfigureWmsMaterial(); |
| | | |
| | | /* Configure your own tables/entities inside here */ |
| | | |
| | | //builder.Entity<YourEntity>(b => |
| | | //{ |
| | | // b.ToTable(CMSPluginDbProperties.DbTablePrefix + "YourEntities", CMSPluginDbProperties.DbSchema); |
| | | // b.ConfigureByConvention(); //auto configure for the base class props |
| | | // //... |
| | | //}); |
| | | |
| | | builder.TryConfigureObjectExtensions<CMSPluginDbContext>(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Design; |
| | | using Microsoft.Extensions.Configuration; |
| | | |
| | | namespace CMS.Plugin.HIAWms.SqlServer; |
| | | |
| | | /// <summary> |
| | | /// This class is needed for EF Core console commands |
| | | /// (like Add-Migration and Update-Database commands) |
| | | /// </summary> |
| | | public class CMSPluginDbContextFactory : IDesignTimeDbContextFactory<CMSPluginDbContext> |
| | | { |
| | | /// <summary> |
| | | /// Creates a new instance of a derived context. |
| | | /// </summary> |
| | | /// <param name="args">Arguments provided by the design-time service.</param> |
| | | public CMSPluginDbContext CreateDbContext(string[] args) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | |
| | | var configuration = BuildConfiguration(); |
| | | |
| | | var builder = new DbContextOptionsBuilder<CMSPluginDbContext>() |
| | | .UseSqlServer(configuration.GetConnectionString("Default"), x => x.MigrationsHistoryTable(CMSPluginDbProperties.MigrationsHistoryTable, CMSPluginDbProperties.DbSchema)); |
| | | |
| | | return new CMSPluginDbContext(builder.Options); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Builds the configuration. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | private static IConfigurationRoot BuildConfiguration() |
| | | { |
| | | var builder = new ConfigurationBuilder() |
| | | .SetBasePath(Path.Combine(Directory.GetCurrentDirectory(), "../CMS.Plugin.HIAWms.EntityFrameworkCore/")) |
| | | .AddJsonFile("appsettings.json", optional: false); |
| | | |
| | | return builder.Build(); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.SqlServer; |
| | | |
| | | /// <summary> |
| | | /// EntityFrameworkCore模å |
| | | /// </summary> |
| | | [DependsOn(typeof(CMSPluginEntityFrameworkCoreModule))] |
| | | public class CMSPluginSqlServerModule : AbpModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | CMSPluginEfCoreEntityExtensionMappings.Configure(); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | context.Services.AddAbpDbContext<CMSPluginDbContext>(options => |
| | | { |
| | | /* Remove "includeAllEntities: true" to create |
| | | * default repositories only for aggregate roots */ |
| | | //options.AddDefaultRepositories(includeAllEntities: true); |
| | | }); |
| | | |
| | | Configure<AbpDbContextOptions>(options => |
| | | { |
| | | /* The main point to change your DBMS. |
| | | * See also CMSMigrationsDbContextFactory for EF Core tooling. */ |
| | | options.UseSqlServer(x => |
| | | { |
| | | x.MigrationsHistoryTable(CMSPluginDbProperties.MigrationsHistoryTable, CMSPluginDbProperties.DbSchema); |
| | | //x.EnableRetryOnFailure(); |
| | | }); |
| | | }); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Runtime.CompilerServices; |
| | | [assembly:InternalsVisibleToAttribute("CMS.Plugin.EntityFrameworkCore.Tests")] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | cd ../ |
| | | dotnet ef database update -c CMSPluginDbContext |
| | | cmd |
¶Ô±ÈÐÂÎļþ |
| | |
| | | cd ../ |
| | | dotnet ef migrations add InitialCreate -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations |
| | | ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations |
| | | cmd |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | using WebApiClientCore.Attributes; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Apis |
| | | { |
| | | /// <summary> |
| | | /// å¤é¨Http APIå¯¹æ¥ // https://webapiclient.github.io/guide/getting-started.html |
| | | /// </summary> |
| | | public interface IHIAWmsExternalApi |
| | | { |
| | | /// <summary> |
| | | /// CreateAsync |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost("api/v1/hiawms/wmscontainer")] |
| | | Task<WmsContainerDto> CreateAsync([JsonContent] WmsContainerCreateDto input); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <Import Project="../../common.props" /> |
| | | <Import Project="../../configureawait.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <EnableDynamicLoading>true</EnableDynamicLoading> |
| | | <ProduceReferenceAssembly>false</ProduceReferenceAssembly> |
| | | <GenerateDocumentationFile>true</GenerateDocumentationFile> |
| | | </PropertyGroup> |
| | | |
| | | <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))"> |
| | | <CMSRootPath>D:\Program Files\CMS Editor</CMSRootPath> |
| | | <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath> |
| | | </PropertyGroup> |
| | | |
| | | <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('OSX'))"> |
| | | <CMSRootPath>/Volumes/SSD/CMS Editor</CMSRootPath> |
| | | <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <None Remove="appsettings.json" /> |
| | | <None Remove="Flows\50001_1.pfd" /> |
| | | <None Remove="Flows\FlowInfo.xml" /> |
| | | <None Remove="Resources\Templates\WmsContainerå¯¼åºæ¨¡æ¿.xlsx" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Content Include="appsettings.json"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Content> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <EmbeddedResource Include="Resources\Templates\WmsContainerå¯¼åºæ¨¡æ¿.xlsx"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </EmbeddedResource> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="CMS.Framework.AspNetCore" Version="2.16.1" /> |
| | | <PackageReference Include="CMS.Extensions.Variable" Version="2.16.1" /> |
| | | <PackageReference Include="CMS.Extensions.Data" Version="2.16.1" /> |
| | | <PackageReference Include="CMS.Data.Stressing" Version="2.16.1" /> |
| | | <PackageReference Include="CMS.Extensions.Abp" Version="1.4.0" /> |
| | | <PackageReference Include="WebApiClientCore" Version="2.0.4" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Application\CMS.Plugin.HIAWms.Application.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.MySQL\CMS.Plugin.HIAWms.MySQL.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.PostgreSql\CMS.Plugin.HIAWms.PostgreSql.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.SqlServer\CMS.Plugin.HIAWms.SqlServer.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Reference Include="CmsQueryExtensions"> |
| | | <HintPath>..\..\..\..\CommonDLL\CmsQueryExtensions.dll</HintPath> |
| | | </Reference> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <Resource Include="Flows\50001_1.pfd"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Resource> |
| | | <Resource Include="Flows\FlowInfo.xml"> |
| | | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| | | </Resource> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Collections; |
| | | using Autofac; |
| | | using CMS.Data.Stressing; |
| | | using CMS.DataPersistence; |
| | | using CMS.DataPersistence.Data; |
| | | using CMS.Extensions.Abp.Autofac.Extensions.DependencyInjection; |
| | | using CMS.Plugin.MesSuite.Abstractions; |
| | | using CMS.Plugin.MesSuite.Abstractions.Consts; |
| | | using CMS.Plugin.HIAWms.Abstractions; |
| | | using CMS.Plugin.HIAWms.Apis; |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using CMS.Plugin.HIAWms.ProjectService; |
| | | using CMS.Plugin.HIAWms.Workers; |
| | | using CMS.Plugin.HIAWms.Apis; |
| | | using CMS.Project.Abstractions; |
| | | using Microsoft.AspNetCore.Builder; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Structing.AspNetCore; |
| | | using Structing.Core; |
| | | using Structing.Web; |
| | | using SYC.Plugin; |
| | | using Volo.Abp.BackgroundWorkers; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Modularity.PlugIns; |
| | | |
| | | namespace CMS.Plugin.HIAWms; |
| | | |
| | | /// <summary> |
| | | /// CMSæä»¶å
¥å£ï¼ä½¿ç¨<see cref="EnableApplicationPartAttribute"/>å°å¯¼å
¥Controller. |
| | | /// </summary> |
| | | [EnableApplicationPart] |
| | | public class CMSPluginEntry : PluginEntry |
| | | { |
| | | private readonly IServiceCollection _service = new ServiceCollection(); |
| | | |
| | | /// <inheritdoc /> |
| | | public override void Register(IRegisteContext context) |
| | | { |
| | | var configuration = context.Features.GetConfiguration(); |
| | | |
| | | // é
ç½®å¤é¨HttpApiï¼ https://webapiclient.github.io/ |
| | | context.Services |
| | | .AddHttpApi<IHIAWmsExternalApi>() |
| | | .ConfigureHttpApi(configuration.GetSection(nameof(IHIAWmsExternalApi))); |
| | | |
| | | context.Services.TryAddHIAWms(); |
| | | |
| | | context.Services.AddScoped<IProjectRuntimeMigrator, CMSPluginRuntimeMigrator>(); |
| | | context.Services.AddSingleton<IProjectService, HIAWmsProjectService>(); |
| | | |
| | | context.Services.AddScoped<IEFDataProvider>(p => |
| | | { |
| | | var cfg = p.GetRequiredService<IDataRuntimeConfig>(); |
| | | return new DefaultEFDataProvider(CMSPluginMesSuiteOptions.DataProviderName, CMSPluginMesSuiteOptions.GetDatabaseSuffix(CMSPluginDbProperties.MigrationsHistoryTable), CMSPluginDbProperties.MigrationsHistoryTable, cfg); |
| | | }); |
| | | |
| | | _service.AddObjectAccessor<IApplicationBuilder>(); |
| | | _service.AddApplication<CMSPluginModule>(options => |
| | | { |
| | | var databaseType = configuration[SectionName.DatabaseType] ?? "mysql"; |
| | | if (KnowsDbCode.IsMysql(databaseType)) |
| | | { |
| | | options.PlugInSources.Add(new TypePlugInSource( |
| | | typeof(MySQL.CMSPluginMySQLModule) |
| | | )); |
| | | } |
| | | else if (KnowsDbCode.IsSqlServer(databaseType)) |
| | | { |
| | | options.PlugInSources.Add(new TypePlugInSource( |
| | | typeof(SqlServer.CMSPluginSqlServerModule) |
| | | )); |
| | | } |
| | | else if (KnowsDbCode.IsPostgreSql(databaseType)) |
| | | { |
| | | options.PlugInSources.Add(new TypePlugInSource( |
| | | typeof(PostgreSql.CMSPluginPostgreSqlModule) |
| | | )); |
| | | } |
| | | }); |
| | | |
| | | base.Register(context); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void ConfigureContainer(ContainerBuilder builder) |
| | | { |
| | | builder.Populate(_service); |
| | | |
| | | base.ConfigureContainer(builder); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task ReadyAsync(IReadyContext context) |
| | | { |
| | | context.Provider.GetRequiredService<ObjectAccessor<IApplicationBuilder>>().Value = context.Features.GetApplicationBuilder(); |
| | | var app = context.Features.GetApplicationBuilder(); |
| | | await app.InitializeApplicationAsync(); |
| | | |
| | | await base.ReadyAsync(context); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override async Task AfterReadyAsync(IReadyContext context) |
| | | { |
| | | await context.GetRequiredService<IBackgroundWorkerManager>().AddAsync(context.GetRequiredService<HIAWmsWorker>()); |
| | | |
| | | await base.AfterReadyAsync(context); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System.Reflection; |
| | | using CMS.Extensions.Abp; |
| | | using CMS.Extensions.Abp.AspNetCore; |
| | | using CMS.Plugin.HIAWms.Abstractions; |
| | | using CMS.Plugin.HIAWms.Application; |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using CMS.Plugin.HIAWms.Jobs; |
| | | using Volo.Abp.BackgroundJobs; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms |
| | | { |
| | | /// <summary> |
| | | /// CMS æä»¶ä¾èµå è½½å¯å¨æ¨¡å |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginAbpModule), |
| | | typeof(CMSPluginAbpAspNetCoreModule), |
| | | typeof(CMSPluginApplicationModule), |
| | | typeof(CMSPluginEntityFrameworkCoreModule) |
| | | )] |
| | | public class CMSPluginModule : AbpStartupModule |
| | | { |
| | | /// <inheritdoc /> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | Configure<AbpBackgroundJobOptions>(options => |
| | | { |
| | | options.AddJob<HIAWmsJob>(); |
| | | }); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override Assembly[]? GetSharedAssemblies() |
| | | { |
| | | return base.GetSharedAssemblies().Concat(new[] |
| | | { |
| | | typeof(CMSPluginHIAWmsAbstractionsModule).Assembly, |
| | | }).ToArray(); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Data; |
| | | using CMS.Project.Abstractions; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using Volo.Abp.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms |
| | | { |
| | | /// <summary> |
| | | /// å·¥ç¨æ°æ®åºè¿ç§»å¨ï¼å½<see cref="IProjectRunner"/>å è½½å·¥ç¨æ¶æ¤å¯¹è±¡ä¼è¢«å建è°ç¨ |
| | | /// </summary> |
| | | public class CMSPluginRuntimeMigrator : IProjectRuntimeMigrator |
| | | { |
| | | /// <summary> |
| | | /// æ§è¡è¿ç§» |
| | | /// </summary> |
| | | /// <param name="project">å½åè¦è¿è¡çå·¥ç¨</param> |
| | | /// <param name="serviceProvider">åå¨è¿è¡å·¥ç¨ä¸ä¸æçserviceProvider</param> |
| | | /// <returns></returns> |
| | | public async Task UpgradeAsync(Project.Project project, IServiceProvider serviceProvider) |
| | | { |
| | | var objectAccessor = serviceProvider.GetService<ObjectAccessor<Project.Project>>(); |
| | | if (objectAccessor != null) |
| | | { |
| | | objectAccessor.Value = project; |
| | | } |
| | | |
| | | var logger = serviceProvider.GetRequiredService<ILogger<CMSPluginRuntimeMigrator>>(); |
| | | try |
| | | { |
| | | // éè¿serviceProviderè·åèªå·±çDbContextå¹¶è¿è¡å建æè¿ç§»æµç¨ |
| | | logger.LogInformation($"Start {project.Info.Id} HIAWms dbcontext create"); |
| | | await serviceProvider.GetRequiredService<CMSPluginDbMigrationService>().MigrateAsync(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | logger.LogError(ex, "Create HIAWms db failed"); |
| | | } |
| | | |
| | | if (objectAccessor != null) |
| | | { |
| | | objectAccessor.Value = null; |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Ao.Lang; |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using MiniExcelLibs; |
| | | using System.Reflection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Controller |
| | | { |
| | | /// <summary> |
| | | /// WmsAreaæå¡ |
| | | /// </summary> |
| | | [ApiController] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/HIAWms/[controller]")] |
| | | public class WmsAreaController : ControllerBase |
| | | { |
| | | private readonly IWmsAreaAppService _wmsareaAppService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsAreaController"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsareaAppService">The wmsarea application service.</param> |
| | | public WmsAreaController(IWmsAreaAppService wmsareaAppService) |
| | | { |
| | | _wmsareaAppService = wmsareaAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmsarea. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsAreaDto> GetAsync(Guid id) |
| | | { |
| | | return _wmsareaAppService.GetAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmsareaçå表. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public virtual Task<PagedResultDto<WmsAreaDto>> GetListAsync([FromQuery] GetWmsAreasInput input) |
| | | { |
| | | return _wmsareaAppService.GetListAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建wmsarea. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | public virtual Task<WmsAreaDto> CreateAsync(WmsAreaCreateDto input) |
| | | { |
| | | return _wmsareaAppService.CreateAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°wmsarea. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPut] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsAreaDto> UpdateAsync(Guid id, WmsAreaUpdateDto input) |
| | | { |
| | | return _wmsareaAppService.UpdateAsync(id, input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éWmsArea. |
| | | /// </summary> |
| | | /// <param name="ids">Idéå.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | [Route("Clone")] |
| | | public virtual Task<List<WmsAreaDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsareaAppService.CloneAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤wmsarea. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | [Route("{id}")] |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsareaAppService.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éå é¤wmsarea. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsareaAppService.DeleteManyAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpPut] |
| | | [Route("{id}/AdjustSort/{sort}")] |
| | | public virtual Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | return _wmsareaAppService.AdjustSortAsync(id, sort); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥wmsarea. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | [Route("Import")] |
| | | public virtual async Task<IActionResult> ImportAsync(IFormFile file) |
| | | { |
| | | using var stream = new MemoryStream(); |
| | | await file.CopyToAsync(stream); |
| | | stream.Seek(0L, SeekOrigin.Begin); |
| | | |
| | | var sheetNames = stream.GetSheetNames(); |
| | | var wmsareaRows = sheetNames.Contains("é
ç½®") ? MiniExcel.Query<WmsAreasImportModel.WmsAreaImportModel>(stream, sheetName: "é
ç½®").ToList() : new(); |
| | | |
| | | if (!wmsareaRows.Any()) |
| | | { |
| | | throw new UserFriendlyException("è¯·æ£æ¥å¯¼å
¥çè¡¨æ ¼"); |
| | | } |
| | | |
| | | await _wmsareaAppService.ImportAsync(new WmsAreasImportModel |
| | | { |
| | | WmsAreas = wmsareaRows, |
| | | }); |
| | | |
| | | return Ok(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºwmsarea. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Export")] |
| | | public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsAreasInput input) |
| | | { |
| | | input.MaxResultCount = int.MaxValue; |
| | | var exportData = await _wmsareaAppService.ExportAsync(input); |
| | | var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsAreaå¯¼åºæ¨¡æ¿.xlsx"); |
| | | if (!System.IO.File.Exists(templatePath)) |
| | | { |
| | | templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsAreaå¯¼åºæ¨¡æ¿.xlsx"); |
| | | } |
| | | |
| | | var memoryStream = new MemoryStream(); |
| | | await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); |
| | | memoryStream.Seek(0L, SeekOrigin.Begin); |
| | | return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Ao.Lang; |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using MiniExcelLibs; |
| | | using System.Reflection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Controller |
| | | { |
| | | /// <summary> |
| | | /// WmsContaineræå¡ |
| | | /// </summary> |
| | | [ApiController] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/HIAWms/[controller]")] |
| | | public class WmsContainerController : ControllerBase |
| | | { |
| | | private readonly IWmsContainerAppService _wmscontainerAppService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsContainerController"/> class. |
| | | /// </summary> |
| | | /// <param name="wmscontainerAppService">The wmscontainer application service.</param> |
| | | public WmsContainerController(IWmsContainerAppService wmscontainerAppService) |
| | | { |
| | | _wmscontainerAppService = wmscontainerAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmscontainer. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsContainerDto> GetAsync(Guid id) |
| | | { |
| | | return _wmscontainerAppService.GetAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmscontainerçå表. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public virtual Task<PagedResultDto<WmsContainerDto>> GetListAsync([FromQuery] GetWmsContainersInput input) |
| | | { |
| | | return _wmscontainerAppService.GetListAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建wmscontainer. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | public virtual Task<WmsContainerDto> CreateAsync(WmsContainerCreateDto input) |
| | | { |
| | | return _wmscontainerAppService.CreateAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°wmscontainer. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPut] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsContainerDto> UpdateAsync(Guid id, WmsContainerUpdateDto input) |
| | | { |
| | | return _wmscontainerAppService.UpdateAsync(id, input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éWmsContainer. |
| | | /// </summary> |
| | | /// <param name="ids">Idéå.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | [Route("Clone")] |
| | | public virtual Task<List<WmsContainerDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmscontainerAppService.CloneAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤wmscontainer. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | [Route("{id}")] |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmscontainerAppService.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éå é¤wmscontainer. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmscontainerAppService.DeleteManyAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpPut] |
| | | [Route("{id}/AdjustSort/{sort}")] |
| | | public virtual Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | return _wmscontainerAppService.AdjustSortAsync(id, sort); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥wmscontainer. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | [Route("Import")] |
| | | public virtual async Task<IActionResult> ImportAsync(IFormFile file) |
| | | { |
| | | using var stream = new MemoryStream(); |
| | | await file.CopyToAsync(stream); |
| | | stream.Seek(0L, SeekOrigin.Begin); |
| | | |
| | | var sheetNames = stream.GetSheetNames(); |
| | | var wmscontainerRows = sheetNames.Contains("é
ç½®") ? MiniExcel.Query<WmsContainersImportModel.WmsContainerImportModel>(stream, sheetName: "é
ç½®").ToList() : new(); |
| | | |
| | | if (!wmscontainerRows.Any()) |
| | | { |
| | | throw new UserFriendlyException("è¯·æ£æ¥å¯¼å
¥çè¡¨æ ¼"); |
| | | } |
| | | |
| | | await _wmscontainerAppService.ImportAsync(new WmsContainersImportModel |
| | | { |
| | | WmsContainers = wmscontainerRows, |
| | | }); |
| | | |
| | | return Ok(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºwmscontainer. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Export")] |
| | | public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsContainersInput input) |
| | | { |
| | | input.MaxResultCount = int.MaxValue; |
| | | var exportData = await _wmscontainerAppService.ExportAsync(input); |
| | | var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsContainerå¯¼åºæ¨¡æ¿.xlsx"); |
| | | if (!System.IO.File.Exists(templatePath)) |
| | | { |
| | | templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsContainerå¯¼åºæ¨¡æ¿.xlsx"); |
| | | } |
| | | |
| | | var memoryStream = new MemoryStream(); |
| | | await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); |
| | | memoryStream.Seek(0L, SeekOrigin.Begin); |
| | | return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using CMS.Plugin.HIAWms.Domain.Shared.Util; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using System; |
| | | using System.Web; |
| | | using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Controller |
| | | { |
| | | /// <summary> |
| | | /// æä¸¾æå¡æ¥å£. |
| | | /// </summary> |
| | | [ApiController] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/HIAWms/[controller]")] |
| | | public class WmsEnumController : ControllerBase |
| | | { |
| | | private readonly IWmsEnumAppService _wmsEnumAppService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsEnumController"/> class. |
| | | /// æé 彿°. |
| | | /// </summary> |
| | | /// <param name="wmsEnumAppService"></param> |
| | | public WmsEnumController(IWmsEnumAppService wmsEnumAppService) |
| | | { |
| | | _wmsEnumAppService = wmsEnumAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæä¸¾æ°æ®. |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public List<EnumItem> GetEnumDataList(WmsEnumInput input) |
| | | { |
| | | return _wmsEnumAppService.GetEnumDataList(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»åºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("StoreList")] |
| | | public async Task<List<WmsStoreForAreaOutpur>> GetStreList() |
| | | { |
| | | return await _wmsEnumAppService.GetStreList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºå表 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("AreaList")] |
| | | public async Task<List<AreaForListOuptut>> GetAreaListAsync() |
| | | { |
| | | return await _wmsEnumAppService.GetAreaListAsync(); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Ao.Lang; |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using MiniExcelLibs; |
| | | using System.Reflection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Controller |
| | | { |
| | | /// <summary> |
| | | /// ç©æåºç¡ä¿¡æ¯æå¡ |
| | | /// </summary> |
| | | [ApiController] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/HIAWms/[controller]")] |
| | | public class WmsMaterialController : ControllerBase |
| | | { |
| | | private readonly IWmsMaterialAppService _wmsmaterialAppService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsMaterialController"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsmaterialAppService">The wmsmaterial application service.</param> |
| | | public WmsMaterialController(IWmsMaterialAppService wmsmaterialAppService) |
| | | { |
| | | _wmsmaterialAppService = wmsmaterialAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsMaterialDto> GetAsync(Guid id) |
| | | { |
| | | return _wmsmaterialAppService.GetAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å页è·åç©æåºç¡ä¿¡æ¯çå表. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Page")] |
| | | public virtual Task<PagedResultDto<WmsMaterialDto>> GetListAsync([FromQuery] GetWmsMaterialInput input) |
| | | { |
| | | return _wmsmaterialAppService.GetListAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åå»ºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | public virtual Task<WmsMaterialDto> CreateAsync(WmsMaterialCreateDto input) |
| | | { |
| | | return _wmsmaterialAppService.CreateAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPut] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsMaterialDto> UpdateAsync(Guid id, WmsMaterialUpdateDto input) |
| | | { |
| | | return _wmsmaterialAppService.UpdateAsync(id, input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids">Idéå.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | [Route("Clone")] |
| | | public virtual Task<List<WmsMaterialDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsmaterialAppService.CloneAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | [Route("{id}")] |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsmaterialAppService.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éå é¤ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsmaterialAppService.DeleteManyAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpPut] |
| | | [Route("{id}/AdjustSort/{sort}")] |
| | | public virtual Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | return _wmsmaterialAppService.AdjustSortAsync(id, sort); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥ç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | [Route("Import")] |
| | | public virtual async Task<IActionResult> ImportAsync(IFormFile file) |
| | | { |
| | | using var stream = new MemoryStream(); |
| | | await file.CopyToAsync(stream); |
| | | stream.Seek(0L, SeekOrigin.Begin); |
| | | |
| | | var sheetNames = stream.GetSheetNames(); |
| | | var wmsmaterialRows = sheetNames.Contains("é
ç½®") ? MiniExcel.Query<WmsMaterialsImportModel.WmsMaterialImportModel>(stream, sheetName: "é
ç½®").ToList() : new(); |
| | | |
| | | if (!wmsmaterialRows.Any()) |
| | | { |
| | | throw new UserFriendlyException("è¯·æ£æ¥å¯¼å
¥çè¡¨æ ¼"); |
| | | } |
| | | |
| | | await _wmsmaterialAppService.ImportAsync(new WmsMaterialsImportModel |
| | | { |
| | | WmsMaterials = wmsmaterialRows, |
| | | }); |
| | | |
| | | return Ok(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºç©æåºç¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Export")] |
| | | public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialInput input) |
| | | { |
| | | input.MaxResultCount = int.MaxValue; |
| | | var exportData = await _wmsmaterialAppService.ExportAsync(input); |
| | | var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterialå¯¼åºæ¨¡æ¿.xlsx"); |
| | | if (!System.IO.File.Exists(templatePath)) |
| | | { |
| | | templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsMaterialå¯¼åºæ¨¡æ¿.xlsx"); |
| | | } |
| | | |
| | | var memoryStream = new MemoryStream(); |
| | | await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); |
| | | memoryStream.Seek(0L, SeekOrigin.Begin); |
| | | return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Ao.Lang; |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using MiniExcelLibs; |
| | | using System.Reflection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Controller |
| | | { |
| | | /// <summary> |
| | | /// WmsPlaceæå¡ |
| | | /// </summary> |
| | | [ApiController] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/HIAWms/[controller]")] |
| | | public class WmsPlaceController : ControllerBase |
| | | { |
| | | private readonly IWmsPlaceAppService _wmsplaceAppService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsPlaceController"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsplaceAppService">The wmsplace application service.</param> |
| | | public WmsPlaceController(IWmsPlaceAppService wmsplaceAppService) |
| | | { |
| | | _wmsplaceAppService = wmsplaceAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmsplace. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsPlaceDto> GetAsync(Guid id) |
| | | { |
| | | return _wmsplaceAppService.GetAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmsplaceçå表. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public virtual Task<PagedResultDto<WmsPlaceDto>> GetListAsync([FromQuery] GetWmsPlacesInput input) |
| | | { |
| | | return _wmsplaceAppService.GetListAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建wmsplace. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | public virtual Task<WmsPlaceDto> CreateAsync(WmsPlaceCreateDto input) |
| | | { |
| | | return _wmsplaceAppService.CreateAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°wmsplace. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPut] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsPlaceDto> UpdateAsync(Guid id, WmsPlaceUpdateDto input) |
| | | { |
| | | return _wmsplaceAppService.UpdateAsync(id, input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éWmsPlace. |
| | | /// </summary> |
| | | /// <param name="ids">Idéå.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | [Route("Clone")] |
| | | public virtual Task<List<WmsPlaceDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsplaceAppService.CloneAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤wmsplace. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | [Route("{id}")] |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsplaceAppService.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éå é¤wmsplace. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsplaceAppService.DeleteManyAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpPut] |
| | | [Route("{id}/AdjustSort/{sort}")] |
| | | public virtual Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | return _wmsplaceAppService.AdjustSortAsync(id, sort); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥wmsplace. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | [Route("Import")] |
| | | public virtual async Task<IActionResult> ImportAsync(IFormFile file) |
| | | { |
| | | using var stream = new MemoryStream(); |
| | | await file.CopyToAsync(stream); |
| | | stream.Seek(0L, SeekOrigin.Begin); |
| | | |
| | | var sheetNames = stream.GetSheetNames(); |
| | | var wmsplaceRows = sheetNames.Contains("é
ç½®") ? MiniExcel.Query<WmsPlacesImportModel.WmsPlaceImportModel>(stream, sheetName: "é
ç½®").ToList() : new(); |
| | | |
| | | if (!wmsplaceRows.Any()) |
| | | { |
| | | throw new UserFriendlyException("è¯·æ£æ¥å¯¼å
¥çè¡¨æ ¼"); |
| | | } |
| | | |
| | | await _wmsplaceAppService.ImportAsync(new WmsPlacesImportModel |
| | | { |
| | | WmsPlaces = wmsplaceRows, |
| | | }); |
| | | |
| | | return Ok(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºwmsplace. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Export")] |
| | | public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsPlacesInput input) |
| | | { |
| | | input.MaxResultCount = int.MaxValue; |
| | | var exportData = await _wmsplaceAppService.ExportAsync(input); |
| | | var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsPlaceå¯¼åºæ¨¡æ¿.xlsx"); |
| | | if (!System.IO.File.Exists(templatePath)) |
| | | { |
| | | templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsPlaceå¯¼åºæ¨¡æ¿.xlsx"); |
| | | } |
| | | |
| | | var memoryStream = new MemoryStream(); |
| | | await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); |
| | | memoryStream.Seek(0L, SeekOrigin.Begin); |
| | | return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Ao.Lang; |
| | | using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Services; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using MiniExcelLibs; |
| | | using System.Reflection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Application.Dtos; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Controller |
| | | { |
| | | /// <summary> |
| | | /// WmsStoreæå¡ |
| | | /// </summary> |
| | | [ApiController] |
| | | [TypeFilter(typeof(CMSLanguageFilter))] |
| | | [TypeFilter(typeof(CMSUowActionFilter))] |
| | | [TypeFilter(typeof(CMSAuditActionFilter))] |
| | | [TypeFilter(typeof(CMSExceptionFilter))] |
| | | [Route("api/v{version:apiVersion}/HIAWms/[controller]")] |
| | | public class WmsStoreController : ControllerBase |
| | | { |
| | | private readonly IWmsStoreAppService _wmsstoreAppService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="WmsStoreController"/> class. |
| | | /// </summary> |
| | | /// <param name="wmsstoreAppService">The wmsstore application service.</param> |
| | | public WmsStoreController(IWmsStoreAppService wmsstoreAppService) |
| | | { |
| | | _wmsstoreAppService = wmsstoreAppService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmsstore. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsStoreDto> GetAsync(Guid id) |
| | | { |
| | | return _wmsstoreAppService.GetAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åwmsstoreçå表. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public virtual Task<PagedResultDto<WmsStoreDto>> GetListAsync([FromQuery] GetWmsStoresInput input) |
| | | { |
| | | return _wmsstoreAppService.GetListAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建wmsstore. |
| | | /// </summary> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | public virtual Task<WmsStoreDto> CreateAsync(WmsStoreCreateDto input) |
| | | { |
| | | return _wmsstoreAppService.CreateAsync(input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°wmsstore. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <param name="input">è¾å
¥.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPut] |
| | | [Route("{id}")] |
| | | public virtual Task<WmsStoreDto> UpdateAsync(Guid id, WmsStoreUpdateDto input) |
| | | { |
| | | return _wmsstoreAppService.UpdateAsync(id, input); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
éWmsStore. |
| | | /// </summary> |
| | | /// <param name="ids">Idéå.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpPost] |
| | | [Route("Clone")] |
| | | public virtual Task<List<WmsStoreDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsstoreAppService.CloneAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤wmsstore. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | [Route("{id}")] |
| | | public virtual Task DeleteAsync(Guid id) |
| | | { |
| | | return _wmsstoreAppService.DeleteAsync(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éå é¤wmsstore. |
| | | /// </summary> |
| | | /// <param name="ids">The ids.</param> |
| | | /// <returns></returns> |
| | | //[Authorize] |
| | | [HttpDelete] |
| | | public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) |
| | | { |
| | | return _wmsstoreAppService.DeleteManyAsync(ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è°æ´æåº. |
| | | /// </summary> |
| | | /// <param name="id">æ è¯ç¬¦.</param> |
| | | /// <returns></returns> |
| | | [HttpPut] |
| | | [Route("{id}/AdjustSort/{sort}")] |
| | | public virtual Task AdjustSortAsync(Guid id, int sort) |
| | | { |
| | | return _wmsstoreAppService.AdjustSortAsync(id, sort); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导å
¥wmsstore. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | [Route("Import")] |
| | | public virtual async Task<IActionResult> ImportAsync(IFormFile file) |
| | | { |
| | | using var stream = new MemoryStream(); |
| | | await file.CopyToAsync(stream); |
| | | stream.Seek(0L, SeekOrigin.Begin); |
| | | |
| | | var sheetNames = stream.GetSheetNames(); |
| | | var wmsstoreRows = sheetNames.Contains("é
ç½®") ? MiniExcel.Query<WmsStoresImportModel.WmsStoreImportModel>(stream, sheetName: "é
ç½®").ToList() : new(); |
| | | |
| | | if (!wmsstoreRows.Any()) |
| | | { |
| | | throw new UserFriendlyException("è¯·æ£æ¥å¯¼å
¥çè¡¨æ ¼"); |
| | | } |
| | | |
| | | await _wmsstoreAppService.ImportAsync(new WmsStoresImportModel |
| | | { |
| | | WmsStores = wmsstoreRows, |
| | | }); |
| | | |
| | | return Ok(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导åºwmsstore. |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | [Route("Export")] |
| | | public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsStoresInput input) |
| | | { |
| | | input.MaxResultCount = int.MaxValue; |
| | | var exportData = await _wmsstoreAppService.ExportAsync(input); |
| | | var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsStoreå¯¼åºæ¨¡æ¿.xlsx"); |
| | | if (!System.IO.File.Exists(templatePath)) |
| | | { |
| | | templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsStoreå¯¼åºæ¨¡æ¿.xlsx"); |
| | | } |
| | | |
| | | var memoryStream = new MemoryStream(); |
| | | await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); |
| | | memoryStream.Seek(0L, SeekOrigin.Begin); |
| | | return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.MesSuite.Abstractions.Events; |
| | | using CMS.Plugin.MesSuite.Abstractions.Models; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.OrderManagement.Abstractions.Models; |
| | | using CMS.Plugin.ProcessManagement.Abstractions.Models; |
| | | using CMS.Plugin.TraceManagement.Abstractions.Models.Traces; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.EventBus.Distributed; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EventHandlers |
| | | { |
| | | /// <summary> |
| | | /// æµç¨äºä»¶å¤çç¨åº |
| | | /// </summary> |
| | | public class HIAWmsEventHandler : IDistributedEventHandler<ProcessFlowEto>, ITransientDependency |
| | | { |
| | | private readonly ILogger _logger; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="HIAWmsEventHandler"/> class. |
| | | /// </summary> |
| | | /// <param name="logger">The logger.</param> |
| | | /// <param name="serviceProvider">The service provider.</param> |
| | | public HIAWmsEventHandler(ILogger<HIAWmsEventHandler> logger, IServiceProvider serviceProvider) |
| | | { |
| | | this._logger = logger; |
| | | this._serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Handler handles the event by implementing this method. |
| | | /// </summary> |
| | | /// <param name="eventData">Event data</param> |
| | | public async Task HandleEventAsync(ProcessFlowEto eventData) |
| | | { |
| | | if (eventData.Activity.Equals("æ¥éª¤åç§°")) |
| | | { |
| | | _logger.LogInformation($"WmsContainerEventHandler: Activity={eventData.Activity}"); |
| | | |
| | | var serialNumber = eventData?.FlowItems[FlowItemCollection.SerialNumber]?.ToString(); |
| | | |
| | | // å·¥èºæ¨¡å |
| | | var process = eventData?.FlowItems[FlowItemCollection.ApplicationData] as ProcessModel; |
| | | |
| | | // äº§åæ¨¡å |
| | | var product = eventData?.FlowItems[FlowItemCollection.ProductModel] as AssociationProductModel; |
| | | |
| | | // 追溯模å |
| | | var trace = eventData?.FlowItems[FlowItemCollection.TraceModel] as TraceModel; |
| | | |
| | | // 工忍¡å |
| | | var order = eventData?.FlowItems[FlowItemCollection.OrderModel] as OrderModel; |
| | | |
| | | // ä¸å¡å¤ç |
| | | await ProcessAsync(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Processes the asynchronous. |
| | | /// </summary> |
| | | private async Task ProcessAsync() |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | var wmscontainerRepository = scope.ServiceProvider.GetRequiredService<IWmsContainerRepository>(); |
| | | var count = await wmscontainerRepository.GetCountAsync(); |
| | | |
| | | // å¦æææ´æ°æ°æ®åºæä½ï¼éæäº¤ä¿å |
| | | // await uow.SaveChangesAsync(); |
| | | |
| | | _logger.LogInformation($"ProcessAsyncï¼Count={count}"); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.FlowManagement.Abstractions; |
| | | using CMS.Plugin.FlowManagement.Abstractions.Models; |
| | | using CMS.Plugin.MesSuite.Abstractions.Models; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.OrderManagement.Abstractions.Models; |
| | | using CMS.Plugin.ProcessManagement.Abstractions.Models; |
| | | using CMS.Plugin.TraceManagement.Abstractions.Models.Traces; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using SYC.Flow.Kernel; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.FlowProcessors |
| | | { |
| | | /// <summary> |
| | | /// æµç¨å¤çå¨ |
| | | /// </summary> |
| | | public class HIAWmsFlowProcessor : IFlowProcessor, ISingletonDependency |
| | | { |
| | | private readonly ILogger<HIAWmsFlowProcessor> _logger; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="FlowProcessor"/> class. |
| | | /// </summary> |
| | | public HIAWmsFlowProcessor(ILogger<HIAWmsFlowProcessor> logger, IServiceProvider serviceProvider) |
| | | { |
| | | _logger = logger; |
| | | _serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public Task OnEnterAsync(FlowProcessor flowProcessor, object sender, EventArgs args) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task OnExecuteAsync(FlowProcessor flowProcessor, object sender, EventArgs args) |
| | | { |
| | | if (sender is Activity activity) |
| | | { |
| | | var eventArgs = args as ProcessflowEventArgs; |
| | | var procID = eventArgs.DataItems["Instance_ProcID"]; |
| | | if (activity?.Name == "ç¬¬ä¸æ¹ç³»ç»åæ ¼å¤æ") |
| | | { |
| | | // å·¥èºæ¨¡å |
| | | var processModel = eventArgs.DataItems.ApplicationData as ProcessModel; |
| | | |
| | | // 工忍¡å |
| | | var orderModel = eventArgs.DataItems[FlowItemCollection.OrderModel] as OrderModel; |
| | | |
| | | // äº§åæ¨¡å |
| | | var productModel = eventArgs.DataItems[FlowItemCollection.ProductModel] as AssociationProductModel; |
| | | |
| | | // 追溯模å |
| | | var traceModel = eventArgs.DataItems[FlowItemCollection.TraceModel] as TraceModel; |
| | | |
| | | // ä¸å¡å¤ç |
| | | await ProcessAsync(); |
| | | |
| | | _logger.LogInformation($"æ§è¡æµç¨ï¼å®ä¾={procID} -> {flowProcessor.ProcName} -> {activity.Name} ProductionFlowProcessor"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Processes the asynchronous. |
| | | /// </summary> |
| | | private async Task ProcessAsync() |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | var wmscontainerRepository = scope.ServiceProvider.GetRequiredService<IWmsContainerRepository>(); |
| | | var count = await wmscontainerRepository.GetCountAsync(); |
| | | |
| | | // å¦æææ´æ°æ°æ®åºæä½ï¼éæäº¤ä¿å |
| | | // await uow.SaveChangesAsync(); |
| | | |
| | | _logger.LogInformation($"ProcessAsyncï¼Count={count}"); |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public Task OnExitAsync(FlowProcessor flowProcessor, object sender, EventArgs args) |
| | | { |
| | | return Task.CompletedTask; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <ProcessflowDefine Version="1"> |
| | | <Define> |
| | | <ProcessflowBuilder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| | | <Parameters/> |
| | | <Name>HIAWmsä¸å¡æµç¨</Name> |
| | | <Description></Description> |
| | | <Root xsi:type="Activity"> |
| | | <Alias>å¯å¨</Alias> |
| | | <Name>å¯å¨</Name> |
| | | <Description></Description> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | </Root> |
| | | <Activities> |
| | | <Activity xsi:type="VariableMonitorActivity"> |
| | | <Alias>åéçå¬</Alias> |
| | | <Name>触åä¿¡å·çå¬</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <NeedTagChange>true</NeedTagChange> |
| | | <TaskDelay>0</TaskDelay> |
| | | <MonitorVariableName>HIAWms_TriggerSignal</MonitorVariableName> |
| | | <CompareVariableValue>1</CompareVariableValue> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | </Activity> |
| | | <Activity xsi:type="VariableReadActivity"> |
| | | <Alias>åé读å</Alias> |
| | | <Name>åé读å</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <TaskDelay>0</TaskDelay> |
| | | <ReadRetryCount>10</ReadRetryCount> |
| | | <ReadRetryDelay>500</ReadRetryDelay> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | <ParameterVariables> |
| | | <ReadParameterVariable> |
| | | <VariableName>HIAWms_BarcodeVariable</VariableName> |
| | | <WriteIntoExtAttribute>true</WriteIntoExtAttribute> |
| | | </ReadParameterVariable> |
| | | </ParameterVariables> |
| | | </Activity> |
| | | <Activity xsi:type="HIAWmsActivity"> |
| | | <Alias>åéçå¬</Alias> |
| | | <Name>æ©å±æ¥éª¤</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <TaskDelay>0</TaskDelay> |
| | | <MyProperty>MyProperty1</MyProperty> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | </Activity> |
| | | <Activity xsi:type="VariableMonitorActivity"> |
| | | <Alias>åéçå¬</Alias> |
| | | <Name>触åä¿¡å·å¤ä½çå¬</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <NeedTagChange>true</NeedTagChange> |
| | | <TaskDelay>0</TaskDelay> |
| | | <MonitorVariableName>HIAWms_TriggerSignal</MonitorVariableName> |
| | | <CompareVariableValue>0</CompareVariableValue> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | </Activity> |
| | | <Activity xsi:type="BusinessActivity"> |
| | | <Alias>éç¨æ¥éª¤</Alias> |
| | | <Name>éç¨æ¥éª¤</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <PublishFlowEvent>true</PublishFlowEvent> |
| | | <TaskDelay>0</TaskDelay> |
| | | <ExtendedProperty> |
| | | <MyExtendedProperty>MyExtendedProperty1</MyExtendedProperty> |
| | | </ExtendedProperty> |
| | | </Activity> |
| | | <Activity xsi:type="VariableWriteActivity"> |
| | | <Alias>åéä¸å</Alias> |
| | | <Name>åéä¸å</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <TaskDelay>0</TaskDelay> |
| | | <WriteRetryCount>10</WriteRetryCount> |
| | | <WriteRetryDelay>500</WriteRetryDelay> |
| | | <ParameterVariables> |
| | | <WriteParameterVariable> |
| | | <Sort>1</Sort> |
| | | <WriteVariableName>HIAWms_BarcodeVariable</WriteVariableName> |
| | | <WriteVariableValue></WriteVariableValue> |
| | | </WriteParameterVariable> |
| | | </ParameterVariables> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | </Activity> |
| | | <Activity xsi:type="EndActivity"> |
| | | <Alias>ç»æ</Alias> |
| | | <Name>ç»æ</Name> |
| | | <EnterMode>Automatic</EnterMode> |
| | | <ExitMode>Automatic</ExitMode> |
| | | <JoinType>JoinXOR</JoinType> |
| | | <SplitType>SplitXOR</SplitType> |
| | | <ExtendedProperty></ExtendedProperty> |
| | | </Activity> |
| | | </Activities> |
| | | <Transitions> |
| | | <Transition> |
| | | <Label>å¯å¨->触åä¿¡å·çå¬</Label> |
| | | <Source>å¯å¨</Source> |
| | | <Sink>触åä¿¡å·çå¬</Sink> |
| | | </Transition> |
| | | <Transition> |
| | | <Label>触åä¿¡å·çå¬->åé读å</Label> |
| | | <Source>触åä¿¡å·çå¬</Source> |
| | | <Sink>åé读å</Sink> |
| | | </Transition> |
| | | <Transition> |
| | | <Label>åé读å->æ©å±æ¥éª¤</Label> |
| | | <Source>åé读å</Source> |
| | | <Sink>æ©å±æ¥éª¤</Sink> |
| | | </Transition> |
| | | <Transition> |
| | | <Label>æ©å±æ¥éª¤->触åä¿¡å·å¤ä½çå¬</Label> |
| | | <Source>æ©å±æ¥éª¤</Source> |
| | | <Sink>触åä¿¡å·å¤ä½çå¬</Sink> |
| | | </Transition> |
| | | <Transition> |
| | | <Label>触åä¿¡å·å¤ä½çå¬->éç¨æ¥éª¤</Label> |
| | | <Source>触åä¿¡å·å¤ä½çå¬</Source> |
| | | <Sink>éç¨æ¥éª¤</Sink> |
| | | </Transition> |
| | | <Transition> |
| | | <Label>éç¨æ¥éª¤->åéä¸å</Label> |
| | | <Source>éç¨æ¥éª¤</Source> |
| | | <Sink>åéä¸å</Sink> |
| | | </Transition> |
| | | <Transition> |
| | | <Label>åéä¸å->ç»æ</Label> |
| | | <Source>åéä¸å</Source> |
| | | <Sink>ç»æ</Sink> |
| | | </Transition> |
| | | </Transitions> |
| | | </ProcessflowBuilder> |
| | | </Define> |
| | | <Appearance> |
| | | <ProcessflowAppearance xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| | | </ProcessflowAppearance> |
| | | </Appearance> |
| | | </ProcessflowDefine> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Root> |
| | | <FlowInfo> |
| | | <Type>50001</Type> |
| | | <Name>æµè¯æµç¨</Name> |
| | | <Description></Description> |
| | | <Version>1</Version> |
| | | <FilePath>FlowPfd/50001_1.pfd</FilePath> |
| | | <BusinessType> |
| | | <Name>Other</Name> |
| | | <Value>1</Value> |
| | | <Description>æµè¯æµç¨</Description> |
| | | </BusinessType> |
| | | </FlowInfo> |
| | | </Root> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd"> |
| | | <ConfigureAwait ContinueOnCapturedContext="false" /> |
| | | </Weavers> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | namespace CMS.Plugin.HIAWms.Jobs |
| | | { |
| | | /// <summary> |
| | | /// HIAWms ä½ä¸åæ° |
| | | /// </summary> |
| | | public class HIAWmsArgs |
| | | { |
| | | /// <summary> |
| | | /// Gets or sets the subject. |
| | | /// </summary> |
| | | public string Subject { get; set; } |
| | | |
| | | /// <summary> |
| | | /// Gets or sets the body. |
| | | /// </summary> |
| | | public string Body { get; set; } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using Microsoft.Extensions.Logging; |
| | | using Volo.Abp.BackgroundJobs; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Jobs |
| | | { |
| | | /// <summary> |
| | | /// HIAWms åå°ä½ä¸ |
| | | /// </summary> |
| | | public class HIAWmsJob : BackgroundJob<HIAWmsArgs>, ITransientDependency |
| | | { |
| | | private readonly ILogger<HIAWmsJob> _logger; |
| | | private readonly IUnitOfWorkManager _unitOfWorkManager; |
| | | private readonly IWmsContainerRepository _wmscontainerRepository; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="HIAWmsJob"/> class. |
| | | /// </summary> |
| | | /// <param name="logger">The logger.</param> |
| | | /// <param name="unitOfWorkManager">The unit of work manager.</param> |
| | | /// <param name="wmscontainerRepository">My entity name repository.</param> |
| | | public HIAWmsJob(ILogger<HIAWmsJob> logger, IUnitOfWorkManager unitOfWorkManager, IWmsContainerRepository wmscontainerRepository) |
| | | { |
| | | _logger = logger; |
| | | _unitOfWorkManager = unitOfWorkManager; |
| | | _wmscontainerRepository = wmscontainerRepository; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public override void Execute(HIAWmsArgs args) |
| | | { |
| | | using var uow = _unitOfWorkManager.Begin(requiresNew: true); |
| | | var count = _wmscontainerRepository.GetCountAsync().GetAwaiter().GetResult(); |
| | | |
| | | // å¦æææ´æ°æ°æ®åºæä½ï¼éæäº¤ä¿å |
| | | // uow.SaveChangesAsync().GetAwaiter().GetResult(); |
| | | |
| | | _logger.LogInformation($"HIAWmsJob Executeï¼Subject={args.Subject}ï¼Body={args.Body}ï¼Count={count}"); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.FlowManagement.Abstractions.FlowBusiness; |
| | | using CMS.Plugin.HIAWms.Apis; |
| | | using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using CMS.Plugin.HIAWms.Jobs; |
| | | using CMS.Project; |
| | | using CMS.Project.Abstractions; |
| | | using CMS.Unit.RuntimeValue.Abstractions; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using Volo.Abp.BackgroundJobs; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.ProjectService |
| | | { |
| | | /// <summary> |
| | | /// å·¥ç¨æå¡ï¼åå·¥ç¨å
³èçåå°æå¡ï¼å½<see cref="IProjectServiceRunner"/>以å½åKeyè°ç¨æ¶ä¼è¢«æ§è¡ |
| | | /// </summary> |
| | | public class HIAWmsProjectService : BaseProjectService |
| | | { |
| | | private IServiceProvider _serviceProvider; |
| | | private readonly ILogger<HIAWmsProjectService> _logger; |
| | | private readonly IVariableDataCache _variableDataCache; |
| | | private FlowVariableChannelListener _channelListener; |
| | | private Dictionary<string, string> _monitorVariableNames; |
| | | |
| | | /// <summary> |
| | | /// æå¡çKeyï¼å¯ä¸ï¼ä¾<see cref="IProjectServiceRunner"/>ä½¿ç¨ |
| | | /// </summary> |
| | | public override string Key => "HIAWms"; |
| | | |
| | | /// <summary> |
| | | /// æå¡æè¿°ï¼æ¾ç¤ºå¨æå¡å表UIä¸çåç§° |
| | | /// </summary> |
| | | public override string Description => "HIAWmsæå¡"; |
| | | |
| | | /// <summary> |
| | | /// å¯ç¨ææ |
| | | /// </summary> |
| | | public override bool AuthRequired => false; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="HIAWmsProjectService"/> class. |
| | | /// </summary> |
| | | /// <param name="logger">The logger.</param> |
| | | /// <param name="variableDataCache">The variable data cache.</param> |
| | | public HIAWmsProjectService(IServiceProvider serviceProvider, ILogger<HIAWmsProjectService> logger, IVariableDataCache variableDataCache) |
| | | { |
| | | _serviceProvider = serviceProvider; |
| | | _logger = logger; |
| | | _variableDataCache = variableDataCache; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¼å¯æå¡ |
| | | /// </summary> |
| | | /// <param name="serviceProvider">å
·æå·¥ç¨ä¸ä¸æçå®ä¾</param> |
| | | public override async Task StartAsync(IServiceProvider serviceProvider) |
| | | { |
| | | if (State == ProjectServiceState.Started) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | // çå¬åé |
| | | _monitorVariableNames = new Dictionary<string, string> |
| | | { |
| | | { "HIAWms_Variable1", "çå¬åé1" }, |
| | | { "HIAWms_Variable2", "çå¬åé2" } |
| | | }; |
| | | |
| | | // å建ééçå¬ |
| | | _channelListener?.Token?.Dispose(); |
| | | _channelListener = new FlowVariableChannelListener(_logger, _variableDataCache); |
| | | _channelListener.CreateChannel(Key, waitListener: false, timeout: TimeSpan.FromSeconds(30), variableFilter: _monitorVariableNames.Keys.ToHashSet()); |
| | | _channelListener.TagChanged += OnTagValueChanged; |
| | | |
| | | await base.StartAsync(serviceProvider); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 忢æå¡ |
| | | /// </summary> |
| | | /// <param name="serviceProvider">å
·æå·¥ç¨ä¸ä¸æçå®ä¾</param> |
| | | public override async Task StopAsync(IServiceProvider serviceProvider) |
| | | { |
| | | if (_channelListener != null) |
| | | { |
| | | // éæ¾çå¬ |
| | | _channelListener.TagChanged -= OnTagValueChanged; |
| | | _channelListener.Token.Dispose(); |
| | | _channelListener = null; |
| | | } |
| | | |
| | | // 使ç¨åå°ä½ä¸å¼æ¥å¤ç |
| | | //await _serviceProvider.GetRequiredService<IBackgroundJobManager>().EnqueueAsync(new HIAWmsArgs |
| | | //{ |
| | | // Subject = "HIAWms_Subject", |
| | | // Body = "HIAWms_Body", |
| | | //}); |
| | | |
| | | |
| | | await base.StopAsync(serviceProvider); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Called when [tag value changed]. |
| | | /// </summary> |
| | | /// <param name="sender">The sender.</param> |
| | | /// <param name="e">The <see cref="TagChangedEventArgs"/> instance containing the event data.</param> |
| | | private async void OnTagValueChanged(object sender, TagChangedEventArgs e) |
| | | { |
| | | var changeds = e.Changeds.Where(x => _monitorVariableNames != null && _monitorVariableNames.ContainsKey(x.Name)); |
| | | if (!changeds.Any()) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | foreach (var changed in changeds) |
| | | { |
| | | var oldValue = changed.Old?.Value; |
| | | var newValue = changed.New?.Value; |
| | | var traceId = e.TraceId; |
| | | |
| | | _logger.LogInformation($"{changed.Name} åéå¼åçååï¼æ§å¼{oldValue}=æ°å¼{newValue}ï¼TraceId={traceId}"); |
| | | |
| | | // TODO: å¤çåéå¼åå |
| | | // Tipsï¼https://cms-docs.shengyc.com/cms/api/%E5%90%8E%E7%AB%AF#3-%E5%8F%98%E9%87%8F%E6%A8%A1%E5%9D%97 |
| | | /* 说æï¼éè¿è®¢é
IVariableDataCache.TagChanged äºä»¶ï¼æ¨å¯ä»¥å®æ¶çæ§åéçååãæ¤äºä»¶ä¼ä¼ éææåéè³äºä»¶å¤ç彿°ï¼å æ¤ï¼ä¸å¡å±éå¨å½æ°ä¸çéå
³æ³¨çåéã |
| | | 注æäºé¡¹ï¼ |
| | | ï¼1ï¼æ§è½å½±åï¼ åå¸äºä»¶æ¶ï¼äºä»¶çåéè
å°é»å¡æµç¨ãå æ¤ï¼å¼ºç建议é¿å
å¨äºä»¶å¤ç彿°ä¸æ§è¡ I/ O æä½ãHTTP æ¥å£è®¿é®æå
¶ä»èæ¶æä½ï¼ä»¥é²æ¢å¯¹ç³»ç»æ§è½äº§ç严éå½±åï¼å¯¼è´æ´ä¸ªç³»ç»ååºå»¶è¿ã |
| | | ï¼2ï¼é«é¢ç触åï¼ ç±äºäºä»¶è®¢é
äºå
¨éåéï¼è§¦åé¢çå¯è½é常é«ã |
| | | ï¼3ï¼å¼æ¥å¤çï¼ é´äºäºä»¶è§¦åé¢çå¾é«ï¼å»ºè®®ä¸å¡å±å¨çéå
³æ³¨åéåï¼ä½¿ç¨ Task å¯å¨æ°çº¿ç¨å¤çä¸å¡é»è¾ï¼ä»¥é¿å
é»å¡æ ¸å¿çåéçå¬åè½ï¼å®ç°ä¸å¡å±ä¸å¹³å°åºåº§çè§£è¦ã |
| | | ï¼4ï¼å¹¶å管çï¼ å¦æä¸å¡å±å¹¶åé大ï¼å¿
é¡»ä¼å代ç 设计å宿½ï¼ä»¥åå°å¨é«å¹¶åæ
åµä¸çç³»ç»èµæºæ¶èï¼é²æ¢ç³»ç»æ§è½é®é¢ã |
| | | ï¼5ï¼ä»£ç å®å
¨ï¼ å®è£
å¹¶ä½¿ç¨ CMS.CodeAnalysis åæå¨æ¥åæ IVariableDataCache.TagChanged çä½¿ç¨æ
åµã该工å
·è½å¨ä½¿ç¨ä¸å½æ¶æä¾ç¼è¯é误ï¼å¸®å©æ¨æé«ä»£ç è´¨éã*/ |
| | | |
| | | _ = Task.Run(async () => |
| | | { |
| | | // ä¾1ï¼åæ¥å¤ç |
| | | //await ProcessAsync(); |
| | | |
| | | // ä¾2ï¼è°ç¨å¤é¨API |
| | | //await ExecuteExternalApiAsync(); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// Processes the asynchronous. |
| | | /// </summary> |
| | | private async Task ProcessAsync() |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | var wmscontainerRepository = scope.ServiceProvider.GetRequiredService<IWmsContainerRepository>(); |
| | | var count = await wmscontainerRepository.GetCountAsync(); |
| | | |
| | | // å¦æææ´æ°æ°æ®åºæä½ï¼éæäº¤ä¿å |
| | | // await uow.SaveChangesAsync(); |
| | | |
| | | _logger.LogInformation($"ProcessAsyncï¼Count={count}"); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "profiles": { |
| | | "DebugFromCMS": { |
| | | "commandName": "Executable", |
| | | "executablePath": "$(CMSRootPath)\\host\\CMS.Host.exe", |
| | | "workingDirectory": "$(CMSRootPath)\\host", |
| | | "commandLineArgs":"-d", |
| | | "environmentVariables": { |
| | | "DOTNET_ENVIRONMENT": "Development", |
| | | "ASPNETCORE_URLS": "http://*:18000", |
| | | "PluginPath": "../plugins", |
| | | "DatabaseType": "MySQL" |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Abstractions; |
| | | using CMS.Plugin.HIAWms.Domain.WmsContainers; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using SYC.Flow.Kernel; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Services |
| | | { |
| | | /// <inheritdoc /> |
| | | public class HIAWmsFlowService : IHIAWmsFlowService, ITransientDependency |
| | | { |
| | | private readonly ILogger<HIAWmsFlowService> _logger; |
| | | private readonly IServiceProvider _serviceProvider; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="HIAWmsFlowService"/> class. |
| | | /// </summary> |
| | | /// <param name="logger">The logger.</param> |
| | | public HIAWmsFlowService(ILogger<HIAWmsFlowService> logger, IServiceProvider serviceProvider) |
| | | { |
| | | _logger = logger; |
| | | _serviceProvider = serviceProvider; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | public async Task ProcessAsync(ProcessflowEventArgs args) |
| | | { |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | var wmscontainerRepository = scope.ServiceProvider.GetRequiredService<IWmsContainerRepository>(); |
| | | var count = await wmscontainerRepository.GetCountAsync(); |
| | | |
| | | // å¦æææ´æ°æ°æ®åºæä½ï¼éæäº¤ä¿å |
| | | // await uow.SaveChangesAsync(); |
| | | |
| | | // è¾åºæ¥å¿ |
| | | _logger.LogInformation($"HIAWmsFlowServiceï¼ProcessAsync()"); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Extensions.Variable; |
| | | using CMS.Project.Abstractions; |
| | | using KissUtil.Extensions; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Microsoft.Extensions.Logging; |
| | | using Volo.Abp.BackgroundWorkers; |
| | | using Volo.Abp.Threading; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Workers |
| | | { |
| | | /// <summary> |
| | | /// HIAWmsåå°å·¥ä½è
|
| | | /// </summary> |
| | | public class HIAWmsWorker : AsyncPeriodicBackgroundWorkerBase |
| | | { |
| | | private readonly ILogger<HIAWmsWorker> _logger; |
| | | private readonly VariableService _variableService; |
| | | |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="HIAWmsWorker"/> class. |
| | | /// </summary> |
| | | /// <param name="timer">The timer.</param> |
| | | /// <param name="serviceScopeFactory">The service scope factory.</param> |
| | | public HIAWmsWorker(ILogger<HIAWmsWorker> logger, AbpAsyncTimer timer, VariableService variableService, IServiceScopeFactory serviceScopeFactory) : base(timer, serviceScopeFactory) |
| | | { |
| | | _logger = logger; |
| | | _variableService = variableService; |
| | | Timer.Period = 1 * 300 * 1000; // æ¯é 300 ç§ æ§è¡ä¸æ¬¡ |
| | | Timer.RunOnStart = true; |
| | | } |
| | | |
| | | /// <inheritdoc /> |
| | | protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) |
| | | { |
| | | var projectAccessor = workerContext.ServiceProvider.GetRequiredService<IProjectAccessor>(); |
| | | var project = await projectAccessor.GetProjectAsync(); |
| | | if (project?.Info == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | //_logger.LogInformation($"HIAWmsWorker is working for project {project.Info.Id}"); |
| | | |
| | | //// 计ç®OEE |
| | | //double oee = await CalculateOEEAsync(); |
| | | |
| | | //// 使ç¨ç¾åæ¯æ ¼å¼ æå°ç»ææ¥å¿ |
| | | //_logger.LogInformation($"OEE:{oee:P2}"); |
| | | |
| | | //// åå
¥åé |
| | | //await _variableService.WriteValueAsync(new Dictionary<string, object> {{ "OEE", oee } }); |
| | | } |
| | | |
| | | // 计ç®OEE=å¯ç¨æ§Ãæ§è½Ãè´¨é |
| | | public async Task<double> CalculateOEEAsync() |
| | | { |
| | | // 读åOEEè®¡ç®æéçå¼ |
| | | double availability = await ReadDoubleValueAsync("Availability"); |
| | | double performance = await ReadDoubleValueAsync("Performance"); |
| | | double quality = await ReadDoubleValueAsync("Quality"); |
| | | |
| | | // 计ç®OEE |
| | | double oee = availability * performance * quality; |
| | | |
| | | // è¿å计ç®ç»æ |
| | | return oee; |
| | | } |
| | | |
| | | // æä¾ä¸ä¸ªæ³åæ¹æ³ï¼æ¹ä¾¿ç´æ¥è·ådoubleç±»åçå¼ |
| | | public async Task<double> ReadDoubleValueAsync(string variableName) |
| | | { |
| | | var variable = await _variableService.ReadValueAsync(variableName); |
| | | return (variable?.Content?.Value).SafeString().ToDoubleOrNull().GetValueOrDefault(); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | // é
ç½®æä»¶å°½å¯è½åå¨/host/appsettings.jsonææ°æ®åºä¸ï¼é¿å
æä»¶å级æ¶è¢«è¦ç |
| | | "IHIAWmsExternalApi": { |
| | | "HttpHost": "http://127.0.0.1:18000/" // External API对æ¥å°å |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", |
| | | "settings": { |
| | | "orderingRules": { |
| | | "systemUsingDirectivesFirst": false, |
| | | "usingDirectivesPlacement": "outsideNamespace", |
| | | "blankLinesBetweenUsingGroups": "omit" |
| | | }, |
| | | "namingRules": { |
| | | "allowCommonHungarianPrefixes": false, |
| | | "allowedNamespaceComponents": [ |
| | | "iOS" |
| | | ], |
| | | "includeInferredTupleElementNames": true |
| | | }, |
| | | "maintainabilityRules": { |
| | | "topLevelTypes": [ |
| | | "class", |
| | | "interface", |
| | | "struct" |
| | | ] |
| | | }, |
| | | "layoutRules": { |
| | | "newlineAtEndOfFile": "require" |
| | | }, |
| | | "documentationRules": { |
| | | "companyName": "广å·çåæç§ææéå
¬å¸", |
| | | "copyrightText": "Copyright (c) {companyName}. All rights reserved." |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | <Import Project="../../common.test.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\..\src\CMS.Plugin.HIAWms.Application\CMS.Plugin.HIAWms.Application.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain.Tests\CMS.Plugin.HIAWms.Domain.Tests.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using CMS.Plugin.HIAWms.MySQL; |
| | | using CMS.Plugin.HIAWms.TestBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Tests |
| | | { |
| | | /// <summary> |
| | | /// HIAWmsApplicationTestBase |
| | | /// </summary> |
| | | public class HIAWmsApplicationTestBase : HIAWmsTestBase<HIAWmsApplicationTestModule> |
| | | { |
| | | /// <summary> |
| | | /// UsingDbContext |
| | | /// </summary> |
| | | /// <param name="action">IHIAWmsDbContext</param> |
| | | protected virtual void UsingDbContext(Action<CMSPluginDbContext> action) |
| | | { |
| | | using (var dbContext = GetRequiredService<CMSPluginDbContext>()) |
| | | { |
| | | action.Invoke(dbContext); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// UsingDbContext |
| | | /// </summary> |
| | | /// <typeparam name="T">T</typeparam> |
| | | /// <param name="action">IHIAWmsDbContext</param> |
| | | /// <returns>T</returns> |
| | | protected virtual T UsingDbContext<T>(Func<CMSPluginDbContext, T> action) |
| | | { |
| | | using (var dbContext = GetRequiredService<CMSPluginDbContext>()) |
| | | { |
| | | return action.Invoke(dbContext); |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain.Tests; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Application.Tests |
| | | { |
| | | /// <summary> |
| | | /// HIAWmsApplicationTestModule |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(CMSPluginApplicationModule), |
| | | typeof(HIAWmsDomainTestModule))] |
| | | public class HIAWmsApplicationTestModule : AbpModule |
| | | { |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | base.ConfigureServices(context); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | <Import Project="../../common.test.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.EntityFrameworkCore.Tests\CMS.Plugin.HIAWms.EntityFrameworkCore.Tests.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore; |
| | | using CMS.Plugin.HIAWms.MySQL; |
| | | using CMS.Plugin.HIAWms.TestBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Tests |
| | | { |
| | | /// <summary> |
| | | /// HIAWms DomainTestBase |
| | | /// </summary> |
| | | public class HIAWmsDomainTestBase : HIAWmsTestBase<HIAWmsDomainTestModule> |
| | | { |
| | | /// <summary> |
| | | /// UsingDbContext |
| | | /// </summary> |
| | | /// <param name="action">IHIAWmsDbContext</param> |
| | | protected virtual void UsingDbContext(Action<CMSPluginDbContext> action) |
| | | { |
| | | using (var dbContext = GetRequiredService<CMSPluginDbContext>()) |
| | | { |
| | | action.Invoke(dbContext); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// UsingDbContext |
| | | /// </summary> |
| | | /// <typeparam name="T">T</typeparam> |
| | | /// <param name="action">IHIAWmsDbContext</param> |
| | | /// <returns>T</returns> |
| | | protected virtual T UsingDbContext<T>(Func<CMSPluginDbContext, T> action) |
| | | { |
| | | using (var dbContext = GetRequiredService<CMSPluginDbContext>()) |
| | | { |
| | | return action.Invoke(dbContext); |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.EntityFrameworkCore.Tests; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.Domain.Tests |
| | | { |
| | | /// <summary> |
| | | /// HIAWms DomainTestModule |
| | | /// </summary> |
| | | [DependsOn(typeof(HIAWmsTestEntityFrameworkCoreModule))] |
| | | public class HIAWmsDomainTestModule : AbpModule |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | <Import Project="../../common.test.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.EntityFrameworkCore" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.EntityFrameworkCore.Sqlite" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" /> |
| | | <PackageReference Include="NSubstitute" Version="$(NSubstitutePackageVersion)" /> |
| | | <PackageReference Include="Shouldly" Version="$(ShouldlyPackageVersion)" /> |
| | | <PackageReference Include="xunit" Version="$(xUnitPackageVersion)" /> |
| | | <PackageReference Include="xunit.extensibility.execution" Version="$(xUnitExtensibilityExecutionPackageVersion)" /> |
| | | <PackageReference Include="xunit.runner.visualstudio" Version="$(xUnitRunnerVisualstudioPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\..\src\CMS.Plugin.HIAWms.EntityFrameworkCore\CMS.Plugin.HIAWms.EntityFrameworkCore.csproj" /> |
| | | <ProjectReference Include="..\..\src\CMS.Plugin.HIAWms.MySQL\CMS.Plugin.HIAWms.MySQL.csproj" /> |
| | | <ProjectReference Include="..\CMS.Plugin.HIAWms.TestBase\CMS.Plugin.HIAWms.TestBase.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.TestBase; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Tests |
| | | { |
| | | /// <summary> |
| | | /// MyProjectName TestBase |
| | | /// </summary> |
| | | public class HIAWmsEntityFrameworkTestBase : HIAWmsTestBase<HIAWmsTestEntityFrameworkCoreModule> |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.MySQL; |
| | | using CMS.Plugin.HIAWms.TestBase; |
| | | using Microsoft.Data.Sqlite; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using Microsoft.EntityFrameworkCore.Infrastructure; |
| | | using Microsoft.EntityFrameworkCore.Storage; |
| | | using Volo.Abp.EntityFrameworkCore; |
| | | using Volo.Abp.EntityFrameworkCore.Sqlite; |
| | | using Volo.Abp.Modularity; |
| | | |
| | | namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Tests |
| | | { |
| | | /// <summary> |
| | | /// MyProjectName TestEntityFrameworkCoreModule |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(HIAWmsTestBaseModule), |
| | | typeof(CMSPluginEntityFrameworkCoreModule), |
| | | typeof(AbpEntityFrameworkCoreSqliteModule))] |
| | | public class HIAWmsTestEntityFrameworkCoreModule : AbpModule |
| | | { |
| | | /// <summary> |
| | | /// ConfigureServices |
| | | /// </summary> |
| | | /// <param name="context">ServiceConfigurationContext</param> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | var sqliteConnection = CreateDatabaseAndGetConnection(); |
| | | |
| | | Configure<AbpDbContextOptions>(options => |
| | | { |
| | | options.Configure(dbContextConfigurationContext => |
| | | { |
| | | dbContextConfigurationContext.DbContextOptions.UseSqlite(sqliteConnection); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | private static SqliteConnection CreateDatabaseAndGetConnection() |
| | | { |
| | | var connection = new SqliteConnection("Data Source=:memory:"); |
| | | connection.Open(); |
| | | |
| | | new CMSPluginDbContext( |
| | | new DbContextOptionsBuilder<CMSPluginDbContext>().UseSqlite(connection).Options).GetService<IRelationalDatabaseCreator>().CreateTables(); |
| | | |
| | | return connection; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | <Import Project="../../common.test.props" /> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <PackageReference Include="Volo.Abp.Autofac" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.TestBase" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Volo.Abp.Authorization" Version="$(ABPPackageVersion)" /> |
| | | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" /> |
| | | <PackageReference Include="NSubstitute" Version="$(NSubstitutePackageVersion)" /> |
| | | <PackageReference Include="Shouldly" Version="$(ShouldlyPackageVersion)" /> |
| | | <PackageReference Include="xunit" Version="$(xUnitPackageVersion)" /> |
| | | <PackageReference Include="xunit.extensibility.execution" Version="$(xUnitExtensibilityExecutionPackageVersion)" /> |
| | | <PackageReference Include="xunit.runner.visualstudio" Version="$(xUnitRunnerVisualstudioPackageVersion)" /> |
| | | </ItemGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\..\src\CMS.Plugin.HIAWms.Domain\CMS.Plugin.HIAWms.Domain.csproj" /> |
| | | </ItemGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.DependencyInjection; |
| | | using Volo.Abp.Guids; |
| | | |
| | | namespace CMS.Plugin.HIAWms.TestBase |
| | | { |
| | | /// <summary> |
| | | /// MyProjectName DataSeedContributor |
| | | /// </summary> |
| | | public class HIAWmsDataSeedContributor : IDataSeedContributor, ITransientDependency |
| | | { |
| | | private readonly HIAWmsTestData _myProjectNameTestData; |
| | | private readonly IGuidGenerator _guidGenerator; |
| | | /// <summary> |
| | | /// Initializes a new instance of the <see cref="HIAWmsDataSeedContributor"/> class. |
| | | /// </summary> |
| | | /// <param name="serviceProvider">IServiceProvider</param> |
| | | public HIAWmsDataSeedContributor(IServiceProvider serviceProvider) |
| | | { |
| | | _myProjectNameTestData = serviceProvider.GetRequiredService<HIAWmsTestData>(); |
| | | _guidGenerator = serviceProvider.GetRequiredService<IGuidGenerator>(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// SeedAsync |
| | | /// </summary> |
| | | /// <param name="context">DataSeedContext</param> |
| | | /// <returns>Task</returns> |
| | | public async Task SeedAsync(DataSeedContext context) |
| | | { |
| | | await Task.CompletedTask; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Modularity; |
| | | using Volo.Abp.Testing; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.TestBase |
| | | { |
| | | /// <summary> |
| | | /// MyProjectName TestBase |
| | | /// </summary> |
| | | /// <typeparam name="TStartupModule">IAbpModule</typeparam> |
| | | public class HIAWmsTestBase<TStartupModule> : AbpIntegratedTest<TStartupModule> |
| | | where TStartupModule : IAbpModule |
| | | { |
| | | /// <summary> |
| | | /// SetAbpApplicationCreationOptions |
| | | /// </summary> |
| | | /// <param name="options">AbpApplicationCreationOptions</param> |
| | | protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) |
| | | { |
| | | options.UseAutofac(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WithUnitOfWorkAsync |
| | | /// </summary> |
| | | /// <param name="func">func</param> |
| | | /// <returns>Task</returns> |
| | | protected virtual Task WithUnitOfWorkAsync(Func<Task> func) |
| | | { |
| | | return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WithUnitOfWorkAsync |
| | | /// </summary> |
| | | /// <param name="options">AbpUnitOfWorkOptions</param> |
| | | /// <param name="action">action</param> |
| | | /// <returns>Task</returns> |
| | | protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func<Task> action) |
| | | { |
| | | using (var scope = ServiceProvider.CreateScope()) |
| | | { |
| | | var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | |
| | | using (var uow = uowManager.Begin(options)) |
| | | { |
| | | await action(); |
| | | |
| | | await uow.CompleteAsync(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WithUnitOfWorkAsync |
| | | /// </summary> |
| | | /// <typeparam name="TResult">t</typeparam> |
| | | /// <param name="func">TResult</param> |
| | | /// <returns>TResult</returns> |
| | | protected virtual Task<TResult> WithUnitOfWorkAsync<TResult>(Func<Task<TResult>> func) |
| | | { |
| | | return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// WithUnitOfWorkAsync |
| | | /// </summary> |
| | | /// <typeparam name="TResult">T</typeparam> |
| | | /// <param name="options">AbpUnitOfWorkOptions</param> |
| | | /// <param name="func">Func</param> |
| | | /// <returns>TResult</returns> |
| | | protected virtual async Task<TResult> WithUnitOfWorkAsync<TResult>(AbpUnitOfWorkOptions options, Func<Task<TResult>> func) |
| | | { |
| | | using (var scope = ServiceProvider.CreateScope()) |
| | | { |
| | | var uowManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | |
| | | using (var uow = uowManager.Begin(options)) |
| | | { |
| | | var result = await func(); |
| | | await uow.CompleteAsync(); |
| | | return result; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using CMS.Plugin.HIAWms.Domain; |
| | | using Microsoft.Extensions.DependencyInjection; |
| | | using Volo.Abp; |
| | | using Volo.Abp.Autofac; |
| | | using Volo.Abp.Data; |
| | | using Volo.Abp.Modularity; |
| | | using Volo.Abp.Threading; |
| | | using Volo.Abp.Uow; |
| | | |
| | | namespace CMS.Plugin.HIAWms.TestBase |
| | | { |
| | | /// <summary> |
| | | /// MyProjectName TestBaseModule |
| | | /// </summary> |
| | | [DependsOn( |
| | | typeof(AbpAutofacModule), |
| | | typeof(AbpTestBaseModule), |
| | | typeof(CMSPluginDomainModule))] |
| | | public class HIAWmsTestBaseModule : AbpModule |
| | | { |
| | | /// <summary> |
| | | /// PreConfigureServices |
| | | /// </summary> |
| | | /// <param name="context">ServiceConfigurationContext</param> |
| | | public override void PreConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ConfigureServices |
| | | /// </summary> |
| | | /// <param name="context">ServiceConfigurationContext</param> |
| | | public override void ConfigureServices(ServiceConfigurationContext context) |
| | | { |
| | | context.Services.AddAlwaysAllowAuthorization(); |
| | | Configure<AbpUnitOfWorkDefaultOptions>(options => |
| | | { |
| | | options.TransactionBehavior = UnitOfWorkTransactionBehavior.Enabled; |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// OnApplicationInitialization |
| | | /// </summary> |
| | | /// <param name="context">ApplicationInitializationContext</param> |
| | | public override void OnApplicationInitialization(ApplicationInitializationContext context) |
| | | { |
| | | SeedTestData(context); |
| | | } |
| | | |
| | | private static void SeedTestData(ApplicationInitializationContext context) |
| | | { |
| | | AsyncHelper.RunSync(async () => |
| | | { |
| | | using (var scope = context.ServiceProvider.CreateScope()) |
| | | { |
| | | var dataSeeder = scope.ServiceProvider.GetRequiredService<IDataSeeder>(); |
| | | await dataSeeder.SeedAsync(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Volo.Abp.DependencyInjection; |
| | | |
| | | namespace CMS.Plugin.HIAWms.TestBase |
| | | { |
| | | public class HIAWmsTestData : ISingletonDependency |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # port 端å£å· |
| | | VITE_PORT = 8001 |
| | | |
| | | VITE_APP_TITLE= CMS |
| | | |
| | | VITE_API_URL = 'http://localhost:18000' # å¼åç-è²èª |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # |
| | | # 请å¤å¶æ¤æä»¶å¹¶å½å为 `.env.development.local` |
| | | # 个人å¼åè¯·å¨ `.env.development.local` æä»¶ä¸æ¹å¨ |
| | | # |
| | | |
| | | # æ¬å°ç¯å¢ |
| | | ENV = 'development' |
| | | |
| | | VITE_APP_TITLE= CMS |
| | | |
| | | VITE_APP_NAMESPACE= 'cs' |
| | | |
| | | # VITE_API_URL = 'http://192.168.2.13:18002' |
| | | VITE_API_URL = 'http://localhost:18000' |
| | | |
| | | VITE_PROJECT_API_URL='http://127.0.0.1:8802' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # 线ä¸ç¯å¢ |
| | | ENV = 'production' |
| | | |
| | | # 线ä¸ç¯å¢æ¥å£å°å |
| | | VITE_API_URL = 'http://127.0.0.1:18002/' |
| | | |
| | | VITE_APP_NAMESPACE= 'cs' |
| | | |
| | | VITE_APP_VERSION = 'beta-9' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* eslint-env node */ |
| | | require('@rushstack/eslint-patch/modern-module-resolution') |
| | | |
| | | module.exports = { |
| | | root: true, |
| | | extends: [ |
| | | 'plugin:vue/vue3-essential', |
| | | 'eslint:recommended', |
| | | '@vue/eslint-config-typescript', |
| | | '@vue/eslint-config-prettier', |
| | | ], |
| | | parserOptions: { |
| | | ecmaVersion: 'latest', |
| | | }, |
| | | rules: { |
| | | 'vue/multi-word-component-names': [0], |
| | | }, |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "semi": false, |
| | | "singleQuote": true, |
| | | "endOfLine": "auto", |
| | | "trailingComma": "es5" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "i18n-ally.localesPaths": [ |
| | | "public/language", |
| | | "src/libs/Language/i18n" |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | # information-standard-tpl |
| | | |
| | | ## å®è£
ç¯å¢ |
| | | |
| | | å®è£
[nodeJs](https://nodejs.cn/)ç¯å¢,ä¸è½½ nodejsï¼å®è£
宿åï¼ |
| | | |
| | | ```js |
| | | node - v |
| | | ``` |
| | | |
| | | ## å®è£
yarn |
| | | |
| | | ```js |
| | | npm install -g yarn |
| | | ``` |
| | | |
| | | ## å®è£
ä¾èµ |
| | | |
| | | ```js |
| | | yarn |
| | | ``` |
| | | |
| | | ## è¿è¡ |
| | | |
| | | ```js |
| | | npm run dev |
| | | // or |
| | | yarn dev |
| | | |
| | | ``` |
| | | |
| | | ## ç¼è¯ |
| | | |
| | | ```js |
| | | npm run build |
| | | ``` |
| | | |
| | | ## ç®å½ç»æ |
| | | |
| | | ```js |
| | | |- public |
| | | |- script |
| | | |- src |
| | | |----api //ææ¶åºå¼ |
| | | |----assets //èµæº |
| | | |----cms //cms sdkä¾èµ |
| | | |----components //cms sdkä¾èµ |
| | | |------BaseDialog //å°è£
çå¼¹çªï¼æ ·å¼ç»ä¸ |
| | | |------Table//å°è£
çè¡¨æ ¼ï¼æ ·å¼ç»ä¸ |
| | | |------other...//å
¶ä» |
| | | |----provider //å
¨å±æ³¨å
¥ï¼elementå½åç©ºé´ |
| | | |------provider.ts // h |
| | | |------provider.vue // renderç»ä»¶ |
| | | |----utils //å·¥å
· |
| | | |------enum //æä¸¾ |
| | | |----widgets //ç»ä»¶ |
| | | |------hook.ts //é©å |
| | | |------... |
| | | index.html |
| | | ``` |
| | | |
| | | ## åè½ |
| | | |
| | | #### å½åç©ºé´ |
| | | |
| | | > `element-plus`éç¨`sass`ç`$namespace`æ¥è§£å³`css`æ ·å¼å²çªé®é¢ |
| | | |
| | | ```js |
| | | $namespace = 'cs' |
| | | ``` |
| | | |
| | | element-plus ç»ä»¶çæ ·å¼ä» el-xx æ¿æ¢æ cs-xxï¼ä½¿ç¨æ¶ï¼ä»ç¶ä½¿ç¨<el-xx></el-xx> |
| | | |
| | | > element-plus èªå¨æéå¼å
¥ï¼æ éæå¨å¼å
¥ï¼æ éå
¨å±å®è£
|
| | | |
| | | <b>ï¼ï¼ï¼æ³¨æ</b> |
| | | |
| | | ä½¿ç¨ ElMessage å ElMessageBox æ¶ï¼éè¦æå¨å¼å
¥ |
| | | |
| | | ```js |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | ``` |
| | | |
| | | ### æé |
| | | |
| | | å¨/src/widgets/hook.ts ä¸å¼å
¥æéæ§å¶ hook |
| | | |
| | | ```js |
| | | import { usePermission } from '@/libs/Permission/Permission' |
| | | import { permissionCodes } from '../enum' |
| | | |
| | | usePermission(props, permissionCodes) |
| | | |
| | | ... |
| | | defineComponent({ |
| | | directives: { |
| | | permission: vPermission, |
| | | }, |
| | | }) |
| | | |
| | | <IconButton |
| | | //æéæ§å¶ |
| | | v-permission="workSection-add" |
| | | icon="add-p" |
| | | onClick={onAddProcess} |
| | | type="primary" |
| | | > |
| | | æ·»å MyEntityName |
| | | </IconButton> |
| | | |
| | | ``` |
| | | |
| | | ### è·¯ç±å°å |
| | | |
| | | è·¯ç±å°åç»ä¸ç± package.json ä¸ç name å/widgets/[ç»ä»¶å]æ¼æ¥èæ |
| | | å¦ï¼ |
| | | |
| | | > https://localhost:8001/#/base/PersonnelQualification |
| | | |
| | | ### ç»ä¸ä½¿ç¨`BaseDialog`å`Table`æ¥å¼å |
| | | |
| | | #### å¼¹çªä¾å |
| | | |
| | | ```vue |
| | | <BaseDialog |
| | | :title="t('ç¼è¾äººåèµè´¨')" |
| | | v-model="visible" |
| | | class="person-dialog" |
| | | @close="visible = false" |
| | | @confirm="onConfirm" |
| | | > |
| | | <el-form |
| | | label-width="113px" |
| | | :inline="true" |
| | | :model="formData" |
| | | label-position="left" |
| | | > |
| | | <el-form-item :label="t('人åID')" class="person-item"> |
| | | <el-input |
| | | v-model="formData.user" |
| | | :placeholder="t('请è¾å
¥äººåID')" |
| | | class="person-input" |
| | | disabled |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | | ... |
| | | </el-form> |
| | | </BaseDialog> |
| | | ``` |
| | | |
| | | #### Table è¡¨æ ¼ç»ä»¶ |
| | | |
| | | ```vue |
| | | <div class="table-content"> |
| | | <Table |
| | | :dataSource="dataSource" |
| | | :columns="columns" |
| | | :total="total" |
| | | :pageSize="MaxResultCount" |
| | | :isChecked="true" |
| | | @sort="onSort" |
| | | @page="onPageChange" |
| | | > |
| | | <template #printTime="{ row }"> |
| | | <span>{{ dayjs(row.printTime).format('YYYY-MM-DD HH:MM:ss') }}</span> |
| | | </template> |
| | | <template #action="{ row }"> |
| | | <el-button @click="onEdit(row)" class="btn-edit" type="info">{{ |
| | | t('ä¿®æ¹') |
| | | }}</el-button> |
| | | </template> |
| | | </Table> |
| | | </div> |
| | | |
| | | ... |
| | | |
| | | <script> |
| | | const columns = [ |
| | | { |
| | | title: 'åºå·', |
| | | type: 'seq', |
| | | width: '60', |
| | | }, |
| | | { |
| | | title: '人åID', |
| | | field: 'personID', |
| | | }, |
| | | { |
| | | title: '人åå§å', |
| | | field: 'name', |
| | | }, |
| | | { |
| | | title: 'èµè´¨å·¥åºç ', |
| | | field: 'qualification', |
| | | }, |
| | | { |
| | | title: 'å¡å·', |
| | | field: 'cardNumber', |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | field: 'action', |
| | | width: '100', |
| | | }, |
| | | ] |
| | | </script> |
| | | ``` |
| | | |
| | | ### 忝å½å |
| | | |
| | | > å¼åï¼feature/xx |
| | | > 稳å®ï¼release/xx |
| | | |
| | | ### é®é¢ |
| | | |
| | | å¦éå°é®é¢ï¼æé®é¢æå°ç¾¤éï¼å¤§å®¶ä¸èµ·æ³åæ³è§£å³ï¼ä¸è¦ä¸ä¸ªäººé·çã |
| | | |
| | | ### å¾®å端é
ç½® |
| | | |
| | | **`single-spa`** |
| | | å¾
è¡¥å
... |
| | | |
| | | ### èµæºæ´åå¹³å° |
| | | |
| | | è§£å³å¼åæçå项ç®èµæºæµªè´¹çé®é¢ |
| | | å¾
è¡¥å
... |
| | | æ¹æ¡å¾
æ´æ°... |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { importFileToService, exportFileToClient } from '@/api/file' |
| | | import { ElMessage } from 'element-plus' |
| | | import { downloadFile } from '@/utils' |
| | | import dayjs from 'dayjs' |
| | | |
| | | export const useFile = () => { |
| | | /** |
| | | * 导å
¥æä»¶ |
| | | * @param url |
| | | */ |
| | | const importFile = async (url: string, file: File) => { |
| | | const formData = new FormData() |
| | | formData.append('file', file) |
| | | await importFileToService(url, formData) |
| | | ElMessage('导å
¥æå') |
| | | } |
| | | /** |
| | | * å¯¼åºæä»¶ |
| | | * @param url |
| | | */ |
| | | const exportFile = async (url: string, params: any, name: string) => { |
| | | const res = await exportFileToClient(url, params) |
| | | downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`) |
| | | ElMessage.success('å¯¼åºæå') |
| | | } |
| | | |
| | | return { |
| | | importFile, |
| | | exportFile, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' |
| | | import { injectModel } from '@/libs/Provider/Provider' |
| | | import { MyEntityName } from '../Models/MyEntityName' |
| | | import { ElMessage } from 'element-plus' |
| | | import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' |
| | | import { useFile } from './File' |
| | | |
| | | interface CurrentType { |
| | | row: any |
| | | index: number |
| | | } |
| | | export const useMyEntityName = (props: any, ctx?: any) => { |
| | | const myEntityName = injectModel<MyEntityName>('myEntityName') |
| | | const { exportFile } = useFile() |
| | | /** |
| | | * 头é¨é
ç½® |
| | | */ |
| | | const headers = ref({}) |
| | | /** |
| | | * 卿åé
ç½® |
| | | */ |
| | | const myEntityNameColumns = ref<Record<string, any>>([]) |
| | | /** |
| | | * æç´¢å¼ |
| | | */ |
| | | const search = ref('') |
| | | |
| | | /** |
| | | * æåº |
| | | */ |
| | | const sort = ref(0) |
| | | /** |
| | | * 鿩项 |
| | | */ |
| | | const selection = ref([]) |
| | | /** |
| | | * å½åéä¸çè¡ |
| | | */ |
| | | const current = ref<any>(null) |
| | | /** |
| | | * æ°æ®æº |
| | | */ |
| | | const dataSource: Ref<any[]> = ref([]) |
| | | |
| | | /** |
| | | * è¡¨æ ¼ |
| | | */ |
| | | const tableRef = ref() |
| | | const dialogConfig = reactive({ |
| | | visible: false, |
| | | title: '', |
| | | isAdd: false, |
| | | }) |
| | | |
| | | const dialogSettingConfig = reactive({ |
| | | visible: false, |
| | | title: '', |
| | | }) |
| | | |
| | | /** |
| | | * åé¡µæ°æ® |
| | | */ |
| | | const paginationParams = ref({}) |
| | | |
| | | /** |
| | | * æå¼è¯¦æ
|
| | | * @param row |
| | | */ |
| | | const openDetail = (row: any) => { |
| | | current.value = row |
| | | dialogConfig.visible = true |
| | | dialogConfig.title = row.name |
| | | dialogConfig.isAdd = false |
| | | sort.value = row.sort |
| | | } |
| | | |
| | | const contextMenu = [ |
| | | { |
| | | label: 'å±å¼è¯¦æ
', |
| | | fn: (c: CurrentType) => { |
| | | current.value = null |
| | | sort.value = c.row.sort |
| | | nextTick(() => openDetail(c.row)) |
| | | }, |
| | | divided: true, |
| | | icon: 'o', |
| | | }, |
| | | { |
| | | label: 'å䏿·»å ', |
| | | fn: (c: CurrentType, pageNum: number) => { |
| | | current.value = null |
| | | sort.value = c.index + 1 + (pageNum - 1) * 50 |
| | | dialogConfig.visible = true |
| | | dialogConfig.title = 'æ·»å ' |
| | | dialogConfig.isAdd = false |
| | | }, |
| | | divided: true, |
| | | icon: 'up', |
| | | }, |
| | | { |
| | | label: 'å䏿·»å ', |
| | | fn: (c: CurrentType, pageNum: number) => { |
| | | current.value = null |
| | | sort.value = c.index + 2 + (pageNum - 1) * 50 |
| | | dialogConfig.visible = true |
| | | dialogConfig.title = 'æ·»å ' |
| | | dialogConfig.isAdd = false |
| | | }, |
| | | divided: true, |
| | | icon: 'down', |
| | | }, |
| | | { |
| | | label: 'åå»ºå¯æ¬', |
| | | fn: async ({ row }: CurrentType) => { |
| | | await myEntityName.cloneData([row.id]) |
| | | ElMessage.success('åå»ºå¯æ¬æå') |
| | | tableRef.value?.getList() |
| | | }, |
| | | divided: true, |
| | | icon: 'copy', |
| | | }, |
| | | { |
| | | label: 'å é¤', |
| | | fn: async (c: CurrentType) => { |
| | | const names = selection.value.map((item: { name: string }) => item.name) |
| | | ConfirmBox( |
| | | `æ¯å¦å é¤${names.length ? names.join(',') : c.row.name}` |
| | | ).then(async () => { |
| | | const ids = selection.value.map((item: { id: string }) => item.id) |
| | | await myEntityName.deleteMyEntityNames(ids.length ? ids : [c.row.id]) |
| | | ElMessage.success('å 餿å') |
| | | tableRef.value.getList() |
| | | }) |
| | | }, |
| | | icon: 'close', |
| | | }, |
| | | ] |
| | | |
| | | const onCheck = (records: any) => { |
| | | selection.value = records |
| | | } |
| | | |
| | | const onAddMyEntityName = () => { |
| | | const params = tableRef.value?.getPaginationParams() |
| | | current.value = null |
| | | dialogConfig.visible = true |
| | | dialogConfig.isAdd = true |
| | | dialogConfig.title = 'æ·»å ' |
| | | sort.value = params.totalCount + 1 |
| | | } |
| | | |
| | | const onConfirmMyEntityName = async () => { |
| | | dialogConfig.visible = false |
| | | if (dialogConfig.isAdd) { |
| | | tableRef.value?.scrollToRow({ |
| | | skip: true, |
| | | }) |
| | | } else { |
| | | await tableRef.value?.getList() |
| | | } |
| | | } |
| | | /** |
| | | * è¡ç¹å»æ¶æ´æ°current |
| | | */ |
| | | const onRowClick = ({ row }: any) => { |
| | | if (dialogConfig.visible && current.value) { |
| | | current.value = row |
| | | } |
| | | } |
| | | /** |
| | | * å¯¼åº |
| | | */ |
| | | const onExport = () => { |
| | | const params = tableRef.value?.getParams() |
| | | exportFile( |
| | | '/api/v1/myPluginName/myEntityName/export', |
| | | params, |
| | | 'myPluginName' |
| | | ) |
| | | } |
| | | |
| | | /** |
| | | * å
³é®åæç´¢ |
| | | */ |
| | | const onSearch = () => { |
| | | tableRef.value?.getList({ |
| | | Filter: search.value, |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * éç½®è¡¨æ ¼æ°æ® |
| | | */ |
| | | const reloadList = () => { |
| | | tableRef.value?.getList() |
| | | } |
| | | /** |
| | | * ä¸ä¼ æå |
| | | */ |
| | | const onSuccess = () => { |
| | | tableRef.value?.getList() |
| | | ElMessage.success('导å
¥æå') |
| | | } |
| | | /** |
| | | * 失败 |
| | | * @param err |
| | | */ |
| | | const onError = (err: any) => { |
| | | try { |
| | | const message = JSON.parse(err.message) |
| | | ElMessage.error(message.msg) |
| | | } catch (error) { |
| | | ElMessage.error('导å
¥å¤±è´¥') |
| | | } |
| | | } |
| | | /** |
| | | * ä¸ä¼ é©å |
| | | */ |
| | | const onBeforeUpload = (file: File) => { |
| | | const format = ['xlsx', 'xls', 'csv'] |
| | | if (!format.includes(file.name.split('.')[1])) { |
| | | ElMessage.error('导å
¥æä»¶æ ¼å¼ä¸æ£ç¡®ï¼è¯·å¯¼å
¥.xlsx/.xlsä¸.csvæ ¼å¼çæä»¶') |
| | | return false |
| | | } |
| | | return true |
| | | } |
| | | |
| | | onMounted(() => { |
| | | headers.value = { |
| | | Authorization: `Bearer ${sessionStorage.getItem('Token')}`, |
| | | 'X-Project': sessionStorage.getItem('X-Project'), |
| | | } |
| | | }) |
| | | |
| | | ctx.expose({ |
| | | reloadList, |
| | | }) |
| | | |
| | | return { |
| | | dataSource, |
| | | contextMenu, |
| | | dialogConfig, |
| | | dialogSettingConfig, |
| | | tableRef, |
| | | current, |
| | | search, |
| | | sort, |
| | | myEntityNameColumns, |
| | | paginationParams, |
| | | headers, |
| | | onBeforeUpload, |
| | | onError, |
| | | onSuccess, |
| | | openDetail, |
| | | onSearch, |
| | | onExport, |
| | | onRowClick, |
| | | onConfirmMyEntityName, |
| | | onCheck, |
| | | onAddMyEntityName, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { ref, onMounted, reactive, computed, Ref, watch } from 'vue' |
| | | import { injectModel } from '@/libs/Provider/Provider' |
| | | import { MyEntityNameDrawer } from '../Models/MyEntityNameDrawer' |
| | | import { ElMessage } from 'element-plus' |
| | | import isEqual from 'lodash/isEqual' |
| | | import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' |
| | | import { cloneDeep } from 'lodash' |
| | | |
| | | export const useMyEntityNameDrawer = (props: any, ctx?: any) => { |
| | | const myEntityNameDrawer = |
| | | injectModel<MyEntityNameDrawer>('myEntityNameDrawer') |
| | | /** |
| | | * ç¨æ¥å¯¹æ¯çåå§åæ°æ® |
| | | */ |
| | | const initiateData: Ref<Record<string, any>> = ref({}) |
| | | const formData = ref<Record<string, any>>({}) |
| | | // ref |
| | | const formRef = ref() |
| | | |
| | | const current = computed(() => { |
| | | return props.row || null |
| | | }) |
| | | const visible = computed({ |
| | | get() { |
| | | return props.modelValue |
| | | }, |
| | | set(val) { |
| | | ctx.emit('update:modelValue', val) |
| | | }, |
| | | }) |
| | | /** |
| | | * æ·»å çformåæ®µ |
| | | */ |
| | | const formItems = reactive([ |
| | | { |
| | | label: 'åç§°', |
| | | prop: 'name', |
| | | el: 'input', |
| | | placeholder: '请è¾å
¥åç§°', |
| | | rules: [{ required: true, message: 'åç§°', trigger: 'blur' }], |
| | | }, |
| | | { |
| | | label: 'ç¼å·', |
| | | prop: 'code', |
| | | el: 'input', |
| | | placeholder: '请è¾å
¥ç¼å·', |
| | | rules: [{ required: true, message: 'ç¼å·', trigger: 'blur' }], |
| | | }, |
| | | { |
| | | label: '夿³¨', |
| | | prop: 'remark', |
| | | el: 'input', |
| | | placeholder: '请è¾å
¥å¤æ³¨', |
| | | }, |
| | | ]) |
| | | /** |
| | | * æ ¡éªæ¯å¦ææ°æ®åå |
| | | */ |
| | | const checkIsEqualObject = () => { |
| | | const data = { |
| | | formData: formData.value, |
| | | } |
| | | const check = isEqual(initiateData.value, data) |
| | | return check |
| | | } |
| | | |
| | | const onClose = (done: () => void) => { |
| | | if (visible.value) { |
| | | if (checkIsEqualObject()) { |
| | | visible.value = false |
| | | done && done() |
| | | } else { |
| | | ConfirmBox('æ¯å¦ä¿å设置ï¼') |
| | | .then(() => { |
| | | onConfirm() |
| | | }) |
| | | .catch(() => { |
| | | visible.value = false |
| | | done && done() |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * ä¿å |
| | | */ |
| | | const onConfirm = async () => { |
| | | await formRef.value?.validate() |
| | | const data = { |
| | | name: formData.value.name, |
| | | code: formData.value.code, |
| | | remark: formData.value.remark, |
| | | sort: props.sort, |
| | | } |
| | | if (!current.value) { |
| | | await myEntityNameDrawer.addMyEntityName(data) |
| | | } else { |
| | | const id = current.value.id |
| | | await myEntityNameDrawer.updateMyEntityName(id, data) |
| | | } |
| | | ElMessage.success('ä¿åæå') |
| | | ctx.emit('confirm') |
| | | } |
| | | |
| | | const updateCheckData = () => { |
| | | initiateData.value = { |
| | | formData: { |
| | | ...formData.value, |
| | | }, |
| | | } |
| | | } |
| | | /** |
| | | * å¼¹çªæå¼è·å详æ
|
| | | */ |
| | | const onOpen = async () => { |
| | | if (current.value) { |
| | | const res = await myEntityNameDrawer.getMyEntityNameDetail(current.value) |
| | | |
| | | formData.value = { |
| | | name: res.name, |
| | | code: res.code, |
| | | remark: res.remark, |
| | | id: res.id, |
| | | } |
| | | updateCheckData() |
| | | } else { |
| | | formData.value = {} |
| | | updateCheckData() |
| | | } |
| | | } |
| | | |
| | | watch(() => current.value, onOpen) |
| | | |
| | | return { |
| | | formItems, |
| | | formData, |
| | | visible, |
| | | formRef, |
| | | onOpen, |
| | | onClose, |
| | | onConfirm, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Base } from '@/libs/Base/Base' |
| | | import { |
| | | deleteMyEntityNames, |
| | | addMyEntityName, |
| | | cloneData, |
| | | } from './Service/MyEntityName' |
| | | |
| | | export class MyEntityName extends Base<{ [key: string]: any }> { |
| | | constructor() { |
| | | super({ |
| | | data: [], |
| | | }) |
| | | } |
| | | onMounted() {} |
| | | /** |
| | | * å é¤ |
| | | * @param id |
| | | * @returns |
| | | */ |
| | | async deleteMyEntityNames(ids: string[]) { |
| | | return deleteMyEntityNames(ids) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å æ°æ® |
| | | * @param data |
| | | * @returns |
| | | */ |
| | | addMyEntityName(data: Record<string, any>) { |
| | | return addMyEntityName(data) |
| | | } |
| | | |
| | | /** |
| | | * å
é |
| | | * @param ids |
| | | * @returns |
| | | */ |
| | | cloneData(ids: string[]) { |
| | | return cloneData(ids) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Base } from '@/libs/Base/Base' |
| | | import { |
| | | addMyEntityName, |
| | | getMyEntityName, |
| | | updateMyEntityName, |
| | | } from './Service/MyEntityNameDrawer' |
| | | import { useGlobalState } from '@/libs/Store/Store' |
| | | |
| | | export class MyEntityNameDrawer extends Base<{ [key: string]: any }> { |
| | | constructor() { |
| | | super({ |
| | | data: [], |
| | | myEntityName: {}, |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * æ·»å |
| | | * @param data |
| | | */ |
| | | async addMyEntityName(data: Record<string, any>) { |
| | | return addMyEntityName(data) |
| | | } |
| | | /** |
| | | * æ´æ° |
| | | * @param data |
| | | */ |
| | | async updateMyEntityName(id: string, data: Record<string, any>) { |
| | | return updateMyEntityName(id, data) |
| | | } |
| | | |
| | | /** |
| | | * è·å详æ
|
| | | */ |
| | | async getMyEntityNameDetail(current: any, id?: string) { |
| | | return getMyEntityName(id || current?.id) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Base } from '@/libs/Base/Base' |
| | | const request = Base.request |
| | | |
| | | /** |
| | | * æ·»å |
| | | * @returns |
| | | */ |
| | | export const addMyEntityName = (data: any) => { |
| | | return request.post('/api/v1/myPluginName/myEntityName', data) |
| | | } |
| | | |
| | | /** |
| | | * æ¹éå é¤ |
| | | * @returns |
| | | */ |
| | | export const deleteMyEntityNames = (ids: string[]) => { |
| | | return request({ |
| | | data: ids, |
| | | url: '/api/v1/myPluginName/myEntityName', |
| | | method: 'delete', |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * å
é |
| | | * @returns |
| | | */ |
| | | export const cloneData = (data: any) => { |
| | | return request.post('/api/v1/myPluginName/myEntityName/clone', data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Base } from '@/libs/Base/Base' |
| | | const request = Base.request |
| | | |
| | | /** |
| | | * æ·»å |
| | | * @returns |
| | | */ |
| | | export const addMyEntityName = (data: any) => { |
| | | return request.post('/api/v1/myPluginName/myEntityName', data) |
| | | } |
| | | |
| | | /** |
| | | * è·å详æ
|
| | | * @returns |
| | | */ |
| | | export const getMyEntityName = (id: string) => { |
| | | return request.get(`/api/v1/myPluginName/myEntityName/${id}`) |
| | | } |
| | | |
| | | /** |
| | | * æ´æ° |
| | | * @returns |
| | | */ |
| | | export const updateMyEntityName = (id: string, data: Record<string, any>) => { |
| | | return request.put(`/api/v1/myPluginName/myEntityName/${id}`, data) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .MyPluginName { |
| | | background-color: #fff; |
| | | border-radius: 5px 5px 0 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | border: 1px solid #dbdbdb; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | Component, |
| | | DefineComponent, |
| | | defineComponent, |
| | | markRaw, |
| | | ref, |
| | | SetupContext, |
| | | onMounted, |
| | | } from 'vue' |
| | | import styles from './MyPluginName.module.scss' |
| | | // import MyEntityName from './Pages/MyEntityName/MyEntityName' |
| | | import Tab from '@/components/Tab/Tab' |
| | | import { useProvideModels } from '@/libs/Provider/app' |
| | | import { usePermission } from '@/libs/Permission/Permission' |
| | | import { permissionCodes } from '../enum' |
| | | import { ModuleType, TabItem } from '../type/Type' |
| | | import { getEntityNames } from '@/hooks/hook' |
| | | import TabPane from '@/components/Tab/TabPane' |
| | | |
| | | const Models: ModuleType = import.meta.glob('./config/*.json', { |
| | | eager: true, |
| | | }) |
| | | |
| | | const entityNames = getEntityNames(Models) |
| | | |
| | | export default defineComponent({ |
| | | name: 'MyPluginName', |
| | | |
| | | setup(props, ctx: SetupContext) { |
| | | useProvideModels() |
| | | usePermission(props, permissionCodes) |
| | | |
| | | const rf = ref<{ |
| | | [key: string]: any |
| | | }>({}) |
| | | |
| | | const tabData = ref<TabItem[]>([]) |
| | | |
| | | const onTabChange = (v: string) => { |
| | | rf.value?.[v]?.reloadList() |
| | | } |
| | | |
| | | const initTableData = async () => { |
| | | for (const i in entityNames) { |
| | | const name = entityNames[i] |
| | | const module = await import(`./Pages/${name}/${name}.tsx`) |
| | | const MyEntityName = markRaw(module.default) |
| | | tabData.value.push({ |
| | | label: name, |
| | | name, |
| | | component: MyEntityName, |
| | | }) |
| | | } |
| | | } |
| | | |
| | | initTableData() |
| | | |
| | | return () => { |
| | | return ( |
| | | <div class={styles.MyPluginName}> |
| | | <Tab data={tabData.value} type="list" onTab={onTabChange}> |
| | | {tabData.value.map((widgetInfo) => { |
| | | const Widget: any = widgetInfo.component |
| | | return ( |
| | | <TabPane label={widgetInfo.label} name={widgetInfo.name}> |
| | | <Widget |
| | | ref={(r: any) => (rf.value['MyEntityName'] = r)} |
| | | ></Widget> |
| | | </TabPane> |
| | | ) |
| | | })} |
| | | </Tab> |
| | | </div> |
| | | ) |
| | | } |
| | | }, |
| | | }) |
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/Views/Pages/Dialog/MyEntityNameDrawer/MyEntityNameDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/Views/Pages/Dialog/MyEntityNameDrawer/MyEntityNameDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/Views/Pages/MyEntityName/Config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/Views/Pages/MyEntityName/MyEntityName.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/Views/Pages/MyEntityName/MyEntityName.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/Views/config/MyEntityName.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/enum.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/app/template/MyPluginName/type/Type.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/components.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/env.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/index.html
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/main.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/package-lock.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/package.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/config.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/defaulttheme.css
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/favicon.ico
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/language/Common.en-US.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/language/language.en-US.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/language/language.zh-CN.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/svgpngbacktheme.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/svgpngwhitetheme.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/theme.css
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/widgets/mock.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/widgets/mock/index.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/public/对theme.css的说明
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/script/autoMenu.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/script/build.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/script/plugins/vite-plugin-cs-module-filter.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/script/plugins/vite-plugin-widget-provider.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/App.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/api/file.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/api/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/api/project-api.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/demo.css
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/demo_index.html
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.css
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.eot
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.ttf
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.woff
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/iconfont/iconfont.woff2
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/+.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/X.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/add-annex.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/add-p.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/banben.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/batch-b.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/batch-list.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/chart.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/close.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/closeDark.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/close_x.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/copy.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/d.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/del.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/delete.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/down.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/drawer_bg.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/edit.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/export.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/f.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/fb.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/fj.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/fnV.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/g.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/gongyiduan.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon-module.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_add.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_add2.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_del.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_exclamation.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_move.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_next.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_nodata.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_pre.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_process.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/icon_search.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/import.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/in.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/left-arrow.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/lightsetting.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/o.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/out.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/pdf.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/pre_icon.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/procedure-direction.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/process.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/processStep1.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/processStep2.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/processStep3.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/processStep4.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/refresh.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/right-arrow.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/s.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/s_input.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/scale-menu.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/scale.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/search.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/setting.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/settings.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/sop.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/sys.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/tag_close.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/tip.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/up.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/variable.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/view.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/images/white_search.png
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/styles/common.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/styles/element.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/styles/index.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/add.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/add1.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/barcode.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/bianji.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/bom.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/del.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/del1.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/f.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/field.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/flow.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/materialManagement.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/more.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/move.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/order.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/p.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/peifangguanli.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/processConfiguration.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/prod.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/q.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/system.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/t.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/tip.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/assets/svg/title.svg
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/cms/index.css
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/cms/sdk.es.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/cms/sdk.es.ssr.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseConfigSelect/BaseConfigSelect.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseConfigSelect/BaseConfigSelect.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseContent/BaseContent.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseContent/BaseContent.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseDialog/BaseDialog.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseDialog/BaseDialog.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseDialog/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseDrawer/BaseDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseDrawer/BaseDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseInput/BaseInput.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseInput/BaseInput.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/BaseQueryDrawer/BaseQueryDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ConfirmBox/ConfirmBox.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ConfirmBox/ConfirmBox.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Container/Container.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Container/Container.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Content/Content.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Content/Content.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DatePicker/PrefixIcon.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DatePicker/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DateTimePickRange/DateTimePickRange.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DateTimePickRange/DateTimePickRange.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Dialog/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DyForm/DyForm.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DyForm/DyForm.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/DyForm/DyForm.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ElSelect/ElOption.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ElSelect/ElSelect.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ElSelect/index.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Empty/Empty.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Empty/Empty.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Flow/Flow.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Flow/Flow.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Icon/Icon.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/IconButton/IconButton.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/IconButton/IconButton.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Menu/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/MyPages/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Pdf/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/PreviewDialog/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ProjectConfig/ProjectConfig.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/ProjectConfig/ProjectConfig.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Radio/Radio.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Radio/Radio.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Search/Search.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Search/Search.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/SearchInput/SearchInput.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/SearchInput/SearchInput.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Select/Option.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Select/Select.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/SelectInput/SelectInput.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/SelectInput/SelectInput.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Setting/Setting.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/SettingItem/SettingItem.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/SettingItem/state.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Tab/Tab.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Tab/Tab.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Tab/TabPane.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/Readme.md
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/Table.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/api.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/components/custom-vxe-column.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/components/pagination.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/index.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/index.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/index.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Table/state.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/TableFilter/TableFilter.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/TableFilter/TableFilter.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Tag/Tag.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Tag/Tag.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/TdButton/TdButton.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/TdButton/TdButton.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Text/Text.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Text/Text.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Title/Title.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Title/Title.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/TouchScale/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Upload/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Variable/Variable.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/Variable/Variable.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenu.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenu.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuDefine.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuGroup.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuIconCheck.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuIconRight.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuInstance.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuItem.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuMutex.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuSeparator.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextMenuUtils.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextSubMenu.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/ContextSubMenuWrapper.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/MenuBar.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/MenuBar.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/MenuBar.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/MenuBarIconMenu.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/env.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/shims-vue.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/tsconfig.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/components/vue3-context-menu/vite.config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/config/menu.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/env.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/home.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/hooks/hook.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/index.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Base/Base.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Create/Create.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Hook/Hook.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Language/Language.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Language/i18n/langEN.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Language/i18n/langTH.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Language/i18n/langZH.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Permission/Permission.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Permission/Permission.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Provider/Provider.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Provider/app.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Store/State.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Store/Store.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/Store/Store.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/libs/enum.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/main.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/plugins/vxe-table.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/provider/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/provider/index.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/router.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/utils/ElMessage.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/utils/enum/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/utils/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/utils/permission.js
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/utils/request.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/utils/storage.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/File.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterial.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Controllers/WmsMaterialQueryDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterial.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/Service/WmsMaterialQueryDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterial.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Models/WmsMaterialQueryDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/HIAWms.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/HIAWms.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialDrawer/WmsMaterialDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialQueryDrawer/WmsMaterialQueryDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/Views/config/WmsMaterial.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/enum.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/HIAWms/type/Type.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/Http/Http.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/Http/Settings/Http.settings.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/Http/components/InputCode.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/Http/components/OptionConfigDialog.vue
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/Http/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Controllers/File.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Controllers/WmsContainer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Models/Service/WmsContainer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Models/Service/WmsContainerDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Models/WmsContainer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Models/WmsContainerDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/Pages/Dialog/WmsContainerDrawer/WmsContainerDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/Config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/Pages/WmsContainer/WmsContainer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/WmsContainer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/WmsContainer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/Views/config/WmsContainer.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/enum.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsContainer/type/Type.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/File.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/WmsArea.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/WmsPlace.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/WmsPlaceDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/WmsStore.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/Service/WmsArea.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/Service/WmsAreaDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/Service/WmsPlace.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/Service/WmsPlaceDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/Service/WmsStore.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/Service/WmsStoreDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/WmsArea.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/WmsAreaDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/WmsPlace.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/WmsPlaceDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/WmsStore.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Models/WmsStoreDrawer.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaDrawer/WmsAreaDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsAreaDrawer/WmsAreaDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceDrawer/WmsPlaceDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsPlaceDrawer/WmsPlaceDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreDrawer/WmsStoreDrawer.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/Dialog/WmsStoreDrawer/WmsStoreDrawer.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/Config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsArea/WmsArea.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/Config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsPlace/WmsPlace.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/Config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/Pages/WmsStore/WmsStore.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/WmsStoreInfo.module.scss
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/WmsStoreInfo.tsx
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/config/WmsArea.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/config/WmsPlace.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/Views/config/WmsStore.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/enum.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/WmsStoreInfo/type/Type.d.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/hook.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/src/widgets/index.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/tsconfig.json
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/vite.config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/vite.lib.config.ts
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/web/yarn.lock
Weben_CMS专用代码生成器/版本说明.txt |