schangxiang@126.com
2024-04-25 4d14b84903bf0277c5e8b9b3138c5e1d981e95db
Merge branch 'master' of http://222.71.245.114:9086/r/iWare_RawMaterialWarehouse
已修改17个文件
992 ■■■■ 文件已修改
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_Web/src/views/main/WmsBase/WmsMaterial/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/addForm.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml 514 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/BaseCustomerService.cs 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerOutput.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/BaseCustomer.cs 8 ●●●● 补丁 | 查看 | 原始文档 | 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_Web/src/views/main/WmsBase/WmsMaterial/index.vue
@@ -192,7 +192,9 @@
            </span>
          <span slot="action" slot-scope="text, record">
            
            <a v-if="hasPerm('WmsMaterial:edit')" @click="$refs.editForm.edit(record)">编辑</a>
            <!-- <a v-if="hasPerm('WmsMaterial:edit')" @click="$refs.editForm.edit(record)">编辑</a> -->
            <a v-if="hasPerm('WmsMaterial:edit')" @click="$refs.tabForm.add()">编辑</a>
          <a-divider type="vertical" v-if="hasPerm('WmsMaterial:edit') & hasPerm('WmsMaterial:delete')"/>
          <a-popconfirm v-if="hasPerm('WmsMaterial:delete')" placement="topRight" title="确认删除?" @confirm="() => WmsMaterialDelete(record)">
            <a>删除</a>
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
@@ -1,12 +1,12 @@
<template>
  <a-modal title="新增基础物料信息" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
  <a-modal title="新增基础物料信息" :width="1200" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <!-- tab -->
      <a-tabs default-active-key="1" @change="callbacktab">
        <a-tab-pane key="1" tab="基本信息">
          <!-- <add-form ref="addFormRef" @ok="handleOk" /> -->
          <!-- 基本信息 -->
          <!-- 基本信息  layout="inline"  layout="vertical" -->
          <a-form :form="form">
            <a-form-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
              <a-input placeholder="请输入物料名称"
@@ -327,3 +327,10 @@
  }
}
</script>
<style lang="less" scoped>
  .ant-row.ant-form-item {
    width: 50% !important;
    display: inline-block;
  }
</style>
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/addForm.vue
@@ -1,7 +1,8 @@
<template>
  <div>
    <!--tab 控制属性规则明细 -->
    <a-form :form="form">
        <a-form-item label="控制属性规则明细" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
        <a-form-item label="控制属性规则" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input disabled  placeholder="请输入控制属性规则编号" v-decorator="['ruleCode', {rules: [{required: true, message: '请输入控制属性规则编号!'}]}]" />
        </a-form-item>
        <a-form-item label="最高库存" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
@@ -110,3 +111,9 @@
  }
}
</script>
<style lang="less" scoped>
  .ant-row.ant-form-item {
    width: 50% !important;
    display: inline-block;
  }
</style>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml
@@ -13597,61 +13597,61 @@
        </member>
        <member name="T:Admin.NET.Application.BaseCustomerService">
            <summary>
            客户档案服务
            往来关系服务
            </summary>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.Page(Admin.NET.Application.BaseCustomerSearch)">
            <summary>
            分页查询客户档案
            分页查询往来关系
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.ListNonPageAsync(Admin.NET.Application.BaseCustomerSearchNonPage)">
            <summary>
            不分页查询客户档案列表
            不分页查询往来关系列表
            </summary>
            <param name="input">客户档案查询参数</param>
            <returns>(客户档案)实例列表</returns>
            <param name="input">往来关系查询参数</param>
            <returns>(往来关系)实例列表</returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.Get(Admin.NET.Application.QueryeBaseCustomerInput)">
            <summary>
            获取客户档案
            获取往来关系
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.List(Admin.NET.Application.BaseCustomerInput)">
            <summary>
            获取客户档案列表
            获取往来关系列表
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.Add(Admin.NET.Application.AddBaseCustomerInput)">
            <summary>
            增加客户档案
            增加往来关系
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.Delete(Admin.NET.Application.DeleteBaseCustomerInput)">
            <summary>
            删除客户档案
            删除往来关系
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.Update(Admin.NET.Application.UpdateBaseCustomerInput)">
            <summary>
            更新客户档案
            更新往来关系
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.ImportExcelAsync(Microsoft.AspNetCore.Http.IFormFile)">
            <summary>
            Excel模板导入客户档案功能
            Excel模板导入往来关系功能
            </summary>
            <param name="file">Excel模板文件</param>
            <returns>导入的记录数</returns>
