zs
2025-05-15 9eaf758e97367dbc2eca2bdbdc92ab39e08be9d0
Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
已添加2个文件
已修改12个文件
356 ■■■■ 文件已修改
PipeLineLems.PDA/pages/bind/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems.PDA/pages/home/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems.PDA/pages/pick/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/CallMaterialOrderController.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/CallMaterialOrderRecordController.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/CMS - Backup.Plugin.HIAWms.Domain.csproj 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/CMS.Plugin.HIAWms.Domain.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/TestStudent/TestStudent.cs 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PipeLineLems.PDA/pages/bind/index.vue
@@ -16,7 +16,7 @@
                <EasyPicker :visible.sync="ctVisible" :list="ContainerType" labelField="value" valueField="code"
                    @select="getTypeVal" />
                <scan-input-form-item v-show="Boolean(containerInfo.containerNo)" class="forma-item" label="物料二维码" v-model="form.materialNo" :msg="msg.material"
                <scan-input-form-item class="forma-item" label="物料二维码" v-model="form.materialNo" :msg="msg.material"
                    :msg-type="msgType.material" @search="onSearchMaterial" @clear="onClearMaterial" />
            <!--     <scan-input-form-item v-show="Boolean(containerInfo.containerNo)" placeholder="请选择" :clearable="false" :hasScan="false" :hasSearch="false"
