payne
2024-04-25 bf915c71f7ab3fcd9a7f81ed18f3a10c68d50dc0
客户档案调整
已修改11个文件
304 ■■■■■ 文件已修改
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/BaseCustomer/addForm.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/BaseCustomer/editForm.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/BaseCustomer/index.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/BaseCustomerService.cs 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerOutput.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/BaseCustomer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/SeedData/SysDictDataSeedData.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/SeedData/SysDictTypeSeedData.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/BaseCustomerImport.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/BaseCustomer/addForm.vue
@@ -8,9 +8,6 @@
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
        <a-form :form="form">
        <a-form-item label="客户编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入客户编号" v-decorator="['custCode', {rules: [{required: true, message: '请输入客户编号!'}]}]" />
        </a-form-item>
        <a-form-item label="客户中文名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入客户中文名称" v-decorator="['custChinaName', {rules: [{required: true, message: '请输入客户中文名称!'}]}]" />
        </a-form-item>
@@ -20,11 +17,10 @@
        <a-form-item label="助记码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入助记码" v-decorator="['mnemonicCode']" />
        </a-form-item>
        <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入类型" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请输入类型!'}]}]" />
        </a-form-item>
        <a-form-item label="类型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入类型名称" v-decorator="['custTypeName']" />
        <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-select style="width: 100%" placeholder="请选择类型" v-decorator="['custType', {rules: [{ required: true, message: '请选择类型!' }]}]">
            <a-select-option v-for="(item,index) in custTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
          </a-select>
        </a-form-item>
        <a-form-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入联系人" v-decorator="['linkMan']" />