@@ -13666,7 +13666,7 @@
        </member>
        <member name="M:Admin.NET.Application.BaseCustomerService.DownloadExcelTemplate(System.String)">
            <summary>
            根据版本下载客户档案的Excel导入模板
            根据版本下载往来关系的Excel导入模板
            </summary>
            <param name="version">模板版本</param>
            <returns>下载的模板文件</returns>
@@ -13688,7 +13688,7 @@
        </member>
        <member name="T:Admin.NET.Application.BaseCustomerSearch">
            <summary>
            客户档案查询参数
            往来关系查询参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerSearch.CustCode">
@@ -13783,7 +13783,7 @@
        </member>
        <member name="T:Admin.NET.Application.BaseCustomerSearchNonPage">
            <summary>
            客户档案不分页查询参数
            往来关系不分页查询参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerSearchNonPage.CustCode">
@@ -13878,12 +13878,7 @@
        </member>
        <member name="T:Admin.NET.Application.BaseCustomerInput">
            <summary>
            客户档案输入参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerInput.CustCode">
            <summary>
            客户编号
            往来关系输入参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerInput.CustChinaName">
@@ -13904,11 +13899,6 @@
        <member name="P:Admin.NET.Application.BaseCustomerInput.CustType">
            <summary>
            类型
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerInput.CustTypeName">
            <summary>
            类型名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerInput.LinkMan">
@@ -13953,17 +13943,17 @@
        </member>
        <member name="T:Admin.NET.Application.AddBaseCustomerInput">
            <summary>
            客户档案新增参数
            往来关系新增参数
            </summary>
        </member>
        <member name="T:Admin.NET.Application.DeleteBaseCustomerInput">
            <summary>
            客户档案删除参数
            往来关系删除参数
            </summary>
        </member>
        <member name="T:Admin.NET.Application.UpdateBaseCustomerInput">
            <summary>
            客户档案更新参数
            往来关系更新参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.UpdateBaseCustomerInput.Id">
@@ -13973,12 +13963,12 @@
        </member>
        <member name="T:Admin.NET.Application.QueryeBaseCustomerInput">
            <summary>
            客户档案获取单个参数
            往来关系获取单个参数
            </summary>
        </member>
        <member name="T:Admin.NET.Application.BaseCustomerOutput">
            <summary>
            客户档案输出参数
            往来关系输出参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.BaseCustomerOutput.CustCode">
@@ -15745,9 +15735,9 @@
            控制属性规则明细查询参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailSearch.ControlRuleId">
        <member name="P:Admin.NET.Application.WmsControlRuleDetailSearch.RuleCode">
            <summary>
            控制属性规则ID
            控制属性规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailSearch.MaxImumqty">
@@ -15815,9 +15805,9 @@
            控制属性规则明细不分页查询参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailSearchNonPage.ControlRuleId">
        <member name="P:Admin.NET.Application.WmsControlRuleDetailSearchNonPage.RuleCode">
            <summary>
            控制属性规则ID
            控制属性规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailSearchNonPage.MaxImumqty">
@@ -15885,9 +15875,9 @@
            控制属性规则明细输入参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailInput.ControlRuleId">
        <member name="P:Admin.NET.Application.WmsControlRuleDetailInput.RuleCode">
            <summary>
            控制属性规则ID
            控制属性规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailInput.MaxImumqty">
@@ -15960,9 +15950,9 @@
            控制属性规则明细输出参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailOutput.ControlRuleId">
        <member name="P:Admin.NET.Application.WmsControlRuleDetailOutput.RuleCode">
            <summary>
            控制属性规则ID
            控制属性规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleDetailOutput.MaxImumqty">
