wangxinhui
2025-01-06 801ddd3be4d6bf8553cac870435bb5092eca6b60
更新前端代码
已删除2个文件
已修改33个文件
已添加5个文件
20507 ■■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Client/package-lock.json 19917 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Client/src/api/http.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/taskExecuteDetail.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8e07ae55-a2e7-4407-b10c-4a5a0c8d3f3a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b45813db-207a-41f6-8e14-ddcbb57bee26.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/config/buttons.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/customerInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/locationInfo.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/materielInfo.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/supplierInfo.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/userInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/basic/warehouse.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/inbound/purchaseOrder.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/inbound/receiveOrder.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockInfo.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c44d9433-e876-4faf-90e0-7b056781c3b4.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d4c63503-44a3-443c-a699-9cde9edbeae2.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/da85dbf7-c355-4843-a8fd-bdd296cc107b.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/UserInfoService.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/WIDESEA_BasicService.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/LocationEnum/LocationTypeEnum.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IUserInfoService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/UserInfoController.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/package-lock.json
ÎļþÌ«´ó
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/api/http.js
@@ -19,7 +19,7 @@
}
else if (process.env.NODE_ENV == 'production') {
    axios.defaults.baseURL = 'http://127.0.0.1:8098/';
    axios.defaults.baseURL = 'http://10.30.4.92:9281/';
}
if (!axios.defaults.baseURL.endsWith('/')) {
    axios.defaults.baseURL+="/";
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Client/src/extension/taskinfo/extend/taskExecuteDetail.vue
@@ -10,7 +10,7 @@
      <el-row height="50">
        <el-col :span="24">
          <div class="grid-content right-text">
            <el-link type="primary" @click="switchView">切换视图</el-link>
            <el-link type="primary" @click="switchView" v-if="false">切换视图</el-link>
          </div>
        </el-col>
      </el-row>
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8e07ae55-a2e7-4407-b10c-4a5a0c8d3f3a.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b45813db-207a-41f6-8e14-ddcbb57bee26.vsidx
Binary files differ
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/config/buttons.js
@@ -162,6 +162,15 @@
    onClick: function () {
    }
},
{
    name: "指 å®š åº“ å­˜ å‡º åº“",
    icon: '',
    class: '',
    value: 'StockOutbound',
    type: 'success',
    onClick: function () {
    }
},
]
export default buttons
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/extension/stock/stockView.js
@@ -17,6 +17,61 @@
    methods: {
       //下面这些方法可以保留也可以删除
      onInit() {  
        let InOrder = this.buttons.find(x => x.value == 'StockOutbound');
        if (InOrder) {
          InOrder.onClick = function () {
            let rows = this.$refs.table.getSelected();
            if (rows.length == 0) return this.$error("请选择数据!");
            if (rows.length > 1) return this.$error("请选择单条数据!");
            var keys = rows.map(x => { return x.stockId });
            this.http
              .post("api/Task/Outbound?id="+keys[0], null, "数据处理中")
              .then((x) => {
                if (!x.status) return this.$message.error(x.message);
                this.$message.success("操作成功");
                this.refresh();
              });
          }
        }
        this.columns.forEach(column => {
          if (column.field == 'materielCode') {
            column.formatter = (row) => {
              var str='';
              var list=row.materielCode.split(',');
              for (let index = 0; index < list.length; index++) {
                str+=list[index]+'<br>';
              }
              return str;
            }
          }
          if (column.field == 'batchNo') {
            column.formatter = (row) => {
              var str='';
              var list=row.batchNo.split(',');
              for (let index = 0; index < list.length; index++) {
                str+=list[index]+'<br>';
              }
              return str;
            }
          }
          if (column.field == 'materielInfo') {
            const today = new Date()
            column.formatter = (row) => {
              const today = new Date();
              const closestDate = row.details
              .map(x => {
                  const date = new Date(x.effectiveDate);
                  const diffInDays = Math.ceil(Math.abs((today - date) / (1000 * 60 * 60 * 24)));
                  return { date, diffInDays };
                })
              .reduce((closest, current) => (current.diffInDays < closest.diffInDays? current : closest))
              .date;
              const daysSinceClosest = Math.ceil(Math.abs((today - closestDate) / (1000 * 60 * 60 * 24)));
              return '<span style="color: #F56C6C">'+ daysSinceClosest+"天"+'</span>';
            }
          }
        })
      },
      onInited() {
        //框架初始化配置后
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/customerInfo.vue
@@ -44,7 +44,7 @@
                       {field:'code',title:'客户编码',type:'string',width:110,align:'left',sort:true},
                       {field:'name',title:'客户名称',type:'string',width:110,align:'left'},
                       {field:'nickName',title:'客户全称',type:'string',width:120,align:'left'},
                       {field:'state',title:'状态',type:'bool',width:110,require:true,align:'left'},
                       {field:'state',title:'状态',type:'bool',width:110,require:true,align:'left',bind: { key: "status", data: [] }},
                       {field:'creater',title:'创建者',type:'string',width:110,require:true,align:'left'},
                       {field:'createDate',title:'创建时间',type:'datetime',width:150,require:true,align:'left',sort:true},
                       {field:'modifier',title:'修改人',type:'string',width:100,align:'left'},
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/locationInfo.vue
@@ -37,6 +37,12 @@
    const searchFormFields = ref({
      locationCode: "",
      roadwayNo: "",
      locationType: "",
      enableStatus: "",
      locationStatus: "",
      row: "",
      column: "",
      layer: "",
    });
    const searchFormOptions = ref([
      [
@@ -47,6 +53,9 @@
      ],
      [
        { title: "货位状态", field: "locationStatus" ,type: "selectList",dataKey: "locationStatusEnum",data: [],},
        { title: "行", field: "row" ,type: "int"},
        { title: "列", field: "column" ,type: "int"},
        { title: "层", field: "layer" ,type: "int"}
      ],
    ]);
    const columns = ref([
@@ -54,7 +63,7 @@
        field: "id",
        title: "Id",
        type: "int",
        width: 90,
        width: 100,
        hidden: true,
        readonly: true,
        require: true,
@@ -72,21 +81,21 @@
        field: "locationCode",
        title: "货位编号",
        type: "string",
        width: 180,
        width: 200,
        align: "left",
      },
      {
        field: "locationName",
        title: "货位名称",
        type: "string",
        width: 220,
        width: 280,
        align: "left",
      },
      {
        field: "roadwayNo",
        title: "巷道编号",
        type: "decimal",
        width: 90,
        width: 100,
        align: "left",
      },
      {
@@ -133,7 +142,7 @@
        field: "locationStatus",
        title: "货位状态",
        type: "string",
        width: 200,
        width: 120,
        align: "left",
        bind: { key: "locationStatusEnum", data: [] },
      },
@@ -141,7 +150,7 @@
        field: "enableStatus",
        title: "禁用状态",
        type: "string",
        width: 180,
        width: 80,
        align: "left",
        bind: { key: "enableStatusEnum", data: [] },
      },
@@ -151,6 +160,7 @@
        type: "string",
        width: 90,
        align: "left",
        hidden: true,
      },
      {
        field: "createDate",
@@ -159,6 +169,7 @@
        width: 160,
        align: "left",
        sort: true,
        hidden: true,
      },
      {
        field: "modifier",
@@ -181,6 +192,7 @@
        type: "string",
        width: 100,
        align: "left",
        hidden: true
      },
    ]);
    const detail = ref({
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/materielInfo.vue
@@ -94,7 +94,7 @@
        align: "left",
      },
      {
        field: "areaId",
        field: "warehouseId",
        title: "区域主键",
        type: "string",
        width: 90,
@@ -127,6 +127,7 @@
        type: "string",
        width: 90,
        align: "left",
        hidden:true
      },
      {
        field: "packspes",
@@ -134,6 +135,7 @@
        type: "int",
        width: 120,
        align: "left",
        hidden:true
      },
      {
        field: "attribute",
@@ -141,6 +143,7 @@
        type: "string",
        width: 200,
        align: "left",
        hidden:true
      },
      {
        field: "unit",
@@ -162,6 +165,7 @@
        type: "string",
        width: 120,
        align: "left",
        hidden:true
      },
      {
        field: "creater",
@@ -183,6 +187,7 @@
        type: "string",
        width: 100,
        align: "left",
        hidden:true
      },
      {
        field: "modifyDate",
@@ -190,6 +195,7 @@
        type: "datetime",
        width: 160,
        align: "left",
        hidden:true
      },
      {
        field: "remark",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/supplierInfo.vue
@@ -42,7 +42,7 @@
                ],
                [
                 {title:"库存组织", field:"invOrgId", type:"like"},
                 {title:"状态", field:"status",type:"select",dataKey:"",data:[]},
                 {title:"状态", field:"status",type:"select",dataKey:"status",data:[]},
                ]
            ]);
            const columns = ref([{field:'id',title:'主键',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
@@ -53,13 +53,13 @@
                       {field:'contactNumber',title:'联系电话',type:'string',width:110,align:'left'},
                       {field:'contactAddress',title:'联系地址',type:'string',width:180,align:'left'},
                       {field:'email',title:'电子邮箱',type:'string',width:110,align:'left'},
                       {field:'description',title:'描述',type:'string',width:180,align:'left'},
                       {field:'description',title:'描述',type:'string',width:180,align:'left',hidden:true},
                       {field:'invOrgId',title:'库存组织',type:'string',width:110,align:'left'},
                       {field:'status',title:'状态',type:'int',width:110,require:true,align:'left'},
                       {field:'status',title:'状态',type:'int',width:110,require:true,align:'left',bind: { key: "status", data: [] },},
                       {field:'creater',title:'创建者',type:'string',width:110,require:true,align:'left'},
                       {field:'createDate',title:'创建时间',type:'datetime',width:150,require:true,align:'left',sort:true},
                       {field:'modifier',title:'修改人',type:'string',width:100,align:'left'},
                       {field:'modifyDate',title:'修改日期',type:'datetime',width:150,align:'left',sort:true}]);
                       {field:'modifier',title:'修改人',type:'string',width:100,align:'left',hidden:true},
                       {field:'modifyDate',title:'修改日期',type:'datetime',width:150,align:'left',sort:true,hidden:true}]);
            const detail = ref({
                cnName: "#detailCnName",
                table: "#detailTable",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/userInfo.vue
@@ -49,7 +49,7 @@
                       {field:'deptNo',title:'部门编码',type:'string',width:110,align:'left'},
                       {field:'deptName',title:'部门名称',type:'string',width:110,align:'left'},
                       {field:'name',title:'员工名称',type:'string',width:110,align:'left'},
                       {field:'state',title:'状态',type:'int',width:110,require:true,align:'left'},
                       {field:'state',title:'状态',type:'int',width:110,require:true,align:'left',bind: { key: "status", data: [] }},
                       {field:'invOrgId',title:'库存组织',type:'string',width:110,align:'left'},
                       {field:'type',title:'类型',type:'int',width:110,require:true,align:'left'},
                       {field:'creater',title:'创建者',type:'string',width:110,require:true,align:'left'},
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/basic/warehouse.vue
@@ -141,6 +141,7 @@
        type: "string",
        width: 100,
        align: "left",
        hidden: true
      },
      {
        field: "modifyDate",
@@ -148,6 +149,7 @@
        type: "datetime",
        width: 160,
        align: "left",
        hidden: true
      },
      {
        field: "remark",
@@ -155,6 +157,7 @@
        type: "string",
        width: 100,
        align: "left",
        hidden: true
      },
    ]);
    const detail = ref({
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/inbound/purchaseOrder.vue
@@ -76,7 +76,7 @@
          title: "单据类型",
          field: "orderType",
          type: "select",
          dataKey: "inOrderType",
          dataKey: "purchaseType",
          data: [],
        },
        {
@@ -124,6 +124,7 @@
        type: "string",
        width: 150,
        align: "left",
        bind: { key: "purchaseType", data: [] },
      },
      {
        field: "supplierCode",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/inbound/receiveOrder.vue
@@ -49,8 +49,8 @@
        {
          title: "单据状态",
          field: "orderStatus",
          type: "select",
          dataKey: "inboundState",
          type: "selectList",
          dataKey: "receiveStatus",
          data: [],
        },
      ],
@@ -141,6 +141,7 @@
        type: "string",
        width: 150,
        align: "left",
        bind: { key: "receiveStatus", data: [] },
      },
      {
        field: "customerId",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/stockInfo.vue
@@ -40,7 +40,6 @@
       [
        {field:'palletCode',title:'托盘编号',type:'string'},
        {field:'locationCode',title:'货位编号',type:'string'},
        {field:'isFull',title:'是否满盘',type:'select',dataKey:"yesno",data:[]},
       ]
      ]);
      const searchFormFields = ref({
@@ -78,13 +77,21 @@
          width: 150,
          align: "left",
        },
        // {
        //   field: "isFull",
        //   title: "是否满盘",
        //   type: "string",
        //   width: 150,
        //   align: "left",
        //   bind: { key: "yesno", data: [] },
        // },
        {
          field: "isFull",
          title: "是否满盘",
          type: "string",
          width: 150,
          field: "warehouseId",
          title: "仓库",
          type: "select",
          width: 100,
          align: "left",
          bind: { key: "yesno", data: [] },
          bind: { key: "warehouses", data: [] },
        },
        {
          field: "creater",
@@ -106,6 +113,7 @@
          type: "string",
          width: 100,
          align: "left",
          hidden:true
        },
        {
          field: "modifyDate",
@@ -113,6 +121,7 @@
          type: "datetime",
          width: 160,
          align: "left",
          hidden:true
        },
        {
          field: "remark",
@@ -120,26 +129,14 @@
          type: "string",
          width: 100,
          align: "left",
          hidden:true
        },
      ]);
      const detail = ref({
        cnName: "历史库存信息",
        table: "StockInfo_Hty",
        columns: [
          {field:'id',title:'主键',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
          {field:'palletCode',title:'托盘编号',type:'string',width:110,require:true,align:'left',sort:true},
          {field:'locationCode',title:'货位编号',type:'string',width:110,align:'left'},
          {field:'isFull',title:'是否满盘',type:'bool',width:110,require:true,align:'left'},
          {field:'stockStatus',title:'库存状态',type:'int',width:110,require:true,align:'left'},
          {field:'remark',title:'备注',type:'string',width:220,align:'left'},
          {field:'sourceId',title:'源主键',type:'int',width:110,require:true,align:'left'},
          {field:'operateType',title:'备注',type:'string',width:110,require:true,align:'left'},
          {field:'creater',title:'创建人',type:'string',width:110,require:true,align:'left'},
          {field:'createDate',title:'创建时间',type:'datetime',width:150,require:true,align:'left',sort:true},
          {field:'modifier',title:'修改人',type:'string',width:100,align:'left'},
          {field:'modifyDate',title:'修改日期',type:'datetime',width:150,align:'left',sort:true}
        ],
        sortName: "id",
        cnName: "#detailCnName",
        table: "",
        columns: [],
        sortName: "",
      });
      return {
        table,
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
@@ -36,14 +36,20 @@
    ]);
    const searchFormFields = ref({
      palletCode: "",
      locationCode: "",
      // locationCode: "",
      materielCode:"",
      batchNo:""
    });
    const searchFormOptions = ref([
      [
        { title: "托盘编号", field: "palletCode" },
        { title: "货位编号", field: "locationCode" },
        { title: "托盘编号", field: "palletCode",type: "like" },
        // { title: "货位编号", field: "locationCode",type: "like" },
        { title: "货位状态", field: "locationStatus" ,type: "selectList",dataKey: "locationStatusEnum",data: [],},
        { title: "库存状态", field: "stockStatus" ,type: "selectList",dataKey: "stockStatusEmun",data: [],},
      ],
      [
        { title: "物料编号", field: "materielCode",type: "like"},
        { title: "批次号", field: "batchNo",type: "like"}
      ],
    ]);
    const columns = ref([
@@ -69,21 +75,44 @@
        field: "locationCode",
        title: "货位编号",
        type: "string",
        width: 180,
        width: 200,
        align: "left",
      },
      {
        field: "locationName",
        title: "货位名称",
        type: "string",
        width: 220,
        width: 270,
        align: "left",
      },
      {
        field: "roadwayNo",
        title: "巷道编号",
        type: "decimal",
        width: 90,
        width: 100,
        align: "left",
        hidden:true
      },
      {
        field: "materielCode",
        title: "所含物料编号",
        type: "string",
        width: 120,
        align: "left",
      },
      {
        field: "batchNo",
        title: "所含物料批次",
        type: "string",
        width: 200,
        align: "left"
      },
      {
        field: "materielInfo",
        title: "所含物料最早临期",
        type: "string",
        width: 140,
        align: "left",
      },
      {
@@ -130,7 +159,7 @@
        field: "locationType",
        title: "货位类型",
        type: "string",
        width: 120,
        width: 100,
        align: "left",
        bind:{key: "locationTypeEnum", data: []}
      },
@@ -138,7 +167,7 @@
        field: "locationStatus",
        title: "货位状态",
        type: "string",
        width: 200,
        width: 120,
        align: "left",
        bind: { key: "locationStatusEnum", data: [] },
      },