@@ -71,6 +67,7 @@
  xs: { span: 24 },
  sm: { span: 15 }
  },
  custTypeData: [],
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
@@ -84,6 +81,8 @@
        this.$nextTick(() => {
        });
        const custTypeOption = this.$options
        this.custTypeData = custTypeOption.filters['dictData']('base_customer_type')
      },
      /**
       * 提交表单
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/BaseCustomer/editForm.vue
@@ -8,9 +8,6 @@
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-form-item label="客户编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入客户编号" v-decorator="['custCode', {rules: [{required: true, message: '请输入客户编号!'}]}]" />
        </a-form-item>
        <a-form-item label="客户中文名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入客户中文名称" v-decorator="['custChinaName', {rules: [{required: true, message: '请输入客户中文名称!'}]}]" />
        </a-form-item>
@@ -20,11 +17,10 @@
        <a-form-item label="助记码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入助记码" v-decorator="['mnemonicCode']" />
        </a-form-item>
        <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input-number placeholder="请输入类型" style="width: 100%" v-decorator="['custType', {rules: [{required: true, message: '请输入类型!'}]}]" />
        </a-form-item>
        <a-form-item label="类型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入类型名称" v-decorator="['custTypeName']" />
        <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
          <a-select style="width: 100%" placeholder="请选择类型" v-decorator="['custType', {rules: [{ required: true, message: '请选择类型!' }]}]">
            <a-select-option v-for="(item,index) in custTypeData" :key="index" :value="Number(item.code)">{{ item.name }}</a-select-option>
          </a-select>
        </a-form-item>
        <a-form-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入联系人" v-decorator="['linkMan']" />
@@ -74,6 +70,7 @@
  sm: { span: 15 }
  },
  record: {},
  custTypeData: [],
        visible: false,
        confirmLoading: false,
        form: this.$form.createForm(this)
@@ -89,16 +86,16 @@
        });
        //深度拷贝 移除VUE的监听,防止INDEX页面值变动
        this.record = JSON.parse(JSON.stringify(record))
        const custTypeOption = this.$options
        this.custTypeData = custTypeOption.filters['dictData']('base_customer_type')
        this.$nextTick(() => {
          this.form.setFieldsValue(
            {
              id: record.id,
              custCode: record.custCode,
              custChinaName: record.custChinaName,
              custEnglishName: record.custEnglishName,
              mnemonicCode: record.mnemonicCode,
              custType: record.custType,
              custTypeName: record.custTypeName,
              linkMan: record.linkMan,
              phone: record.phone,
              email: record.email,
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/BaseCustomer/index.vue
@@ -27,12 +27,9 @@
                </a-form-item>
              </a-col><a-col :md="8" :sm="24">
                <a-form-item label="类型">
                  <a-input-number v-model="queryParam.custType" style="width: 100%" allow-clear placeholder="请输入类型"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="类型名称">
                  <a-input v-model="queryParam.custTypeName" allow-clear placeholder="请输入类型名称"/>
                  <a-select :allowClear="true" style="width: 100%" v-model="queryParam.custType" placeholder="请选择类型">
                    <a-select-option v-for="(item,index) in custTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
@@ -145,6 +142,9 @@
            <a-button type="primary" v-if="hasPerm('BaseCustomer:add')" icon="plus" @click="$refs.addForm.add()">新增客户档案</a-button>
        </div>
        </template>
          <span slot="custTypescopedSlots" slot-scope="text">
            {{ 'base_customer_type' | dictType(text) }}
            </span>
          <span slot="isDisabledscopedSlots" slot-scope="text">
            <div v-if="text===true ">
                <a-tag color="green">是</a-tag>
@@ -289,26 +289,6 @@
    customHeaderCell: () => {
    return {
     style: {
    'min-width': '80px'//最小列宽设置
     }
     }
    },
    customCell: () => {
    return {
    style: {
    'min-width': '80px'//最小列宽设置
    }
    }
    },
    sorter: true,
    dataIndex: 'custType'
    },
    {
    title: '类型名称',
    align: 'center',
    customHeaderCell: () => {
    return {
     style: {
    'min-width': '120px'//最小列宽设置
     }
     }
@@ -321,7 +301,8 @@
    }
    },
    sorter: true,
    dataIndex: 'custTypeName'
    dataIndex: 'custType',
    scopedSlots: { customRender: 'custTypescopedSlots' }
    },
    {
    title: '联系人',
@@ -572,6 +553,7 @@
    return res.data
    })
    },
        custTypeData: [],
    selectedRowKeys: [],
    selectedRows: []
    }
@@ -598,6 +580,8 @@
    }
    });
    }
    const custTypeOption = this.$options
    this.custTypeData = custTypeOption.filters['dictData']('base_customer_type')
    const isDisabledOption = this.$options
    this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false')
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/BaseCustomerService.cs
@@ -51,11 +51,10 @@
        {
            var baseCustomers = await _baseCustomerRep.DetachedEntities
                                     .Where(!string.IsNullOrEmpty(input.CustCode), u => u.CustCode == input.CustCode)
                                     .Where(!string.IsNullOrEmpty(input.CustChinaName), u => EF.Functions.Like(u.CustChinaName, $"%{input.CustChinaName.Trim()}%"))
                                     .Where(!string.IsNullOrEmpty(input.CustChinaName), u => u.CustChinaName == input.CustChinaName)
                                     .Where(!string.IsNullOrEmpty(input.CustEnglishName), u => u.CustEnglishName == input.CustEnglishName)
                                     .Where(!string.IsNullOrEmpty(input.MnemonicCode), u => u.MnemonicCode == input.MnemonicCode)
                                     .Where(input.CustType != null, u => u.CustType == input.CustType)
                                     .Where(!string.IsNullOrEmpty(input.CustTypeName), u => u.CustTypeName == input.CustTypeName)
                                     .Where(!string.IsNullOrEmpty(input.LinkMan), u => u.LinkMan == input.LinkMan)
                                     .Where(!string.IsNullOrEmpty(input.Phone), u => u.Phone == input.Phone)
                                     .Where(!string.IsNullOrEmpty(input.Email), u => u.Email == input.Email)
@@ -87,7 +86,6 @@
            var pCustEnglishName = input.CustEnglishName?.Trim() ?? "";
            var pMnemonicCode = input.MnemonicCode?.Trim() ?? "";
            var pCustType = input.CustType;
            var pCustTypeName = input.CustTypeName?.Trim() ?? "";
            var pLinkMan = input.LinkMan?.Trim() ?? "";
            var pPhone = input.Phone?.Trim() ?? "";
            var pEmail = input.Email?.Trim() ?? "";
@@ -102,11 +100,10 @@
            var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? "";
            var baseCustomers = await _baseCustomerRep.DetachedEntities
                .Where(!string.IsNullOrEmpty(pCustCode), u => u.CustCode == pCustCode)
                .Where(!string.IsNullOrEmpty(pCustChinaName), u => EF.Functions.Like(u.CustChinaName, $"%{pCustChinaName}%"))
                .Where(!string.IsNullOrEmpty(pCustChinaName), u => u.CustChinaName == pCustChinaName)
                .Where(!string.IsNullOrEmpty(pCustEnglishName), u => u.CustEnglishName == pCustEnglishName)
                .Where(!string.IsNullOrEmpty(pMnemonicCode), u => u.MnemonicCode == pMnemonicCode)
                .Where(pCustType != null, u => u.CustType == pCustType)
                .Where(!string.IsNullOrEmpty(pCustTypeName), u => u.CustTypeName == pCustTypeName)
                .Where(!string.IsNullOrEmpty(pLinkMan), u => u.LinkMan == pLinkMan)
                .Where(!string.IsNullOrEmpty(pPhone), u => u.Phone == pPhone)
                .Where(!string.IsNullOrEmpty(pEmail), u => u.Email == pEmail)
@@ -158,9 +155,11 @@
        public async Task Add(AddBaseCustomerInput input)
        {
            var baseCustomer = input.Adapt<BaseCustomer>();
                        //验证
            await CheckExisit(baseCustomer);
            baseCustomer.CustCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID
            baseCustomer.CustTypeName = baseCustomer.CustType.ToString();
            //验证
            await CheckExisit(baseCustomer);
            baseCustomer.CreatedUserId = baseCustomer.UpdatedUserId = SysHelper.GetUserId();
            baseCustomer.CreatedUserName = baseCustomer.UpdatedUserName = SysHelper.GetUserName();
            baseCustomer.CreatedTime = baseCustomer.UpdatedTime = SysHelper.GetNowTime();
@@ -247,20 +246,20 @@
                                          
                           var addItem = new BaseCustomer()
                            {
                               CustCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString(),//TODO 要调用生成 编号的方法 先用雪花ID
                               CreatedTime = SysHelper.GetNowTime(),
                               CreatedUserId = SysHelper.GetUserId(),
                               CreatedUserName = SysHelper.GetUserName(),
                               UpdatedTime = SysHelper.GetNowTime(),
                               UpdatedUserId = SysHelper.GetUserId(),
                               UpdatedUserName = SysHelper.GetUserName()
                             };
                          #region 定义变量
                           var _CustCode = "";//客户编号
                           var _CustChinaName = "";//客户中文名称
                           var _CustEnglishName = "";//客户英文名称
                           var _MnemonicCode = "";//助记码
                           var _CustType = "";//类型
                           var _CustTypeName = "";//类型名称
                           var _LinkMan = "";//联系人
                           var _Phone = "";//电话
                           var _Email = "";//电子邮件
@@ -269,17 +268,14 @@
                           var _City = "";//城市
                           var _Address = "";//地址
                           var _IsDisabled = "";//是否禁用
                           var _Id = "";//Id主键
                          #endregion
                          
                          
                          #region 取值
                           _CustCode = row["客户编号"]?.ToString() ;
                           _CustChinaName = row["客户中文名称"]?.ToString() ;
                           _CustEnglishName = row["客户英文名称"]?.ToString() ;
                           _MnemonicCode = row["助记码"]?.ToString() ;
                           _CustType = row["类型"]?.ToString() ;
                           _CustTypeName = row["类型名称"]?.ToString() ;
                           _LinkMan = row["联系人"]?.ToString() ;
                           _Phone = row["电话"]?.ToString() ;
                           _Email = row["电子邮件"]?.ToString() ;
@@ -287,22 +283,11 @@
                           _Province = row["省份"]?.ToString() ;
                           _City = row["城市"]?.ToString() ;
                           _Address = row["地址"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          
                          
                          #region 验证
                          if (string.IsNullOrEmpty(_CustCode))
                          {
                            throw Oops.Oh($"第{index}行[客户编号]{_CustCode}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_CustCode))
                          {
                                addItem.CustCode = (string)_CustCode;
                           }
                          
                          if (string.IsNullOrEmpty(_CustChinaName))
                          {
@@ -329,23 +314,18 @@
                          
                          if(!string.IsNullOrEmpty(_CustType))
                          {
                              if (!int.TryParse(_CustType, out int outCustType)&&!string.IsNullOrEmpty(_CustType))
                          Admin.NET.Core.BaseCustomerTypeEnum  enumCustType = default(Admin.NET.Core.BaseCustomerTypeEnum);
                             if(!Enum.TryParse<Admin.NET.Core.BaseCustomerTypeEnum>(_CustType, out enumCustType)&&!string.IsNullOrEmpty(_CustType))
                              {
                                 throw Oops.Oh($"第{index}行[类型]{_CustType}值不正确!");
                              }
                              if (outCustType <= 0&&!string.IsNullOrEmpty(_CustType))
                              {
                                 throw Oops.Oh($"第{index}行[类型]{_CustType}值不能小于等于0!");
                                throw Oops.Oh($"第{index}行[类型]{_CustType}值不正确!");
                              }
                              else
                              {
                                 addItem.CustType = outCustType;
                                 addItem.CustType = enumCustType;
                                 addItem.CustTypeName = addItem.CustType.ToString();
                              }
                          
                          }
                          if(!string.IsNullOrEmpty(_CustTypeName))
                          {
                                addItem.CustTypeName = (string)_CustTypeName;
                           }
                          if(!string.IsNullOrEmpty(_LinkMan))
                          {
@@ -386,24 +366,9 @@
                               bool outIsDisabled = _IsDisabled.Equals("是") ? true : false;
                               addItem.IsDisabled = outIsDisabled;
                             }
                             }
                           }
                          
                          if(!string.IsNullOrEmpty(_Id))
                          {
                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!");
                              }
                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Id = outId;
                              }
                          }
                          #endregion
                          
@@ -449,7 +414,7 @@
           {
                   //数据是否存在重复
                   isExist = await _baseCustomerRep.AnyAsync(u =>
                                   u.CustCode.Equals(input.CustCode)
                                   u.CustChinaName.Equals(input.CustChinaName)
                   ,false);
          }
           else//编辑 
@@ -460,7 +425,7 @@
                 //当前编辑数据以外是否存在重复
                  isExist = await _baseCustomerRep.AnyAsync(u => 
                                    u.Id != input.Id
                                    &&u.CustCode.Equals(input.CustCode)
                                    &&u.CustChinaName.Equals(input.CustChinaName)
                    ,false);
               }
               
@@ -483,17 +448,16 @@
                 }
                 //数据是否重复
                 var existExcelItem = inputs.GroupBy(g => new {
                                               g.CustCode
                                               g.CustChinaName
                                               })
                                               .Where(g => g.Count() > 1)
                                               .Select(s => new {
                                               s.Key.CustCode
                                               s.Key.CustChinaName
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var baseCustomer = existExcelItem.Adapt<BaseCustomer>();
                   var item= existExcelItem.Adapt<BaseCustomer>();
                   throw Oops.Oh($"导入的表格中,客户编号[{item.CustCode}]已存在");
                   throw Oops.Oh($"导入的表格中,客户中文名称[{item.CustChinaName}]已存在");
                 }
                      
@@ -502,16 +466,15 @@
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _baseCustomerRep.DetachedEntities.FirstOrDefaultAsync(w=> 
                                                                         inputs.Select(s=>""
                                                                           +s.CustCode
                                                                           +s.CustChinaName
                                                                        )
                                                                        .Contains(""
                                                                         +w.CustCode
                                                                         +w.CustChinaName
                  ));
                  if (existDBItem != null)
                 {
                   var baseCustomer = existExcelItem.Adapt<BaseCustomer>();
                   var item= existExcelItem.Adapt<BaseCustomer>();
                   throw Oops.Oh($"系统中,客户编号[{item.CustCode}]已存在");
                   var item= existDBItem.Adapt<BaseCustomer>();
                   throw Oops.Oh($"系统中,客户中文名称[{item.CustChinaName}]已存在");
                 }
        }
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs
@@ -3,8 +3,8 @@
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application
{
{
    /// <summary>
    /// 客户档案查询参数
    /// </summary>
@@ -14,95 +14,95 @@
        /// 客户编号
        /// </summary>
        public virtual string CustCode { get; set; }
        /// <summary>
        /// 客户中文名称
        /// </summary>
        public virtual string CustChinaName { get; set; }
        /// <summary>
        /// 客户英文名称
        /// </summary>
        public virtual string CustEnglishName { get; set; }
        /// <summary>
        /// 助记码
        /// </summary>
        public virtual string MnemonicCode { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        public virtual int? CustType { get; set; }
        public virtual Admin.NET.Core.BaseCustomerTypeEnum? CustType { get; set; }
        /// <summary>
        /// 类型名称
        /// </summary>
        public virtual string CustTypeName { get; set; }
        /// <summary>
        /// 联系人
        /// </summary>
        public virtual string LinkMan { get; set; }
        /// <summary>
        /// 电话
        /// </summary>
        public virtual string Phone { get; set; }
        /// <summary>
        /// 电子邮件
        /// </summary>
        public virtual string Email { get; set; }
        /// <summary>
        /// 邮编
        /// </summary>
        public virtual string ZipCode { get; set; }
        /// <summary>
        /// 省份
        /// </summary>
        public virtual string Province { get; set; }
        /// <summary>
        /// 城市
        /// </summary>
        public virtual string City { get; set; }
        /// <summary>
        /// 地址
        /// </summary>
        public virtual string Address { get; set; }
        /// <summary>
        /// 是否禁用
        /// </summary>
        public virtual bool? IsDisabled { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public virtual List<string> CreatedTime { get; set; }
        /// <summary>
        /// 更新时间
        /// </summary>
        public virtual List<string> UpdatedTime { get; set; }
        /// <summary>
        /// 创建者名称
        /// </summary>
        public virtual string CreatedUserName { get; set; }
        /// <summary>
        /// 修改者名称
        /// </summary>
        public virtual string UpdatedUserName { get; set; }
    }
    /// <summary>
        /// <summary>
    /// 客户档案不分页查询参数
    /// </summary>
    public class BaseCustomerSearchNonPage : PageInputNonPageBase
@@ -111,92 +111,92 @@
        /// 客户编号
        /// </summary>
        public virtual string CustCode { get; set; }
        /// <summary>
        /// 客户中文名称
        /// </summary>
        public virtual string CustChinaName { get; set; }
        /// <summary>
        /// 客户英文名称
        /// </summary>
        public virtual string CustEnglishName { get; set; }
        /// <summary>
        /// 助记码
        /// </summary>
        public virtual string MnemonicCode { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        public virtual int? CustType { get; set; }
        public virtual Admin.NET.Core.BaseCustomerTypeEnum? CustType { get; set; }
        /// <summary>
        /// 类型名称
        /// </summary>
        public virtual string CustTypeName { get; set; }
        /// <summary>
        /// 联系人
        /// </summary>
        public virtual string LinkMan { get; set; }
        /// <summary>
        /// 电话
        /// </summary>
        public virtual string Phone { get; set; }
        /// <summary>
        /// 电子邮件
        /// </summary>
        public virtual string Email { get; set; }
        /// <summary>
        /// 邮编
        /// </summary>
        public virtual string ZipCode { get; set; }
        /// <summary>
        /// 省份
        /// </summary>
        public virtual string Province { get; set; }
        /// <summary>
        /// 城市
        /// </summary>
        public virtual string City { get; set; }
        /// <summary>
        /// 地址
        /// </summary>
        public virtual string Address { get; set; }
        /// <summary>
        /// 是否禁用
        /// </summary>
        public virtual bool? IsDisabled { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public virtual List<DateTimeOffset>? CreatedTime { get; set; }
         public virtual List<DateTimeOffset>? CreatedTime { get; set; }
        /// <summary>
        /// 更新时间
        /// </summary>
        public virtual List<DateTimeOffset>? UpdatedTime { get; set; }
         public virtual List<DateTimeOffset>? UpdatedTime { get; set; }
        /// <summary>
        /// 创建者名称
        /// </summary>
        public virtual string CreatedUserName { get; set; }
        /// <summary>
        /// 修改者名称
        /// </summary>
        public virtual string UpdatedUserName { get; set; }
    }
    /// <summary>
@@ -205,78 +205,67 @@
    public class BaseCustomerInput
    {
        /// <summary>
        /// 客户编号
        /// </summary>
        [Required(ErrorMessage = "客户编号不能为空")]
        public virtual string CustCode { get; set; }
        /// <summary>
        /// 客户中文名称
        /// </summary>
        [Required(ErrorMessage = "客户中文名称不能为空")]
        public virtual string CustChinaName { get; set; }
        /// <summary>
        /// 客户英文名称
        /// </summary>
        public virtual string CustEnglishName { get; set; }
        /// <summary>
        /// 助记码
        /// </summary>
        public virtual string MnemonicCode { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        [Required(ErrorMessage = "类型不能为空")]
        public virtual BaseCustomerTypeEnum CustType { get; set; }
        /// <summary>
        /// 类型名称
        /// </summary>
        public virtual string CustTypeName { get; set; }
        public virtual Admin.NET.Core.BaseCustomerTypeEnum CustType { get; set; }
        /// <summary>
        /// 联系人
        /// </summary>
        public virtual string LinkMan { get; set; }
        /// <summary>
        /// 电话
        /// </summary>
        public virtual string Phone { get; set; }
        /// <summary>
        /// 电子邮件
        /// </summary>
        public virtual string Email { get; set; }
        /// <summary>
        /// 邮编
        /// </summary>
        public virtual string ZipCode { get; set; }
        /// <summary>
        /// 省份
        /// </summary>
        public virtual string Province { get; set; }
        /// <summary>
        /// 城市
        /// </summary>
        public virtual string City { get; set; }
        /// <summary>
        /// 地址
        /// </summary>
        public virtual string Address { get; set; }
        /// <summary>
        /// 是否禁用
        /// </summary>
        public virtual bool? IsDisabled { get; set; }
    }
    /// <summary>
@@ -303,7 +292,7 @@
        /// </summary>
        [Required(ErrorMessage = "Id主键不能为空")]
        public long? Id { get; set; }
    }
    /// <summary>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerOutput.cs
@@ -31,7 +31,7 @@
        /// <summary>
        /// 类型
        /// </summary>
        public int CustType { get; set; }
        public Admin.NET.Core.BaseCustomerTypeEnum CustType { get; set; }
        
        /// <summary>
        /// 类型名称
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/BaseCustomer.cs
@@ -58,7 +58,7 @@
        [Comment("类型")]
        [Required]
        public int CustType { get; set; }
        public BaseCustomerTypeEnum CustType { get; set; }
        /// <summary>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/SeedData/SysDictDataSeedData.cs
@@ -264,11 +264,11 @@
                new SysDictData{Id=539751869472837, TypeId=539751788187717, Value="B", Code="2", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=539751888134213, TypeId=539751788187717, Value="C", Code="3", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=539751888134214, TypeId=539751788187718, Value="货主", Code="1", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=539751888134215, TypeId=539751788187718, Value="收货人", Code="2", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=539751888134216, TypeId=539751788187718, Value="供应商", Code="3", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=539751888134217, TypeId=539751788187718, Value="承运人", Code="3", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=539751888134218, TypeId=539751788187718, Value="其他", Code="3", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=540028409995333, TypeId=540028296155205, Value="货主", Code="1", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=540028593905733, TypeId=540028296155205, Value="收货人", Code="2", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=540028612407365, TypeId=540028296155205, Value="供应商", Code="3", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=540028658511941, TypeId=540028296155205, Value="承运人", Code="4", Sort=100, Remark="", Status=0 },
                new SysDictData{Id=540028759924805, TypeId=540028296155205, Value="其他", Code="5", Sort=100, Remark="", Status=0 },
            };
        }
    }
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/SeedData/SysDictTypeSeedData.cs
@@ -82,7 +82,7 @@
                  new SysDictType{Id=539751788187717, Name="物料ABC分类", Code="abc_class_type", Sort=100, Remark="", Status=0 },
                    new SysDictType{Id=539751788187718, Name="往来关系类型", Code="base_customer_type", Sort=100, Remark="", Status=0 },
                    new SysDictType{Id=540028296155205, Name="往来关系类型", Code="base_customer_type", Sort=100, Remark="", Status=0 },
            };
        }
    }
iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/BaseCustomerImport.xlsx
Binary files differ
iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/Template/Service.cs.vm
@@ -519,7 +519,6 @@
                                               @:}).FirstOrDefault();
                 @:if (existExcelItem != null)
                 @:{
                   @:var @(@Model.CamelizeClassName) = existExcelItem.Adapt<@(@Model.ClassName)>();
                   @:var item= existExcelItem.Adapt<@(@Model.ClassName)>();
                   @:throw Oops.Oh($"导入的表格中@(@message)已存在");
                 @:}
@@ -560,8 +559,7 @@
                 @: ));
                 @: if (existDBItem != null)
                 @:{
                   @:var @(@Model.CamelizeClassName) = existExcelItem.Adapt<@(@Model.ClassName)>();
                   @:var item= existExcelItem.Adapt<@(@Model.ClassName)>();
                   @:var item= existDBItem.Adapt<@(@Model.ClassName)>();
                   @:throw Oops.Oh($"系统中@(@message)已存在");
                 @:}
           }