@@ -16115,287 +16105,6 @@
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleDetailService.CheckExisitForImport(System.Collections.Generic.List{Admin.NET.Core.WmsControlRuleDetail})">
            <summary>
            根据联合主键验证数据是否已存在-导入时验证
            </summary>
            <param name="inputs"></param>
            <returns></returns>
        </member>
        <member name="T:Admin.NET.Application.WmsControlRuleSearch">
            <summary>
            控制属性规则查询参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.RuleCode">
            <summary>
            规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.RuleName">
            <summary>
            规则名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.RuleDesc">
            <summary>
            规则描述
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.IsDisabled">
            <summary>
            是否禁用
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.CreatedTime">
            <summary>
            创建时间
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.UpdatedTime">
            <summary>
            更新时间
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.CreatedUserName">
            <summary>
            创建者名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearch.UpdatedUserName">
            <summary>
            修改者名称
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsControlRuleSearchNonPage">
            <summary>
            控制属性规则不分页查询参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.RuleCode">
            <summary>
            规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.RuleName">
            <summary>
            规则名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.RuleDesc">
            <summary>
            规则描述
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.IsDisabled">
            <summary>
            是否禁用
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.CreatedTime">
            <summary>
            创建时间
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.UpdatedTime">
            <summary>
            更新时间
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.CreatedUserName">
            <summary>
            创建者名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleSearchNonPage.UpdatedUserName">
            <summary>
            修改者名称
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsControlRuleInput">
            <summary>
            控制属性规则输入参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleInput.RuleCode">
            <summary>
            规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleInput.RuleName">
            <summary>
            规则名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleInput.RuleDesc">
            <summary>
            规则描述
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleInput.IsDisabled">
            <summary>
            是否禁用
            </summary>
        </member>
        <member name="T:Admin.NET.Application.AddWmsControlRuleInput">
            <summary>
            控制属性规则新增参数
            </summary>
        </member>
        <member name="T:Admin.NET.Application.DeleteWmsControlRuleInput">
            <summary>
            控制属性规则删除参数
            </summary>
        </member>
        <member name="T:Admin.NET.Application.UpdateWmsControlRuleInput">
            <summary>
            控制属性规则更新参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.UpdateWmsControlRuleInput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:Admin.NET.Application.QueryeWmsControlRuleInput">
            <summary>
            控制属性规则获取单个参数
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsControlRuleOutput">
            <summary>
            控制属性规则输出参数
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.RuleCode">
            <summary>
            规则编号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.RuleName">
            <summary>
            规则名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.RuleDesc">
            <summary>
            规则描述
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.IsDisabled">
            <summary>
            是否禁用
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.CreatedTime">
            <summary>
            创建时间
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.UpdatedTime">
            <summary>
            更新时间
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.CreatedUserName">
            <summary>
            创建者名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsControlRuleOutput.UpdatedUserName">
            <summary>
            修改者名称
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsControlRuleService">
            <summary>
            控制属性规则服务
            </summary>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.Page(Admin.NET.Application.WmsControlRuleSearch)">
            <summary>
            分页查询控制属性规则
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.ListNonPageAsync(Admin.NET.Application.WmsControlRuleSearchNonPage)">
            <summary>
            不分页查询控制属性规则列表
            </summary>
            <param name="input">控制属性规则查询参数</param>
            <returns>(控制属性规则)实例列表</returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.Get(Admin.NET.Application.QueryeWmsControlRuleInput)">
            <summary>
            获取控制属性规则
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.List(Admin.NET.Application.WmsControlRuleInput)">
            <summary>
            获取控制属性规则列表
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.Add(Admin.NET.Application.AddWmsControlRuleInput)">
            <summary>
            增加控制属性规则
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.Delete(Admin.NET.Application.DeleteWmsControlRuleInput)">
            <summary>
            删除控制属性规则
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.Update(Admin.NET.Application.UpdateWmsControlRuleInput)">
            <summary>
            更新控制属性规则
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.ImportExcelAsync(Microsoft.AspNetCore.Http.IFormFile)">
            <summary>
            Excel模板导入控制属性规则功能
            </summary>
            <param name="file">Excel模板文件</param>
            <returns>导入的记录数</returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.CommonImport(System.Data.DataTable,System.Int32)">
            <summary>
             DataTable转换实体对象列表
            </summary>
            <param name="dataTable"></param>
            <param name="dataStartLine">模版列名开始行</param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.DownloadExcelTemplate(System.String)">
            <summary>
            根据版本下载控制属性规则的Excel导入模板
            </summary>
            <param name="version">模板版本</param>
            <returns>下载的模板文件</returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.CheckExisit(Admin.NET.Core.WmsControlRule,System.Boolean)">
            <summary>
            根据联合主键验证数据是否已存在-数据库
            </summary>
            <param name="input"></param>
            <param name="isEdit"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsControlRuleService.CheckExisitForImport(System.Collections.Generic.List{Admin.NET.Core.WmsControlRule})">
            <summary>
            根据联合主键验证数据是否已存在-导入时验证
            </summary>