PipeLineLems.PDA/pages/home/index.vue
@@ -111,10 +111,10 @@
            this.blocks = [{
                workShopName: '分拣',
                wmsPdaPowerOutput:[
                        // {icon:'icon-worker',code:'bind',name:'组盘',color:'#1e90ff'},
                         {icon:'icon-worker',code:'bind',name:'组盘',color:'#1e90ff'},
                        {icon:'icon-worker',code:'pick',name:'分拣',color:'#1e90ff'},
                        // {icon:'icon-worker',code:'bindInForLocation',name:'分拣',color:'#1e90ff'},
                        // {icon:'icon-worker',code:'bindWXJ',name:'分拣',color:'#1e90ff'},
                         {icon:'icon-worker',code:'bindInForLocation',name:'组盘2',color:'#1e90ff'},
                         {icon:'icon-worker',code:'bindWXJ',name:'组盘3',color:'#1e90ff'},
                        ]
            },
            {
PipeLineLems.PDA/pages/pick/index.vue
@@ -20,17 +20,6 @@
                    :msg-type="msgType.material"
                    @search="onSearchMaterial"
                    @clear="onClearMaterial"
                />
                <scan-input-form-item
                    placeholder="请选择"
                    :clearable="false"
                    :hasScan="false"
                    :hasSearch="false"
                    @click.native="visible = true"
                    class="forma-item"
                    label="选择库口"
                    v-model="form.site"
                />
                <EasyPicker :visible.sync="visible" :list="placeList.filter(item=>item.placeNo!='ZDCR')" labelField="placeNo" valueField="placeNo" @select="getSiteVal"/>
                <!-- <EasyPicker :visible.sync="visible" :list="placeList" labelField="placeNo" valueField="placeNo" @select="getSiteVal" /> -->
@@ -197,13 +186,29 @@
                return false;
            }
            this.msg.material = '';
            debugger
             // è§£æžç®¡æ®µç¼–码、管段名称和船号
                const parts = this.form.pipeSpecCode.split(',');
                if (parts.length < 2) {
                    this.msg.material = '码格式不正确,请检查输入';
                    return false;
                }
                const pipeCode = parts[0];
                const pipeName = parts.length > 1? parts[1] : '';
                const shipNo = parts.length > 2? parts[2] : '';
            try {
                let { result } = await getContainerInfo({ ContainerNo: this.form.pipeSpecCode });
                if (result.containerNo == this.form.containterCode) {
                    return this.$modal('当前空托与托盘重复');
                }
                var isExit = this.contaninerData.some((item) => item.containerNo == result.containerNo);
                isExit ? '' : this.contaninerData.push(result);
                // let { result } = await getContainerInfo({ ContainerNo: this.form.pipeSpecCode });
                // if (result.containerNo == this.form.containterCode) {
                //     return this.$modal('当前空托与托盘重复');
                // }
                // var isExit = this.materialList.some((item) => item.materialNo == pipeCode);
                // if(isExit){
                //     return this.$modal('当前管段编码'+pipeCode+'已经在托盘'+this.form.containerNo+'中');
                // }
                 // æ›´æ–°æç¤ºä¿¡æ¯
                        this.msg.material = `管段编码:${pipeCode},管段名称:${pipeName},船号:${shipNo}`;
                        this.form.pipeSpecCode=pipeCode;
            } catch (e) {
                //TODO handle the exception
                console.log(e);
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Dtos/WorkPlan/PickInput.cs
@@ -18,6 +18,11 @@
        /// </summary>
        public string PipeSpecCode { get; set; }
        /// <summary>
        /// åˆ†æ‹£æ‰˜ç›˜å·
        /// </summary>
        public string ContinerNo { get; set; }
    }
}
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -34,12 +34,20 @@
public class SharedService : CMSPluginAppService
{
    /// <summary>
    /// åˆ†æ‹£åŠŸèƒ½
    /// </summary>
    /// <param name="_serviceProvider"></param>
    /// <param name="input"></param>
    /// <param name="myCurrentUser"></param>
    /// <returns></returns>
    public async Task<MesOrderResponse> CommonPick(IServiceProvider _serviceProvider, PickInput input, MyCurrentUser myCurrentUser)
    {
        //1、记录分拣记录表
        //2、更新作业计划表的状态 =已分拣
        //3、写入 åˆ†æ‹£å˜é‡
        //4、写入追溯报表
        //5、物料组盘
        VariableService _variableService = _serviceProvider.GetRequiredService<VariableService>();
        var _workSectionManager = _serviceProvider.GetRequiredService<IWorkSectionManager>();
@@ -48,13 +56,13 @@
        var materialProvider = _serviceProvider.GetRequiredService<IMaterialProvider>();
        var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
        Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
                    {
                        { "分拣托盘号","托盘1"},
                        { "分拣方向", "短管装配"},
                        { "分拣人", myCurrentUser.UserAccount }
                    };
        _variableService.WriteValueAsync(keyValuePairs);
        //Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
        //            {
        //                { "分拣托盘号","托盘1"},
        //                { "分拣方向", "短管装配"},
        //                { "分拣人", myCurrentUser.UserAccount }
        //            };
        //_variableService.WriteValueAsync(keyValuePairs);
        //根据工序名获取工序对象
        var workSection = await _workSectionManager.GetByNameAsync("分拣工序");
@@ -129,6 +137,14 @@
            {
                _value = "短管装配";
            }
            if (item.Name == "分拣托盘号")
            {
                _value = input.ContinerNo;
            }
            if (item.Name == "分拣人")
            {
                _value = myCurrentUser.UserAccount;
            }
            //item.Key
            TraceParamModel traceParamModel = new TraceParamModel()
            {
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/CallMaterialOrderController.cs
@@ -70,7 +70,7 @@
        /// </summary> 
        /// <param name="input">输入.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpPost] 
        public virtual Task<CallMaterialOrderDto> CreateAsync(CallMaterialOrderCreateDto input) 
        { 
@@ -83,7 +83,7 @@
        /// <param name="id">标识符.</param> 
        /// <param name="input">输入.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpPut] 
        [Route("{id}")] 
        public virtual Task<CallMaterialOrderDto> UpdateAsync(Guid id, CallMaterialOrderUpdateDto input) 
@@ -96,7 +96,7 @@
        /// </summary> 
        /// <param name="ids">Id集合.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpPost] 
        [Route("Clone")] 
        public virtual Task<List<CallMaterialOrderDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) 
@@ -109,7 +109,7 @@
        /// </summary> 
        /// <param name="id">标识符.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpDelete] 
        [Route("{id}")] 
        public virtual Task DeleteAsync(Guid id) 
@@ -122,7 +122,7 @@
        /// </summary> 
        /// <param name="ids">The ids.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpDelete] 
        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) 
        { 
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/CallMaterialOrderRecordController.cs
@@ -63,7 +63,7 @@
        /// </summary> 
        /// <param name="input">输入.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpPost] 
        public virtual Task<CallMaterialOrderRecordDto> CreateAsync(CallMaterialOrderRecordCreateDto input) 
        { 
@@ -76,7 +76,7 @@
        /// <param name="id">标识符.</param> 
        /// <param name="input">输入.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpPut] 
        [Route("{id}")] 
        public virtual Task<CallMaterialOrderRecordDto> UpdateAsync(Guid id, CallMaterialOrderRecordUpdateDto input) 
@@ -89,7 +89,7 @@
        /// </summary> 
        /// <param name="ids">Id集合.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpPost] 
        [Route("Clone")] 
        public virtual Task<List<CallMaterialOrderRecordDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) 
@@ -102,7 +102,7 @@
        /// </summary> 
        /// <param name="id">标识符.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpDelete] 
        [Route("{id}")] 
        public virtual Task DeleteAsync(Guid id) 
@@ -115,7 +115,7 @@
        /// </summary> 
        /// <param name="ids">The ids.</param> 
        /// <returns></returns> 
        //[Authorize]
       [Authorize]
        [HttpDelete] 
        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) 
        { 
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanController.cs
@@ -67,7 +67,7 @@
        /// </summary> 
        /// <param name="input">输入.</param> 
        /// <returns></returns> 
        //[Authorize]
        [Authorize]
        [HttpPost]
        public virtual Task<WorkPlanDto> CreateAsync(WorkPlanCreateDto input)
        {
@@ -80,7 +80,7 @@
        /// <param name="id">标识符.</param> 
        /// <param name="input">输入.</param> 
        /// <returns></returns> 
        //[Authorize]
        [Authorize]
        [HttpPut]
        [Route("{id}")]
        public virtual Task<WorkPlanDto> UpdateAsync(Guid id, WorkPlanUpdateDto input)
@@ -93,7 +93,7 @@
        /// </summary> 
        /// <param name="ids">Id集合.</param> 
        /// <returns></returns> 
        //[Authorize]
        [Authorize]
        [HttpPost]
        [Route("Clone")]
        public virtual Task<List<WorkPlanDto>> CloneAsync([FromBody] IEnumerable<Guid> ids)
@@ -106,7 +106,7 @@
        /// </summary> 
        /// <param name="id">标识符.</param> 
        /// <returns></returns> 
        //[Authorize]
        [Authorize]
        [HttpDelete]
        [Route("{id}")]
        public virtual Task DeleteAsync(Guid id)
@@ -119,7 +119,7 @@
        /// </summary> 
        /// <param name="ids">The ids.</param> 
        /// <returns></returns> 
        //[Authorize]
        [Authorize]
        [HttpDelete]
        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids)
        {
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs
@@ -3,6 +3,7 @@
using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
using CmsQueryExtensions.Entitys;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Reflection;
@@ -54,6 +55,7 @@
        /// </summary>
        /// <param name="input">标识符.</param>
        /// <returns></returns>
        [Authorize]
        [HttpPost]
        [Route("Pick")]
        public virtual async Task<MesOrderResponse> Pick([FromBody] PickInput input)
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
@@ -21,6 +21,7 @@
using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder;
using System.Collections.Generic;
using CMS.Framework.AspNetCore.Users;
using NPOI.SS.Formula.Functions;
namespace CMS.Plugin.PipeLineLems.ProjectService
{
@@ -146,7 +147,7 @@
                _logger.LogInformation($"{changed.Name} å˜é‡å€¼å‘生变化,旧值{oldValue}=新值{newValue},TraceId={traceId}");
                if (changed.Name == "请求生成打码产品码信号" && changed.New?.Value.SafeString().ToBool() == true)
                if (changed.Name == "请求生成打码产品码信号")
                {
                    // TODO: å¤„理变量值变化
@@ -159,15 +160,21 @@
                        ï¼ˆ4)并发管理: å¦‚果业务层并发量大,必须优化代码设计和实施,以减少在高并发情况下的系统资源消耗,防止系统性能问题。
                        ï¼ˆ5)代码安全: å®‰è£…并使用 CMS.CodeAnalysis åˆ†æžå™¨æ¥åˆ†æž IVariableDataCache.TagChanged çš„使用情况。该工具能在使用不当时提供编译错误,帮助您提高代码质量。*/
                    _ = Task.Run(async () =>
                    if (changed.New?.Value.SafeString().ToBool() == true)
                    {
                        await HanlderForPringBarCodeByCreateProductAsync();
                        // ä¾‹1:同步处理
                        //await ProcessAsync();
                        _ = Task.Run(async () =>
                        {
                            await HanlderForPringBarCodeByCreateProductAsync();
                        });
                    }
                    else
                    {
                        // ä¾‹2:调用外部API
                        //await ExecuteExternalApiAsync();
                    });
                        _ = Task.Run(async () =>
                        {
                            await HanlderForPringBarCodeByCreateProductWhenFalseAsync();
                        });
                    }
                }
                if (changed.Name == "打码进站信号" && changed.New?.Value.SafeString().ToBool() == true)
@@ -221,7 +228,7 @@
                }
                if (changed.Name == "请求生成切割产品码信号" && changed.New?.Value.SafeString().ToBool() == true)
                if (changed.Name == "请求生成切割产品码信号")
                {
                    // TODO: å¤„理变量值变化
@@ -234,15 +241,20 @@
                        ï¼ˆ4)并发管理: å¦‚果业务层并发量大,必须优化代码设计和实施,以减少在高并发情况下的系统资源消耗,防止系统性能问题。
                        ï¼ˆ5)代码安全: å®‰è£…并使用 CMS.CodeAnalysis åˆ†æžå™¨æ¥åˆ†æž IVariableDataCache.TagChanged çš„使用情况。该工具能在使用不当时提供编译错误,帮助您提高代码质量。*/
                    _ = Task.Run(async () =>
                    if (changed.New?.Value.SafeString().ToBool() == true)
                    {
                        await HanlderForCutByCreateProductAsync();
                        // ä¾‹1:同步处理
                        //await ProcessAsync();
                        // ä¾‹2:调用外部API
                        //await ExecuteExternalApiAsync();
                    });
                        _ = Task.Run(async () =>
                        {
                            await HanlderForCutByCreateProductAsync();
                        });
                    }
                    else
                    {
                        _ = Task.Run(async () =>
                        {
                            await HanlderForCutByCreateProductWhenFlaseAsync();
                        });
                    }
                }
            }
        }