@@ -146,18 +175,9 @@
        field: "enalbeStatus",
        title: "禁用状态",
        type: "string",
        width: 180,
        width: 80,
        align: "left",
        bind: { key: "enableStatusEnum", data: [] },
      },
      {
        field: "isFull",
        title: "是否满盘",
        type: "string",
        width: 150,
        align: "left",
        hidden: true,
          bind: { key: "yesno", data: [] },
      },
      {
        field: "creater",
@@ -193,6 +213,7 @@
        type: "string",
        width: 100,
        align: "left",
        hidden:true
      },
    ]);
    const detail = ref({
@@ -215,33 +236,34 @@
          type: "string",
          width: 90,
          align: "left",
          hidden: true
        },
        {
          field: "materielCode",
          title: "物料编号",
          type: "string",
          width: 150,
          width: 110,
          align: "left",
        },
        {
          field: "materielName",
          title: "物料名称",
          type: "string",
          width: 150,
          width: 130,
          align: "left",
        },
        {
          field: "orderNo",
          title: "单据编号",
          type: "decimal",
          width: 90,
          width: 130,
          align: "left",
        },
        {
          field: "batchNo",
          title: "批次号",
          type: "string",
          width: 90,
          width: 180,
          align: "left",
        },
        {
@@ -250,19 +272,41 @@
          type: "int",
          width: 120,
          align: "left",
          hidden: true,
        },
        {
          field: "stockQuantity",
          title: "库存数量",
          type: "string",
          width: 200,
          width: 80,
          align: "left",
        },
        {
          field: "outboundQuantity",
          title: "出库数量",
          type: "string",
          width: 180,
          width: 80,
          align: "left",
        },
        {
          field: "unit",
          title: "单位",
          type: "string",
          width: 50,
          align: "left",
        },
        {
          field: "productionDate",
          title: "生产日期",
          type: "string",
          width: 80,
          align: "left",
        },
        {
          field: "effectiveDate",
          title: "有效日期",
          type: "string",
          width: 80,
          align: "left",
        },
        {
@@ -271,6 +315,7 @@
          type: "string",
          width: 120,
          align: "left",
          bind: { key: "stockStatusEmun", data: [] }
        },
        {
          field: "creater",
@@ -278,6 +323,7 @@
          type: "string",
          width: 90,
          align: "left",
          hidden: true
        },
        {
          field: "createDate",
@@ -285,6 +331,7 @@
          type: "datetime",
          width: 160,
          align: "left",
          hidden: true
        },
        {
          field: "modifier",
@@ -292,6 +339,7 @@
          type: "string",
          width: 100,
          align: "left",
          hidden: true
        },
        {
          field: "modifyDate",
@@ -299,6 +347,7 @@
          type: "datetime",
          width: 160,
          align: "left",
          hidden: true
        },
        {
          field: "remark",
@@ -306,6 +355,7 @@
          type: "string",
          width: 100,
          align: "left",
          hidden: true
        },
      ],
      sortName: "id",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue
@@ -48,7 +48,7 @@
        { title: "创建人", field: "creater", type: "like" },
      ],
      [
        { title: "任务类型",field: "taskType",type: "selectList",dataKey: "taskTypeEnum",data: [],},
        { title: "任务类型",field: "taskType",type: "selectList",dataKey: "taskType",data: [],},
        { title: "任务状态",field: "taskStatus",type: "selectList",dataKey: "taskStatusEnum",data: [],},
        { title: "巷道号", field: "roadway", type: "like" },
      ],
@@ -96,7 +96,7 @@
        type: "int",
        width: 90,
        align: "left",
        bind: { key: "taskTypeEnum", data: [] },
        bind: { key: "taskType", data: [] },
      },
      {
        field: "taskStatus",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_hty.vue
@@ -48,7 +48,7 @@
        { title: "创建人", field: "creater", type: "like" },
      ],
      [
        { title: "任务类型",field: "taskType",type: "selectList",dataKey: "taskTypeEnum",data: [],},
        { title: "任务类型",field: "taskType",type: "selectList",dataKey: "taskType",data: [],},
        { title: "任务状态",field: "taskStatus",type: "selectList",dataKey: "taskStatusEnum",data: [],},
        { title: "巷道号", field: "roadway", type: "like" },
      ],