@@ -16972,6 +16681,14 @@
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialCustomerService.AddRange(System.Collections.Generic.List{Admin.NET.Application.AddWmsMaterialCustomerInput})">
            <summary>
            批量增加物料客户关联信息
            </summary>
            <param name="input"></param>
            <returns></returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialCustomerService.Delete(Admin.NET.Application.DeleteWmsMaterialCustomerInput)">
            <summary>
@@ -17695,6 +17412,16 @@
            Id主键
            </summary>
        </member>
        <member name="T:Admin.NET.Application.UpdateWmsMaterialInfoInput">
            <summary>
            编辑物料业务信息实体入参--包含物料、物料客户关系、控制属性、替代品
            </summary>
        </member>
        <member name="P:Admin.NET.Application.UpdateWmsMaterialInfoInput.Id">
            <summary>
            Id主键
            </summary>
        </member>
        <member name="T:Admin.NET.Application.QueryeWmsMaterialInput">
            <summary>
            物料信息表获取单个参数
@@ -17722,7 +17449,7 @@
        </member>
        <member name="P:Admin.NET.Application.AddWmsMaterialInfoInput.BaseCustomerList">
            <summary>
            客户档案
            往来关系
            </summary>
        </member>
        <member name="T:Admin.NET.Application.WmsMaterialOutput">
@@ -17867,28 +17594,28 @@
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Page(Admin.NET.Application.WmsMaterialSearch)">
            <summary>
            分页查询物料信息表
            分页查询物料信息
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.ListNonPageAsync(Admin.NET.Application.WmsMaterialSearchNonPage)">
            <summary>
            不分页查询物料信息表列表
            不分页查询物料信息列表
            </summary>
            <param name="input">物料信息表查询参数</param>
            <returns>(物料信息表)实例列表</returns>
            <param name="input">物料信息查询参数</param>
            <returns>(物料信息)实例列表</returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Get(Admin.NET.Application.QueryeWmsMaterialInput)">
            <summary>
            获取物料信息表
            获取物料信息
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.List(Admin.NET.Application.WmsMaterialInput)">
            <summary>
            获取物料信息表列表
            获取物料信息列表
            </summary>
            <param name="input"></param>
            <returns></returns>
@@ -17902,21 +17629,21 @@
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Delete(Admin.NET.Application.DeleteWmsMaterialInput)">
            <summary>
            删除物料信息表
            删除物料信息
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.Update(Admin.NET.Application.UpdateWmsMaterialInput)">
        <member name="M:Admin.NET.Application.WmsMaterialService.Update(Admin.NET.Application.UpdateWmsMaterialInfoInput)">
            <summary>
            更新物料信息表
            更新物料信息
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.ImportExcelAsync(Microsoft.AspNetCore.Http.IFormFile)">
            <summary>
            Excel模板导入物料信息表功能
            Excel模板导入物料信息功能
            </summary>
            <param name="file">Excel模板文件</param>
            <returns>导入的记录数</returns>