@@ -447,6 +459,7 @@
                    Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
                    {
                        { "打码_ProductID", productID},
                        { "CMS反馈请求生成打码产品码信号结果", true},
                    };
                    var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
@@ -468,6 +481,19 @@
                    throw;
                }
            }
        }
        /// <summary>
        /// è¯·æ±‚生成打码产品码信号(值为false的时候)
        /// </summary>
        /// <returns></returns>
        private async Task HanlderForPringBarCodeByCreateProductWhenFalseAsync()
        {
            Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
            {
                        { "CMS反馈请求生成打码产品码信号结果", false},
                    };
            var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
        }
@@ -704,6 +730,7 @@
                    Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
                    {
                        { "切割_ProductID", productID},
                        { "CMS反馈请求生成切割产品码信号结果", true},
                    };
                    var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
@@ -734,5 +761,19 @@
                }
            }
        }
        /// <summary>
        /// è¯·æ±‚生成切割产品码信号(值为false的时候)
        /// </summary>
        /// <returns></returns>
        private async Task HanlderForCutByCreateProductWhenFlaseAsync()
        {
            Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
                    {
                        { "CMS反馈请求生成切割产品码信号结果", false},
                    };
            var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
        }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/CMS - Backup.Plugin.HIAWms.Domain.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<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>
    <ItemGroup>
      <Folder Include="TestStudent\" />
    </ItemGroup>
