Commit 4192eb869170c0c4071e201cb6393ed8b6dba7ed

Authored by 肖超群
2 parents a4efde3a 6ff036f9

Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4 into develop

# Conflicts:
#	ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
#	ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
Showing 46 changed files with 1192 additions and 1093 deletions
ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiCycleCount.vue
... ... @@ -34,7 +34,7 @@ export default {
34 34 {title: 'ID', align: 'center', width: '20%',widthRight: '70%', dataIndex: 'id'},
35 35 {title: '容器编码', align: 'center', width: '25%', dataIndex: 'containerCode'},
36 36 {title: '容器状态', align: 'center', width: '20%', dataIndex: 'containerStatus'},
37   - {title: '库位', align: 'center', width: '20%', dataIndex: 'locationCode'},
  37 + {title: '库位编码', align: 'center', width: '20%', dataIndex: 'locationCode'},
38 38 {title: '总数量', align: 'center', width: '20%', dataIndex: 'totalQty'},
39 39 {title: '库区', align: 'center', width: '20%', widthRight: '70%', dataIndex: 'zoneCode'},
40 40 {title: '状态', align: 'center', width: '20%', dataIndex: 'enable'},
... ...
ant-design-vue-jeecg/src/views/system/UserList.vue
... ... @@ -104,6 +104,7 @@
104 104 :pagination="ipagination"
105 105 :loading="loading"
106 106 :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
  107 + class="j-table-force-nowrap"
107 108 @change="handleTableChange">
108 109  
109 110 <span slot="selectedWarehouses" slot-scope="selectedWarehouses" >
... ...
ant-design-vue-jeecg/src/views/system/config/ContainerTypeList.vue
... ... @@ -18,10 +18,10 @@
18 18 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
19 19 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
20 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21   - <a @click="handleToggleSearch" style="margin-left: 8px">
  21 + <!-- <a @click="handleToggleSearch" style="margin-left: 8px">
22 22 {{ toggleSearchStatus ? '收起' : '展开' }}
23 23 <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
24   - </a>
  24 + </a> -->
25 25 </span>
26 26 </a-col>
27 27 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue
... ... @@ -18,10 +18,6 @@
18 18 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
19 19 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
20 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21   - <a @click="handleToggleSearch" style="margin-left: 8px">
22   - {{ toggleSearchStatus ? '收起' : '展开' }}
23   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
24   - </a>
25 21 </span>
26 22 </a-col>
27 23 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/config/LocationList.vue
... ... @@ -5,6 +5,20 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="库区">
  9 + <a-select
  10 + show-search
  11 + placeholder="请选择库区"
  12 + option-filter-prop="children"
  13 + v-model="queryParam.zoneCode"
  14 + >
  15 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  16 + {{ item.name }}
  17 + </a-select-option>
  18 + </a-select>
  19 + </a-form-item>
  20 + </a-col>
  21 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 22 <a-form-item label="库位编码">
9 23 <a-input placeholder="请输入库位编码" v-model="queryParam.code"></a-input>
10 24 </a-form-item>
... ... @@ -19,41 +33,32 @@
19 33 <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="location_status"/>
20 34 </a-form-item>
21 35 </a-col>
  36 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  37 + <a-form-item label="库位类型">
  38 + <a-select
  39 + show-search
  40 + placeholder="请选择库位类型"
  41 + option-filter-prop="children"
  42 + v-model="queryParam.locationTypeCode"
  43 + >
  44 + <a-select-option v-for="item in locationTypeList" :key="item.name" :value="item.code">
  45 + {{ item.name }}
  46 + </a-select-option>
  47 + </a-select>
  48 + </a-form-item>
  49 + </a-col>
  50 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  51 + <a-form-item label="巷道">
  52 + <a-input placeholder="请输入巷道" v-model="queryParam.roadWay"></a-input>
  53 + </a-form-item>
  54 + </a-col>
  55 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  56 + <a-form-item label="是否可用">
  57 + <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status"/>
  58 + </a-form-item>
  59 + </a-col>
22 60 <template v-if="toggleSearchStatus">
23 61 <a-col :xl="6" :lg="7" :md="8" :sm="24">
24   - <a-form-item label="库位类型">
25   - <a-select
26   - show-search
27   - placeholder="请选择库位类型"
28   - option-filter-prop="children"
29   - v-model="queryParam.locationTypeCode"
30   - >
31   - <a-select-option v-for="item in locationTypeList" :key="item.name" :value="item.code">
32   - {{ item.name }}
33   - </a-select-option>
34   - </a-select>
35   - </a-form-item>
36   - </a-col>
37   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
38   - <a-form-item label="库区">
39   - <a-select
40   - show-search
41   - placeholder="请选择库区"
42   - option-filter-prop="children"
43   - v-model="queryParam.zoneCode"
44   - >
45   - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
46   - {{ item.name }}
47   - </a-select-option>
48   - </a-select>
49   - </a-form-item>
50   - </a-col>
51   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
52   - <a-form-item label="巷道">
53   - <a-input placeholder="请输入巷道" v-model="queryParam.roadWay"></a-input>
54   - </a-form-item>
55   - </a-col>
56   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
57 62 <a-form-item label="行">
58 63 <a-input placeholder="请输入行" v-model="queryParam.row"></a-input>
59 64 </a-form-item>
... ... @@ -78,11 +83,6 @@
78 83 <j-dict-select-tag placeholder="请选择内外侧" v-model="queryParam.rowFlag" dictCode="row_type"/>
79 84 </a-form-item>
80 85 </a-col>
81   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
82   - <a-form-item label="是否可用">
83   - <j-dict-select-tag placeholder="请选择是否可用" v-model="queryParam.enable" dictCode="enable_status"/>
84   - </a-form-item>
85   - </a-col>
86 86 </template>
87 87 <a-col :xl="6" :lg="7" :md="8" :sm="24">
88 88 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
... ...
ant-design-vue-jeecg/src/views/system/config/LocationTypeList.vue
... ... @@ -18,10 +18,6 @@
18 18 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
19 19 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
20 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21   - <a @click="handleToggleSearch" style="margin-left: 8px">
22   - {{ toggleSearchStatus ? '收起' : '展开' }}
23   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
24   - </a>
25 21 </span>
26 22 </a-col>
27 23 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/config/MaterialList.vue
... ... @@ -14,21 +14,15 @@
14 14 <a-input placeholder="请输入物料名称" v-model="queryParam.name"></a-input>
15 15 </a-form-item>
16 16 </a-col>
17   - <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="可用状态">
20   - <j-dict-select-tag placeholder="请选择可用状态" v-model="queryParam.enable" dictCode="enable_status"/>
21   - </a-form-item>
22   - </a-col>
23   - </template>
  17 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  18 + <a-form-item label="可用状态">
  19 + <j-dict-select-tag placeholder="请选择可用状态" v-model="queryParam.enable" dictCode="enable_status"/>
  20 + </a-form-item>
  21 + </a-col>
24 22 <a-col :xl="6" :lg="7" :md="8" :sm="24">
25 23 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
26 24 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
27 25 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
28   - <a @click="handleToggleSearch" style="margin-left: 8px">
29   - {{ toggleSearchStatus ? '收起' : '展开' }}
30   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
31   - </a>
32 26 </span>
33 27 </a-col>
34 28 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/config/MaterialTypeList.vue
... ... @@ -18,10 +18,6 @@
18 18 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
19 19 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
20 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21   - <a @click="handleToggleSearch" style="margin-left: 8px">
22   - {{ toggleSearchStatus ? '收起' : '展开' }}
23   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
24   - </a>
25 21 </span>
26 22 </a-col>
27 23 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/config/MaterialUnitList.vue
... ... @@ -14,21 +14,15 @@
14 14 <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
15 15 </a-form-item>
16 16 </a-col>
17   - <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="单位">
20   - <a-input placeholder="请输入单位" v-model="queryParam.unit"></a-input>
21   - </a-form-item>
22   - </a-col>
23   - </template>
  17 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  18 + <a-form-item label="单位">
  19 + <a-input placeholder="请输入单位" v-model="queryParam.unit"></a-input>
  20 + </a-form-item>
  21 + </a-col>
24 22 <a-col :xl="6" :lg="7" :md="8" :sm="24">
25 23 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
26 24 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
27 25 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
28   - <a @click="handleToggleSearch" style="margin-left: 8px">
29   - {{ toggleSearchStatus ? '收起' : '展开' }}
30   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
31   - </a>
32 26 </span>
33 27 </a-col>
34 28 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/config/MaterialWarningList.vue
... ... @@ -18,10 +18,10 @@
18 18 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
19 19 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
20 20 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
21   - <a @click="handleToggleSearch" style="margin-left: 8px">
  21 + <!-- <a @click="handleToggleSearch" style="margin-left: 8px">
22 22 {{ toggleSearchStatus ? '收起' : '展开' }}
23 23 <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
24   - </a>
  24 + </a> -->
25 25 </span>
26 26 </a-col>
27 27 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
1 1 <template>
2   - <a-card :bordered="false">
3   - <!-- 查询区域 -->
4   - <div class="table-page-search-wrapper">
5   - <a-form layout="inline" @keyup.enter.native="searchQuery">
6   - <a-row :gutter="24">
7   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
8   - <a-form-item label="货主">
9   - <a-input placeholder="请输入货主" v-model="queryParam.companyCode"></a-input>
10   - </a-form-item>
11   - </a-col>
12   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
13   - <a-form-item label="库区">
14   - <a-input placeholder="请输入库区" v-model="queryParam.zoneCode"></a-input>
15   - </a-form-item>
16   - </a-col>
17   - <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="容器状态">
20   - <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus" dictCode="container_status"/>
21   - </a-form-item>
22   - </a-col>
23   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
24   - <a-form-item label="容器编码">
25   - <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
26   - </a-form-item>
27   - </a-col>
28   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
29   - <a-form-item label="库位编码">
30   - <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
31   - </a-form-item>
32   - </a-col>
33   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
34   - <a-form-item label="物料编码">
35   - <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
36   - </a-form-item>
37   - </a-col>
38   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
39   - <a-form-item label="物料名称">
40   - <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
41   - </a-form-item>
42   - </a-col>
43   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
44   - <a-form-item label="物料规格">
45   - <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input>
46   - </a-form-item>
47   - </a-col>
48   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
49   - <a-form-item label="物料单位">
50   - <a-input placeholder="请输入物料单位" v-model="queryParam.materialUnit"></a-input>
51   - </a-form-item>
52   - </a-col>
53   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
54   - <a-form-item label="库存状态">
55   - <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_status"/>
56   - </a-form-item>
57   - </a-col>
58   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
59   - <a-form-item label="库龄(天)">
60   - <a-input placeholder="请输入库龄(天)" v-model="queryParam.inventoryAge"></a-input>
61   - </a-form-item>
62   - </a-col>
63   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
64   - <a-form-item label="序列号">
65   - <a-input placeholder="请输入序列号" v-model="queryParam.sn"></a-input>
66   - </a-form-item>
67   - </a-col>
68   - <a-col :xl="10" :lg="11" :md="12" :sm="24">
69   - <a-form-item label="创建日期">
70   - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
71   - <span class="query-group-split-cust"></span>
72   - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
73   - </a-form-item>
74   - </a-col>
75   - </template>
76   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
77   - <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
78   - <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
79   - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
80   - <a @click="handleToggleSearch" style="margin-left: 8px">
81   - {{ toggleSearchStatus ? '收起' : '展开' }}
82   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
83   - </a>
84   - </span>
85   - </a-col>
86   - </a-row>
87   - </a-form>
88   - </div>
89   - <!-- 查询区域-END -->
90   -
  2 + <a-card :bordered="false" :class="'cust-erp-sub-tab'">
91 3 <!-- 操作按钮区域 -->
92   - <div class="table-operator">
93   - <a-button v-has="'inventoryChild:superSearch'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
94   - <a-button v-has="'inventoryChild:export'" type="primary" icon="download" @click="handleExportXls('库存明细')">导出</a-button>
95   - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
96   - <a-button v-has="'inventoryChild:import'" type="primary" icon="import">导入</a-button>
  4 + <div class="table-operator" v-if="mainId">
  5 + <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
  6 + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')"
  7 + >导出
  8 + </a-button
  9 + >
  10 + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button>
  11 + <a-upload
  12 + v-has="'inventoryDetail:import'"
  13 + name="file"
  14 + :showUploadList="false"
  15 + :multiple="false"
  16 + :headers="tokenHeader"
  17 + :action="importExcelUrl"
  18 + @change="handleImportExcel"
  19 + >
  20 + <a-button type="primary" icon="import">导入</a-button>
97 21 </a-upload>
98 22 <a-dropdown v-if="selectedRowKeys.length > 0">
99   - <a-menu slot="overlay">
100   - <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
  23 + <a-menu slot="overlay" v-has="'inventoryDetail:deleteBatch'">
  24 + <a-menu-item key="1" @click="batchDel">
  25 + <a-icon type="delete"/>
  26 + 删除
  27 + </a-menu-item>
101 28 </a-menu>
102   - <a-button v-has="'inventoryChild:delete'" style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
  29 + <a-button style="margin-left: 8px">
  30 + 批量操作
  31 + <a-icon type="down"/>
  32 + </a-button>
103 33 </a-dropdown>
104 34 </div>
105 35  
106 36 <!-- table区域-begin -->
107 37 <div>
108 38 <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
109   - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
  39 + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
  40 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
110 41 <a style="margin-left: 24px" @click="onClearSelected">清空</a>
111 42 </div>
112 43  
113 44 <a-table
114 45 ref="table"
115 46 size="middle"
116   - :scroll="{x:true}"
117 47 bordered
118 48 rowKey="id"
  49 + :scroll="{ x: true }"
119 50 :columns="columns"
120 51 :dataSource="dataSource"
121 52 :pagination="ipagination"
122 53 :loading="loading"
123   - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
124   - class="j-table-force-nowrap"
125   - @change="handleTableChange">
  54 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
  55 + @change="handleTableChange"
  56 + >
  57 + <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText">
  58 + <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)">
  59 + {{ inventoryStatus_dictText }}
  60 + </a-tag>
  61 + </span>
  62 +
  63 + <span slot="companyCode" slot-scope="companyCode">
  64 + <a-tag :key="companyCode" color="blue">
  65 + {{ solutionCompany(companyCode) }}
  66 + </a-tag>
  67 + </span>
126 68  
127 69 <template slot="htmlSlot" slot-scope="text">
128 70 <div v-html="text"></div>
129 71 </template>
130 72 <template slot="imgSlot" slot-scope="text">
131 73 <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
132   - <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
  74 + <img
  75 + v-else
  76 + :src="getImgView(text)"
  77 + height="25px"
  78 + alt=""
  79 + style="max-width:80px;font-size: 12px;font-style: italic;"
  80 + />
133 81 </template>
134 82 <template slot="fileSlot" slot-scope="text">
135 83 <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
136   - <a-button
137   - v-else
138   - :ghost="true"
139   - type="primary"
140   - icon="download"
141   - size="small"
142   - @click="downloadFile(text)">
  84 + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)">
143 85 下载
144 86 </a-button>
145 87 </template>
  88 +
146 89 <span slot="action" slot-scope="text, record">
147   - <a v-has="'inventoryChild:edit'" @click="handleEdit(record)">编辑</a>
  90 + <a v-has="'inventoryDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical"/></a>
  91 + <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
  92 + <a v-has="'inventoryDetail:delete'">删除</a>
  93 + </a-popconfirm>
148 94 </span>
149 95 </a-table>
150 96 </div>
151 97  
152   - <inventory-child-modal ref="modalForm" @ok="modalFormOk"></inventory-child-modal>
  98 + <inventoryDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></inventoryDetail-modal>
153 99 </a-card>
154 100 </template>
155 101  
156 102 <script>
  103 +import {JeecgListMixin} from '@/mixins/JeecgListMixin'
  104 +import InventoryDetailModal from './modules/InventoryDetailModal'
  105 +import {getCompanyList, getZoneList} from '@/api/api'