@@ -17931,7 +17658,7 @@
        </member>
        <member name="M:Admin.NET.Application.WmsMaterialService.DownloadExcelTemplate(System.String)">
            <summary>
            根据版本下载物料信息表的Excel导入模板
            根据版本下载物料信息的Excel导入模板
            </summary>
            <param name="version">模板版本</param>
            <returns>下载的模板文件</returns>
@@ -17989,46 +17716,6 @@
        <member name="P:Admin.NET.Application.WmsPlaceSearch.PlaceStatus">
            <summary>
            库位属性
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.IsSrmPlace">
            <summary>
            是否堆垛机库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.SrmPlaceNo">
            <summary>
            堆垛机库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.IsRgvPlace">
            <summary>
            是否RGV库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.RgvPlaceNo">
            <summary>
            RGV库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.IsAgvPlace">
            <summary>
            是否AGV库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.AgvPlaceNo">
            <summary>
            AGV库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.IsTransPlace">
            <summary>
            是否输送线库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.TransPlaceNo">
            <summary>
            输送线库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearch.IsActivateWCS">
@@ -18196,46 +17883,6 @@
            库位属性
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.IsSrmPlace">
            <summary>
            是否堆垛机库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.SrmPlaceNo">
            <summary>
            堆垛机库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.IsRgvPlace">
            <summary>
            是否RGV库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.RgvPlaceNo">
            <summary>
            RGV库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.IsAgvPlace">
            <summary>
            是否AGV库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.AgvPlaceNo">
            <summary>
            AGV库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.IsTransPlace">
            <summary>
            是否输送线库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.TransPlaceNo">
            <summary>
            输送线库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceSearchNonPage.IsActivateWCS">
            <summary>
            是否激活与任务调度
@@ -18391,54 +18038,9 @@
            库位类型名称
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.StockUnit">
            <summary>
            存放单位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.PlaceStatus">
            <summary>
            库位属性
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.IsSrmPlace">
            <summary>
            是否堆垛机库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.SrmPlaceNo">
            <summary>
            堆垛机库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.IsRgvPlace">
            <summary>
            是否RGV库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.RgvPlaceNo">
            <summary>
            RGV库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.IsAgvPlace">
            <summary>
            是否AGV库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.AgvPlaceNo">
            <summary>
            AGV库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.IsTransPlace">
            <summary>
            是否输送线库位
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.TransPlaceNo">
            <summary>
            输送线库位号
            </summary>
        </member>
        <member name="P:Admin.NET.Application.WmsPlaceInput.IsActivateWCS">
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/BaseCustomerService.cs
@@ -16,7 +16,7 @@
namespace Admin.NET.Application
{
    /// <summary>
    /// 客户档案服务
    /// 往来关系服务
    /// </summary>
    [ApiDescriptionSettings("WmsBase", Name = "BaseCustomer", Order = 100)]
    [Route("api")]
@@ -42,7 +42,7 @@
        }
        /// <summary>
        /// 分页查询客户档案
        /// 分页查询往来关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -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)
@@ -75,10 +74,10 @@
        }
        /// <summary>
        /// 不分页查询客户档案列表
        /// 不分页查询往来关系列表
        /// </summary>
        /// <param name="input">客户档案查询参数</param>
        /// <returns>(客户档案)实例列表</returns>
        /// <param name="input">往来关系查询参数</param>
        /// <returns>(往来关系)实例列表</returns>
        [HttpGet("BaseCustomer/listNonPage")]
        public async Task<List<BaseCustomerOutput>> ListNonPageAsync([FromQuery] BaseCustomerSearchNonPage input)
        {
@@ -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)
@@ -126,7 +123,7 @@
        }
         /// <summary>
        /// 获取客户档案
        /// 获取往来关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -137,7 +134,7 @@
        }
        /// <summary>
        /// 获取客户档案列表
        /// 获取往来关系列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -150,7 +147,7 @@
        #region 增、删、改
        /// <summary>
        /// 增加客户档案
        /// 增加往来关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -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();