</Project>
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/CMS.Plugin.HIAWms.Domain.csproj
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
    <Import Project="../../common.props" />
    <Import Project="../../configureawait.props" />
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/TestStudent/TestStudent.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,128 @@
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.Shared.TestStudent;
using CMS.Plugin.MyExtension.Domain;
using CmsQueryExtensions.Extension;
using MathNet.Numerics;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using Volo.Abp;
using Volo.Abp.Domain.Entities.Auditing;
namespace CMS.Plugin.HIAWms.Domain.TestStudent
{
    /// <summary>
    /// TestStudent
    /// </summary>
    public class TestStudent : MyFullAuditedAggregateRoot<Guid>
    {
        /// <summary>
        /// é‡å¤æ€§æ ¡éªŒæ–¹å¼
        /// </summary>
        ///
        [Comment("重复性校验方式")]
        [Column("WorkingHours",)]
        [SugarColumn(ColumnName = "RepCheckType", ColumnDescription = "重复性校验方式")]
        public string? RepCheckType { get; set; }
        /// <summary>
        /// è€å¸ˆID(可空)
        /// </summary>
        [SugarColumn(ColumnName = "TeacherId", ColumnDescription = "老师ID(可空)")]
        public long? TeacherId { get; set; }
        /// <summary>
        /// è€å¸ˆåå­—(可空)
        /// </summary>
        [SugarColumn(ColumnName = "TeacherName", ColumnDescription = "老师名字(可空)")]
        public string? TeacherName { get; set; }
        /// <summary>
        /// å­¦ç”Ÿå§“名
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "Name", ColumnDescription = "学生姓名", Length = 2000)]
        public string Name { get; set; }
        /// <summary>
        /// åˆ«å(可空)
        /// </summary>
        [SugarColumn(ColumnName = "AliName", ColumnDescription = "别名(可空)", Length = 2000)]
        public string? AliName { get; set; }
        /// <summary>
        /// å­¦ç”Ÿå¹´é¾„
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "Age", ColumnDescription = "学生年龄")]
        public int Age { get; set; }
        /// <summary>
        /// å¹´çºª(可空)
        /// </summary>
        [SugarColumn(ColumnName = "NianJi", ColumnDescription = "年纪(可空)")]
        public int? NianJi { get; set; }
        /// <summary>
        /// æ ¡é•¿ID(可空)
        /// </summary>
        [SugarColumn(ColumnName = "RectorId", ColumnDescription = "校长ID(可空)")]
        public long? RectorId { get; set; }
        /// <summary>
        /// é›¶èб钱
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "HasMoney", ColumnDescription = "零花钱", Length = 10, DecimalDigits = 3)]
        public decimal HasMoney { get; set; }
        /// <summary>
        /// èº«ä»·(可空)
        /// </summary>
        [SugarColumn(ColumnName = "ShenJia", ColumnDescription = "身价(可空)", Length = 10, DecimalDigits = 3)]
        public decimal? ShenJia { get; set; }
        /// <summary>
        /// æ˜¯å¦åœ¨æ ¡
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "IsInSchool", ColumnDescription = "是否在校")]
        public bool IsInSchool { get; set; }
        /// <summary>
        /// æ˜¯å¦å¤–地人(可空)
        /// </summary>
        [SugarColumn(ColumnName = "IsWDR", ColumnDescription = "是否外地人(可空)")]
        public bool? IsWDR { get; set; }
        /// <summary>
        /// æ€§åˆ«
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "Gender", ColumnDescription = "性别")]
        public GenderEnum Gender { get; set; }
        /// <summary>
        /// å…¶ä»–性别(可空)
        /// </summary>
        [SugarColumn(ColumnName = "OtherGender", ColumnDescription = "其他性别(可空)")]
        public GenderEnum? OtherGender { get; set; }
        /// <summary>
        /// å‡ºç”Ÿæ—¥æœŸ
        /// </summary>
        [Required]
        [SugarColumn(ColumnName = "BrithDate", ColumnDescription = "出生日期")]
        public DateTime BrithDate { get; set; }
        /// <summary>
        /// å…¥å­¦æ—¥æœŸ(可空)
        /// </summary>
        [SugarColumn(ColumnName = "InSchoolDate", ColumnDescription = "入学日期(可空)")]
        public DateTime? InSchoolDate { get; set; }
    }
}
Weben_CMSרÓôúÂëÉú³ÉÆ÷/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj
@@ -12,12 +12,12 @@
    <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
        <CMSRootPath>D:\Program Files\CMS Editor</CMSRootPath>
        <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath>
        <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms_test</OutputPath>
    </PropertyGroup>
    <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('OSX'))">
        <CMSRootPath>/Volumes/SSD/CMS Editor</CMSRootPath>
        <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath>
        <OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms_test</OutputPath>
    </PropertyGroup>
    <ItemGroup>