@@ -96,7 +96,7 @@
        type: "int",
        width: 90,
        align: "left",
        bind: { key: "taskTypeEnum", data: [] },
        bind: { key: "taskType", data: [] },
      },
      {
        field: "taskStatus",
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c44d9433-e876-4faf-90e0-7b056781c3b4.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d4c63503-44a3-443c-a699-9cde9edbeae2.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/da85dbf7-c355-4843-a8fd-bdd296cc107b.vsidx
Binary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/UserInfoService.cs
@@ -5,17 +5,22 @@
using System.Threading.Tasks;
using WIDESEA_Core;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Const;
using WIDESEA_Core.Helper;
using WIDESEA_DTO.ERP;
using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
using WIDESEA_ISystemRepository;
using WIDESEA_Model.Models;
namespace WIDESEA_BasicService
{
    public class UserInfoService : ServiceBase<Dt_UserInfo, IUserInfoRepository>, IUserInfoService
    {
        public UserInfoService(IUserInfoRepository BaseDal) : base(BaseDal)
        private readonly ISys_UserRepository _userRepository;
        public UserInfoService(IUserInfoRepository BaseDal, ISys_UserRepository userRepository) : base(BaseDal)
        {
            _userRepository = userRepository;
        }
        public IUserInfoRepository Repository => BaseDal;
@@ -35,8 +40,21 @@
                        Name = model.Name,
                        State = model.State
                    };
                    Sys_User user = new Sys_User()
                    {
                        UserName = userInfo.Code,
                        RoleId = 0,
                        UserPwd = "TC123456".EncryptDES(AppSecret.User),
                        RoleName = "",
                        Enable = (byte)userInfo.State,
                        LastModifyPwdDate = DateTime.Now,
                        Address = "系统服务器",
                        TenantId = 0,
                        Creater = "系统",
                        UserTrueName = userInfo.Name,
                    };
                    BaseDal.AddData(userInfo);
                    _userRepository.AddData(user);
                }
                else if (model.OperateType == "1")
                {
@@ -68,5 +86,36 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent AddUser()
        {
            try
            {
                List<Dt_UserInfo> userInfos = BaseDal.QueryData().Where(x=>x.Code!= "Admin").ToList();
                List<Sys_User> userList = new List<Sys_User>();
                foreach (var item in userInfos)
                {
                    Sys_User user = new Sys_User()
                    {
                        UserName = item.Code,
                        RoleId = 0,
                        UserPwd="TC123456".EncryptDES(AppSecret.User),
                        RoleName ="",
                        Enable=(byte)item.State,
                        LastModifyPwdDate=DateTime.Now,
                        Address= "系统服务器",
                        TenantId=0,
                        Creater= "系统",
                        UserTrueName=item.Name,
                    };
                    userList.Add(user);
                }
                _userRepository.AddData(userList);
                return WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/WIDESEA_BasicService.csproj
@@ -9,6 +9,7 @@
  <ItemGroup>
    <ProjectReference Include="..\WIDESEA_IBasicService\WIDESEA_IBasicService.csproj" />
    <ProjectReference Include="..\WIDESEA_IRecordService\WIDESEA_IRecordService.csproj" />
    <ProjectReference Include="..\WIDESEA_ISystemRepository\WIDESEA_ISystemRepository.csproj" />
  </ItemGroup>
</Project>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Common/LocationEnum/LocationTypeEnum.cs
@@ -35,5 +35,11 @@
        /// </summary>
        [Description("大托盘")]
        LargePallet = 3,
        /// <summary>
        /// ç‰¹å¤§æ‰˜ç›˜
        /// </summary>
        [Description("特大托盘")]
        ExtraPallet = 4,
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs
@@ -87,7 +87,7 @@
                {
                    int length = sugarColumn.Length;
                    if (length == 0) { return (true, null, null); }
                    if (length == 0) { return (true, null, value); }
                    //判断双字节与单字段
                    else if (length < 8000 &&
                        ((dbType.Substring(0, 1) != "n"
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs
@@ -12,6 +12,7 @@
{
    public class StockViewDTO
    {
        [SugarColumn(IsNullable = true, ColumnDescription = "货位号")]
        public string LocationCode { get; set; }
        public string LocationName { get; set; }
@@ -34,10 +35,15 @@
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int StockId { get; set; }
        [SugarColumn(IsNullable = true, ColumnDescription = "托盘号")]
        public string PalletCode { get; set; }
        public bool IsFull { get; set; }
        [SugarColumn(IsNullable = true, ColumnDescription = "物料号")]
        public string MaterielCode { get; set; }
        [SugarColumn(IsNullable = true, ColumnDescription = "批次号")]
        public string BatchNo { get; set; }
        public int StockStatus { get; set; }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IUserInfoService.cs
@@ -16,5 +16,6 @@
        IUserInfoRepository Repository { get; }
        WebResponseContent ReceiveUser(UserInfoDTO content);
        WebResponseContent AddUser();
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -122,5 +122,11 @@
        MesResponseContent TestScrap(TestToolScrap toolScraps);
        WebResponseContent IsRelocation(int taskNum, string locationCode);
        WebResponseContent TestSynStock(TestToolSynInfo toolSynInfo);
        /// <summary>
        /// é€‰æ‹©åº“存生成出库任务
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        WebResponseContent Outbound(int id);
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -217,6 +217,7 @@
                    SerialNumber = model.SerialNumber,
                    StockQuantity = model.Quantity,
                    OutboundQuantity = 0,
                    Unit = materielInfo.MaterielUnit,
                    Status = StockStatusEmun.组盘暂存.ObjToInt(),
                    ProductionDate = model.ProductionDate,
                    EffectiveDate = model.EffectiveDate,
@@ -381,6 +382,7 @@
                        SerialNumber = model.SerialNumber,
                        StockQuantity = model.Quantity,
                        OutboundQuantity = 0,
                        Unit = materielInfo.MaterielUnit,
                        Status = StockStatusEmun.组盘暂存.ObjToInt(),
                        ProductionDate = model.ProductionDate,
                        EffectiveDate = model.EffectiveDate,
@@ -508,6 +510,7 @@
                        SerialNumber = model.SerialNumber,
                        StockQuantity = model.Quantity,
                        OutboundQuantity = 0,
                        Unit= materielInfo.MaterielUnit,
                        Status = StockStatusEmun.组盘暂存.ObjToInt(),
                        ProductionDate = model.ProductionDate,
                        EffectiveDate = model.EffectiveDate,
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs
@@ -87,6 +87,11 @@
        public int Status { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "单位")]
        public string Unit { get; set; }
        /// <summary>
        /// å…¥åº“单明细行号
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "入库单明细行号")]
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockViewService.cs
@@ -1,7 +1,9 @@

using HslCommunication.Secs.Types;
using Microsoft.AspNetCore.Http;
using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing.Printing;
using System.Dynamic;
@@ -35,7 +37,8 @@
        public virtual PageGridData<StockViewDTO> GetPageData(PageDataOptions options)
        {
            string where = options.ValidatePageOptions(typeof(StockViewDTO).GetProperties());
            //string where = options.ValidatePageOptions(typeof(StockViewDTO).GetProperties());
            //获取排序字段
            //Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(typeof(StockViewDTO).GetProperties());
            //List<OrderByModel> orderByModels = new List<OrderByModel>();
@@ -50,10 +53,11 @@
            //}
            int totalCount = 0;
            ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>();
            ISugarQueryable<Dt_StockInfo> sugarQueryable1 = _dbBase.Queryable<Dt_StockInfo>().Includes(x=>x.Details);
            ISugarQueryable<Dt_LocationInfo> sugarQueryable = _dbBase.Queryable<Dt_LocationInfo>();
            
            List<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).WhereIF(!string.IsNullOrEmpty(where), where).Select((b, a) => new StockViewDTO
            List<StockViewDTO> list = sugarQueryable1.InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode).Select((b, a)
                => new StockViewDTO
            {
                LocationCode = b.LocationCode,
                Column = a.Column,
@@ -75,8 +79,41 @@
                StockStatus = b.StockStatus,
                Details = b.Details,
            }).ToPageList(options.Page, options.Rows, ref totalCount);
            list.ForEach(x =>
                {
                    x.MaterielCode = string.Join(",", x.Details.Select(x => x.MaterielCode).Distinct());
                    x.BatchNo = string.Join(",", x.Details.Select(x => x.BatchNo).Distinct());
                }
            );
            if (options.Wheres.IsNotEmptyOrNull())
            {
                List<SearchParameters> searchParameters = options.Wheres.DeserializeObject<List<SearchParameters>>();
                foreach (var item in searchParameters)
                {
                    switch (item.Name)
                    {
                        case "palletCode":
                            list = list.Where(x => x.PalletCode.Contains(item.Value)).ToList();
                            break;
                        case "locationStatus":
                            List<int> locationStatus = item.Value.Split(",").Select(int.Parse).ToList();
                            list = list.Where(x => locationStatus.Contains(x.LocationStatus)).ToList();
                            break;
                        case "stockStatus":
                            List<int> stockStatus = item.Value.Split(",").Select(int.Parse).ToList();
                            list = list.Where(x => stockStatus.Contains(x.StockStatus)).ToList();
                            break;
                        case "materielCode":
                            list = list.Where(x => x.MaterielCode.Contains(item.Value)).ToList();
                            break;
                        case "batchNo":
                            list=list.Where(x => x.BatchNo.Contains(item.Value)).ToList();
                            break;
                        default:
                            break;
                    }
                }
            }
            return new PageGridData<StockViewDTO>(totalCount, list);
        }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs
@@ -210,6 +210,54 @@
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "materials":
                        {
                            {
                                List<object> data = new List<object>();
                                {
                                    List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData();
                                    int index = 0;
                                    foreach (var item in materielInfos)
                                    {
                                        data.Add(new { key = item.MaterielCode, value = item.MaterielCode });
                                        index++;
                                    }
                                }
                                result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                            }
                        }
                        break;
                    case "taskType":
                        {
                            List<object> data = new List<object>();
                            #region TaskTypeEnum
                            {
                                Type type = typeof(TaskTypeEnum);
                                List<int> enums = Enum.GetValues(typeof(TaskTypeEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(TaskTypeEnum).GetField(((TaskTypeEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            #endregion
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "inboundState":
                        {
                            List<object> data = new List<object>();
@@ -711,6 +759,60 @@
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "receiveStatus":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(ReceiveOrderStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(ReceiveOrderStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(ReceiveOrderStatusEnum).GetField(((ReceiveOrderStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "purchaseType":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(PurchaseOrderStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(PurchaseOrderStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(PurchaseOrderStatusEnum).GetField(((PurchaseOrderStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                }
                return result;
            }
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -242,6 +242,8 @@
                {
                    x.Status = StockStatusEmun.入库完成.ObjToInt();
                });
                //更新任务状态
                task.TaskStatus = (int)TaskStatusEnum.Finish;
                _unitOfWorkManage.BeginTran();
                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.人工完成 : OperateTypeEnum.自动完成);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs
@@ -13,12 +13,65 @@
using WIDESEA_Common.TaskEnum;
using WIDESEA_Common.OrderEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
namespace WIDESEA_TaskInfoService
{
    public partial class TaskService
    {
        /// <summary>
        /// é€‰æ‹©åº“存生成出库任务
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public WebResponseContent Outbound(int id)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x=>x.Id==id).Includes(x=>x.Details).First();
                if (stockInfo == null)
                {
                    return content.Error($"未找到库存");
                }
                Dt_LocationInfo locationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
                if (locationInfo!=null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus==LocationStatusEnum.InStock.ObjToInt() && stockInfo.StockStatus==StockStatusEmun.入库完成.ObjToInt())
                {
                    List<Dt_Task> tasks = GetTasks(new List<Dt_StockInfo>() { stockInfo });
                    if (tasks == null || tasks.Count <= 0)
                    {
                        return content.Error($"生成任务失败");
                    }
                    //处理库存数据
                    stockInfo.StockStatus = (int)StockStatusEmun.出库锁定;
                    LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                    locationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
                    //判断是否有出库单信息
                    _unitOfWorkManage.BeginTran();
                    //更新库存状态
                    _stockRepository.StockInfoRepository.UpdateData(stockInfo);
                    //更新货位状态
                    _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
                    //新建任务
                    BaseDal.AddData(tasks);
                    //加入货位变动记录
                    _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, locationStatus, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", tasks[0].TaskNum);
                    _unitOfWorkManage.CommitTran();
                    PushTasksToWCS(tasks);
                    content.OK();
                }
                else
                {
                    content.Error($"货位出库条件不满足");
                }
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        /// <summary>
        /// åº“存数据转出库任务
        /// </summary>
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/UserInfoController.cs
@@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_IBasicService;
using WIDESEA_Model.Models;
@@ -15,5 +17,14 @@
        public UserInfoController(IUserInfoService service) : base(service)
        {
        }
        /// <summary>
        /// ç”Ÿæˆç”¨æˆ·è´¦å·
        /// </summary>
        /// <returns></returns>
        [HttpPost,Route("AddUser"),AllowAnonymous]
        public WebResponseContent AddUser()
        {
           return  Service.AddUser();
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -140,5 +140,15 @@
        {
            return Service.PushTasksToWCSSingle(taskNum, agvDescription);
        }
        /// <summary>
        /// é€‰æ‹©åº“存生成出库任务
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpPost, Route("Outbound"), AllowAnonymous]
        public WebResponseContent Outbound(int id)
        {
            return Service.Outbound(id);
        }
    }
}
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -6,7 +6,7 @@
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType",
  "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType",
  "AllowedHosts": "*",
  "ConnectionStringsEncryption": false,
  "MainDB": "DB_WIDESEA", //当前项目的主库,所对应的连接字符串的Enabled必须为true