@@ -168,7 +167,7 @@
        }
        /// <summary>
        /// 删除客户档案
        /// 删除往来关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -181,7 +180,7 @@
        }
        /// <summary>
        /// 更新客户档案
        /// 更新往来关系
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
@@ -206,7 +205,7 @@
        #region 导入
        /// <summary>
        /// Excel模板导入客户档案功能
        /// Excel模板导入往来关系功能
        /// </summary>
        /// <param name="file">Excel模板文件</param>
        /// <returns>导入的记录数</returns>
@@ -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
                          
@@ -417,7 +382,7 @@
        }
        /// <summary>
        /// 根据版本下载客户档案的Excel导入模板
        /// 根据版本下载往来关系的Excel导入模板
        /// </summary>
        /// <param name="version">模板版本</param>
        /// <returns>下载的模板文件</returns>
@@ -425,7 +390,7 @@
        public IActionResult DownloadExcelTemplate([FromQuery] string version)
        {
            string _path = TemplateConst.EXCEL_TEMPLATEFILE_导入模版路径 + $"\\BaseCustomer{TemplateConst.EXCEL_TEMPLATEFILE_导入模版名称后缀}.xlsx";
            var fileName = HttpUtility.UrlEncode($"导入模板(客户档案).xlsx", Encoding.GetEncoding("UTF-8"));
            var fileName = HttpUtility.UrlEncode($"导入模板(往来关系).xlsx", Encoding.GetEncoding("UTF-8"));
            return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
        }