157 106  
158   - import '@/assets/less/TableExpand.less'
159   - import { mixinDevice } from '@/utils/mixin'
160   - import { JeecgListMixin } from '@/mixins/JeecgListMixin'
161   - import InventoryChildModal from './modules/InventoryChildModal'
162   - import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
163   -
164   - export default {
165   - name: 'InventoryChildList',
166   - mixins:[JeecgListMixin, mixinDevice],
167   - components: {
168   - InventoryChildModal
169   - },
170   - data () {
171   - return {
172   - description: '库存明细管理页面',
173   - // 表头
174   - columns: [
175   - {
176   - title: '#',
177   - dataIndex: '',
178   - key:'rowIndex',
179   - width:60,
180   - align:"center",
181   - customRender:function (t,r,index) {
182   - return parseInt(index)+1;
183   - }
184   - },
185   - {
186   - title:'货主',
187   - align:"center",
188   - dataIndex: 'companyCode'
189   - },
190   - {
191   - title:'库区',
192   - align:"center",
193   - dataIndex: 'zoneCode'
194   - },
195   - {
196   - title:'容器状态',
197   - align:"center",
198   - dataIndex: 'containerStatus_dictText'
199   - },
200   - {
201   - title:'容器编码',
202   - align:"center",
203   - dataIndex: 'containerCode'
204   - },
205   - {
206   - title:'库位编码',
207   - align:"center",
208   - dataIndex: 'locationCode'
209   - },
210   - {
211   - title:'物料编码',
212   - align:"center",
213   - dataIndex: 'materialCode'
214   - },
215   - {
216   - title:'物料名称',
217   - align:"center",
218   - dataIndex: 'materialName'
219   - },
220   - {
221   - title:'物料规格',
222   - align:"center",
223   - dataIndex: 'materialSpec'
224   - },
225   - {
226   - title:'物料单位',
227   - align:"center",
228   - dataIndex: 'materialUnit'
229   - },
230   - {
231   - title:'库存状态',
232   - align:"center",
233   - dataIndex: 'inventoryStatus_dictText'
234   - },
235   - {
236   - title:'库龄(天)',
237   - align:"center",
238   - dataIndex: 'inventoryAge'
239   - },
240   - {
241   - title:'序列号',
242   - align:"center",
243   - dataIndex: 'sn'
244   - },
245   - {
246   - title:'创建人',
247   - align:"center",
248   - dataIndex: 'createBy'
249   - },
250   - {
251   - title:'创建日期',
252   - align:"center",
253   - dataIndex: 'createTime'
254   - },
255   - {
256   - title:'更新人',
257   - align:"center",
258   - dataIndex: 'updateBy'
259   - },
260   - {
261   - title:'更新日期',
262   - align:"center",
263   - dataIndex: 'updateTime'
264   - },
265   - {
266   - title: '操作',
267   - dataIndex: 'action',
268   - align:"center",
269   - fixed:"right",
270   - width:147,
271   - scopedSlots: { customRender: 'action' }
  107 +export default {
  108 + name: 'InventoryDetailList',
  109 + mixins: [JeecgListMixin],
  110 + components: {InventoryDetailModal},
  111 + props: {
  112 + mainId: {
  113 + type: String,
  114 + default: '',
  115 + required: false
  116 + }
  117 + },
  118 + watch: {
  119 + mainId: {
  120 + immediate: true,
  121 + handler(val) {
  122 + if (!this.mainId) {
  123 + this.clearList()
  124 + } else {
  125 + this.queryParam['inventoryHeaderId'] = val
  126 + this.loadData(1)
  127 + }
  128 + }
  129 + }
  130 + },
  131 + data() {
  132 + return {
  133 + description: '库存表管理页面',
  134 + disableMixinCreated: true,
  135 + companyList: [],
  136 + // 表头
  137 + columns: [
  138 + {
  139 + title: '库存详情ID',
  140 + align: 'center',
  141 + dataIndex: 'id'
  142 + },
  143 + {
  144 + title: '货主',
  145 + align: 'center',
  146 + dataIndex: 'companyCode',
  147 + key: 'companyCode',
  148 + scopedSlots: {customRender: 'companyCode'}
  149 + },
  150 + // {
  151 + // title: '库区',
  152 + // align: "center",
  153 + // dataIndex: 'zoneCode'
  154 + // },
  155 + {
  156 + title: '容器编码',
  157 + align: 'center',
  158 + dataIndex: 'containerCode'
  159 + },
  160 + {
  161 + title: '库位编码',
  162 + align: 'center',
  163 + dataIndex: 'locationCode'
  164 + },
  165 + {
  166 + title: '物料编码',
  167 + align: 'center',
  168 + dataIndex: 'materialCode'
  169 + },
  170 + {
  171 + title: '物料名称',
  172 + align: 'center',
  173 + dataIndex: 'materialName'
  174 + },
  175 + {
  176 + title: '物料规格',
  177 + align: 'center',
  178 + dataIndex: 'materialSpec'
  179 + },
  180 + {
  181 + title: '物料单位',
  182 + align: 'center',
  183 + dataIndex: 'materialUnit'
  184 + },
  185 + {
  186 + title: '数量',
  187 + align: 'center',
  188 + dataIndex: 'qty'
  189 + },
  190 + {
  191 + title: '任务锁定数量',
  192 + align: 'center',
  193 + dataIndex: 'taskQty'
  194 + },
  195 + {
  196 + title: '托盘填充度',
  197 + align: 'center',
  198 + dataIndex: 'fillDensity',
  199 + customRender: text => {
  200 + return text == null ? '' : text + '%'
272 201 }
273   - ],
274   - url: {
275   - list: "/inventory/inventoryChild/list",
276   - delete: "/inventory/inventoryChild/delete",
277   - deleteBatch: "/inventory/inventoryChild/deleteBatch",
278   - exportXlsUrl: "/inventory/inventoryChild/exportXls",
279   - importExcelUrl: "inventory/inventoryChild/importExcel",
280   -
281 202 },
282   - dictOptions:{},
283   - superFieldList:[],
  203 + {
  204 + title: '库存状态',
  205 + align: 'center',
  206 + dataIndex: 'inventoryStatus_dictText',
  207 + scopedSlots: {customRender: 'inventoryStatus_dictText'}
  208 + },
  209 + {
  210 + title: '批次',
  211 + align: 'center',
  212 + dataIndex: 'batch'
  213 + },
  214 + {
  215 + title: '序列号',
  216 + align: "center",
  217 + dataIndex: 'sn'
  218 + },
  219 + {
  220 + title: '入库日期',
  221 + align: 'center',
  222 + dataIndex: 'receiptDate'
  223 + },
  224 + {
  225 + title: '库龄(天)',
  226 + align: 'center',
  227 + dataIndex: 'inventoryAge'
  228 + },
  229 + {
  230 + title: '创建人',
  231 + align: 'center',
  232 + dataIndex: 'createBy'
  233 + },
  234 + {
  235 + title: '创建日期',
  236 + align: 'center',
  237 + dataIndex: 'createTime'
  238 + },
  239 + {
  240 + title: '更新人',
  241 + align: 'center',
  242 + dataIndex: 'updateBy'
  243 + },
  244 + {
  245 + title: '更新日期',
  246 + align: 'center',
  247 + dataIndex: 'updateTime'
  248 + },
  249 + {
  250 + title: '操作',
  251 + dataIndex: 'action',
  252 + align: 'center',
  253 + fixed: 'right',
  254 + width: 147,
  255 + scopedSlots: {customRender: 'action'}
  256 + }
  257 + ],
  258 + url: {
  259 + list: '/inventory/inventoryHeader/listInventoryDetailByMainId',
  260 + delete: '/inventory/inventoryHeader/deleteInventoryDetail',
  261 + deleteBatch: '/inventory/inventoryHeader/deleteBatchInventoryDetail',
  262 + exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail',
  263 + importUrl: '/inventory/inventoryHeader/importInventoryDetail'
  264 + },
  265 + dictOptions: {
  266 + containerStatus: []
284 267 }
  268 + }
  269 + },
  270 + created() {
  271 + this.loadFrom()
  272 + },
  273 + computed: {
  274 + importExcelUrl() {
  275 + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`
  276 + }
  277 + },
  278 + methods: {
  279 + getStatusColor(status) {
  280 + const colors = {
  281 + '良品': 'green',
  282 + '报废品': 'purple',
  283 + '待确认 ': 'grey',
  284 + '次品': 'red',
  285 + default: 'blue'
  286 + };
  287 + return colors[status] || colors.default;
285 288 },
286   - created() {
287   - this.getSuperFieldList();
  289 + loadFrom() {
  290 + // getZoneList().then((res) => {
  291 + // if (res.success) {
  292 + // this.zoneList = res.result
  293 + // }
  294 + // });
  295 + getCompanyList().then(res => {
  296 + if (res.success) {
  297 + this.companyList = res.result
  298 + }
  299 + })
288 300 },
289   - computed: {
290   - importExcelUrl: function(){
291   - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
292   - },
  301 + // solutionZoneCode(value) {
  302 + // var actions = []
  303 + // Object.keys(this.zoneList).some((key) => {
  304 + // if (this.zoneList[key].code == ('' + value)) {
  305 + // actions.push(this.zoneList[key].name)
  306 + // return true
  307 + // }
  308 + // })
  309 + // return actions.join('')
  310 + // },
  311 + solutionCompany(value) {
  312 + var actions = []
  313 + Object.keys(this.companyList).some(key => {
  314 + if (this.companyList[key].code == '' + value) {
  315 + actions.push(this.companyList[key].name)
  316 + return true
  317 + }
  318 + })
  319 + return actions.join('')
293 320 },
294   - methods: {
295   - initDictConfig(){
296   - },
297   - getSuperFieldList(){
298   - let fieldList=[];
299   - fieldList.push({type:'string',value:'companyCode',text:'货主',dictCode:''})
300   - fieldList.push({type:'string',value:'zoneCode',text:'库区',dictCode:''})
301   - fieldList.push({type:'string',value:'containerStatus',text:'容器状态',dictCode:'container_status'})
302   - fieldList.push({type:'string',value:'containerCode',text:'容器编码',dictCode:''})
303   - fieldList.push({type:'string',value:'locationCode',text:'库位编码',dictCode:''})
304   - fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''})
305   - fieldList.push({type:'string',value:'materialName',text:'物料名称',dictCode:''})
306   - fieldList.push({type:'string',value:'materialSpec',text:'物料规格',dictCode:''})
307   - fieldList.push({type:'string',value:'materialUnit',text:'物料单位',dictCode:''})
308   - fieldList.push({type:'string',value:'inventoryStatus',text:'库存状态',dictCode:'inventory_status'})
309   - fieldList.push({type:'int',value:'inventoryAge',text:'库龄(天)',dictCode:''})
310   - fieldList.push({type:'string',value:'sn',text:'序列号',dictCode:''})
311   - fieldList.push({type:'string',value:'createBy',text:'创建人',dictCode:''})
312   - fieldList.push({type:'datetime',value:'createTime',text:'创建日期'})
313   - fieldList.push({type:'string',value:'updateBy',text:'更新人',dictCode:''})
314   - fieldList.push({type:'datetime',value:'updateTime',text:'更新日期'})
315   - this.superFieldList = fieldList
316   - }
  321 + clearList() {
  322 + this.dataSource = []
  323 + this.selectedRowKeys = []
  324 + this.ipagination.current = 1
317 325 }
318 326 }
  327 +}
319 328 </script>
320 329 <style scoped>
321   - @import '~@assets/less/common.less';
  330 +@import '~@assets/less/common.less';
322 331 </style>
323 332 \ No newline at end of file
... ...
ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue
... ... @@ -3,10 +3,7 @@
3 3 <!-- 操作按钮区域 -->
4 4 <div class="table-operator" v-if="mainId">
5 5 <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
6   - <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')"
7   - >导出
8   - </a-button
9   - >
  6 + <a-button v-has="'inventoryDetail:export'" type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button>
10 7 <a-upload
11 8 v-has="'inventoryDetail:import'"
12 9 name="file"
... ... @@ -18,28 +15,10 @@
18 15 >
19 16 <a-button type="primary" icon="import">导入</a-button>
20 17 </a-upload>
21   - <a-dropdown v-if="selectedRowKeys.length > 0">
22   - <a-menu slot="overlay" v-has="'inventoryDetail:deleteBatch'">
23   - <a-menu-item key="1" @click="batchDel">
24   - <a-icon type="delete"/>
25   - 删除
26   - </a-menu-item>
27   - </a-menu>
28   - <a-button style="margin-left: 8px">
29   - 批量操作
30   - <a-icon type="down"/>
31   - </a-button>
32   - </a-dropdown>
33 18 </div>
34 19  
35 20 <!-- table区域-begin -->
36 21 <div>
37   - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
38   - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择
39   - <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
40   - <a style="margin-left: 24px" @click="onClearSelected">清空</a>
41   - </div>
42   -
43 22 <a-table
44 23 ref="table"
45 24 size="middle"
... ... @@ -50,7 +29,6 @@
50 29 :dataSource="dataSource"
51 30 :pagination="ipagination"
52 31 :loading="loading"
53   - :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
54 32 @change="handleTableChange"
55 33 >
56 34 <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText">
... ...
ant-design-vue-jeecg/src/views/system/inventory/InventoryHeaderList.vue
... ... @@ -17,41 +17,39 @@
17 17 </a-select>
18 18 </a-form-item>
19 19 </a-col>
  20 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  21 + <a-form-item label="库位编码">
  22 + <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
  23 + </a-form-item>
  24 + </a-col>
20 25 <a-col :xl="6" :lg="7" :md="8" :sm="24">
21 26 <a-form-item label="容器编码">
22 27 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
23 28 </a-form-item>
24 29 </a-col>
25   - <template v-if="toggleSearchStatus">
26   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
27   - <a-form-item label="容器状态">
28   - <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus"
29   - dictCode="container_status"/>
30   - </a-form-item>
31   - </a-col>
32   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
33   - <a-form-item label="库位号">
34   - <a-input placeholder="请输入库位号" v-model="queryParam.locationCode"></a-input>
35   - </a-form-item>
36   - </a-col>
37   - <a-col :xl="12" :lg="14" :md="16" :sm="24">
38   - <a-form-item label="创建日期">
39   - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
40   - class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
41   - <span class="query-group-split-cust"></span>
42   - <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
43   - class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
44   - </a-form-item>
45   - </a-col>
46   - </template>
  30 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  31 + <a-form-item label="容器状态">
  32 + <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus"
  33 + dictCode="container_status"/>
  34 + </a-form-item>
  35 + </a-col>
  36 + <a-col :xl="12" :lg="14" :md="16" :sm="24">
  37 + <a-form-item label="创建日期">
  38 + <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
  39 + class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
  40 + <span class="query-group-split-cust"></span>
  41 + <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
  42 + class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
  43 + </a-form-item>
  44 + </a-col>
47 45 <a-col :xl="6" :lg="7" :md="8" :sm="24">
48 46 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
49 47 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
50 48 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
51   - <a @click="handleToggleSearch" style="margin-left: 8px">
  49 + <!-- <a @click="handleToggleSearch" style="margin-left: 8px">
52 50 {{ toggleSearchStatus ? '收起' : '展开' }}
53 51 <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
54   - </a>
  52 + </a> -->
55 53 </span>
56 54 </a-col>
57 55 </a-row>
... ... @@ -199,7 +197,7 @@ export default {
199 197 scopedSlots: {customRender: 'containerStatus_dictText'}
200 198 },
201 199 {
202   - title: '库位',
  200 + title: '库位编码',
203 201 align: "center",
204 202 dataIndex: 'locationCode'
205 203 },
... ... @@ -358,7 +356,7 @@ export default {
358 356 fieldList.push({type: 'string', value: 'zoneCode', text: '库区', dictCode: ''})
359 357 fieldList.push({type: 'string', value: 'containerCode', text: '容器编码', dictCode: ''})
360 358 fieldList.push({type: 'string', value: 'containerStatus', text: '容器状态', dictCode: 'container_status'})
361   - fieldList.push({type: 'string', value: 'locationCode', text: '库位', dictCode: ''})
  359 + fieldList.push({type: 'string', value: 'locationCode', text: '库位编码', dictCode: ''})
362 360 fieldList.push({type: 'BigDecimal', value: 'totalQty', text: '总数量', dictCode: ''})
363 361 fieldList.push({type: 'int', value: 'totalLines', text: '总行量', dictCode: ''})
364 362 fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''})
... ...
ant-design-vue-jeecg/src/views/system/inventory/InventoryMaterialSummaryList.vue
... ... @@ -5,8 +5,31 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="库区">
  9 + <a-select
  10 + show-search
  11 + placeholder="请选择库区"
  12 + option-filter-prop="children"
  13 + v-model="queryParam.zoneCode"
  14 + >
  15 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  16 + {{ item.name }}
  17 + </a-select-option>
  18 + </a-select>
  19 + </a-form-item>
  20 + </a-col>
  21 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 22 <a-form-item label="货主">
9   - <a-input placeholder="请输入货主" v-model="queryParam.companyCode"></a-input>
  23 + <a-select
  24 + show-search
  25 + placeholder="请选择货主"
  26 + option-filter-prop="children"
  27 + v-model="queryParam.companyCode">
  28 + <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">{{
  29 + item.name
  30 + }}
  31 + </a-select-option>
  32 + </a-select>
10 33 </a-form-item>
11 34 </a-col>
12 35 <a-col :xl="6" :lg="7" :md="8" :sm="24">
... ... @@ -25,6 +48,11 @@
25 48 <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input>
26 49 </a-form-item>
27 50 </a-col>
  51 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  52 + <a-form-item label="物料单位">
  53 + <a-input placeholder="请输入物料单位" v-model="queryParam.materialUnit"></a-input>
  54 + </a-form-item>
  55 + </a-col>
28 56 </template>
29 57 <a-col :xl="6" :lg="7" :md="8" :sm="24">
30 58 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
... ... @@ -32,7 +60,7 @@
32 60 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
33 61 <a @click="handleToggleSearch" style="margin-left: 8px">
34 62 {{ toggleSearchStatus ? '收起' : '展开' }}
35   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
  63 + <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
36 64 </a>
37 65 </span>
38 66 </a-col>
... ... @@ -43,73 +71,49 @@
43 71  
44 72 <!-- 操作按钮区域 -->
45 73 <div class="table-operator">
46   - <a-button v-has="'inventoryMaterialSummary:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
47   - <a-button v-has="'inventoryMaterialSummary:export'" type="primary" icon="download" @click="handleExportXls('物料汇总主表')">导出</a-button>
48   - <a-upload v-has="'inventoryMaterialSummary:import'" name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
49   - <a-button type="primary" icon="import">导入</a-button>
50   - </a-upload>
  74 + <!-- <a-button v-has="'inventoryMaterialSummary:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> -->
  75 + <a-button v-has="'inventoryMaterialSummary:export'" type="primary" icon="download" @click="handleExportXls('库存物料汇总')">导出</a-button>
51 76 </div>
52 77  
53 78 <!-- table区域-begin -->
54 79 <div>
55   -<!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
56   -<!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项-->
57   -<!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
58   -<!-- </div>-->
  80 + <!-- <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">-->
  81 + <!-- <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项-->
  82 + <!-- <a style="margin-left: 24px" @click="onClearSelected">清空</a>-->
  83 + <!-- </div>-->
59 84  
60 85 <a-table
61 86 ref="table"
62 87 size="middle"
63   - :scroll="{x:true}"
  88 + :scroll="{ x: true }"
64 89 bordered
65   - rowKey="id"
  90 + :rowKey="(record,index) => {return record.zoneCode + '_' + record.materialCode}"
66 91 :columns="columns"
67 92 :dataSource="dataSource"
68 93 :pagination="ipagination"
69 94 :loading="loading"
70 95 :customRow="clickThenSelect"
71   - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}"
  96 + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: 'radio' }"
72 97 class="j-table-force-nowrap"
73   - @change="handleTableChange">
74   -
  98 + @change="handleTableChange"
  99 + >
75 100 <span slot="companyCode" slot-scope="companyCode">
76   - <a-tag :key="companyCode" color=blue>
  101 + <a-tag :key="companyCode" color="blue">
77 102 {{ solutionCompany(companyCode) }}
78 103 </a-tag>
79 104 </span>
80 105  
81 106 <span slot="zoneCode" slot-scope="zoneCode">
82   - <a-tag :key="zoneCode" color=blue>
  107 + <a-tag :key="zoneCode" color="blue">
83 108 {{ solutionZoneCode(zoneCode) }}
84 109 </a-tag>
85 110 </span>
86   -
87   - <template slot="htmlSlot" slot-scope="text">
88   - <div v-html="text"></div>
89   - </template>
90   - <template slot="imgSlot" slot-scope="text">
91   - <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
92   - <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
93   - </template>
94   - <template slot="fileSlot" slot-scope="text">
95   - <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
96   - <a-button
97   - v-else
98   - :ghost="true"
99   - type="primary"
100   - icon="download"
101   - size="small"
102   - @click="downloadFile(text)">
103   - 下载
104   - </a-button>
105   - </template>
106   -
107 111 </a-table>
108 112 </div>
109 113  
110 114 <a-tabs defaultActiveKey="1">
111 115 <a-tab-pane tab="库存详情" key="1">
112   - <InventoryDetailSubTable :mainId="selectedMainId"/>
  116 + <InventoryDetailSubTable :mainId="selectedMainId" />
113 117 </a-tab-pane>
114 118 </a-tabs>
115 119  
... ... @@ -118,169 +122,171 @@
118 122 </template>
119 123  
120 124 <script>
  125 +import '@/assets/less/TableExpand.less'
  126 +import { filterObj } from '@/utils/util'
  127 +import { mixinDevice } from '@/utils/mixin'
  128 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  129 +import { getCompanyList, getZoneList, ajaxGetDictItems } from '@/api/api'
  130 +// import InventoryDetailList from './InventoryDetailList'
  131 +import InventoryDetailSubTable from './subTables/InventoryDetailSubTable'
121 132  
122   - import '@/assets/less/TableExpand.less'
123   - import { mixinDevice } from '@/utils/mixin'
124   - import { JeecgListMixin } from '@/mixins/JeecgListMixin'
125   - import { getCompanyList, getZoneList } from '@/api/api'
126   - import InventoryDetailList from './InventoryDetailList'
127   - import InventoryDetailSubTable from './subTables/InventoryDetailSubTable'
128   -
129   - export default {
130   - name: 'InventoryMaterialSummaryList',
131   - mixins:[JeecgListMixin, mixinDevice],
132   - components: {
133   - InventoryDetailSubTable,
134   - InventoryDetailList
135   - },
136   - data () {
137   - return {
138   - zoneList: [],
139   - selectedMainId: '',
140   - description: '物料汇总主表管理页面',
141   - // 表头
142   - companyList: [],
143   - columns: [
144   - // {
145   - // title: '库存ID',
146   - // align: "center",
147   - // dataIndex: 'id'
148   - // },
149   - // {
150   - // title:'仓库',
151   - // align:"center",
152   - // dataIndex: 'warehouseCode'
153   - // },
154   - {
155   - title: '库区',
156   - align: "center",
157   - dataIndex: 'zoneCode',
158   - key: 'zoneCode',
159   - scopedSlots: {customRender: 'zoneCode'}
160   - },
161   - {
162   - title:'货主',
163   - align:"center",
164   - dataIndex: 'companyCode',
165   - key: 'companyCode',
166   - scopedSlots: {customRender: 'companyCode'}
167   - },
168   - {
169   - title:'物料编码',
170   - align:"center",
171   - dataIndex: 'materialCode'
172   - },
173   - {
174   - title:'物料名称',
175   - align:"center",
176   - dataIndex: 'materialName'
177   - },
178   - {
179   - title:'物料规格',
180   - align:"center",
181   - dataIndex: 'materialSpec'
182   - },
183   - {
184   - title:'物料单位',
185   - align:"center",
186   - dataIndex: 'materialUnit'
187   - },
188   - {
189   - title:'物料总数',
190   - align:"center",
191   - dataIndex: 'qty'
192   - }
193   - ],
194   - url: {
195   - list: "/InventoryMaterialSummary/inventoryMaterialSummary/list",
196   - exportXlsUrl: "/InventoryMaterialSummary/inventoryMaterialSummary/exportXls",
197   - importExcelUrl: "InventoryMaterialSummary/inventoryMaterialSummary/importExcel",
198   -
  133 +export default {
  134 + name: 'InventoryMaterialSummaryList',
  135 + mixins: [JeecgListMixin, mixinDevice],
  136 + components: {
  137 + InventoryDetailSubTable
  138 + },
  139 + data() {
  140 + return {
  141 + zoneList: [],
  142 + companyList: [],
  143 + selectedMainId: '',
  144 + description: '物料汇总主表管理页面',
  145 + // 表头
  146 + columns: [
  147 + {
  148 + title: '库区',
  149 + align: 'center',
  150 + dataIndex: 'zoneCode',
  151 + key: 'zoneCode',
  152 + scopedSlots: { customRender: 'zoneCode' }
  153 + },
  154 + {
  155 + title: '货主',
  156 + align: 'center',
  157 + dataIndex: 'companyCode',
  158 + key: 'companyCode',
  159 + scopedSlots: { customRender: 'companyCode' }
  160 + },
  161 + {
  162 + title: '物料编码',
  163 + align: 'center',
  164 + dataIndex: 'materialCode'
  165 + },
  166 + {
  167 + title: '物料名称',
  168 + align: 'center',
  169 + dataIndex: 'materialName'
  170 + },
  171 + {
  172 + title: '物料规格',
  173 + align: 'center',
  174 + dataIndex: 'materialSpec'
199 175 },
200   - dictOptions:{},
201   - superFieldList:[],
  176 + {
  177 + title: '物料单位',
  178 + align: 'center',
  179 + dataIndex: 'materialUnit'
  180 + },
  181 + {
  182 + title: '物料总数',
  183 + align: 'center',
  184 + dataIndex: 'qty'
  185 + }
  186 + ],
  187 + url: {
  188 + list: '/InventoryMaterialSummary/inventoryMaterialSummary/list',
  189 + exportXlsUrl: '/InventoryMaterialSummary/inventoryMaterialSummary/exportXls',
  190 + importExcelUrl: 'InventoryMaterialSummary/inventoryMaterialSummary/importExcel'
  191 + },
  192 + dictOptions: {},
  193 + superFieldList: []
  194 + }
  195 + },
  196 + created() {
  197 + this.getSuperFieldList()
  198 + this.loadFrom()
  199 + },
  200 + computed: {
  201 + importExcelUrl: function() {
  202 + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  203 + }
  204 + },
  205 + methods: {
  206 + getQueryParams() {
  207 + // 重写查询条件
  208 + let sqp = {}
  209 + if (this.superQueryParams) {
  210 + sqp['superQueryParams'] = encodeURI(this.superQueryParams)
  211 + sqp['superQueryMatchType'] = this.superQueryMatchType
202 212 }
  213 + var param = Object.assign(sqp, this.queryParam, {}, this.filters)
  214 + param.field = this.getQueryField()
  215 + param.pageNo = this.ipagination.current
  216 + param.pageSize = this.ipagination.pageSize
  217 + return filterObj(param)
203 218 },
204   - created() {
205   - this.getSuperFieldList();
206   - this.loadFrom();
  219 + solutionZoneCode(value) {
  220 + var actions = []
  221 + Object.keys(this.zoneList).some(key => {
  222 + if (this.zoneList[key].code === '' + value) {
  223 + actions.push(this.zoneList[key].name)
  224 + return true
  225 + }
  226 + })
  227 + return actions.join('')
207 228 },
208   - computed: {
209   - importExcelUrl: function(){
210   - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
211   - },
  229 + solutionCompany(value) {
  230 + var actions = []
  231 + Object.keys(this.companyList).some(key => {
  232 + if (this.companyList[key].code === '' + value) {
  233 + actions.push(this.companyList[key].name)
  234 + return true
  235 + }
  236 + })
  237 + return actions.join('')
212 238 },
213   - methods: {
214   - solutionZoneCode(value) {
215   - var actions = []
216   - Object.keys(this.zoneList).some(key => {
217   - if (this.zoneList[key].code == '' + value) {
218   - actions.push(this.zoneList[key].name)
219   - return true
220   - }
221   - })
222   - return actions.join('')
223   - },
224   - loadFrom() {
225   - getZoneList().then((res) => {
226   - if (res.success) {
227   - this.zoneList = res.result
228   - }
229   - });
230   - getCompanyList().then((res) => {
231   - if (res.success) {
232   - this.companyList = res.result
233   - }
234   - });
235   - },
236   -
237   - clickThenSelect(record) {
238   - return {
239   - on: {
240   - click: () => {
241   - this.onSelectChange(record.id.toString().split(","), [record]);
242   - }
243   - }
  239 + loadFrom() {
  240 + getZoneList().then(res => {
  241 + if (res.success) {
  242 + this.zoneList = res.result
244 243 }
245   - },
246   - onSelectChange(selectedRowKeys, selectionRows) {
247   - this.selectedMainId = selectedRowKeys[0].toString();
248   - this.selectedRowKeys = selectedRowKeys;
249   - this.selectionRows = selectionRows;
250   - },
251   - onClearSelected() {
252   - this.selectedMainId = ''
253   - this.selectedRowKeys = [];
254   - this.selectionRows = [];
255   - },
256   - initDictConfig(){
257   - },
258   - solutionCompany(value) {
259   - var actions = []
260   - Object.keys(this.companyList).some((key) => {
261   - if (this.companyList[key].code == ('' + value)) {
262   - actions.push(this.companyList[key].name)
263   - return true
  244 + })
  245 + ajaxGetDictItems('box_type').then(res => {
  246 + if (res.success) {
  247 + this.boxTypeList = res.result
  248 + }
  249 + })
  250 + getCompanyList().then(res => {
  251 + if (res.success) {
  252 + this.companyList = res.result
  253 + }
  254 + })
  255 + },
  256 + clickThenSelect(record) {
  257 + return {
  258 + on: {
  259 + click: () => {
  260 + this.onSelectChange(record.materialCode.toString().split(','), [record])
264 261 }
265   - })
266   - return actions.join('')
267   - },
268   -
269   - getSuperFieldList(){
270   - let fieldList=[];
271   - fieldList.push({type:'string',value:'warehouseCode',text:'仓库',dictCode:''})
272   - fieldList.push({type:'string',value:'zoneCode',text:'库区',dictCode:''})
273   - fieldList.push({type:'string',value:'companyCode_dec',text:'货主',dictCode:''})
274   - fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''})
275   - fieldList.push({type:'string',value:'materialName',text:'物料名称',dictCode:''})
276   - fieldList.push({type:'string',value:'materialSpec',text:'物料规格',dictCode:''})
277   - fieldList.push({type:'string',value:'materialUnit',text:'物料单位',dictCode:''})
278   - fieldList.push({type:'BigDecimal',value:'qty',text:'物料总数',dictCode:''})
279   - this.superFieldList = fieldList
  262 + }
280 263 }
  264 + },
  265 + onSelectChange(selectedRowKeys, selectionRows) {
  266 + this.selectedMainId = selectionRows[0].zoneCode.toString() + "_" + selectionRows[0].materialCode.toString()
  267 + this.selectedRowKeys = selectedRowKeys
  268 + this.selectionRows = selectionRows
  269 + },
  270 + onClearSelected() {
  271 + this.selectedMainId = ''
  272 + this.selectedRowKeys = []
  273 + this.selectionRows = []
  274 + },
  275 + initDictConfig() {},
  276 + getSuperFieldList() {
  277 + let fieldList = []
  278 + fieldList.push({ type: 'string', value: 'zoneCode', text: '库区', dictCode: '' })
  279 + fieldList.push({ type: 'string', value: 'companyCode', text: '货主', dictCode: '' })
  280 + fieldList.push({ type: 'string', value: 'materialCode', text: '物料编码', dictCode: '' })
  281 + fieldList.push({ type: 'string', value: 'materialName', text: '物料名称', dictCode: '' })
  282 + fieldList.push({ type: 'string', value: 'materialSpec', text: '物料规格', dictCode: '' })
  283 + fieldList.push({ type: 'string', value: 'materialUnit', text: '物料单位', dictCode: '' })
  284 + fieldList.push({ type: 'BigDecimal', value: 'qty', text: '物料总数', dictCode: '' })
  285 + this.superFieldList = fieldList
281 286 }
282 287 }
  288 +}
283 289 </script>
284 290 <style scoped>
285   - @import '~@assets/less/common.less';
  291 +@import '~@assets/less/common.less';
286 292 </style>
287 293 \ No newline at end of file
... ...
ant-design-vue-jeecg/src/views/system/inventory/InventoryTransactionList.vue
... ... @@ -19,33 +19,37 @@
19 19 </a-form-item>
20 20 </a-col>
21 21 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  22 + <a-form-item label="库位编码">
  23 + <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
  24 + </a-form-item>
  25 + </a-col>
  26 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
22 27 <a-form-item label="容器编码">
23 28 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
24 29 </a-form-item>
25 30 </a-col>
  31 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  32 + <a-form-item label="交易类型">
  33 + <j-dict-select-tag placeholder="请选择交易类型" v-model="queryParam.type" dictCode="inventory_transaction_type"/>
  34 + </a-form-item>
  35 + </a-col>
  36 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  37 + <a-form-item label="库存状态">
  38 + <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_status"/>
  39 + </a-form-item>
  40 + </a-col>
  41 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  42 + <a-form-item label="物料编码">
  43 + <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
  44 + </a-form-item>
  45 + </a-col>
  46 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  47 + <a-form-item label="物料名称">
  48 + <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
  49 + </a-form-item>
  50 + </a-col>
26 51 <template v-if="toggleSearchStatus">
27 52 <a-col :xl="6" :lg="7" :md="8" :sm="24">
28   - <a-form-item label="库位编码">
29   - <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
30   - </a-form-item>
31   - </a-col>
32   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
33   - <a-form-item label="交易类型">
34   - <j-dict-select-tag placeholder="请选择交易类型" v-model="queryParam.type"
35   - dictCode="inventory_transaction_type"/>
36   - </a-form-item>
37   - </a-col>
38   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
39   - <a-form-item label="物料编码">
40   - <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
41   - </a-form-item>
42   - </a-col>
43   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
44   - <a-form-item label="物料名称">
45   - <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
46   - </a-form-item>
47   - </a-col>
48   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
49 53 <a-form-item label="物料规格">
50 54 <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input>
51 55 </a-form-item>
... ... @@ -56,12 +60,6 @@
56 60 </a-form-item>
57 61 </a-col>
58 62 <a-col :xl="6" :lg="7" :md="8" :sm="24">
59   - <a-form-item label="库存状态">
60   - <j-dict-select-tag placeholder="请选择库存状态" v-model="queryParam.inventoryStatus"
61   - dictCode="inventory_status"/>
62   - </a-form-item>
63   - </a-col>
64   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
65 63 <a-form-item label="批次">
66 64 <a-input placeholder="请输入批次" v-model="queryParam.batch"></a-input>
67 65 </a-form-item>
... ...
ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
... ... @@ -6,36 +6,62 @@
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 8 <a-form-item label="货主">
9   - <a-input placeholder="请输入货主" v-model="queryParam.companyCode"></a-input>
  9 + <a-select
  10 + show-search
  11 + placeholder="请选择货主"
  12 + option-filter-prop="children"
  13 + v-model="queryParam.companyCode">
  14 + <a-select-option v-for="item in companyList" :key="item.name" :value="item.code">{{
  15 + item.name
  16 + }}
  17 + </a-select-option>
  18 + </a-select>
10 19 </a-form-item>
11 20 </a-col>
12 21 <a-col :xl="6" :lg="7" :md="8" :sm="24">
13 22 <a-form-item label="库区">
14   - <a-input placeholder="请输入库区" v-model="queryParam.zoneCode"></a-input>
  23 + <a-select
  24 + show-search
  25 + placeholder="请选择库区"
  26 + option-filter-prop="children"
  27 + v-model="queryParam.zoneCode">
  28 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  29 + {{item.name}}
  30 + </a-select-option>
  31 + </a-select>
  32 + </a-form-item>
  33 + </a-col>
  34 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  35 + <a-form-item label="库位编码">
  36 + <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
  37 + </a-form-item>
  38 + </a-col>
  39 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  40 + <a-form-item label="容器编码">
  41 + <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
  42 + </a-form-item>
  43 + </a-col>
  44 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  45 + <a-form-item label="库存状态">
  46 + <j-dict-select-tag
  47 + placeholder="请选择库存状态"
  48 + v-model="queryParam.inventoryStatus"
  49 + dictCode="inventory_status"
  50 + />
  51 + </a-form-item>
  52 + </a-col>
  53 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  54 + <a-form-item label="物料编码">
  55 + <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
  56 + </a-form-item>
  57 + </a-col>
  58 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  59 + <a-form-item label="物料名称">
  60 + <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
15 61 </a-form-item>
16 62 </a-col>
17 63 <template v-if="toggleSearchStatus">
18 64 <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="容器编码">
20   - <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
21   - </a-form-item>
22   - </a-col>
23   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
24   - <a-form-item label="库位编码">
25   - <a-input placeholder="请输入库位编码" v-model="queryParam.locationCode"></a-input>
26   - </a-form-item>
27   - </a-col>
28   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
29   - <a-form-item label="物料编码">
30   - <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input>
31   - </a-form-item>
32   - </a-col>
33   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
34   - <a-form-item label="物料名称">
35   - <a-input placeholder="请输入物料名称" v-model="queryParam.materialName"></a-input>
36   - </a-form-item>
37   - </a-col>
38   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
39 65 <a-form-item label="物料规格">
40 66 <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input>
41 67 </a-form-item>
... ... @@ -46,15 +72,6 @@
46 72 </a-form-item>
47 73 </a-col>
48 74 <a-col :xl="6" :lg="7" :md="8" :sm="24">
49   - <a-form-item label="库存状态">
50   - <j-dict-select-tag
51   - placeholder="请选择库存状态"
52   - v-model="queryParam.inventoryStatus"
53   - dictCode="inventory_status"
54   - />
55   - </a-form-item>
56   - </a-col>
57   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
58 75 <a-form-item label="批次">
59 76 <a-input placeholder="请输入批次" v-model="queryParam.batch"></a-input>
60 77 </a-form-item>
... ... @@ -64,17 +81,16 @@
64 81 <a-input placeholder="请输入序列号" v-model="queryParam.sn"></a-input>
65 82 </a-form-item>
66 83 </a-col> -->
67   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
68   - <a-form-item label="入库日期">
69   - <j-date
70   - :show-time="true"
71   - date-format="YYYY-MM-DD HH:mm:ss"
72   - placeholder="请选择入库日期"
73   - v-model="queryParam.receiptDate"
74   - ></j-date>
  84 + <a-col :xl="12" :lg="14" :md="16" :sm="24">
  85 + <a-form-item label="创建日期">
  86 + <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
  87 + class="query-group-cust" v-model="queryParam.createTime_begin"></j-date>
  88 + <span class="query-group-split-cust"></span>
  89 + <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间"
  90 + class="query-group-cust" v-model="queryParam.createTime_end"></j-date>
75 91 </a-form-item>
76 92 </a-col>
77   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
  93 + <a-col :xl='6' :lg='7' :md='8' :sm='24'>
78 94 <a-form-item label='库龄大于(天)'>
79 95 <a-input placeholder='请输入库龄大于(天)' v-model='queryParam.inventoryAge'></a-input>
80 96 </a-form-item>
... ...
ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryHeaderModal.vue
... ... @@ -33,8 +33,8 @@
33 33 </a-form-model-item>
34 34 </a-col>
35 35 <a-col :span="24">
36   - <a-form-model-item label="库位号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationCode">
37   - <a-input v-model="model.locationCode" placeholder="请输入库位号"></a-input>
  36 + <a-form-model-item label="库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="locationCode">
  37 + <a-input v-model="model.locationCode" placeholder="请输入库位编码"></a-input>
38 38 </a-form-model-item>
39 39 </a-col>
40 40 <a-col :span="24">
... ...
ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
... ... @@ -4,37 +4,11 @@
4 4 <div class="table-operator" v-if="mainId">
5 5 <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
6 6 <a-button type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button>
7   - <a-upload
8   - name="file"
9   - :showUploadList="false"
10   - :multiple="false"
11   - :headers="tokenHeader"
12   - :action="importExcelUrl"
13   - @change="handleImportExcel">
14   - <a-button type="primary" icon="import">导入</a-button>
15   - </a-upload>
16   - <a-dropdown v-if="selectedRowKeys.length > 0">
17   - <a-menu slot="overlay" v-has="'inventoryDetail:deleteBatch'">
18   - <a-menu-item key="1" @click="batchDel">
19   - <a-icon type="delete"/>
20   - 删除
21   - </a-menu-item>
22   - </a-menu>
23   - <a-button style="margin-left: 8px"> 批量操作
24   - <a-icon type="down"/>
25   - </a-button>
26   - </a-dropdown>
27 7 </div>
28 8  
29 9 <!-- table区域-begin -->
30 10 <div>
31   - <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
32   - <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a
33   - style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项
34   - <a style="margin-left: 24px" @click="onClearSelected">清空</a>
35   - </div>
36   -
37   - <a-table
  11 + <a-table
38 12 ref="table"
39 13 size="middle"
40 14 bordered
... ... @@ -54,34 +28,17 @@
54 28 </span>
55 29  
56 30 <span slot="companyCode" slot-scope="companyCode">
57   - <a-tag :key="companyCode" color=blue>
  31 +
  32 + <a-tag :key="companyCode" color="blue">
58 33 {{ solutionCompany(companyCode) }}
59 34 </a-tag>
60 35 </span>
61 36  
62   - <template slot="htmlSlot" slot-scope="text">
63   - <div v-html="text"></div>
64   - </template>
65   - <template slot="imgSlot" slot-scope="text">
66   - <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
67   - <img v-else :src="getImgView(text)" height="25px" alt=""
68   - style="max-width:80px;font-size: 12px;font-style: italic;"/>
69   - </template>
70   - <template slot="fileSlot" slot-scope="text">
71   - <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
72   - <a-button
73   - v-else
74   - :ghost="true"
75   - type="primary"
76   - icon="download"
77   - size="small"
78   - @click="downloadFile(text)">
79   - 下载
80   - </a-button>
81   - </template>
82   -
83   -
84   -
  37 + <span slot="zoneCode" slot-scope="zoneCode">
  38 + <a-tag :key="zoneCode" color="blue">
  39 + {{ solutionZoneCode(zoneCode) }}
  40 + </a-tag>
  41 + </span>
85 42 </a-table>
86 43 </div>
87 44  
... ... @@ -91,14 +48,17 @@
91 48  
92 49 <script>
93 50  
94   -import {JeecgListMixin} from '@/mixins/JeecgListMixin'
  51 +import { JeecgListMixin } from '@/mixins/JeecgListMixin'
95 52 import InventoryDetailModal from '../modules/InventoryDetailModal'
96   -import {getCompanyList} from '@/api/api'
  53 +
  54 +import { getCompanyList, getZoneList } from '@/api/api'
97 55  
98 56 export default {
99   - name: "InventoryDetailSubTable",
  57 +
  58 + name: 'InventoryDetailSubTable',
100 59 mixins: [JeecgListMixin],
101   - components: {InventoryDetailModal},
  60 +
  61 + components: { InventoryDetailModal },
102 62 props: {
103 63 mainId: {
104 64 type: String,
... ... @@ -113,90 +73,100 @@ export default {
113 73 if (!this.mainId) {
114 74 this.clearList()
115 75 } else {
116   - this.queryParam['id'] = val
117   - this.loadData(1);
  76 +
  77 + this.queryParam['zoneCode'] = val.split("_")[0];
  78 + this.queryParam['materialCode'] = val.split("_")[1];
  79 + this.loadData(1)
118 80 }
119 81 }
120 82 }
121 83 },
122 84 data() {
123 85 return {
124   - description: '库存表管理页面',
  86 +
  87 + description: '库存物料汇总详情页面',
125 88 disableMixinCreated: true,
126 89 companyList: [],
  90 + zoneList: [],
127 91 // 表头
128 92 columns: [
129 93 {
130 94 title: '库存详情ID',
131   - align: "center",
  95 +
  96 + align: 'center',
132 97 dataIndex: 'id'
133 98 },
134 99 {
135 100 title: '货主',
136   - align: "center",
  101 +
  102 + align: 'center',
137 103 dataIndex: 'companyCode',
138 104 key: 'companyCode',
139   - scopedSlots: {customRender: 'companyCode'}
  105 +
  106 + scopedSlots: { customRender: 'companyCode' }
140 107 },
141 108 {
142 109 title: '库区',
143   - align: "center",
144   - dataIndex: 'zoneCode'
  110 +
  111 + align: 'center',
  112 + dataIndex: 'zoneCode',
  113 + key: 'zoneCode',
  114 + scopedSlots: { customRender: 'zoneCode' }
145 115 },
146 116 {
147   - title: '容器编码',
148   - align: "center",
149   - dataIndex: 'containerCode'
  117 + title: '库位编码',
  118 + align: 'center',
  119 + dataIndex: 'locationCode'
150 120 },
151 121 {
152   - title: '库位编码',
  122 + title: '容器编码',
153 123 align: "center",
154   - dataIndex: 'locationCode'
  124 + dataIndex: 'containerCode'
155 125 },
156 126 {
157 127 title: '物料编码',
158   - align: "center",
  128 + align: 'center',
159 129 dataIndex: 'materialCode'
160 130 },
161 131 {
162 132 title: '物料名称',
163   - align: "center",
  133 + align: 'center',
164 134 dataIndex: 'materialName'
165 135 },
166 136 {
167   - title: '物料规格',
168   - align: "center",
169   - dataIndex: 'materialSpec'
170   - },
171   - {
172 137 title: '物料单位',
173   - align: "center",
  138 + align: 'center',
174 139 dataIndex: 'materialUnit'
175 140 },
176 141 {
177 142 title: '数量',
178   - align: "center",
  143 + align: 'center',
179 144 dataIndex: 'qty'
180 145 },
181 146 {
182 147 title: '任务锁定数量',
183   - align: "center",
  148 + align: 'center',
184 149 dataIndex: 'taskQty'
185 150 },
186 151 {
187 152 title: '库存状态',
188   - align: "center",
  153 + align: 'center',
189 154 dataIndex: 'inventoryStatus_dictText',
190 155 scopedSlots: {customRender: 'inventoryStatus_dictText'}
191 156 },
192 157 {
  158 + title: '容器状态',
  159 + align: 'center',
  160 + dataIndex: 'containerStatus_dictText'
  161 + },
  162 + {
193 163 title: '批次',
194 164 align: "center",
195 165 dataIndex: 'batch'
196 166 },
197 167 {
198 168 title: '序列号',
199   - align: "center",
  169 + align: 'center',
200 170 dataIndex: 'sn'
201 171 },
202 172 {
... ... @@ -206,44 +176,35 @@ export default {
206 176 },
207 177 {
208 178 title: '库龄(天)',
209   - align: "center",
  179 + align: 'center',
210 180 dataIndex: 'inventoryAge'
211 181 },
212 182 {
213 183 title: '创建人',
214   - align: "center",
  184 + align: 'center',
215 185 dataIndex: 'createBy'
216 186 },
217 187 {
218 188 title: '创建日期',
219   - align: "center",
  189 + align: 'center',
220 190 dataIndex: 'createTime'
221 191 },
222 192 {
223 193 title: '更新人',
224   - align: "center",
  194 + align: 'center',
225 195 dataIndex: 'updateBy'
226 196 },
227 197 {
228 198 title: '更新日期',
229   - align: "center",
230   - },
231   - {
232   - title: '操作',
233   - dataIndex: 'action',
234   - align:"center",
235   - fixed:"right",
236   - width:147,
237   - scopedSlots: { customRender: 'action' }
  199 + align: 'center',
  200 + dataIndex: 'updateTime'
238 201 },
239 202 ],
240 203 url: {
241   - list: "/InventoryMaterialSummary/inventoryMaterialSummary/inventoryMaterialSummaryChild",
242   - exportXlsUrl: "/inventory/inventoryHeader/exportInventoryDetail",
243 204 importUrl: "/inventory/inventoryHeader/importInventoryDetail",
244 205 },
245 206 dictOptions: {
246   - containerStatus: [],
  207 + containerStatus: []
247 208 }
248 209 }
249 210 },
... ... @@ -252,7 +213,7 @@ export default {
252 213 },
253 214 computed: {
254 215 importExcelUrl() {
255   - return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
  216 + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`
256 217 }
257 218 },
258 219 methods: {
... ... @@ -267,31 +228,47 @@ export default {
267 228 return colors[status] || colors.default;
268 229 },
269 230 loadFrom() {
270   - getCompanyList().then((res) => {
  231 +
  232 + getCompanyList().then(res => {
271 233 if (res.success) {
272 234 this.companyList = res.result
273 235 }
274   - });
  236 + })
  237 + getZoneList().then(res => {
  238 + if (res.success) {
  239 + this.zoneList = res.result
  240 + }
  241 + })
275 242 },
276 243 solutionCompany(value) {
277   - var actions = []
278   - Object.keys(this.companyList).some((key) => {
279   - if (this.companyList[key].code == ('' + value)) {
  244 +
  245 + let actions = []
  246 + Object.keys(this.companyList).some(key => {
  247 + if (this.companyList[key].code === '' + value) {
280 248 actions.push(this.companyList[key].name)
281 249 return true
282 250 }
283 251 })
284 252 return actions.join('')
285 253 },
  254 + solutionZoneCode(value) {
  255 + let actions = []
  256 + Object.keys(this.zoneList).some(key => {
  257 + if (this.zoneList[key].code === '' + value) {
  258 + actions.push(this.zoneList[key].name)
  259 + return true
  260 + }
  261 + })
  262 + return actions.join('')
  263 + },
286 264 clearList() {
287 265 this.dataSource = []
288 266 this.selectedRowKeys = []
289 267 this.ipagination.current = 1
290 268 }
291   -
292 269 }
293 270 }
294 271 </script>
295 272 <style scoped>
296   -@import '~@assets/less/common.less'
  273 +@import '~@assets/less/common.less';
297 274 </style>
... ...
ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
... ... @@ -19,22 +19,27 @@
19 19 <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="receipt_container_status"/>
20 20 </a-form-item>
21 21 </a-col>
  22 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  23 + <a-form-item label="起始库位">
  24 + <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
  25 + </a-form-item>
  26 + </a-col>
  27 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  28 + <a-form-item label="目标库位">
  29 + <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
  30 + </a-form-item>
  31 + </a-col>
  32 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  33 + <a-form-item label="目标出入口">
  34 + <a-input placeholder="请输入目标出入口" v-model="queryParam.toPort"></a-input>
  35 + </a-form-item>
  36 + </a-col>
  37 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  38 + <a-form-item label="创建人">
  39 + <a-input placeholder="请输入创建人" v-model="queryParam.createBy"></a-input>
  40 + </a-form-item>
  41 + </a-col>
22 42 <template v-if="toggleSearchStatus">
23   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
24   - <a-form-item label="起始库位">
25   - <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
26   - </a-form-item>
27   - </a-col>
28   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
29   - <a-form-item label="目标库位">
30   - <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
31   - </a-form-item>
32   - </a-col>
33   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
34   - <a-form-item label="目标出入口">
35   - <a-input placeholder="请输入目标出入口" v-model="queryParam.toPort"></a-input>
36   - </a-form-item>
37   - </a-col>
38 43 <a-col :xl="12" :lg="14" :md="16" :sm="24">
39 44 <a-form-item label="创建日期">
40 45 <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
... ...
ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderList.vue
... ... @@ -24,7 +24,6 @@
24 24 </a-select>
25 25 </a-form-item>
26 26 </a-col>
27   -
28 27 <a-col :xl="6" :lg="7" :md="8" :sm="24">
29 28 <a-form-item label="入库单类型">
30 29 <a-select
... ... @@ -39,38 +38,36 @@
39 38 </a-select>
40 39 </a-form-item>
41 40 </a-col>
42   -
  41 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  42 + <a-form-item label="头状态">
  43 + <j-dict-select-tag placeholder="请选择头状态" v-model="queryParam.firstStatus" dictCode="receipt_status"/>
  44 + </a-form-item>
  45 + </a-col>
  46 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  47 + <a-form-item label="尾状态">
  48 + <j-dict-select-tag placeholder="请选择尾状态" v-model="queryParam.lastStatus" dictCode="receipt_status"/>
  49 + </a-form-item>
  50 + </a-col>
  51 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  52 + <a-form-item label="上游单号">
  53 + <a-input placeholder="请输入上游单号" v-model="queryParam.referCode"></a-input>
  54 + </a-form-item>
  55 + </a-col>
  56 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  57 + <a-form-item label="供应商">
  58 + <a-select
  59 + show-search
  60 + placeholder="请选择供应商"
  61 + option-filter-prop="children"
  62 + v-model="queryParam.supplierCode">
  63 + <a-select-option v-for="item in supplierList" :key="item.name" :value="item.code">{{
  64 + item.name
  65 + }}
  66 + </a-select-option>
  67 + </a-select>
  68 + </a-form-item>
  69 + </a-col>
43 70 <template v-if="toggleSearchStatus">
44   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
45   - <a-form-item label="头状态">
46   - <j-dict-select-tag placeholder="请选择头状态" v-model="queryParam.firstStatus" dictCode="receipt_status"/>
47   - </a-form-item>
48   - </a-col>
49   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
50   - <a-form-item label="尾状态">
51   - <j-dict-select-tag placeholder="请选择尾状态" v-model="queryParam.lastStatus" dictCode="receipt_status"/>
52   - </a-form-item>
53   - </a-col>
54   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
55   - <a-form-item label="上游单号">
56   - <a-input placeholder="请输入上游单号" v-model="queryParam.referCode"></a-input>
57   - </a-form-item>
58   - </a-col>
59   -
60   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
61   - <a-form-item label="供应商">
62   - <a-select
63   - show-search
64   - placeholder="请选择供应商"
65   - option-filter-prop="children"
66   - v-model="queryParam.supplierCode">
67   - <a-select-option v-for="item in supplierList" :key="item.name" :value="item.code">{{
68   - item.name
69   - }}
70   - </a-select-option>
71   - </a-select>
72   - </a-form-item>
73   - </a-col>
74 71 <a-col :xl="12" :lg="14" :md="16" :sm="24">
75 72 <a-form-item label="创建日期">
76 73 <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
... ...
ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
... ... @@ -14,33 +14,33 @@
14 14 <j-dict-select-tag placeholder="请选择任务类型" v-model="queryParam.taskType" dictCode="shipment_task_type"/>
15 15 </a-form-item>
16 16 </a-col>
  17 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  18 + <a-form-item label="状态">
  19 + <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status"
  20 + dictCode="shipment_container_status"/>
  21 + </a-form-item>
  22 + </a-col>
  23 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  24 + <a-form-item label="起始库位">
  25 + <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
  26 + </a-form-item>
  27 + </a-col>
  28 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  29 + <a-form-item label="目标库位">
  30 + <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
  31 + </a-form-item>
  32 + </a-col>
  33 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  34 + <a-form-item label="目标出入口">
  35 + <a-input placeholder="请输入目标出入口" v-model="queryParam.toPort"></a-input>
  36 + </a-form-item>
  37 + </a-col>
  38 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  39 + <a-form-item label="创建人">
  40 + <a-input placeholder="请输入创建人" v-model="queryParam.createBy"></a-input>
  41 + </a-form-item>
  42 + </a-col>
17 43 <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="状态">
20   - <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status"
21   - dictCode="shipment_container_status"/>
22   - </a-form-item>
23   - </a-col>
24   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
25   - <a-form-item label="起始库位">
26   - <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
27   - </a-form-item>
28   - </a-col>
29   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
30   - <a-form-item label="目标库位">
31   - <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
32   - </a-form-item>
33   - </a-col>
34   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
35   - <a-form-item label="目标出入口">
36   - <a-input placeholder="请输入目标出入口" v-model="queryParam.toPort"></a-input>
37   - </a-form-item>
38   - </a-col>
39   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
40   - <a-form-item label="创建人">
41   - <a-input placeholder="请输入创建人" v-model="queryParam.createBy"></a-input>
42   - </a-form-item>
43   - </a-col>
44 44 <a-col :xl="12" :lg="14" :md="16" :sm="24">
45 45 <a-form-item label="创建日期">
46 46 <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
... ...
ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue
... ... @@ -37,37 +37,37 @@
37 37 </a-select>
38 38 </a-form-item>
39 39 </a-col>
  40 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  41 + <a-form-item label="头状态">
  42 + <j-dict-select-tag placeholder="请选择头状态" v-model="queryParam.firstStatus" dictCode="shipment_status"/>
  43 + </a-form-item>
  44 + </a-col>
  45 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  46 + <a-form-item label="尾状态">
  47 + <j-dict-select-tag placeholder="请选择尾状态" v-model="queryParam.lastStatus" dictCode="shipment_status"/>
  48 + </a-form-item>
  49 + </a-col>
  50 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  51 + <a-form-item label="上游单号">
  52 + <a-input placeholder="请输入上游单号" v-model="queryParam.referCode"></a-input>
  53 + </a-form-item>
  54 + </a-col>
  55 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  56 + <a-form-item label="客户">
  57 + <a-select
  58 + show-search
  59 + placeholder="请选择客户"
  60 + option-filter-prop="children"
  61 + v-model="queryParam.customerCode">
  62 + <a-select-option v-for="item in customerList" :key="item.name" :value="item.code">{{
  63 + item.name
  64 + }}
  65 + </a-select-option>
  66 + </a-select>
  67 + </a-form-item>
  68 + </a-col>
40 69 <template v-if="toggleSearchStatus">
41 70 <a-col :xl="6" :lg="7" :md="8" :sm="24">
42   - <a-form-item label="头状态">
43   - <j-dict-select-tag placeholder="请选择头状态" v-model="queryParam.firstStatus" dictCode="shipment_status"/>
44   - </a-form-item>
45   - </a-col>
46   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
47   - <a-form-item label="尾状态">
48   - <j-dict-select-tag placeholder="请选择尾状态" v-model="queryParam.lastStatus" dictCode="shipment_status"/>
49   - </a-form-item>
50   - </a-col>
51   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
52   - <a-form-item label="上游单号">
53   - <a-input placeholder="请输入上游单号" v-model="queryParam.referCode"></a-input>
54   - </a-form-item>
55   - </a-col>
56   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
57   - <a-form-item label="客户">
58   - <a-select
59   - show-search
60   - placeholder="请选择客户"
61   - option-filter-prop="children"
62   - v-model="queryParam.customerCode">
63   - <a-select-option v-for="item in customerList" :key="item.name" :value="item.code">{{
64   - item.name
65   - }}
66   - </a-select-option>
67   - </a-select>
68   - </a-form-item>
69   - </a-col>
70   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
71 71 <a-form-item label="出库单备注">
72 72 <a-input placeholder="请输入出库单备注" v-model="queryParam.remark"></a-input>
73 73 </a-form-item>
... ...
ant-design-vue-jeecg/src/views/system/task/AgvTaskList.vue
... ... @@ -5,6 +5,11 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="任务ID">
  9 + <a-input placeholder="请输入任务ID" v-model="queryParam.id"></a-input>
  10 + </a-form-item>
  11 + </a-col>
  12 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 13 <a-form-item label="任务类型">
9 14 <j-dict-select-tag placeholder="请选择任务类型" v-model="queryParam.taskType" dictCode="agv_task_type"/>
10 15 </a-form-item>
... ... @@ -14,31 +19,25 @@
14 19 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
15 20 </a-form-item>
16 21 </a-col>
17   - <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="状态">
20   - <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="agv_task_status"/>
21   - </a-form-item>
22   - </a-col>
23   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
24   - <a-form-item label="起始点位">
25   - <a-input placeholder="请输入起始点位" v-model="queryParam.fromPort"></a-input>
26   - </a-form-item>
27   - </a-col>
28   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
29   - <a-form-item label="目标点位">
30   - <a-input placeholder="请输入目标点位" v-model="queryParam.toPort"></a-input>
31   - </a-form-item>
32   - </a-col>
33   - </template>
  22 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  23 + <a-form-item label="状态">
  24 + <j-dict-select-tag placeholder="请选择状态" v-model="queryParam.status" dictCode="agv_task_status"/>
  25 + </a-form-item>
  26 + </a-col>
  27 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  28 + <a-form-item label="起始点位">
  29 + <a-input placeholder="请输入起始点位" v-model="queryParam.fromPort"></a-input>
  30 + </a-form-item>
  31 + </a-col>
  32 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  33 + <a-form-item label="目标点位">
  34 + <a-input placeholder="请输入目标点位" v-model="queryParam.toPort"></a-input>
  35 + </a-form-item>
  36 + </a-col>
34 37 <a-col :xl="6" :lg="7" :md="8" :sm="24">
35 38 <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
36 39 <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
37 40 <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
38   - <a @click="handleToggleSearch" style="margin-left: 8px">
39   - {{ toggleSearchStatus ? '收起' : '展开' }}
40   - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
41   - </a>
42 41 </span>
43 42 </a-col>
44 43 </a-row>
... ...
ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
... ... @@ -5,6 +5,11 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="任务ID">
  9 + <a-input placeholder="请输入任务ID" v-model="queryParam.id"></a-input>
  10 + </a-form-item>
  11 + </a-col>
  12 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 13 <a-form-item label="任务类型">
9 14 <j-dict-select-tag placeholder="请选择任务类型" v-model="queryParam.taskType" dictCode="task_type"/>
10 15 </a-form-item>
... ... @@ -14,31 +19,36 @@
14 19 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
15 20 </a-form-item>
16 21 </a-col>
17   - <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="库区">
20   - <a-select
21   - show-search
22   - placeholder="请选择库区"
23   - option-filter-prop="children"
  22 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  23 + <a-form-item label="库区">
  24 + <a-select
  25 + show-search
  26 + placeholder="请选择库区"
  27 + option-filter-prop="children"
24 28  
25   - v-model="queryParam.zoneCode">
26   - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
27   - {{item.name}}
28   - </a-select-option>
29   - </a-select>
30   - </a-form-item>
31   - </a-col>
32   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
33   - <a-form-item label="起始库位">
34   - <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
35   - </a-form-item>
36   - </a-col>
37   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
38   - <a-form-item label="目标库位">
39   - <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
40   - </a-form-item>
41   - </a-col>
  29 + v-model="queryParam.zoneCode">
  30 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  31 + {{item.name}}
  32 + </a-select-option>
  33 + </a-select>
  34 + </a-form-item>
  35 + </a-col>
  36 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  37 + <a-form-item label="起始库位">
  38 + <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
  39 + </a-form-item>
  40 + </a-col>
  41 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  42 + <a-form-item label="目标库位">
  43 + <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
  44 + </a-form-item>
  45 + </a-col>
  46 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  47 + <a-form-item label="任务状态">
  48 + <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
  49 + </a-form-item>
  50 + </a-col>
  51 + <template v-if="toggleSearchStatus">
42 52 <a-col :xl="6" :lg="7" :md="8" :sm="24">
43 53 <a-form-item label="起始出入口">
44 54 <a-input placeholder="请输入起始出入口" v-model="queryParam.fromPortCode"></a-input>
... ... @@ -49,11 +59,7 @@
49 59 <a-input placeholder="请输入目标出入口" v-model="queryParam.toPortCode"></a-input>
50 60 </a-form-item>
51 61 </a-col>
52   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
53   - <a-form-item label="任务状态">
54   - <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
55   - </a-form-item>
56   - </a-col>
  62 +
57 63 <a-col :xl="12" :lg="14" :md="16" :sm="24">
58 64 <a-form-item label="创建日期">
59 65 <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
... ... @@ -456,7 +462,7 @@ export default {
456 462 fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
457 463 fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
458 464 fieldList.push({type: 'int', value: 'isDoubleIn', text: '是否重入', dictCode: 'is_or_not'})
459   - fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位', dictCode: ''})
  465 + fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位编码', dictCode: ''})
460 466 fieldList.push({type: 'int', value: 'status', text: '任务状态', dictCode: 'task_header_status'})
461 467 fieldList.push({type: 'string', value: 'fromPortCode', text: '起始出入口', dictCode: ''})
462 468 fieldList.push({type: 'string', value: 'toPortCode', text: '目标出入口', dictCode: ''})
... ...
ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
... ... @@ -5,6 +5,11 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="任务ID">
  9 + <a-input placeholder="请输入任务ID" v-model="queryParam.id"></a-input>
  10 + </a-form-item>
  11 + </a-col>
  12 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 13 <a-form-item label="任务类型">
9 14 <j-dict-select-tag placeholder="请选择任务类型" v-model="queryParam.taskType" dictCode="task_type"/>
10 15 </a-form-item>
... ... @@ -14,31 +19,36 @@
14 19 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
15 20 </a-form-item>
16 21 </a-col>
  22 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  23 + <a-form-item label="库区">
  24 + <a-select
  25 + show-search
  26 + placeholder="请选择库区"
  27 + option-filter-prop="children"
  28 + v-model="queryParam.zoneCode">
  29 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  30 + {{item.name}}
  31 + </a-select-option>
  32 + </a-select>
  33 + </a-form-item>
  34 + </a-col>
  35 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  36 + <a-form-item label="起始库位">
  37 + <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
  38 + </a-form-item>
  39 + </a-col>
  40 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  41 + <a-form-item label="目标库位">
  42 + <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
  43 + </a-form-item>
  44 + </a-col>
  45 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  46 + <a-form-item label="任务状态">
  47 + <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
  48 + </a-form-item>
  49 + </a-col>
17 50 <template v-if="toggleSearchStatus">
18 51 <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="库区">
20   - <a-select
21   - show-search
22   - placeholder="请选择库区"
23   - option-filter-prop="children"
24   - v-model="queryParam.zoneCode">
25   - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
26   - {{item.name}}
27   - </a-select-option>
28   - </a-select>
29   - </a-form-item>
30   - </a-col>
31   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
32   - <a-form-item label="起始库位">
33   - <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
34   - </a-form-item>
35   - </a-col>
36   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
37   - <a-form-item label="目标库位">
38   - <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
39   - </a-form-item>
40   - </a-col>
41   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
42 52 <a-form-item label="起始出入口">
43 53 <a-input placeholder="请输入起始出入口" v-model="queryParam.fromPortCode"></a-input>
44 54 </a-form-item>
... ... @@ -48,11 +58,6 @@
48 58 <a-input placeholder="请输入目标出入口" v-model="queryParam.toPortCode"></a-input>
49 59 </a-form-item>
50 60 </a-col>
51   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
52   - <a-form-item label="任务状态">
53   - <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
54   - </a-form-item>
55   - </a-col>
56 61 <a-col :xl="12" :lg="14" :md="16" :sm="24">
57 62 <a-form-item label="创建日期">
58 63 <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
... ... @@ -494,7 +499,7 @@ export default {
494 499 fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
495 500 fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
496 501 fieldList.push({type: 'int', value: 'isDoubleIn', text: '是否重入', dictCode: 'is_or_not'})
497   - fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位', dictCode: ''})
  502 + fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位编码', dictCode: ''})
498 503 fieldList.push({type: 'int', value: 'status', text: '任务状态', dictCode: 'task_header_status'})
499 504 fieldList.push({type: 'string', value: 'fromPortCode', text: '起始出入口', dictCode: ''})
500 505 fieldList.push({type: 'string', value: 'toPortCode', text: '目标出入口', dictCode: ''})
... ...
ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
... ... @@ -5,6 +5,11 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="任务ID">
  9 + <a-input placeholder="请输入任务ID" v-model="queryParam.id"></a-input>
  10 + </a-form-item>
  11 + </a-col>
  12 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 13 <a-form-item label="任务类型">
9 14 <j-dict-select-tag placeholder="请选择任务类型" v-model="queryParam.taskType" dictCode="task_type"/>
10 15 </a-form-item>
... ... @@ -14,36 +19,36 @@
14 19 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
15 20 </a-form-item>
16 21 </a-col>
  22 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  23 + <a-form-item label="库区">
  24 + <a-select
  25 + show-search
  26 + placeholder="请选择库区"
  27 + option-filter-prop="children"
  28 + v-model="queryParam.zoneCode">
  29 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  30 + {{item.name}}
  31 + </a-select-option>
  32 + </a-select>
  33 + </a-form-item>
  34 + </a-col>
  35 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  36 + <a-form-item label="起始库位">
  37 + <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
  38 + </a-form-item>
  39 + </a-col>
  40 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  41 + <a-form-item label="目标库位">
  42 + <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
  43 + </a-form-item>
  44 + </a-col>
  45 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  46 + <a-form-item label="任务状态">
  47 + <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
  48 + </a-form-item>
  49 + </a-col>
17 50 <template v-if="toggleSearchStatus">
18   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="库区">
20   - <a-select
21   - show-search
22   - placeholder="请选择库区"
23   - option-filter-prop="children"
24   - v-model="queryParam.zoneCode">
25   - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
26   - {{item.name}}
27   - </a-select-option>
28   - </a-select>
29   - </a-form-item>
30   - </a-col>
31   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
32   - <a-form-item label="起始库位">
33   - <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
34   - </a-form-item>
35   - </a-col>
36   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
37   - <a-form-item label="目标库位">
38   - <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
39   - </a-form-item>
40   - </a-col>
41   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
42   - <a-form-item label="任务状态">
43   - <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
44   - </a-form-item>
45   - </a-col>
46   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
  51 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
47 52 <a-form-item label="起始出入口">
48 53 <a-input placeholder="请输入起始出入口" v-model="queryParam.fromPortCode"></a-input>
49 54 </a-form-item>
... ... @@ -493,7 +498,7 @@ export default {
493 498 fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
494 499 fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
495 500 fieldList.push({type: 'int', value: 'isDoubleIn', text: '是否重入', dictCode: 'is_or_not'})
496   - fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位', dictCode: ''})
  501 + fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位编码', dictCode: ''})
497 502 fieldList.push({type: 'int', value: 'status', text: '任务状态', dictCode: 'task_header_status'})
498 503 fieldList.push({type: 'string', value: 'fromPort', text: '起始出入口', dictCode: ''})
499 504 fieldList.push({type: 'string', value: 'toPort', text: '目标出入口', dictCode: ''})
... ...
ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
... ... @@ -5,6 +5,11 @@
5 5 <a-form layout="inline" @keyup.enter.native="searchQuery">
6 6 <a-row :gutter="24">
7 7 <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8 + <a-form-item label="任务ID">
  9 + <a-input placeholder="请输入任务ID" v-model="queryParam.id"></a-input>
  10 + </a-form-item>
  11 + </a-col>
  12 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
8 13 <a-form-item label="任务类型">
9 14 <j-dict-select-tag placeholder="请选择任务类型" v-model="queryParam.taskType" dictCode="task_type"/>
10 15 </a-form-item>
... ... @@ -14,31 +19,36 @@
14 19 <a-input placeholder="请输入容器编码" v-model="queryParam.containerCode"></a-input>
15 20 </a-form-item>
16 21 </a-col>
  22 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  23 + <a-form-item label="库区">
  24 + <a-select
  25 + show-search
  26 + placeholder="请选择库区"
  27 + option-filter-prop="children"
  28 + v-model="queryParam.zoneCode">
  29 + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
  30 + {{item.name}}
  31 + </a-select-option>
  32 + </a-select>
  33 + </a-form-item>
  34 + </a-col>
  35 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  36 + <a-form-item label="起始库位">
  37 + <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
  38 + </a-form-item>
  39 + </a-col>
  40 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  41 + <a-form-item label="目标库位">
  42 + <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
  43 + </a-form-item>
  44 + </a-col>
  45 + <a-col :xl="6" :lg="7" :md="8" :sm="24">
  46 + <a-form-item label="任务状态">
  47 + <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
  48 + </a-form-item>
  49 + </a-col>
17 50 <template v-if="toggleSearchStatus">
18 51 <a-col :xl="6" :lg="7" :md="8" :sm="24">
19   - <a-form-item label="库区">
20   - <a-select
21   - show-search
22   - placeholder="请选择库区"
23   - option-filter-prop="children"
24   - v-model="queryParam.zoneCode">
25   - <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">
26   - {{item.name}}
27   - </a-select-option>
28   - </a-select>
29   - </a-form-item>
30   - </a-col>
31   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
32   - <a-form-item label="起始库位">
33   - <a-input placeholder="请输入起始库位" v-model="queryParam.fromLocationCode"></a-input>
34   - </a-form-item>
35   - </a-col>
36   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
37   - <a-form-item label="目标库位">
38   - <a-input placeholder="请输入目标库位" v-model="queryParam.toLocationCode"></a-input>
39   - </a-form-item>
40   - </a-col>
41   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
42 52 <a-form-item label="起始出入口">
43 53 <a-input placeholder="请输入起始出入口" v-model="queryParam.fromPortCode"></a-input>
44 54 </a-form-item>
... ... @@ -48,11 +58,6 @@
48 58 <a-input placeholder="请输入目标出入口" v-model="queryParam.toPortCode"></a-input>
49 59 </a-form-item>
50 60 </a-col>
51   - <a-col :xl="6" :lg="7" :md="8" :sm="24">
52   - <a-form-item label="任务状态">
53   - <j-dict-select-tag placeholder="请选择任务状态" v-model="queryParam.status" dictCode="task_header_status"/>
54   - </a-form-item>
55   - </a-col>
56 61 <a-col :xl="12" :lg="14" :md="16" :sm="24">
57 62 <a-form-item label="创建日期">
58 63 <j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间"
... ... @@ -501,7 +506,7 @@ export default {
501 506 fieldList.push({type: 'string', value: 'toLocationCode', text: '目标库位', dictCode: ''})
502 507 fieldList.push({type: 'string', value: 'isEmptyOut', text: '是否空出', dictCode: 'is_or_not'})
503 508 fieldList.push({type: 'int', value: 'isDoubleIn', text: '是否重入', dictCode: 'is_or_not'})
504   - fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位', dictCode: ''})
  509 + fieldList.push({type: 'string', value: 'originLocationCode', text: '重入库位编码', dictCode: ''})
505 510 fieldList.push({type: 'int', value: 'status', text: '任务状态', dictCode: 'task_header_status'})
506 511 fieldList.push({type: 'string', value: 'fromPortCode', text: '起始出入口', dictCode: ''})
507 512 fieldList.push({type: 'string', value: 'toPortCode', text: '目标出入口', dictCode: ''})
... ...
ant-design-vue-jeecg/src/views/system/task/modules/TaskHeaderModal.vue
... ... @@ -42,8 +42,8 @@
42 42 </a-form-model-item>
43 43 </a-col>
44 44 <a-col :span="24">
45   - <a-form-model-item label="重入库位号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originLocationCode">
46   - <a-input v-model="model.originLocationCode" placeholder="请输入重入库位号"></a-input>
  45 + <a-form-model-item label="重入库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originLocationCode">
  46 + <a-input v-model="model.originLocationCode" placeholder="请输入重入库位编码"></a-input>
47 47 </a-form-model-item>
48 48 </a-col>
49 49 <a-col :span="24">
... ...
ant-design-vue-jeecg/src/views/system/task/modules/TransferTaskModal.vue
... ... @@ -12,13 +12,13 @@
12 12 <a-form-model ref="form" :model="model" :rules="validatorRules">
13 13 <a-row>
14 14 <a-col :span="24">
15   - <a-form-model-item label="起始库位号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fromLocationCode">
16   - <a-input v-model="model.fromLocationCode" placeholder="请输入起始库位号"></a-input>
  15 + <a-form-model-item label="起始库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="fromLocationCode">
  16 + <a-input v-model="model.fromLocationCode" placeholder="请输入起始库位编码"></a-input>
17 17 </a-form-model-item>
18 18 </a-col>
19 19 <a-col :span="24">
20   - <a-form-model-item label="目标库位号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toLocationCode">
21   - <a-input v-model="model.toLocationCode" placeholder="请输入目标库位号"></a-input>
  20 + <a-form-model-item label="目标库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="toLocationCode">
  21 + <a-input v-model="model.toLocationCode" placeholder="请输入目标库位编码"></a-input>
22 22 </a-form-model-item>
23 23 </a-col>
24 24 </a-row>
... ... @@ -56,10 +56,10 @@ export default {
56 56 confirmLoading: false,
57 57 validatorRules: {
58 58 fromLocationCode: [
59   - {required: true, message: '请输入起始库位!'},
  59 + {required: true, message: '请输入起始库位编码!'},
60 60 ],
61 61 toLocationCode: [
62   - {required: true, message: '请输入目标库位!'},
  62 + {required: true, message: '请输入目标库位编码!'},
63 63 ],
64 64 },
65 65 url: {
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/system/entity/SysUser.java
... ... @@ -8,6 +8,7 @@ import java.util.List;
8 8 import org.jeecg.common.aspect.annotation.Dict;
9 9 import org.jeecgframework.poi.excel.annotation.Excel;
10 10 import org.springframework.format.annotation.DateTimeFormat;
  11 +import org.springframework.util.StringUtils;
11 12  
12 13 import com.baomidou.mybatisplus.annotation.IdType;
13 14 import com.baomidou.mybatisplus.annotation.TableField;
... ... @@ -197,7 +198,7 @@ public class SysUser implements Serializable {
197 198 private List<String> selectedWarehouses;
198 199  
199 200 public void setSelectedWarehouse(String selectedWarehouse) {
200   - if (selectedWarehouse != null) {
  201 + if (!StringUtils.isEmpty(selectedWarehouse)) {
201 202 this.selectedWarehouse = selectedWarehouse;
202 203 this.selectedWarehouses = Arrays.asList(selectedWarehouse.split(","));
203 204 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/CallBoxBean.java
... ... @@ -10,7 +10,7 @@ import lombok.Data;
10 10 public class CallBoxBean {
11 11 @ApiModelProperty(value = "托盘号", required = true)
12 12 private String containerCode;
13   - @ApiModelProperty(value = "库位", required = true)
  13 + @ApiModelProperty(value = "库位编码", required = true)
14 14 private String locationCode;
15 15 @ApiModelProperty(value = "任务类型,200补充入, 400分拣出")
16 16 private int type;
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/entity/QuickReceiptBean.java
... ... @@ -10,7 +10,7 @@ import java.util.List;
10 10 public class QuickReceiptBean {
11 11 @ApiModelProperty(value = "托盘号", required = true)
12 12 private String containerCode;
13   - @ApiModelProperty(value = "库位", required = false)
  13 + @ApiModelProperty(value = "库位编码", required = false)
14 14 private String locationCode;
15 15 @ApiModelProperty(value = "单据类型", required = true)
16 16 private String receiptType;
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
... ... @@ -219,7 +219,7 @@ public class WcsServiceImpl implements WcsService {
219 219 receiptContainerHeader.setId(receiptContainerDetail.getReceiptContainerId());
220 220 receiptContainerHeader.setToLocationCode(locationCode);
221 221 if (!receiptContainerHeaderService.updateById(receiptContainerHeader)) {
222   - throw new JeecgBootException("分配库位时,更新入库组盘的库位失败");
  222 + throw new JeecgBootException("分配库位时,更新入库组盘的库位编码失败");
223 223 }
224 224 }
225 225 }
... ... @@ -273,7 +273,7 @@ public class WcsServiceImpl implements WcsService {
273 273 LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptContainerDetailList));
274 274 LogRecordContext.putVariable("taskHeader", taskHeader);
275 275 LogRecordContext.putVariable("success", true);
276   - log.info("完成分配库位,任务号:" + taskNo + ", 库位:" + locationCode);
  276 + log.info("完成分配库位,任务号:" + taskNo + ", 库位编码:" + locationCode);
277 277 return Result.OK(wcsTask);
278 278 }
279 279  
... ... @@ -572,7 +572,7 @@ public class WcsServiceImpl implements WcsService {
572 572 }
573 573 String toLocationCode = taskHeader.getToLocationCode();
574 574 if (StringUtils.isEmpty(toLocationCode)) {
575   - return Result.error("重入处理失败, 目的库位为空");
  575 + return Result.error("重入处理失败, 目的库位编码为空");
576 576 }
577 577 // 3、找到目标库位
578 578 Location toLocation = locationService.getLocationByCode(toLocationCode, warehouseCode);
... ... @@ -603,13 +603,13 @@ public class WcsServiceImpl implements WcsService {
603 603 Material material = materialService.getMaterialByCode(materialCode);
604 604 materialAreaCode = material.getMaterialareaCode();
605 605 }
606   - // 4. WMS重新分配库位
  606 + // 4. WMS重新分配库位编码
607 607 String locationCode =
608 608 locationAllocationService.allocation(allocationRule, locationTypeCodeList, high, zoneCode, roadWays, warehouseCode, containerCode, materialAreaCode);
609 609 if (StringUtils.isEmpty(locationCode)) {
610 610 return Result.error("重入处理失败, 没有库位可分配");
611 611 }
612   - // 5. 任务类型为整盘入库、补充入库,更新入库组盘的库位
  612 + // 5. 任务类型为整盘入库、补充入库,更新入库组盘的库位编码
613 613 int taskType = taskHeader.getTaskType();
614 614 if (taskType == QuantityConstant.TASK_TYPE_WHOLERECEIPT || taskType == QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT) {
615 615 ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(taskHeader.getReceiptContainerHeaderId());
... ... @@ -649,7 +649,7 @@ public class WcsServiceImpl implements WcsService {
649 649 throw new JeecgBootException("重入处理失败, 更新任务信息失败");
650 650 }
651 651  
652   - // 9. 封装返回的数据格式,包括任务号和重新分配的库位
  652 + // 9. 封装返回的数据格式,包括任务号和重新分配的库位编码
653 653 TaskReentryEntity taskReentryEntity = new TaskReentryEntity();
654 654 taskReentryEntity.setTaskNo(Integer.parseInt(taskNo));
655 655 taskReentryEntity.setRedirectionLocationCode(locationCode);
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/controller/ContainerController.java
... ... @@ -114,7 +114,7 @@ public class ContainerController extends JeecgController&lt;Container, IContainerSe
114 114 if (StringUtils.isNotEmpty(locationCode)) {
115 115 Location location = locationService.getLocationByCode(locationCode, container.getWarehouseCode());
116 116 if (location == null) {
117   - throw new JeecgBootException("编辑的库位不存在");
  117 + throw new JeecgBootException("编辑的库位编码不存在");
118 118 }
119 119 }
120 120 boolean success = containerService.updateById(container);
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/InventoryMaterialSummary/controller/InventoryMaterialSummaryController.java
1 1 package org.jeecg.modules.wms.inventory.InventoryMaterialSummary.controller;
2 2  
3   -import java.util.List;
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5 +import com.baomidou.mybatisplus.core.metadata.IPage;
  6 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 7  
5   -import javax.annotation.Resource;
6   -import javax.servlet.http.HttpServletRequest;
7   -import javax.servlet.http.HttpServletResponse;
  8 +import cn.hutool.core.collection.CollUtil;
  9 +import io.swagger.annotations.Api;
  10 +import io.swagger.annotations.ApiOperation;
  11 +import lombok.extern.slf4j.Slf4j;
8 12  
  13 +import org.apache.commons.beanutils.PropertyUtils;
  14 +import org.apache.shiro.SecurityUtils;
9 15 import org.apache.shiro.authz.annotation.RequiresPermissions;
10 16 import org.jeecg.common.api.vo.Result;
11 17 import org.jeecg.common.system.base.controller.JeecgController;
12 18 import org.jeecg.common.system.query.QueryGenerator;
  19 +import org.jeecg.common.system.vo.LoginUser;
  20 +import org.jeecg.common.util.oConvertUtils;
  21 +import org.jeecg.modules.system.entity.SysUser;
  22 +import org.jeecg.modules.system.service.ISysUserService;
  23 +import org.jeecg.modules.wms.inventory.InventoryMaterialSummary.entity.InventoryMaterialSummary;
13 24 import org.jeecg.modules.wms.inventory.InventoryMaterialSummary.service.IInventoryMaterialSummaryService;
14 25 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
15 26 import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService;
16   -import org.jeecg.modules.wms.inventory.inventoryHeader.service.impl.InventoryDetailServiceImpl;
17 27 import org.jeecg.utils.HuahengJwtUtil;
18 28 import org.jeecg.utils.StringUtils;
  29 +import org.jeecgframework.poi.excel.entity.ExportParams;
  30 +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
  31 +import org.springframework.beans.BeanUtils;
  32 +import org.springframework.beans.factory.annotation.Value;
19 33 import org.springframework.web.bind.annotation.*;
20 34 import org.springframework.web.servlet.ModelAndView;
21 35  
22   -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
23   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
24   -import com.baomidou.mybatisplus.core.metadata.IPage;
25   -import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  36 +import javax.annotation.Resource;
  37 +import javax.servlet.http.HttpServletRequest;
  38 +import javax.servlet.http.HttpServletResponse;
26 39  
27   -import io.swagger.annotations.Api;
28   -import io.swagger.annotations.ApiOperation;
29   -import lombok.extern.slf4j.Slf4j;
  40 +import java.math.BigDecimal;
  41 +import java.util.Arrays;
  42 +import java.util.LinkedList;
  43 +import java.util.List;
  44 +import java.util.Map;
  45 +import java.util.stream.Collectors;
30 46  
31 47 /**
32   - * @Description: 物料汇总主表
  48 + * @Description: 库存物料汇总
33 49 * @Author: jeecg-boot
34 50 * @Date: 2023-02-22
35 51 * @Version: V1.0
36 52 */
37   -@Api(tags = "物料汇总主表")
  53 +@Api(tags = "库存物料汇总")
38 54 @RestController
39 55 @RequestMapping("/InventoryMaterialSummary/inventoryMaterialSummary")
40 56 @Slf4j
41 57 public class InventoryMaterialSummaryController extends JeecgController<InventoryDetail, IInventoryMaterialSummaryService> {
  58 +
42 59 @Resource
43 60 private IInventoryDetailService inventoryDetailService;
44 61  
45 62 @Resource
46 63 private IInventoryMaterialSummaryService inventoryMaterialSummaryService;
47 64  
  65 + @Resource
  66 + private ISysUserService sysUserService;
  67 +
  68 + @Value("${jeecg.path.upload}")
  69 + private String upLoadPath;
  70 +
48 71 /**
49   - * 分页列表查询
  72 + * 库存物料汇总-分页主表查询
50 73 * @param pageNo
51 74 * @param pageSize
52 75 * @param req
53 76 * @return
54 77 */
55   - @ApiOperation(value = "物料汇总主表-分页列表查询", notes = "物料汇总主表-分页列表查询")
  78 + @ApiOperation(value = "库存物料汇总-分页主表查询", notes = "库存物料汇总-分页主表查询")
56 79 @GetMapping(value = "/list")
57 80 public Result<IPage<InventoryDetail>> queryPageList(InventoryDetail inventoryDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
58 81 @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
59 82 HuahengJwtUtil.setWarehouseCode(req, inventoryDetail);
60 83 QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, req.getParameterMap());
  84 + queryWrapper.select("zone_code, company_code, material_code, material_name,material_spec, material_unit, SUM(qty) as qty");
  85 + queryWrapper.groupBy("zone_code", "company_code", "material_code", "material_name", "material_spec", "material_unit");
61 86 Page<InventoryDetail> page = new Page<InventoryDetail>(pageNo, pageSize);
62 87 IPage<InventoryDetail> pageList = inventoryDetailService.page(page, queryWrapper);
63   - // 筛选库存汇总数据的专用方法
64   - pageList.setRecords(inventoryMaterialSummaryService.duplicateRemoval(pageList.getRecords()));
65 88 return Result.OK(pageList);
66 89 }
67 90  
68 91 /**
69   - * 分页列表明细情况
  92 + * 库存物料汇总-分页明细查询
70 93 * @param pageNo
71 94 * @param pageSize
72 95 * @param req
73 96 * @return
74 97 */
75   - @ApiOperation(value = "物料汇总主表-库存汇总明细子单", notes = "物料汇总主表-库存汇总明细子单")
  98 + @ApiOperation(value = "库存物料汇总-分页明细查询", notes = "库存物料汇总-分页明细查询")
76 99 @GetMapping(value = "/inventoryMaterialSummaryChild")
77 100 public Result<IPage<InventoryDetail>> inventoryMaterialSummaryChild(InventoryDetail inventoryDetail,
78 101 @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
79 102 HttpServletRequest req) {
80   - inventoryDetail = inventoryDetailService.getById(inventoryDetail.getId());
81   - LambdaQueryWrapper<InventoryDetail> queryWrapper = new LambdaQueryWrapper<>();
82   - queryWrapper.eq(InventoryDetail::getMaterialCode, inventoryDetail.getMaterialCode()).eq(InventoryDetail::getMaterialName, inventoryDetail.getMaterialName())
83   - .eq(StringUtils.isNotEmpty(inventoryDetail.getMaterialSpec()), InventoryDetail::getMaterialSpec, inventoryDetail.getMaterialSpec())
84   - .eq(StringUtils.isNotEmpty(inventoryDetail.getMaterialUnit()), InventoryDetail::getMaterialUnit, inventoryDetail.getMaterialUnit());
85   -
  103 + QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, req.getParameterMap());
86 104 Page<InventoryDetail> page = new Page<InventoryDetail>(pageNo, pageSize);
87 105 IPage<InventoryDetail> pageList = inventoryDetailService.page(page, queryWrapper);
88 106 inventoryDetailService.calculateInventoryAge(pageList.getRecords());// 计算库龄
... ... @@ -90,14 +108,51 @@ public class InventoryMaterialSummaryController extends JeecgController&lt;Inventor
90 108 }
91 109  
92 110 /**
93   - * 导出excel
  111 + * 库存物料汇总-主表导出Excel
94 112 * @param request
95 113 * @param inventoryMaterialSummary
96 114 */
97 115 @RequestMapping(value = "/exportXls")
98 116 @RequiresPermissions("inventoryMaterialSummary:export")
99   - public ModelAndView exportXls(HttpServletRequest request, InventoryDetail inventoryMaterialSummary) {
100   - return super.exportXls(request, inventoryMaterialSummary, InventoryDetail.class, "物料汇总主表");
  117 + public ModelAndView exportXls(HttpServletRequest request, InventoryDetail inventoryDetail) {
  118 + HuahengJwtUtil.setWarehouseCode(request, inventoryDetail);
  119 + QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, request.getParameterMap());
  120 + queryWrapper.select("zone_code, company_code, material_code, material_name, material_spec, material_spec, material_unit, SUM(qty) as qty");
  121 + queryWrapper.groupBy("zone_code", "company_code", "material_code", "material_name", "material_spec", "material_spec", "material_unit");
  122 + LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
  123 + List<InventoryDetail> pageList = this.service.list(queryWrapper);
  124 + List<InventoryDetail> exportList = null;
  125 + String selections = request.getParameter("selections");
  126 + if (oConvertUtils.isNotEmpty(selections)) {
  127 + List<String> selectionList = Arrays.asList(selections.split(","));
  128 + exportList = pageList.stream().filter((item) -> {
  129 + return selectionList.contains(this.getItemCode(item));
  130 + }).collect(Collectors.toList());
  131 + } else {
  132 + exportList = pageList;
  133 + }
  134 + List<InventoryMaterialSummary> inventoryMaterialSummaryList = CollUtil.newArrayList();
  135 + for (InventoryDetail source : exportList) {
  136 + InventoryMaterialSummary target = new InventoryMaterialSummary();
  137 + BeanUtils.copyProperties(source, target);
  138 + inventoryMaterialSummaryList.add(target);
  139 + }
  140 + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
  141 + mv.addObject("fileName", "库存物料汇总");
  142 + mv.addObject("entity", InventoryMaterialSummary.class);
  143 + ExportParams exportParams = new ExportParams("库存物料汇总" + "报表", "导出人:" + sysUser.getRealname(), "库存物料汇总");
  144 + exportParams.setImageBasePath(this.upLoadPath);
  145 + mv.addObject("params", exportParams);
  146 + mv.addObject("data", inventoryMaterialSummaryList);
  147 + return mv;
  148 + }
  149 +
  150 + private String getItemCode(InventoryDetail item) {
  151 + try {
  152 + return PropertyUtils.getProperty(item, "zoneCode").toString() + "_" + PropertyUtils.getProperty(item, "materialCode").toString();
  153 + } catch (Exception var3) {
  154 + return null;
  155 + }
101 156 }
102 157  
103 158 /**
... ... @@ -111,5 +166,4 @@ public class InventoryMaterialSummaryController extends JeecgController&lt;Inventor
111 166 public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
112 167 return super.importExcel(request, response, InventoryDetail.class);
113 168 }
114   -
115 169 }
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/InventoryMaterialSummary/entity/InventoryMaterialSummary.java 0 → 100644
  1 +package org.jeecg.modules.wms.inventory.InventoryMaterialSummary.entity;
  2 +
  3 +import java.io.Serializable;
  4 +import java.math.BigDecimal;
  5 +import java.util.Date;
  6 +
  7 +import com.fasterxml.jackson.annotation.JsonFormat;
  8 +import org.jeecg.common.aspect.annotation.Dict;
  9 +import org.jeecgframework.poi.excel.annotation.Excel;
  10 +
  11 +import com.baomidou.mybatisplus.annotation.IdType;
  12 +import com.baomidou.mybatisplus.annotation.TableId;
  13 +import com.baomidou.mybatisplus.annotation.TableName;
  14 +
  15 +import io.swagger.annotations.ApiModel;
  16 +import io.swagger.annotations.ApiModelProperty;
  17 +import lombok.Data;
  18 +import org.springframework.format.annotation.DateTimeFormat;
  19 +
  20 +/**
  21 + * @Description: 库存详情
  22 + * @Author: jeecg-boot
  23 + * @Date: 2022-11-16
  24 + * @Version: V1.0
  25 + */
  26 +@Data
  27 +@ApiModel(value = "InventoryMaterialSummary对象", description = "库存物料汇总主表")
  28 +public class InventoryMaterialSummary implements Serializable {
  29 + private static final long serialVersionUID = 1L;
  30 +
  31 + /** 货主 */
  32 + @Excel(name = "货主", width = 15, dictTable = "company", dicText = "name", dicCode = "code")
  33 + @ApiModelProperty(value = "货主")
  34 + private String companyCode;
  35 +
  36 + /** 库区 */
  37 + @Excel(name = "库区", width = 15, dictTable = "zone", dicText = "name", dicCode = "code")
  38 + @ApiModelProperty(value = "库区")
  39 + private String zoneCode;
  40 +
  41 + /** 物料编码 */
  42 + @Excel(name = "物料编码", width = 15)
  43 + @ApiModelProperty(value = "物料编码")
  44 + private String materialCode;
  45 +
  46 + /** 物料名称 */
  47 + @Excel(name = "物料名称", width = 15)
  48 + @ApiModelProperty(value = "物料名称")
  49 + private String materialName;
  50 +
  51 + /** 物料规格 */
  52 + @Excel(name = "物料规格", width = 15)
  53 + @ApiModelProperty(value = "物料规格")
  54 + private String materialSpec;
  55 +
  56 + /** 物料单位 */
  57 + @Excel(name = "物料单位", width = 15)
  58 + @ApiModelProperty(value = "物料单位")
  59 + private String materialUnit;
  60 +
  61 + /** 数量 */
  62 + @Excel(name = "数量", width = 15)
  63 + @ApiModelProperty(value = "数量")
  64 + private java.math.BigDecimal qty;
  65 +}
0 66 \ No newline at end of file
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java
... ... @@ -235,7 +235,7 @@ public class InventoryHeaderController extends JeecgController&lt;InventoryHeader,
235 235 this.inventoryDetailService.removeByIds(Arrays.asList(ids.split(",")));
236 236 return Result.OK("批量删除成功!");
237 237 }
238   -
  238 +
239 239 /**
240 240 * 导出
241 241 * @return
... ... @@ -246,11 +246,9 @@ public class InventoryHeaderController extends JeecgController&lt;InventoryHeader,
246 246 // Step.1 组装查询条件
247 247 QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, request.getParameterMap());
248 248 LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
249   -
250 249 // Step.2 获取导出数据
251 250 List<InventoryDetail> pageList = inventoryDetailService.list(queryWrapper);
252 251 List<InventoryDetail> exportList = null;
253   -
254 252 // 过滤选中数据
255 253 String selections = request.getParameter("selections");
256 254 if (oConvertUtils.isNotEmpty(selections)) {
... ... @@ -259,7 +257,7 @@ public class InventoryHeaderController extends JeecgController&lt;InventoryHeader,
259 257 } else {
260 258 exportList = pageList;
261 259 }
262   -
  260 + inventoryDetailService.calculateInventoryAge(exportList);// 计算库龄
263 261 // Step.3 AutoPoi 导出Excel
264 262 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
265 263 mv.addObject(NormalExcelConstants.FILE_NAME, "库存详情"); // 此处设置的filename无效 ,前端会重更新设置一下
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryHeader.java
... ... @@ -53,9 +53,9 @@ public class InventoryHeader implements Serializable {
53 53 @Dict(dicCode = "container_status")
54 54 @ApiModelProperty(value = "容器状态")
55 55 private String containerStatus;
56   - /** 库位号 */
57   - @Excel(name = "库位号", width = 15)
58   - @ApiModelProperty(value = "库位号")
  56 + /** 库位编码 */
  57 + @Excel(name = "库位编码", width = 15)
  58 + @ApiModelProperty(value = "库位编码")
59 59 private String locationCode;
60 60 /** 状态 */
61 61 @Excel(name = "状态", width = 15, dicCode = "enable_status")
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
... ... @@ -353,11 +353,11 @@ public class ReceiptContainerHeaderController extends JeecgController&lt;ReceiptCon
353 353 String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
354 354 String fromLocationCode = receiptContainerHeader.getFromLocationCode();
355 355 if (StringUtils.isEmpty(fromLocationCode)) {
356   - return Result.error("选择分拣口时, 起始库位为空");
  356 + return Result.error("选择分拣口时, 起始库位编码为空");
357 357 }
358 358 Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
359 359 if (fromLocation == null) {
360   - return Result.error("选择分拣口时, 根据库位" + fromLocationCode + " 没有找到库位");
  360 + return Result.error("选择分拣口时, 根据库位编码" + fromLocationCode + " 没有找到库位");
361 361 }
362 362 String zoneCode = fromLocation.getZoneCode();
363 363 if (StringUtils.isEmpty(zoneCode)) {
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/ShipmentCombinationController.java
... ... @@ -126,11 +126,11 @@ public class ShipmentCombinationController {
126 126 String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
127 127 String fromLocationCode = shipmentContainerHeader.getFromLocationCode();
128 128 if (StringUtils.isEmpty(fromLocationCode)) {
129   - return Result.error("选择分拣口时, 起始库位为空");
  129 + return Result.error("选择分拣口时, 起始库位编码为空");
130 130 }
131 131 Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
132 132 if (fromLocation == null) {
133   - return Result.error("选择分拣口时, 根据库位" + fromLocationCode + " 没有找到库位");
  133 + return Result.error("选择分拣口时, 根据库位编码" + fromLocationCode + " 没有找到库位");
134 134 }
135 135 String zoneCode = fromLocation.getZoneCode();
136 136 if (StringUtils.isEmpty(zoneCode)) {
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java
... ... @@ -469,12 +469,12 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi
469 469 String containerCode = shipmentContainerHeader.getContainerCode();
470 470 String toPort = shipmentContainerHeader.getToPort();
471 471 if (StringUtils.isEmpty(fromLocationCode)) {
472   - return Result.error("生成出库任务时, 出库组盘头没有起始库位");
  472 + return Result.error("生成出库任务时, 出库组盘头没有起始库位编码");
473 473 }
474 474 // 出库时,外侧库位的任务,如果对应的内侧有任务,那么内侧任务执行完成以后,再执行出库任务。
475 475 Location location = locationService.getLocationByCode(fromLocationCode, warehouseCode);
476 476 if (location == null) {
477   - return Result.error("生成出库任务时, 库位" + fromLocationCode + "没有找到库位");
  477 + return Result.error("生成出库任务时, 库位编码" + fromLocationCode + "没有找到库位");
478 478 }
479 479 if (location.getRowFlag() == QuantityConstant.ROW_OUT) {
480 480 Location location1 = locationService.getNear(location);
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/controller/CycleCountDetailController.java
... ... @@ -196,11 +196,11 @@ public class CycleCountDetailController extends HuahengBaseController {
196 196 String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req);
197 197 String fromLocationCode = cycleCountDetail.getLocationCode();
198 198 if (StringUtils.isEmpty(fromLocationCode)) {
199   - return Result.error("选择分拣口时, 起始库位为空");
  199 + return Result.error("选择分拣口时, 起始库位编码为空");
200 200 }
201 201 Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
202 202 if (fromLocation == null) {
203   - return Result.error("选择分拣口时, 根据库位" + fromLocationCode + " 没有找到库位");
  203 + return Result.error("选择分拣口时, 根据库位编码" + fromLocationCode + " 没有找到库位");
204 204 }
205 205 String zoneCode = fromLocation.getZoneCode();
206 206 if (StringUtils.isEmpty(zoneCode)) {
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
... ... @@ -557,11 +557,11 @@ public class TaskHeaderController extends HuahengBaseController {
557 557 }
558 558 String fromLocationCode = container.getLocationCode();
559 559 if (StringUtils.isEmpty(fromLocationCode)) {
560   - return Result.error("选择整出口, 起始库位为空");
  560 + return Result.error("选择整出口, 起始库位编码为空");
561 561 }
562 562 Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
563 563 if (fromLocation == null) {
564   - return Result.error("选择整出口, 根据库位" + fromLocationCode + " 没有找到库位");
  564 + return Result.error("选择整出口, 根据库位编码" + fromLocationCode + " 没有找到库位");
565 565 }
566 566 String zoneCode = fromLocation.getZoneCode();
567 567 if (StringUtils.isEmpty(zoneCode)) {
... ... @@ -598,11 +598,11 @@ public class TaskHeaderController extends HuahengBaseController {
598 598 }
599 599 String fromLocationCode = container.getLocationCode();
600 600 if (StringUtils.isEmpty(fromLocationCode)) {
601   - return Result.error("选择分拣口, 起始库位为空");
  601 + return Result.error("选择分拣口, 起始库位编码为空");
602 602 }
603 603 Location fromLocation = locationService.getLocationByCode(fromLocationCode, warehouseCode);
604 604 if (fromLocation == null) {
605   - return Result.error("选择分拣口, 根据库位" + fromLocationCode + " 没有找到库位");
  605 + return Result.error("选择分拣口, 根据库位编码" + fromLocationCode + " 没有找到库位");
606 606 }
607 607 String zoneCode = fromLocation.getZoneCode();
608 608 if (StringUtils.isEmpty(zoneCode)) {
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
... ... @@ -97,9 +97,9 @@ public class TaskHeader implements Serializable {
97 97 @Dict(dicCode = "is_or_not")
98 98 @ApiModelProperty(value = "取货错")
99 99 private Integer isPickupError;
100   - /** 重入库位号 */
101   - @Excel(name = "重入库位号", width = 15)
102   - @ApiModelProperty(value = "重入库位号")
  100 + /** 重入库位编码 */
  101 + @Excel(name = "重入库位编码", width = 15)
  102 + @ApiModelProperty(value = "重入库位编码")
103 103 private String originLocationCode;
104 104 /** 任务状态 */
105 105 @Excel(name = "任务状态", width = 15, dicCode = "task_header_status")
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
... ... @@ -42,7 +42,7 @@ public interface ITaskHeaderService extends IService&lt;TaskHeader&gt; {
42 42 TaskHeader getTaskHeaderByAgvTaskId(int agvTaskId);
43 43  
44 44 /**
45   - * 通过起始库位,获取任务信息
  45 + * 通过起始库位编码,获取任务信息
46 46 * @param fromLocationCode
47 47 * @param warehouseCode
48 48 * @return
... ... @@ -50,7 +50,7 @@ public interface ITaskHeaderService extends IService&lt;TaskHeader&gt; {
50 50 TaskHeader getUnCompleteTaskByFromLocationCode(String fromLocationCode, String warehouseCode);
51 51  
52 52 /**
53   - * 通过目标库位,获取任务信息
  53 + * 通过目标库位编码,获取任务信息
54 54 * @param toLocationCode
55 55 * @param warehouseCode
56 56 * @return
... ... @@ -58,7 +58,7 @@ public interface ITaskHeaderService extends IService&lt;TaskHeader&gt; {
58 58 TaskHeader getUnCompleteTaskByToLocationCode(String toLocationCode, String warehouseCode);
59 59  
60 60 /**
61   - * 通过库位,获取任务信息
  61 + * 通过库位编码,获取任务信息
62 62 * @param locationCode
63 63 * @param warehouseCode
64 64 * @return
... ...
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
... ... @@ -356,7 +356,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
356 356 @Override
357 357 @Transactional(rollbackFor = Exception.class)
358 358 public Result createOverStationTask(String containerCode, String fromPortCode, String toPortCode, String warehouseCode) {
359   - log.info("开始创建跨站任务,容器" + containerCode + ",起始站台号" + fromPortCode + ",目标站台号" + toPortCode);
  359 + log.info("开始创建跨站任务,容器编码" + containerCode + ",起始站台号" + fromPortCode + ",目标站台号" + toPortCode);
360 360 if (StringUtils.isEmpty(containerCode)) {
361 361 return Result.error("创建跨站任务时,容器编码为空");
362 362 }
... ... @@ -394,7 +394,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
394 394 if (!success) {
395 395 return Result.error("创建跨站任务时, 创建任务失败");
396 396 }
397   - log.info("完成创建跨站任务,容器" + containerCode + ",起始站台号" + fromPortCode + ",目标站台号" + toPortCode);
  397 + log.info("完成创建跨站任务,容器编码" + containerCode + ",起始站台号" + fromPortCode + ",目标站台号" + toPortCode);
398 398 return Result.ok("创建跨站任务成功");
399 399 }
400 400  
... ... @@ -567,7 +567,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
567 567 String containerCode = taskHeader.getContainerCode();
568 568 String fromLocationCode = taskHeader.getFromLocationCode();
569 569 String warehouseCode = taskHeader.getWarehouseCode();
570   - // 4、容器编码、库位、仓库编码 不能为空
  570 + // 4、容器编码、库位编码、仓库编码 不能为空
571 571 if (StringUtils.isEmpty(containerCode)) {
572 572 return Result.error("处理空出失败,容器编码为空");
573 573 }
... ... @@ -585,7 +585,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
585 585 if (fronLocation == null) {
586 586 return Result.error("处理空出失败,没有找到库位");
587 587 }
588   - // 5、删除容器上的库位,并设置状态为空闲,填充度状态为空盘
  588 + // 5、删除容器上的库位编码,并设置状态为空闲,填充度状态为空盘
589 589 boolean success = containerService.updateLocationCodeAndStatus(containerCode, QuantityConstant.EMPTY_STRING, QuantityConstant.STATUS_CONTAINER_EMPTY,
590 590 QuantityConstant.STATUS_CONTAINER_FILL_EMPTY, warehouseCode);
591 591 if (!success) {
... ... @@ -645,7 +645,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
645 645 String containerCode = taskHeader.getContainerCode();
646 646 String originLocationCode = taskHeader.getOriginLocationCode();
647 647 String warehouseCode = taskHeader.getWarehouseCode();
648   - // 4、容器编码、库位、仓库编码 不能为空
  648 + // 4、容器编码、库位编码、仓库编码 不能为空
649 649 if (StringUtils.isEmpty(containerCode)) {
650 650 return Result.error("处理重入失败,容器编码为空");
651 651 }
... ... @@ -891,7 +891,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
891 891  
892 892 /**
893 893 * 创建空托盘入库
894   - * 1. 判断托盘号、库位是否满足要求
  894 + * 1. 判断托盘号、库位编码是否满足要求
895 895 * 2. 创建任务,锁定容器、库位
896 896 * @param containerCode
897 897 * @param toLocationCode
... ... @@ -1661,7 +1661,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1661 1661 Result result = null;
1662 1662 boolean success = false;
1663 1663 if (StringUtils.isEmpty(containerCode)) {
1664   - return Result.error("任务类型" + taskType + "完成任务时, 容器为空");
  1664 + return Result.error("任务类型" + taskType + "完成任务时, 容器编码为空");
1665 1665 }
1666 1666 Container container = containerService.getContainerByCode(containerCode, warehouseCode);
1667 1667 if (container == null) {
... ... @@ -1671,21 +1671,21 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1671 1671 case QuantityConstant.TASK_TYPE_WHOLERECEIPT:
1672 1672 case QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT:
1673 1673 if (StringUtils.isEmpty(toLocationCode)) {
1674   - return Result.error("任务类型" + taskType + "完成任务时, 目标库位为空");
  1674 + return Result.error("任务类型" + taskType + "完成任务时, 目标库位编码为空");
1675 1675 }
1676 1676 success = containerService.updateLocationCodeAndStatus(containerCode, toLocationCode, QuantityConstant.STATUS_CONTAINER_EMPTY, containerFillStatus,
1677 1677 warehouseCode);
1678 1678 break;
1679 1679 case QuantityConstant.TASK_TYPE_EMPTYRECEIPT:
1680 1680 if (StringUtils.isEmpty(toLocationCode)) {
1681   - return Result.error("任务类型" + taskType + "完成任务时, 目标库位为空");
  1681 + return Result.error("任务类型" + taskType + "完成任务时, 目标库位编码为空");
1682 1682 }
1683 1683 success = containerService.updateLocationCodeAndStatus(containerCode, toLocationCode, QuantityConstant.STATUS_CONTAINER_EMPTY,
1684 1684 QuantityConstant.STATUS_CONTAINER_FILL_EMPTY, warehouseCode);
1685 1685 break;
1686 1686 case QuantityConstant.TASK_TYPE_MANY_EMPTYRECEIPT:
1687 1687 if (StringUtils.isEmpty(toLocationCode)) {
1688   - return Result.error("任务类型" + taskType + "完成任务时, 目标库位为空");
  1688 + return Result.error("任务类型" + taskType + "完成任务时, 目标库位编码为空");
1689 1689 }
1690 1690 success = containerService.updateLocationCodeAndStatus(containerCode, toLocationCode, QuantityConstant.STATUS_CONTAINER_EMPTY,
1691 1691 QuantityConstant.STATUS_CONTAINER_FILL_MANY, warehouseCode);
... ... @@ -1694,7 +1694,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1694 1694 case QuantityConstant.TASK_TYPE_EMPTYSHIPMENT:
1695 1695 case QuantityConstant.TASK_TYPE_MANY_EMPTYSHIPMENT:
1696 1696 if (StringUtils.isEmpty(fromLocationCode)) {
1697   - return Result.error("任务类型" + taskType + "完成任务时, 起始库位为空");
  1697 + return Result.error("任务类型" + taskType + "完成任务时, 起始库位编码为空");
1698 1698 }
1699 1699 success = containerService.updateLocationCodeAndStatus(containerCode, toLocationCode, QuantityConstant.STATUS_CONTAINER_EMPTY,
1700 1700 QuantityConstant.STATUS_CONTAINER_FILL_EMPTY, warehouseCode);
... ... @@ -1704,10 +1704,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1704 1704 case QuantityConstant.TASK_TYPE_TRANSFER:
1705 1705 case QuantityConstant.TASK_TYPE_CHECK_OUT:
1706 1706 if (StringUtils.isEmpty(fromLocationCode)) {
1707   - return Result.error("任务类型" + taskType + "完成任务时, 起始库位为空");
  1707 + return Result.error("任务类型" + taskType + "完成任务时, 起始库位编码为空");
1708 1708 }
1709 1709 if (StringUtils.isEmpty(toLocationCode)) {
1710   - return Result.error("任务类型" + taskType + "完成任务时, 目标库位为空");
  1710 + return Result.error("任务类型" + taskType + "完成任务时, 目标库位编码为空");
1711 1711 }
1712 1712 InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode);
1713 1713 if (inventoryHeader != null) {
... ... @@ -1777,7 +1777,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1777 1777 return Result.error("完成空托盘入库任务时, 仓库编码为空");
1778 1778 }
1779 1779 if (StringUtils.isEmpty(toLocationCode)) {
1780   - return Result.error("完成空托盘入库任务时, 目标库位为空");
  1780 + return Result.error("完成空托盘入库任务时, 目标库位编码为空");
1781 1781 }
1782 1782 Result result = taskHeaderService.completeTaskUnLockContainerAndLocation(taskHeader.getContainerFillStatus(), QuantityConstant.TASK_TYPE_EMPTYRECEIPT,
1783 1783 containerCode, QuantityConstant.EMPTY_STRING, toLocationCode, warehouseCode);
... ... @@ -1812,10 +1812,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
1812 1812 String toLocationCode = taskHeader.getToLocationCode();
1813 1813 boolean success = false;
1814 1814 if (StringUtils.isEmpty(fromLocationCode)) {
1815   - return Result.error("完成盘点任务时,起始库位为空");
  1815 + return Result.error("完成盘点任务时,起始库位编码为空");
1816 1816 }
1817 1817 if (StringUtils.isEmpty(toLocationCode)) {
1818   - return Result.error("完成盘点任务时,目标库位为空");
  1818 + return Result.error("完成盘点任务时,目标库位编码为空");
1819 1819 }
1820 1820 if (StringUtils.isEmpty(containerCode)) {
1821 1821 return Result.error("完成盘点任务时,托盘号为空");
... ... @@ -2085,7 +2085,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2085 2085 return Result.error("完成空托盘出库任务时, 仓库编码为空");
2086 2086 }
2087 2087 if (StringUtils.isEmpty(fromLocationCode)) {
2088   - return Result.error("完成空托盘出库任务时, 起始库位为空");
  2088 + return Result.error("完成空托盘出库任务时, 起始库位编码为空");
2089 2089 }
2090 2090 if (StringUtils.isEmpty(toPortCode)) {
2091 2091 return Result.error("完成空托盘出库任务时, 目标出入口号为空");
... ... @@ -2136,10 +2136,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2136 2136 return Result.error("完成移库任务时, 仓库编码为空");
2137 2137 }
2138 2138 if (StringUtils.isEmpty(fromLocationCode)) {
2139   - return Result.error("完成移库任务时, 起始库位为空");
  2139 + return Result.error("完成移库任务时, 起始库位编码为空");
2140 2140 }
2141 2141 if (StringUtils.isEmpty(toLocationCode)) {
2142   - return Result.error("完成移库任务时, 目标库位为空");
  2142 + return Result.error("完成移库任务时, 目标库位编码为空");
2143 2143 }
2144 2144  
2145 2145 List<InventoryTransaction> inventoryTransactionList = new ArrayList<>();
... ... @@ -2226,13 +2226,13 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2226 2226 return Result.error("完成出库查看任务时, 仓库编码为空");
2227 2227 }
2228 2228 if (StringUtils.isEmpty(fromLocationCode)) {
2229   - return Result.error("完成出库查看任务时, 起始库位为空");
  2229 + return Result.error("完成出库查看任务时, 起始库位编码为空");
2230 2230 }
2231 2231 if (StringUtils.isEmpty(toPortCode)) {
2232 2232 return Result.error("完成出库查看任务时, 目标出入口号为空");
2233 2233 }
2234 2234 if (StringUtils.isEmpty(toLocationCode)) {
2235   - return Result.error("完成出库查看任务时, 目标库位为空");
  2235 + return Result.error("完成出库查看任务时, 目标库位编码为空");
2236 2236 }
2237 2237  
2238 2238 boolean success = false;
... ... @@ -2354,7 +2354,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2354 2354 return Result.error("完成空托盘组入库任务时, 仓库编码为空");
2355 2355 }
2356 2356 if (StringUtils.isEmpty(toLocationCode)) {
2357   - return Result.error("完成空托盘组入库任务时, 目标库位为空");
  2357 + return Result.error("完成空托盘组入库任务时, 目标库位编码为空");
2358 2358 }
2359 2359 Container container = containerService.getContainerByCode(containerCode, warehouseCode);
2360 2360 if (container == null) {
... ...