@@ -439,80 +404,78 @@
        /// <param name="input"></param>
        /// <param name="isEdit"></param>
        /// <returns></returns>
        private async Task CheckExisit( BaseCustomer input,bool isEdit=false)
        private async Task CheckExisit(BaseCustomer input, bool isEdit = false)
        {
           bool isExist = false;
           if (!isEdit)//新增
           {
                   //数据是否存在重复
                   isExist = await _baseCustomerRep.AnyAsync(u =>
                                   u.CustCode.Equals(input.CustCode)
                   ,false);
          }
           else//编辑
          {
                 //当前编辑数据以外是否存在重复
                  isExist = await _baseCustomerRep.AnyAsync(u =>
                                    u.Id != input.Id
                                    &&u.CustCode.Equals(input.CustCode)
                    ,false);
               }
            bool isExist = false;
            if (!isEdit)//新增
            {
                //数据是否存在重复
                isExist = await _baseCustomerRep.AnyAsync(u =>
                                u.CustChinaName.Equals(input.CustChinaName)
                , false);
            }
            else//编辑
            {
                //当前编辑数据以外是否存在重复
                isExist = await _baseCustomerRep.AnyAsync(u =>
                                  u.Id != input.Id
                                  && u.CustChinaName.Equals(input.CustChinaName)
                  , false);
            }
            if (isExist) throw Oops.Oh(ErrorCode.E0001);
       }
        }
        /// <summary>
        /// 根据联合主键验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<BaseCustomer> inputs)
        {
        {
            //根据联合主键验证表格中中是否已存在相同数据  
                 if (inputs?.Count <= 0)
                 {
                     throw Oops.Oh($"导入数据不能为空");
                 }
                 //数据是否重复
                 var existExcelItem = inputs.GroupBy(g => new {
                                               g.CustCode
                                               })
                                               .Where(g => g.Count() > 1)
                                               .Select(s => new {
                                               s.Key.CustCode
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var baseCustomer = existExcelItem.Adapt<BaseCustomer>();
                   var item= existExcelItem.Adapt<BaseCustomer>();
                   throw Oops.Oh($"导入的表格中,客户编号[{item.CustCode}]已存在");
                 }
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //数据是否重复
            var existExcelItem = inputs.GroupBy(g => new {
                g.CustChinaName
            })
                                          .Where(g => g.Count() > 1)
                                          .Select(s => new {
                                              s.Key.CustChinaName
                                          }).FirstOrDefault();
            if (existExcelItem != null)
            {
                var item = existExcelItem.Adapt<BaseCustomer>();
                throw Oops.Oh($"导入的表格中,客户中文名称[{item.CustChinaName}]已存在");
            }
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _baseCustomerRep.DetachedEntities.FirstOrDefaultAsync(w=>
                                                                         inputs.Select(s=>""
                                                                           +s.CustCode
                                                                        )
                                                                        .Contains(""
                                                                         +w.CustCode
                  ));
                  if (existDBItem != null)
                 {
                   var baseCustomer = existExcelItem.Adapt<BaseCustomer>();
                   var item= existExcelItem.Adapt<BaseCustomer>();
                   throw Oops.Oh($"系统中,客户编号[{item.CustCode}]已存在");
                 }
            //根据联合主键验证数据库中是否已存在相同数据
            var existDBItem = await _baseCustomerRep.DetachedEntities.FirstOrDefaultAsync(w =>
                                                                    inputs.Select(s => ""
                                                                      + s.CustChinaName
                                                                   )
                                                                   .Contains(""
                                                                    + w.CustChinaName
             ));
            if (existDBItem != null)
            {
                var item = existDBItem.Adapt<BaseCustomer>();
                throw Oops.Oh($"系统中,客户中文名称[{item.CustChinaName}]已存在");
            }
        }
        #endregion
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerInput.cs
@@ -3,10 +3,10 @@
using System.ComponentModel.DataAnnotations;
namespace Admin.NET.Application
{
{
    /// <summary>
    /// 客户档案查询参数
    /// 往来关系查询参数
    /// </summary>
    public class BaseCustomerSearch : PageInputBase
    {
@@ -14,96 +14,96 @@
        /// 客户编号
        /// </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,190 +111,179 @@
        /// 客户编号
        /// </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>
    /// 客户档案输入参数
    /// 往来关系输入参数
    /// </summary>
    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>
    /// 客户档案新增参数
    /// 往来关系新增参数
    /// </summary>
    public class AddBaseCustomerInput : BaseCustomerInput
    {
    }
    /// <summary>
    /// 客户档案删除参数
    /// 往来关系删除参数
    /// </summary>
    public class DeleteBaseCustomerInput : BaseId
    {
    }
    /// <summary>
    /// 客户档案更新参数
    /// 往来关系更新参数
    /// </summary>
    public class UpdateBaseCustomerInput : BaseCustomerInput
    {
@@ -303,11 +292,11 @@
        /// </summary>
        [Required(ErrorMessage = "Id主键不能为空")]
        public long? Id { get; set; }
    }
    /// <summary>
    /// 客户档案获取单个参数
    /// 往来关系获取单个参数
    /// </summary>
    public class QueryeBaseCustomerInput : BaseId
    {
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/BaseCustomer/Dto/BaseCustomerOutput.cs
@@ -4,7 +4,7 @@
namespace Admin.NET.Application
{
    /// <summary>
    /// 客户档案输出参数
    /// 往来关系输出参数
    /// </summary>
    public class BaseCustomerOutput
    {
@@ -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.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs
@@ -453,7 +453,7 @@
        public List<AddWmsSubstituteGoodInput> SubstituteGoodList { get; set; }
        /// <summary>
        /// 客户档案
        /// 往来关系
        /// </summary>
        public List<BaseCustomerInput> BaseCustomerList   { get; set; }
    }
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
@@ -191,7 +191,7 @@
            var controlRuleld = input.ControlRuleld;
            wmsMaterial.ControlRuleId = controlRuleld;
            //客户档案信息
            //往来关系信息
            var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
            //物料客户关联关系
            var materialCustomerList=new List<WmsMaterialCustomer>();
@@ -279,7 +279,7 @@
            }
            //客户档案信息
            //往来关系信息
            var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
            //物料客户关联关系
            var materialCustomerList = new List<WmsMaterialCustomer>();
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/BaseCustomer.cs
@@ -5,15 +5,15 @@
/*
 * @author : 刘文奇
 * @date : 2024/4/23下午4:07:57
 * @desc : 客户档案
 * @desc : 往来关系
 */
namespace Admin.NET.Core
{
    /// <summary>
    /// 客户档案
    /// 往来关系
    /// </summary>
    [Table("base_customer")]
    [Comment("客户档案")]
    [Comment("往来关系")]
    public class BaseCustomer : DEntityBase
    {
@@ -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)已存在");
                 @:}
           }