Commit a35b246f659ac8e6d464d52d1e1acdb506fb0b38
Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4.git into develop
Showing
19 changed files
with
343 additions
and
368 deletions
ant-design-vue-jeecg/src/views/system/inventory/InventoryChildList.vue
1 | <template> | 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-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> | ||
19 | - </a-form-item> | ||
20 | - </a-col> | ||
21 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
22 | - <a-form-item label="库区"> | ||
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 placeholder="请选择库存状态" v-model="queryParam.inventoryStatus" dictCode="inventory_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 | - <a-input placeholder="请输入物料编码" v-model="queryParam.materialCode"></a-input> | ||
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.materialName"></a-input> | ||
57 | - </a-form-item> | ||
58 | - </a-col> | ||
59 | - <template v-if="toggleSearchStatus"> | ||
60 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
61 | - <a-form-item label="物料规格"> | ||
62 | - <a-input placeholder="请输入物料规格" v-model="queryParam.materialSpec"></a-input> | ||
63 | - </a-form-item> | ||
64 | - </a-col> | ||
65 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
66 | - <a-form-item label="物料单位"> | ||
67 | - <a-input placeholder="请输入物料单位" v-model="queryParam.materialUnit"></a-input> | ||
68 | - </a-form-item> | ||
69 | - </a-col> | ||
70 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
71 | - <a-form-item label="容器状态"> | ||
72 | - <j-dict-select-tag placeholder="请选择容器状态" v-model="queryParam.containerStatus" dictCode="container_status"/> | ||
73 | - </a-form-item> | ||
74 | - </a-col> | ||
75 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
76 | - <a-form-item label="库龄(天)"> | ||
77 | - <a-input placeholder="请输入库龄(天)" v-model="queryParam.inventoryAge"></a-input> | ||
78 | - </a-form-item> | ||
79 | - </a-col> | ||
80 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
81 | - <a-form-item label="唯一号"> | ||
82 | - <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input> | ||
83 | - </a-form-item> | ||
84 | - </a-col> | ||
85 | - <a-col :xl="10" :lg="11" :md="12" :sm="24"> | ||
86 | - <a-form-item label="创建日期"> | ||
87 | - <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> | ||
88 | - <span class="query-group-split-cust"></span> | ||
89 | - <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> | ||
90 | - </a-form-item> | ||
91 | - </a-col> | ||
92 | - </template> | ||
93 | - <a-col :xl="6" :lg="7" :md="8" :sm="24"> | ||
94 | - <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> | ||
95 | - <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> | ||
96 | - <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> | ||
97 | - <a @click="handleToggleSearch" style="margin-left: 8px"> | ||
98 | - {{ toggleSearchStatus ? '收起' : '展开' }} | ||
99 | - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> | ||
100 | - </a> | ||
101 | - </span> | ||
102 | - </a-col> | ||
103 | - </a-row> | ||
104 | - </a-form> | ||
105 | - </div> | ||
106 | - <!-- 查询区域-END --> | ||
107 | - | 2 | + <a-card :bordered="false" :class="'cust-erp-sub-tab'"> |
108 | <!-- 操作按钮区域 --> | 3 | <!-- 操作按钮区域 --> |
109 | - <div class="table-operator"> | ||
110 | - <a-button v-has="'inventoryChild:superSearch'" @click="handleAdd" type="primary" icon="plus">新增</a-button> | ||
111 | - <a-button v-has="'inventoryChild:export'" type="primary" icon="download" @click="handleExportXls('库存明细')">导出</a-button> | ||
112 | - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> | ||
113 | - <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> | ||
114 | </a-upload> | 21 | </a-upload> |
115 | <a-dropdown v-if="selectedRowKeys.length > 0"> | 22 | <a-dropdown v-if="selectedRowKeys.length > 0"> |
116 | - <a-menu slot="overlay"> | ||
117 | - <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> | ||
118 | </a-menu> | 28 | </a-menu> |
119 | - <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> | ||
120 | </a-dropdown> | 33 | </a-dropdown> |
121 | </div> | 34 | </div> |
122 | 35 | ||
123 | <!-- table区域-begin --> | 36 | <!-- table区域-begin --> |
124 | <div> | 37 | <div> |
125 | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> | 38 | <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> |
126 | - <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> 项 | ||
127 | <a style="margin-left: 24px" @click="onClearSelected">清空</a> | 41 | <a style="margin-left: 24px" @click="onClearSelected">清空</a> |
128 | </div> | 42 | </div> |
129 | 43 | ||
130 | <a-table | 44 | <a-table |
131 | ref="table" | 45 | ref="table" |
132 | size="middle" | 46 | size="middle" |
133 | - :scroll="{x:true}" | ||
134 | bordered | 47 | bordered |
135 | rowKey="id" | 48 | rowKey="id" |
49 | + :scroll="{ x: true }" | ||
136 | :columns="columns" | 50 | :columns="columns" |
137 | :dataSource="dataSource" | 51 | :dataSource="dataSource" |
138 | :pagination="ipagination" | 52 | :pagination="ipagination" |
139 | :loading="loading" | 53 | :loading="loading" |
140 | - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | ||
141 | - class="j-table-force-nowrap" | ||
142 | - @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> | ||
143 | 62 | ||
144 | <span slot="companyCode" slot-scope="companyCode"> | 63 | <span slot="companyCode" slot-scope="companyCode"> |
145 | <a-tag :key="companyCode" color="blue"> | 64 | <a-tag :key="companyCode" color="blue"> |
@@ -147,197 +66,248 @@ | @@ -147,197 +66,248 @@ | ||
147 | </a-tag> | 66 | </a-tag> |
148 | </span> | 67 | </span> |
149 | 68 | ||
150 | - <span slot="zoneCode" slot-scope="zoneCode"> | ||
151 | - <a-tag :key="zoneCode" color=blue> | ||
152 | - {{ solutionZoneCode(zoneCode) }} | ||
153 | - </a-tag> | ||
154 | - </span> | ||
155 | - | ||
156 | <template slot="htmlSlot" slot-scope="text"> | 69 | <template slot="htmlSlot" slot-scope="text"> |
157 | <div v-html="text"></div> | 70 | <div v-html="text"></div> |
158 | </template> | 71 | </template> |
159 | <template slot="imgSlot" slot-scope="text"> | 72 | <template slot="imgSlot" slot-scope="text"> |
160 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | 73 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> |
161 | - <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 | + /> | ||
162 | </template> | 81 | </template> |
163 | <template slot="fileSlot" slot-scope="text"> | 82 | <template slot="fileSlot" slot-scope="text"> |
164 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | 83 | <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> |
165 | - <a-button | ||
166 | - v-else | ||
167 | - :ghost="true" | ||
168 | - type="primary" | ||
169 | - icon="download" | ||
170 | - size="small" | ||
171 | - @click="downloadFile(text)"> | 84 | + <a-button v-else :ghost="true" type="primary" icon="download" size="small" @click="downloadFile(text)"> |
172 | 下载 | 85 | 下载 |
173 | </a-button> | 86 | </a-button> |
174 | </template> | 87 | </template> |
88 | + | ||
175 | <span slot="action" slot-scope="text, record"> | 89 | <span slot="action" slot-scope="text, record"> |
176 | - <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> | ||
177 | </span> | 94 | </span> |
178 | </a-table> | 95 | </a-table> |
179 | </div> | 96 | </div> |
180 | 97 | ||
181 | - <inventory-child-modal ref="modalForm" @ok="modalFormOk"></inventory-child-modal> | 98 | + <inventoryDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></inventoryDetail-modal> |
182 | </a-card> | 99 | </a-card> |
183 | </template> | 100 | </template> |
184 | 101 | ||
185 | <script> | 102 | <script> |
186 | - | ||
187 | -import '@/assets/less/TableExpand.less' | ||
188 | -import { mixinDevice } from '@/utils/mixin' | ||
189 | -import { JeecgListMixin } from '@/mixins/JeecgListMixin' | ||
190 | -import InventoryChildModal from './modules/InventoryChildModal' | ||
191 | -import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' | ||
192 | - | ||
193 | -import {getCompanyList, getZoneList} from "@api/api"; | 103 | +import {JeecgListMixin} from '@/mixins/JeecgListMixin' |
104 | +import InventoryDetailModal from './modules/InventoryDetailModal' | ||
105 | +import {getCompanyList, getZoneList} from '@/api/api' | ||
194 | 106 | ||
195 | export default { | 107 | export default { |
196 | - name: 'InventoryChildList', | ||
197 | - mixins:[JeecgListMixin, mixinDevice], | ||
198 | - components: { | ||
199 | - InventoryChildModal | 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 | + } | ||
200 | }, | 130 | }, |
201 | - data () { | 131 | + data() { |
202 | return { | 132 | return { |
203 | - zoneList: [], | 133 | + description: '库存表管理页面', |
134 | + disableMixinCreated: true, | ||
204 | companyList: [], | 135 | companyList: [], |
205 | - description: '库存明细管理页面', | ||
206 | // 表头 | 136 | // 表头 |
207 | columns: [ | 137 | columns: [ |
208 | { | 138 | { |
209 | - title: '#', | ||
210 | - dataIndex: '', | ||
211 | - key:'rowIndex', | ||
212 | - width:60, | ||
213 | - align:"center", | ||
214 | - customRender:function (t,r,index) { | ||
215 | - return parseInt(index)+1; | ||
216 | - } | ||
217 | - }, | ||
218 | - { | ||
219 | - title:'货主', | ||
220 | - align:"center", | ||
221 | - dataIndex: 'companyCode' | ||
222 | - }, | ||
223 | - { | ||
224 | - title:'库区', | ||
225 | - align:"center", | ||
226 | - dataIndex: 'zoneCode' | 139 | + title: '库存详情ID', |
140 | + align: 'center', | ||
141 | + dataIndex: 'id' | ||
227 | }, | 142 | }, |
228 | { | 143 | { |
229 | - title:'容器状态', | ||
230 | - align:"center", | ||
231 | - dataIndex: 'containerStatus_dictText' | 144 | + title: '货主', |
145 | + align: 'center', | ||
146 | + dataIndex: 'companyCode', | ||
147 | + key: 'companyCode', | ||
148 | + scopedSlots: {customRender: 'companyCode'} | ||
232 | }, | 149 | }, |
150 | + // { | ||
151 | + // title: '库区', | ||
152 | + // align: "center", | ||
153 | + // dataIndex: 'zoneCode' | ||
154 | + // }, | ||
233 | { | 155 | { |
234 | - title:'容器编码', | ||
235 | - align:"center", | 156 | + title: '容器编码', |
157 | + align: 'center', | ||
236 | dataIndex: 'containerCode' | 158 | dataIndex: 'containerCode' |
237 | }, | 159 | }, |
238 | { | 160 | { |
239 | - title:'库位编码', | ||
240 | - align:"center", | 161 | + title: '库位编码', |
162 | + align: 'center', | ||
241 | dataIndex: 'locationCode' | 163 | dataIndex: 'locationCode' |
242 | }, | 164 | }, |
243 | { | 165 | { |
244 | - title:'物料编码', | ||
245 | - align:"center", | 166 | + title: '物料编码', |
167 | + align: 'center', | ||
246 | dataIndex: 'materialCode' | 168 | dataIndex: 'materialCode' |
247 | }, | 169 | }, |
248 | { | 170 | { |
249 | - title:'物料名称', | ||
250 | - align:"center", | 171 | + title: '物料名称', |
172 | + align: 'center', | ||
251 | dataIndex: 'materialName' | 173 | dataIndex: 'materialName' |
252 | }, | 174 | }, |
253 | { | 175 | { |
254 | - title:'物料规格', | ||
255 | - align:"center", | 176 | + title: '物料规格', |
177 | + align: 'center', | ||
256 | dataIndex: 'materialSpec' | 178 | dataIndex: 'materialSpec' |
257 | }, | 179 | }, |
258 | { | 180 | { |
259 | - title:'物料单位', | ||
260 | - align:"center", | 181 | + title: '物料单位', |
182 | + align: 'center', | ||
261 | dataIndex: 'materialUnit' | 183 | dataIndex: 'materialUnit' |
262 | }, | 184 | }, |
263 | { | 185 | { |
264 | - title:'库存状态', | ||
265 | - align:"center", | ||
266 | - dataIndex: 'inventoryStatus_dictText' | 186 | + title: '数量', |
187 | + align: 'center', | ||
188 | + dataIndex: 'qty' | ||
267 | }, | 189 | }, |
268 | { | 190 | { |
269 | - title:'库龄(天)', | ||
270 | - align:"center", | ||
271 | - dataIndex: 'inventoryAge' | 191 | + title: '任务锁定数量', |
192 | + align: 'center', | ||
193 | + dataIndex: 'taskQty' | ||
272 | }, | 194 | }, |
273 | { | 195 | { |
274 | - title:'唯一号', | ||
275 | - align:"center", | ||
276 | - dataIndex: 'uniqueCode' | 196 | + title: '托盘填充度', |
197 | + align: 'center', | ||
198 | + dataIndex: 'fillDensity', | ||
199 | + customRender: text => { | ||
200 | + return text == null ? '' : text + '%' | ||
201 | + } | ||
277 | }, | 202 | }, |
278 | { | 203 | { |
279 | - title:'创建人', | ||
280 | - align:"center", | 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', | ||
281 | dataIndex: 'createBy' | 232 | dataIndex: 'createBy' |
282 | }, | 233 | }, |
283 | { | 234 | { |
284 | - title:'创建日期', | ||
285 | - align:"center", | 235 | + title: '创建日期', |
236 | + align: 'center', | ||
286 | dataIndex: 'createTime' | 237 | dataIndex: 'createTime' |
287 | }, | 238 | }, |
288 | { | 239 | { |
289 | - title:'更新人', | ||
290 | - align:"center", | 240 | + title: '更新人', |
241 | + align: 'center', | ||
291 | dataIndex: 'updateBy' | 242 | dataIndex: 'updateBy' |
292 | }, | 243 | }, |
293 | { | 244 | { |
294 | - title:'更新日期', | ||
295 | - align:"center", | 245 | + title: '更新日期', |
246 | + align: 'center', | ||
296 | dataIndex: 'updateTime' | 247 | dataIndex: 'updateTime' |
297 | }, | 248 | }, |
298 | { | 249 | { |
299 | title: '操作', | 250 | title: '操作', |
300 | dataIndex: 'action', | 251 | dataIndex: 'action', |
301 | - align:"center", | ||
302 | - fixed:"right", | ||
303 | - width:147, | ||
304 | - scopedSlots: { customRender: 'action' } | 252 | + align: 'center', |
253 | + fixed: 'right', | ||
254 | + width: 147, | ||
255 | + scopedSlots: {customRender: 'action'} | ||
305 | } | 256 | } |
306 | ], | 257 | ], |
307 | url: { | 258 | url: { |
308 | - list: "/inventory/inventoryChild/list", | ||
309 | - delete: "/inventory/inventoryChild/delete", | ||
310 | - deleteBatch: "/inventory/inventoryChild/deleteBatch", | ||
311 | - exportXlsUrl: "/inventory/inventoryChild/exportXls", | ||
312 | - importExcelUrl: "inventory/inventoryChild/importExcel", | ||
313 | - | 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' | ||
314 | }, | 264 | }, |
315 | - dictOptions:{}, | ||
316 | - superFieldList:[], | 265 | + dictOptions: { |
266 | + containerStatus: [] | ||
267 | + } | ||
317 | } | 268 | } |
318 | }, | 269 | }, |
319 | created() { | 270 | created() { |
320 | - this.getSuperFieldList(); | ||
321 | - this.loadFrom(); | 271 | + this.loadFrom() |
322 | }, | 272 | }, |
323 | computed: { | 273 | computed: { |
324 | - importExcelUrl: function(){ | ||
325 | - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; | ||
326 | - }, | 274 | + importExcelUrl() { |
275 | + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}` | ||
276 | + } | ||
327 | }, | 277 | }, |
328 | methods: { | 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; | ||
288 | + }, | ||
329 | loadFrom() { | 289 | loadFrom() { |
330 | - getZoneList().then((res) => { | ||
331 | - if (res.success) { | ||
332 | - this.zoneList = res.result | ||
333 | - } | ||
334 | - }); | 290 | + // getZoneList().then((res) => { |
291 | + // if (res.success) { | ||
292 | + // this.zoneList = res.result | ||
293 | + // } | ||
294 | + // }); | ||
335 | getCompanyList().then(res => { | 295 | getCompanyList().then(res => { |
336 | if (res.success) { | 296 | if (res.success) { |
337 | this.companyList = res.result | 297 | this.companyList = res.result |
338 | } | 298 | } |
339 | }) | 299 | }) |
340 | }, | 300 | }, |
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 | + // }, | ||
341 | solutionCompany(value) { | 311 | solutionCompany(value) { |
342 | var actions = [] | 312 | var actions = [] |
343 | Object.keys(this.companyList).some(key => { | 313 | Object.keys(this.companyList).some(key => { |
@@ -348,41 +318,14 @@ export default { | @@ -348,41 +318,14 @@ export default { | ||
348 | }) | 318 | }) |
349 | return actions.join('') | 319 | return actions.join('') |
350 | }, | 320 | }, |
351 | - solutionZoneCode(value) { | ||
352 | - var actions = [] | ||
353 | - Object.keys(this.zoneList).some((key) => { | ||
354 | - if (this.zoneList[key].code == ('' + value)) { | ||
355 | - actions.push(this.zoneList[key].name) | ||
356 | - return true | ||
357 | - } | ||
358 | - }) | ||
359 | - return actions.join('') | ||
360 | - }, | ||
361 | - initDictConfig(){ | ||
362 | - }, | ||
363 | - getSuperFieldList(){ | ||
364 | - let fieldList=[]; | ||
365 | - fieldList.push({type:'string',value:'companyCode',text:'货主',dictCode:''}) | ||
366 | - fieldList.push({type:'string',value:'zoneCode',text:'库区',dictCode:''}) | ||
367 | - fieldList.push({type:'string',value:'containerStatus',text:'容器状态',dictCode:'container_status'}) | ||
368 | - fieldList.push({type:'string',value:'containerCode',text:'容器编码',dictCode:''}) | ||
369 | - fieldList.push({type:'string',value:'locationCode',text:'库位编码',dictCode:''}) | ||
370 | - fieldList.push({type:'string',value:'materialCode',text:'物料编码',dictCode:''}) | ||
371 | - fieldList.push({type:'string',value:'materialName',text:'物料名称',dictCode:''}) | ||
372 | - fieldList.push({type:'string',value:'materialSpec',text:'物料规格',dictCode:''}) | ||
373 | - fieldList.push({type:'string',value:'materialUnit',text:'物料单位',dictCode:''}) | ||
374 | - fieldList.push({type:'string',value:'inventoryStatus',text:'库存状态',dictCode:'inventory_status'}) | ||
375 | - fieldList.push({type:'int',value:'inventoryAge',text:'库龄(天)',dictCode:''}) | ||
376 | - fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''}) | ||
377 | - fieldList.push({type:'string',value:'createBy',text:'创建人',dictCode:''}) | ||
378 | - fieldList.push({type:'datetime',value:'createTime',text:'创建日期'}) | ||
379 | - fieldList.push({type:'string',value:'updateBy',text:'更新人',dictCode:''}) | ||
380 | - fieldList.push({type:'datetime',value:'updateTime',text:'更新日期'}) | ||
381 | - this.superFieldList = fieldList | 321 | + clearList() { |
322 | + this.dataSource = [] | ||
323 | + this.selectedRowKeys = [] | ||
324 | + this.ipagination.current = 1 | ||
382 | } | 325 | } |
383 | } | 326 | } |
384 | } | 327 | } |
385 | </script> | 328 | </script> |
386 | <style scoped> | 329 | <style scoped> |
387 | - @import '~@assets/less/common.less'; | 330 | +@import '~@assets/less/common.less'; |
388 | </style> | 331 | </style> |
389 | \ No newline at end of file | 332 | \ No newline at end of file |
ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue
@@ -189,9 +189,9 @@ export default { | @@ -189,9 +189,9 @@ export default { | ||
189 | dataIndex: 'batch' | 189 | dataIndex: 'batch' |
190 | }, | 190 | }, |
191 | // { | 191 | // { |
192 | - // title: '唯一号', | 192 | + // title: '序列号', |
193 | // align: "center", | 193 | // align: "center", |
194 | - // dataIndex: 'uniqueCode' | 194 | + // dataIndex: 'sn' |
195 | // }, | 195 | // }, |
196 | { | 196 | { |
197 | title: '入库日期', | 197 | title: '入库日期', |
ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue
@@ -77,8 +77,8 @@ | @@ -77,8 +77,8 @@ | ||
77 | </a-form-item> | 77 | </a-form-item> |
78 | </a-col> | 78 | </a-col> |
79 | <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24"> | 79 | <!-- <a-col :xl="6" :lg="7" :md="8" :sm="24"> |
80 | - <a-form-item label="唯一号"> | ||
81 | - <a-input placeholder="请输入唯一号" v-model="queryParam.uniqueCode"></a-input> | 80 | + <a-form-item label="序列号"> |
81 | + <a-input placeholder="请输入序列号" v-model="queryParam.sn"></a-input> | ||
82 | </a-form-item> | 82 | </a-form-item> |
83 | </a-col> --> | 83 | </a-col> --> |
84 | <a-col :xl="12" :lg="14" :md="16" :sm="24"> | 84 | <a-col :xl="12" :lg="14" :md="16" :sm="24"> |
@@ -320,9 +320,9 @@ export default { | @@ -320,9 +320,9 @@ export default { | ||
320 | dataIndex: 'batch' | 320 | dataIndex: 'batch' |
321 | }, | 321 | }, |
322 | // { | 322 | // { |
323 | - // title:'唯一号', | 323 | + // title:'序列号', |
324 | // align:"center", | 324 | // align:"center", |
325 | - // dataIndex: 'uniqueCode' | 325 | + // dataIndex: 'sn' |
326 | // }, | 326 | // }, |
327 | { | 327 | { |
328 | title: '入库日期', | 328 | title: '入库日期', |
@@ -443,7 +443,7 @@ export default { | @@ -443,7 +443,7 @@ export default { | ||
443 | fieldList.push({type: 'BigDecimal', value: 'taskQty', text: '任务锁定数量', dictCode: ''}) | 443 | fieldList.push({type: 'BigDecimal', value: 'taskQty', text: '任务锁定数量', dictCode: ''}) |
444 | fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status'}) | 444 | fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status'}) |
445 | fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''}) | 445 | fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''}) |
446 | - // fieldList.push({type:'string',value:'uniqueCode',text:'唯一号',dictCode:''}) | 446 | + // fieldList.push({type:'string',value:'sn',text:'序列号',dictCode:''}) |
447 | fieldList.push({type: 'datetime', value: 'receiptDate', text: '入库日期'}) | 447 | fieldList.push({type: 'datetime', value: 'receiptDate', text: '入库日期'}) |
448 | fieldList.push({type: 'int', value: 'inventoryAge', text: '库龄(天)', dictCode: ''}) | 448 | fieldList.push({type: 'int', value: 'inventoryAge', text: '库龄(天)', dictCode: ''}) |
449 | fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''}) | 449 | fieldList.push({type: 'string', value: 'createBy', text: '创建人', dictCode: ''}) |
ant-design-vue-jeecg/src/views/system/inventory/modules/InventoryChildForm.vue
@@ -59,8 +59,8 @@ | @@ -59,8 +59,8 @@ | ||
59 | </a-form-model-item> | 59 | </a-form-model-item> |
60 | </a-col> | 60 | </a-col> |
61 | <a-col :span="24"> | 61 | <a-col :span="24"> |
62 | - <a-form-model-item label="唯一号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="uniqueCode"> | ||
63 | - <a-input v-model="model.uniqueCode" placeholder="请输入唯一号" ></a-input> | 62 | + <a-form-model-item label="序列号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sn"> |
63 | + <a-input v-model="model.sn" placeholder="请输入序列号" ></a-input> | ||
64 | </a-form-model-item> | 64 | </a-form-model-item> |
65 | </a-col> | 65 | </a-col> |
66 | </a-row> | 66 | </a-row> |
@@ -106,8 +106,8 @@ validatorRules: { | @@ -106,8 +106,8 @@ validatorRules: { | ||
106 | materialName: [ | 106 | materialName: [ |
107 | { required: true, message: '请输入物料名称!'}, | 107 | { required: true, message: '请输入物料名称!'}, |
108 | ], | 108 | ], |
109 | - uniqueCode: [ | ||
110 | - { required: true, message: '请输入唯一号!'}, | 109 | + sn: [ |
110 | + { required: true, message: '请输入序列号!'}, | ||
111 | ], | 111 | ], |
112 | }, | 112 | }, |
113 | url: { | 113 | url: { |
@@ -160,7 +160,7 @@ validatorRules: { | @@ -160,7 +160,7 @@ validatorRules: { | ||
160 | that.confirmLoading = false; | 160 | that.confirmLoading = false; |
161 | }) | 161 | }) |
162 | } | 162 | } |
163 | - | 163 | + |
164 | }) | 164 | }) |
165 | }, | 165 | }, |
166 | } | 166 | } |
ant-design-vue-jeecg/src/views/system/inventory/subTables/InventoryDetailSubTable.vue
@@ -2,33 +2,33 @@ | @@ -2,33 +2,33 @@ | ||
2 | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> | 2 | <a-card :bordered="false" :class="'cust-erp-sub-tab'"> |
3 | <!-- 操作按钮区域 --> | 3 | <!-- 操作按钮区域 --> |
4 | <div class="table-operator" v-if="mainId"> | 4 | <div class="table-operator" v-if="mainId"> |
5 | - <!-- <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> --> | 5 | + <a-button v-has="'inventoryDetail:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button> |
6 | <a-button type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button> | 6 | <a-button type="primary" icon="download" @click="handleExportXls('库存详情')">导出</a-button> |
7 | </div> | 7 | </div> |
8 | 8 | ||
9 | <!-- table区域-begin --> | 9 | <!-- table区域-begin --> |
10 | <div> | 10 | <div> |
11 | - <a-table | 11 | + <a-table |
12 | ref="table" | 12 | ref="table" |
13 | size="middle" | 13 | size="middle" |
14 | bordered | 14 | bordered |
15 | rowKey="id" | 15 | rowKey="id" |
16 | - :scroll="{ x: true }" | 16 | + :scroll="{x:true}" |
17 | :columns="columns" | 17 | :columns="columns" |
18 | :dataSource="dataSource" | 18 | :dataSource="dataSource" |
19 | :pagination="ipagination" | 19 | :pagination="ipagination" |
20 | :loading="loading" | 20 | :loading="loading" |
21 | - @change="handleTableChange" | ||
22 | - class='j-table-force-nowrap' | ||
23 | - > | ||
24 | - | ||
25 | - <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> | 21 | + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" |
22 | + @change="handleTableChange"> | ||
23 | + | ||
24 | + <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> | ||
26 | <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)"> | 25 | <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)"> |
27 | {{ inventoryStatus_dictText }} | 26 | {{ inventoryStatus_dictText }} |
28 | </a-tag> | 27 | </a-tag> |
29 | </span> | 28 | </span> |
30 | - | 29 | + |
31 | <span slot="companyCode" slot-scope="companyCode"> | 30 | <span slot="companyCode" slot-scope="companyCode"> |
31 | + | ||
32 | <a-tag :key="companyCode" color="blue"> | 32 | <a-tag :key="companyCode" color="blue"> |
33 | {{ solutionCompany(companyCode) }} | 33 | {{ solutionCompany(companyCode) }} |
34 | </a-tag> | 34 | </a-tag> |
@@ -47,13 +47,17 @@ | @@ -47,13 +47,17 @@ | ||
47 | </template> | 47 | </template> |
48 | 48 | ||
49 | <script> | 49 | <script> |
50 | + | ||
50 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' | 51 | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
51 | import InventoryDetailModal from '../modules/InventoryDetailModal' | 52 | import InventoryDetailModal from '../modules/InventoryDetailModal' |
53 | + | ||
52 | import { getCompanyList, getZoneList } from '@/api/api' | 54 | import { getCompanyList, getZoneList } from '@/api/api' |
53 | 55 | ||
54 | export default { | 56 | export default { |
57 | + | ||
55 | name: 'InventoryDetailSubTable', | 58 | name: 'InventoryDetailSubTable', |
56 | mixins: [JeecgListMixin], | 59 | mixins: [JeecgListMixin], |
60 | + | ||
57 | components: { InventoryDetailModal }, | 61 | components: { InventoryDetailModal }, |
58 | props: { | 62 | props: { |
59 | mainId: { | 63 | mainId: { |
@@ -69,6 +73,7 @@ export default { | @@ -69,6 +73,7 @@ export default { | ||
69 | if (!this.mainId) { | 73 | if (!this.mainId) { |
70 | this.clearList() | 74 | this.clearList() |
71 | } else { | 75 | } else { |
76 | + | ||
72 | this.queryParam['zoneCode'] = val.split("_")[0]; | 77 | this.queryParam['zoneCode'] = val.split("_")[0]; |
73 | this.queryParam['materialCode'] = val.split("_")[1]; | 78 | this.queryParam['materialCode'] = val.split("_")[1]; |
74 | this.loadData(1) | 79 | this.loadData(1) |
@@ -78,6 +83,7 @@ export default { | @@ -78,6 +83,7 @@ export default { | ||
78 | }, | 83 | }, |
79 | data() { | 84 | data() { |
80 | return { | 85 | return { |
86 | + | ||
81 | description: '库存物料汇总详情页面', | 87 | description: '库存物料汇总详情页面', |
82 | disableMixinCreated: true, | 88 | disableMixinCreated: true, |
83 | companyList: [], | 89 | companyList: [], |
@@ -86,18 +92,22 @@ export default { | @@ -86,18 +92,22 @@ export default { | ||
86 | columns: [ | 92 | columns: [ |
87 | { | 93 | { |
88 | title: '库存详情ID', | 94 | title: '库存详情ID', |
95 | + | ||
89 | align: 'center', | 96 | align: 'center', |
90 | dataIndex: 'id' | 97 | dataIndex: 'id' |
91 | }, | 98 | }, |
92 | { | 99 | { |
93 | title: '货主', | 100 | title: '货主', |
101 | + | ||
94 | align: 'center', | 102 | align: 'center', |
95 | dataIndex: 'companyCode', | 103 | dataIndex: 'companyCode', |
96 | key: 'companyCode', | 104 | key: 'companyCode', |
105 | + | ||
97 | scopedSlots: { customRender: 'companyCode' } | 106 | scopedSlots: { customRender: 'companyCode' } |
98 | }, | 107 | }, |
99 | { | 108 | { |
100 | title: '库区', | 109 | title: '库区', |
110 | + | ||
101 | align: 'center', | 111 | align: 'center', |
102 | dataIndex: 'zoneCode', | 112 | dataIndex: 'zoneCode', |
103 | key: 'zoneCode', | 113 | key: 'zoneCode', |
@@ -123,11 +133,6 @@ export default { | @@ -123,11 +133,6 @@ export default { | ||
123 | align: 'center', | 133 | align: 'center', |
124 | dataIndex: 'materialName' | 134 | dataIndex: 'materialName' |
125 | }, | 135 | }, |
126 | - // { | ||
127 | - // title: '物料规格', | ||
128 | - // align: 'center', | ||
129 | - // dataIndex: 'materialSpec' | ||
130 | - // }, | ||
131 | { | 136 | { |
132 | title: '物料单位', | 137 | title: '物料单位', |
133 | align: 'center', | 138 | align: 'center', |
@@ -160,9 +165,9 @@ export default { | @@ -160,9 +165,9 @@ export default { | ||
160 | dataIndex: 'batch' | 165 | dataIndex: 'batch' |
161 | }, | 166 | }, |
162 | { | 167 | { |
163 | - title: '唯一号', | 168 | + title: '序列号', |
164 | align: 'center', | 169 | align: 'center', |
165 | - dataIndex: 'uniqueCode' | 170 | + dataIndex: 'sn' |
166 | }, | 171 | }, |
167 | { | 172 | { |
168 | title: '入库日期', | 173 | title: '入库日期', |
@@ -191,21 +196,12 @@ export default { | @@ -191,21 +196,12 @@ export default { | ||
191 | }, | 196 | }, |
192 | { | 197 | { |
193 | title: '更新日期', | 198 | title: '更新日期', |
194 | - align: 'center' | 199 | + align: 'center', |
200 | + dataIndex: 'updateTime' | ||
195 | }, | 201 | }, |
196 | - // { | ||
197 | - // title: '操作', | ||
198 | - // dataIndex: 'action', | ||
199 | - // align: 'center', | ||
200 | - // fixed: 'right', | ||
201 | - // width: 147, | ||
202 | - // scopedSlots: { customRender: 'action' } | ||
203 | - // } | ||
204 | ], | 202 | ], |
205 | url: { | 203 | url: { |
206 | - list: '/InventoryMaterialSummary/inventoryMaterialSummary/inventoryMaterialSummaryChild', | ||
207 | - exportXlsUrl: '/inventory/inventoryHeader/exportInventoryDetail', | ||
208 | - importUrl: '/inventory/inventoryHeader/importInventoryDetail' | 204 | + importUrl: "/inventory/inventoryHeader/importInventoryDetail", |
209 | }, | 205 | }, |
210 | dictOptions: { | 206 | dictOptions: { |
211 | containerStatus: [] | 207 | containerStatus: [] |
@@ -213,7 +209,7 @@ export default { | @@ -213,7 +209,7 @@ export default { | ||
213 | } | 209 | } |
214 | }, | 210 | }, |
215 | created() { | 211 | created() { |
216 | - this.loadFrom() | 212 | + this.loadFrom(); |
217 | }, | 213 | }, |
218 | computed: { | 214 | computed: { |
219 | importExcelUrl() { | 215 | importExcelUrl() { |
@@ -232,6 +228,7 @@ export default { | @@ -232,6 +228,7 @@ export default { | ||
232 | return colors[status] || colors.default; | 228 | return colors[status] || colors.default; |
233 | }, | 229 | }, |
234 | loadFrom() { | 230 | loadFrom() { |
231 | + | ||
235 | getCompanyList().then(res => { | 232 | getCompanyList().then(res => { |
236 | if (res.success) { | 233 | if (res.success) { |
237 | this.companyList = res.result | 234 | this.companyList = res.result |
@@ -244,6 +241,7 @@ export default { | @@ -244,6 +241,7 @@ export default { | ||
244 | }) | 241 | }) |
245 | }, | 242 | }, |
246 | solutionCompany(value) { | 243 | solutionCompany(value) { |
244 | + | ||
247 | let actions = [] | 245 | let actions = [] |
248 | Object.keys(this.companyList).some(key => { | 246 | Object.keys(this.companyList).some(key => { |
249 | if (this.companyList[key].code === '' + value) { | 247 | if (this.companyList[key].code === '' + value) { |
ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
@@ -117,8 +117,8 @@ | @@ -117,8 +117,8 @@ | ||
117 | </a-button> | 117 | </a-button> |
118 | </template> | 118 | </template> |
119 | <span slot="action" slot-scope="text, record"> | 119 | <span slot="action" slot-scope="text, record"> |
120 | - <a v-if="record.status == 0 && record.taskType == 200" @click="selectFillPort(record)" v-has="'receiptContainerHeader:fill'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> | ||
121 | - <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:fill'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> | 120 | + <a v-if="record.status == 0 && record.taskType == 200" @click="selectFillPort(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> |
121 | + <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button> <a-divider type="vertical"/></a> | ||
122 | <!-- <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>--> | 122 | <!-- <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>--> |
123 | <!-- <a v-else-if="record.status == 0" @click="createTask(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>--> | 123 | <!-- <a v-else-if="record.status == 0" @click="createTask(record)" v-has="'receiptContainerHeader:createTask'">生成任务<a-divider type="vertical"/></a>--> |
124 | <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)"> | 124 | <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)"> |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java
@@ -123,6 +123,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService | @@ -123,6 +123,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService | ||
123 | if (roadWays == null || roadWays.size() == 0) { | 123 | if (roadWays == null || roadWays.size() == 0) { |
124 | throw new JeecgBootException("分配库位时, 巷道为空"); | 124 | throw new JeecgBootException("分配库位时, 巷道为空"); |
125 | } | 125 | } |
126 | + Collections.shuffle(roadWays); | ||
126 | Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode); | 127 | Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode); |
127 | // 优先找外侧库位 | 128 | // 优先找外侧库位 |
128 | LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery(); | 129 | LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery(); |
@@ -176,6 +177,10 @@ public class LocationAllocationServiceImpl implements LocationAllocationService | @@ -176,6 +177,10 @@ public class LocationAllocationServiceImpl implements LocationAllocationService | ||
176 | roadWays = locationList.stream().map(Location::getRoadWay).distinct().collect(toList()); | 177 | roadWays = locationList.stream().map(Location::getRoadWay).distinct().collect(toList()); |
177 | } | 178 | } |
178 | String lastString = "ORDER BY high asc, layer asc, id asc limit 1"; | 179 | String lastString = "ORDER BY high asc, layer asc, id asc limit 1"; |
180 | + if (roadWays == null || roadWays.size() == 0) { | ||
181 | + throw new JeecgBootException("分配库位时, 巷道为空"); | ||
182 | + } | ||
183 | + Collections.shuffle(roadWays); | ||
179 | Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode); | 184 | Integer roadWay = locationAllocationService.getRoadWay(roadWays, warehouseCode); |
180 | LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); | 185 | LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); |
181 | locationLambdaQueryWrapper.eq(Location::getZoneCode, zoneCode).eq(Location::getWarehouseCode, warehouseCode).eq(Location::getRoadWay, roadWay) | 186 | locationLambdaQueryWrapper.eq(Location::getZoneCode, zoneCode).eq(Location::getWarehouseCode, warehouseCode).eq(Location::getRoadWay, roadWay) |
@@ -194,11 +199,18 @@ public class LocationAllocationServiceImpl implements LocationAllocationService | @@ -194,11 +199,18 @@ public class LocationAllocationServiceImpl implements LocationAllocationService | ||
194 | @Override | 199 | @Override |
195 | @Transactional(rollbackFor = Exception.class) | 200 | @Transactional(rollbackFor = Exception.class) |
196 | public Integer getRoadWay(List<Integer> roadWays, String warehouseCode) { | 201 | public Integer getRoadWay(List<Integer> roadWays, String warehouseCode) { |
202 | + if (StringUtils.isEmpty(roadWays)) { | ||
203 | + throw new JeecgBootException("分配库位错误,没有巷道"); | ||
204 | + } | ||
205 | + int roadWay = roadWays.get(0); | ||
197 | if (roadWays.size() == 1) { | 206 | if (roadWays.size() == 1) { |
198 | - return roadWays.get(0); | 207 | + return roadWay; |
199 | } | 208 | } |
200 | roadWays = locationAllocationService.removeRoadWaysByPreLocations(roadWays, warehouseCode); | 209 | roadWays = locationAllocationService.removeRoadWaysByPreLocations(roadWays, warehouseCode); |
201 | - int roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode); | 210 | + if (StringUtils.isEmpty(roadWays)) { |
211 | + return roadWay; | ||
212 | + } | ||
213 | + roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode); | ||
202 | return roadWay; | 214 | return roadWay; |
203 | } | 215 | } |
204 | 216 |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java
@@ -119,6 +119,7 @@ public class WcsServiceImpl implements WcsService { | @@ -119,6 +119,7 @@ public class WcsServiceImpl implements WcsService { | ||
119 | String height = warecellDomain.getHeight(); | 119 | String height = warecellDomain.getHeight(); |
120 | String taskNo = warecellDomain.getTaskNo(); | 120 | String taskNo = warecellDomain.getTaskNo(); |
121 | String locationCode = null; | 121 | String locationCode = null; |
122 | + Integer preTaskNo = 0; | ||
122 | List<Integer> roadWays = warecellDomain.getRoadWays(); | 123 | List<Integer> roadWays = warecellDomain.getRoadWays(); |
123 | if (height == null) { | 124 | if (height == null) { |
124 | return Result.error("分配库位时,高度为空"); | 125 | return Result.error("分配库位时,高度为空"); |
@@ -139,6 +140,13 @@ public class WcsServiceImpl implements WcsService { | @@ -139,6 +140,13 @@ public class WcsServiceImpl implements WcsService { | ||
139 | } | 140 | } |
140 | int taskType = taskHeader.getTaskType(); | 141 | int taskType = taskHeader.getTaskType(); |
141 | String containerCode = taskHeader.getContainerCode(); | 142 | String containerCode = taskHeader.getContainerCode(); |
143 | + String toLocationCode = taskHeader.getToLocationCode(); | ||
144 | + if (StringUtils.isNotEmpty(toLocationCode)) { | ||
145 | + WcsTask wcsTask2 = new WcsTask(); | ||
146 | + wcsTask2.setToLocationCode(toLocationCode); | ||
147 | + wcsTask2.setPreTaskNo(String.valueOf(preTaskNo)); | ||
148 | + return Result.OK(wcsTask2); | ||
149 | + } | ||
142 | Container container = containerService.getContainerByCode(containerCode, warehouseCode); | 150 | Container container = containerService.getContainerByCode(containerCode, warehouseCode); |
143 | if (container == null) { | 151 | if (container == null) { |
144 | return Result.error("分配库位时,任务托盘为空"); | 152 | return Result.error("分配库位时,任务托盘为空"); |
@@ -228,7 +236,6 @@ public class WcsServiceImpl implements WcsService { | @@ -228,7 +236,6 @@ public class WcsServiceImpl implements WcsService { | ||
228 | // 修改任务明细目标库位 | 236 | // 修改任务明细目标库位 |
229 | Location location = locationService.getLocationByCode(locationCode, warehouseCode); | 237 | Location location = locationService.getLocationByCode(locationCode, warehouseCode); |
230 | int rowFlag = location.getRowFlag().intValue(); | 238 | int rowFlag = location.getRowFlag().intValue(); |
231 | - Integer preTaskNo = 0; | ||
232 | // 如果是外侧库位,那么就要判断该库位对应的内侧库位是不是有托盘 | 239 | // 如果是外侧库位,那么就要判断该库位对应的内侧库位是不是有托盘 |
233 | if (rowFlag == QuantityConstant.ROW_OUT) { | 240 | if (rowFlag == QuantityConstant.ROW_OUT) { |
234 | Location insideLocation = locationService.getInsideNear(location); | 241 | Location insideLocation = locationService.getInsideNear(location); |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryChild/entity/InventoryChild.java
1 | package org.jeecg.modules.wms.inventory.inventoryChild.entity; | 1 | package org.jeecg.modules.wms.inventory.inventoryChild.entity; |
2 | 2 | ||
3 | import java.io.Serializable; | 3 | import java.io.Serializable; |
4 | -import java.io.UnsupportedEncodingException; | ||
5 | import java.util.Date; | 4 | import java.util.Date; |
6 | -import java.math.BigDecimal; | 5 | + |
6 | +import org.jeecg.common.aspect.annotation.Dict; | ||
7 | +import org.jeecgframework.poi.excel.annotation.Excel; | ||
8 | + | ||
7 | import com.baomidou.mybatisplus.annotation.IdType; | 9 | import com.baomidou.mybatisplus.annotation.IdType; |
8 | import com.baomidou.mybatisplus.annotation.TableId; | 10 | import com.baomidou.mybatisplus.annotation.TableId; |
9 | import com.baomidou.mybatisplus.annotation.TableName; | 11 | import com.baomidou.mybatisplus.annotation.TableName; |
10 | -import lombok.Data; | ||
11 | -import com.fasterxml.jackson.annotation.JsonFormat; | ||
12 | -import org.springframework.format.annotation.DateTimeFormat; | ||
13 | -import org.jeecgframework.poi.excel.annotation.Excel; | ||
14 | -import org.jeecg.common.aspect.annotation.Dict; | 12 | + |
15 | import io.swagger.annotations.ApiModel; | 13 | import io.swagger.annotations.ApiModel; |
16 | import io.swagger.annotations.ApiModelProperty; | 14 | import io.swagger.annotations.ApiModelProperty; |
15 | +import lombok.Data; | ||
17 | import lombok.EqualsAndHashCode; | 16 | import lombok.EqualsAndHashCode; |
18 | import lombok.experimental.Accessors; | 17 | import lombok.experimental.Accessors; |
19 | 18 | ||
20 | /** | 19 | /** |
21 | * @Description: 库存明细 | 20 | * @Description: 库存明细 |
22 | - * @Author: jeecg-boot | ||
23 | - * @Date: 2023-03-24 | ||
24 | - * @Version: V1.0 | 21 | + * @Author: jeecg-boot |
22 | + * @Date: 2023-03-24 | ||
23 | + * @Version: V1.0 | ||
25 | */ | 24 | */ |
26 | @Data | 25 | @Data |
27 | @TableName("inventory_child") | 26 | @TableName("inventory_child") |
28 | @Accessors(chain = true) | 27 | @Accessors(chain = true) |
29 | @EqualsAndHashCode(callSuper = false) | 28 | @EqualsAndHashCode(callSuper = false) |
30 | -@ApiModel(value="inventory_child对象", description="库存明细") | 29 | +@ApiModel(value = "inventory_child对象", description = "库存明细") |
31 | public class InventoryChild implements Serializable { | 30 | public class InventoryChild implements Serializable { |
32 | private static final long serialVersionUID = 1L; | 31 | private static final long serialVersionUID = 1L; |
33 | 32 | ||
34 | - /**主键*/ | ||
35 | - @TableId(type = IdType.ASSIGN_ID) | 33 | + /** 主键 */ |
34 | + @TableId(type = IdType.ASSIGN_ID) | ||
36 | @ApiModelProperty(value = "主键") | 35 | @ApiModelProperty(value = "主键") |
37 | private String id; | 36 | private String id; |
38 | - /**库存头ID*/ | ||
39 | - @Excel(name = "库存头ID", width = 15) | 37 | + /** 库存头ID */ |
38 | + @Excel(name = "库存头ID", width = 15) | ||
40 | @ApiModelProperty(value = "库存头ID") | 39 | @ApiModelProperty(value = "库存头ID") |
41 | private Integer inventoryHeaderId; | 40 | private Integer inventoryHeaderId; |
42 | - /**仓库编码*/ | ||
43 | - @Excel(name = "仓库编码", width = 15) | 41 | + /** 仓库编码 */ |
42 | + @Excel(name = "仓库编码", width = 15) | ||
44 | @ApiModelProperty(value = "仓库编码") | 43 | @ApiModelProperty(value = "仓库编码") |
45 | private String warehouseCode; | 44 | private String warehouseCode; |
46 | - /**货主*/ | ||
47 | - @Excel(name = "货主", width = 15) | 45 | + /** 货主 */ |
46 | + @Excel(name = "货主", width = 15) | ||
48 | @ApiModelProperty(value = "货主") | 47 | @ApiModelProperty(value = "货主") |
49 | private String companyCode; | 48 | private String companyCode; |
50 | - /**库区*/ | ||
51 | - @Excel(name = "库区", width = 15) | 49 | + /** 库区 */ |
50 | + @Excel(name = "库区", width = 15) | ||
52 | @ApiModelProperty(value = "库区") | 51 | @ApiModelProperty(value = "库区") |
53 | private String zoneCode; | 52 | private String zoneCode; |
54 | - /**容器状态*/ | ||
55 | - @Excel(name = "容器状态", width = 15, dicCode = "container_status") | ||
56 | - @Dict(dicCode = "container_status") | 53 | + /** 容器状态 */ |
54 | + @Excel(name = "容器状态", width = 15, dicCode = "container_status") | ||
55 | + @Dict(dicCode = "container_status") | ||
57 | @ApiModelProperty(value = "容器状态") | 56 | @ApiModelProperty(value = "容器状态") |
58 | private String containerStatus; | 57 | private String containerStatus; |
59 | - /**容器编码*/ | ||
60 | - @Excel(name = "容器编码", width = 15) | 58 | + /** 容器编码 */ |
59 | + @Excel(name = "容器编码", width = 15) | ||
61 | @ApiModelProperty(value = "容器编码") | 60 | @ApiModelProperty(value = "容器编码") |
62 | private String containerCode; | 61 | private String containerCode; |
63 | - /**库位编码*/ | ||
64 | - @Excel(name = "库位编码", width = 15) | 62 | + /** 库位编码 */ |
63 | + @Excel(name = "库位编码", width = 15) | ||
65 | @ApiModelProperty(value = "库位编码") | 64 | @ApiModelProperty(value = "库位编码") |
66 | private String locationCode; | 65 | private String locationCode; |
67 | - /**物料编码*/ | ||
68 | - @Excel(name = "物料编码", width = 15) | 66 | + /** 物料编码 */ |
67 | + @Excel(name = "物料编码", width = 15) | ||
69 | @ApiModelProperty(value = "物料编码") | 68 | @ApiModelProperty(value = "物料编码") |
70 | private String materialCode; | 69 | private String materialCode; |
71 | - /**物料名称*/ | ||
72 | - @Excel(name = "物料名称", width = 15) | 70 | + /** 物料名称 */ |
71 | + @Excel(name = "物料名称", width = 15) | ||
73 | @ApiModelProperty(value = "物料名称") | 72 | @ApiModelProperty(value = "物料名称") |
74 | private String materialName; | 73 | private String materialName; |
75 | - /**物料规格*/ | ||
76 | - @Excel(name = "物料规格", width = 15) | 74 | + /** 物料规格 */ |
75 | + @Excel(name = "物料规格", width = 15) | ||
77 | @ApiModelProperty(value = "物料规格") | 76 | @ApiModelProperty(value = "物料规格") |
78 | private String materialSpec; | 77 | private String materialSpec; |
79 | - /**物料单位*/ | ||
80 | - @Excel(name = "物料单位", width = 15) | 78 | + /** 物料单位 */ |
79 | + @Excel(name = "物料单位", width = 15) | ||
81 | @ApiModelProperty(value = "物料单位") | 80 | @ApiModelProperty(value = "物料单位") |
82 | private String materialUnit; | 81 | private String materialUnit; |
83 | - /**库存状态*/ | ||
84 | - @Excel(name = "库存状态", width = 15, dicCode = "inventory_status") | ||
85 | - @Dict(dicCode = "inventory_status") | 82 | + /** 库存状态 */ |
83 | + @Excel(name = "库存状态", width = 15, dicCode = "inventory_status") | ||
84 | + @Dict(dicCode = "inventory_status") | ||
86 | @ApiModelProperty(value = "库存状态") | 85 | @ApiModelProperty(value = "库存状态") |
87 | private String inventoryStatus; | 86 | private String inventoryStatus; |
88 | - /**库龄(天)*/ | ||
89 | - @Excel(name = "库龄(天)", width = 15) | 87 | + /** 库龄(天) */ |
88 | + @Excel(name = "库龄(天)", width = 15) | ||
90 | @ApiModelProperty(value = "库龄(天)") | 89 | @ApiModelProperty(value = "库龄(天)") |
91 | private Integer inventoryAge; | 90 | private Integer inventoryAge; |
92 | - /**唯一号*/ | ||
93 | - @Excel(name = "唯一号", width = 15) | ||
94 | - @ApiModelProperty(value = "唯一号") | ||
95 | - private String uniqueCode; | ||
96 | - /**创建人*/ | 91 | + /** 序列号 */ |
92 | + @Excel(name = "序列号", width = 15) | ||
93 | + @ApiModelProperty(value = "序列号") | ||
94 | + private String sn; | ||
95 | + /** 创建人 */ | ||
97 | @ApiModelProperty(value = "创建人") | 96 | @ApiModelProperty(value = "创建人") |
98 | private String createBy; | 97 | private String createBy; |
99 | - /**创建日期*/ | 98 | + /** 创建日期 */ |
100 | @ApiModelProperty(value = "创建日期") | 99 | @ApiModelProperty(value = "创建日期") |
101 | private Date createTime; | 100 | private Date createTime; |
102 | - /**更新人*/ | 101 | + /** 更新人 */ |
103 | @ApiModelProperty(value = "更新人") | 102 | @ApiModelProperty(value = "更新人") |
104 | private String updateBy; | 103 | private String updateBy; |
105 | - /**更新日期*/ | 104 | + /** 更新日期 */ |
106 | @ApiModelProperty(value = "更新日期") | 105 | @ApiModelProperty(value = "更新日期") |
107 | private Date updateTime; | 106 | private Date updateTime; |
108 | } | 107 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java
@@ -106,14 +106,17 @@ public class InventoryDetail implements Serializable { | @@ -106,14 +106,17 @@ public class InventoryDetail implements Serializable { | ||
106 | @Excel(name = "项目号", width = 15) | 106 | @Excel(name = "项目号", width = 15) |
107 | @ApiModelProperty(value = "项目号") | 107 | @ApiModelProperty(value = "项目号") |
108 | private String project; | 108 | private String project; |
109 | - /** 唯一号 */ | ||
110 | - @Excel(name = "唯一号", width = 15) | ||
111 | - @ApiModelProperty(value = "唯一号") | ||
112 | - private String uniqueCode; | 109 | + /** 序列号 */ |
110 | + @Excel(name = "序列号", width = 15) | ||
111 | + @ApiModelProperty(value = "序列号") | ||
112 | + private String sn; | ||
113 | /** 箱码 */ | 113 | /** 箱码 */ |
114 | @Excel(name = "箱码", width = 15) | 114 | @Excel(name = "箱码", width = 15) |
115 | @ApiModelProperty(value = "箱码") | 115 | @ApiModelProperty(value = "箱码") |
116 | private String boxCode; | 116 | private String boxCode; |
117 | + @Excel(name = "收货日期", width = 15) | ||
118 | + @ApiModelProperty(value = "收货日期") | ||
119 | + private Date receiveTime; | ||
117 | /** 入库日期 */ | 120 | /** 入库日期 */ |
118 | @Excel(name = "入库日期", width = 15) | 121 | @Excel(name = "入库日期", width = 15) |
119 | @ApiModelProperty(value = "入库日期") | 122 | @ApiModelProperty(value = "入库日期") |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryTransaction/entity/InventoryTransaction.java
@@ -125,10 +125,10 @@ public class InventoryTransaction implements Serializable { | @@ -125,10 +125,10 @@ public class InventoryTransaction implements Serializable { | ||
125 | @Excel(name = "项目号", width = 15) | 125 | @Excel(name = "项目号", width = 15) |
126 | @ApiModelProperty(value = "项目号") | 126 | @ApiModelProperty(value = "项目号") |
127 | private String project; | 127 | private String project; |
128 | - /** 唯一号 */ | ||
129 | - @Excel(name = "唯一号", width = 15) | ||
130 | - @ApiModelProperty(value = "唯一号") | ||
131 | - private String uniqueCode; | 128 | + /** 序列号 */ |
129 | + @Excel(name = "序列号", width = 15) | ||
130 | + @ApiModelProperty(value = "序列号") | ||
131 | + private String sn; | ||
132 | /** 备用字段1 */ | 132 | /** 备用字段1 */ |
133 | @Excel(name = "备用字段1", width = 15) | 133 | @Excel(name = "备用字段1", width = 15) |
134 | @ApiModelProperty(value = "备用字段1") | 134 | @ApiModelProperty(value = "备用字段1") |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/operation/service/impl/OperationLogServiceImpl.java
@@ -48,7 +48,7 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope | @@ -48,7 +48,7 @@ public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, Ope | ||
48 | switch (logDTO.getTag()) { | 48 | switch (logDTO.getTag()) { |
49 | case "入库组盘": | 49 | case "入库组盘": |
50 | message = "容器编码:{},物料编码:{},数量:{}"; | 50 | message = "容器编码:{},物料编码:{},数量:{}"; |
51 | - operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getUniqueCode", message, "getReferCode", | 51 | + operationLogList.addAll(createOperationLogs(logDTO, ReceiptContainerDetail.class, "getsn", message, "getReferCode", |
52 | "getReceiptCode", "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty")); | 52 | "getReceiptCode", "getWarehouseCode", "getContainerCode", "getMaterialCode", "getQty")); |
53 | break; | 53 | break; |
54 | } | 54 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
@@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiptContainerHeader.controller; | @@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiptContainerHeader.controller; | ||
2 | 2 | ||
3 | import java.io.IOException; | 3 | import java.io.IOException; |
4 | import java.util.Arrays; | 4 | import java.util.Arrays; |
5 | +import java.util.Date; | ||
5 | import java.util.List; | 6 | import java.util.List; |
6 | import java.util.Map; | 7 | import java.util.Map; |
7 | import java.util.stream.Collectors; | 8 | import java.util.stream.Collectors; |
@@ -208,6 +209,7 @@ public class ReceiptContainerHeaderController extends JeecgController<ReceiptCon | @@ -208,6 +209,7 @@ public class ReceiptContainerHeaderController extends JeecgController<ReceiptCon | ||
208 | @PostMapping(value = "/addReceiptContainerDetail") | 209 | @PostMapping(value = "/addReceiptContainerDetail") |
209 | @RequiresPermissions("receiptContainerDetail:add") | 210 | @RequiresPermissions("receiptContainerDetail:add") |
210 | public Result<String> addReceiptContainerDetail(@RequestBody ReceiptContainerDetail receiptContainerDetail) { | 211 | public Result<String> addReceiptContainerDetail(@RequestBody ReceiptContainerDetail receiptContainerDetail) { |
212 | + receiptContainerDetail.setReceiveTime(new Date()); | ||
211 | receiptContainerDetailService.save(receiptContainerDetail); | 213 | receiptContainerDetailService.save(receiptContainerDetail); |
212 | return Result.OK("添加成功!"); | 214 | return Result.OK("添加成功!"); |
213 | } | 215 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/entity/ReceiptContainerDetail.java
@@ -97,9 +97,12 @@ public class ReceiptContainerDetail implements Serializable { | @@ -97,9 +97,12 @@ public class ReceiptContainerDetail implements Serializable { | ||
97 | @Excel(name = "项目号", width = 15) | 97 | @Excel(name = "项目号", width = 15) |
98 | @ApiModelProperty(value = "项目号") | 98 | @ApiModelProperty(value = "项目号") |
99 | private String project; | 99 | private String project; |
100 | - @Excel(name = "唯一号", width = 15) | ||
101 | - @ApiModelProperty(value = "唯一号") | ||
102 | - private String uniqueCode; | 100 | + @Excel(name = "序列号", width = 15) |
101 | + @ApiModelProperty(value = "序列号") | ||
102 | + private String sn; | ||
103 | + @Excel(name = "收货日期", width = 15) | ||
104 | + @ApiModelProperty(value = "收货日期") | ||
105 | + private Date receiveTime; | ||
103 | /** 备用字段1 */ | 106 | /** 备用字段1 */ |
104 | @Excel(name = "备用字段1", width = 15) | 107 | @Excel(name = "备用字段1", width = 15) |
105 | @ApiModelProperty(value = "备用字段1") | 108 | @ApiModelProperty(value = "备用字段1") |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
@@ -179,6 +179,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai | @@ -179,6 +179,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai | ||
179 | taskDetail.setBatch(receiptContainerDetail.getBatch()); | 179 | taskDetail.setBatch(receiptContainerDetail.getBatch()); |
180 | taskDetail.setLot(receiptContainerDetail.getLot()); | 180 | taskDetail.setLot(receiptContainerDetail.getLot()); |
181 | taskDetail.setProject(receiptContainerDetail.getProject()); | 181 | taskDetail.setProject(receiptContainerDetail.getProject()); |
182 | + taskDetail.setReceiveTime(receiptContainerDetail.getReceiveTime()); | ||
182 | taskDetailList.add(taskDetail); | 183 | taskDetailList.add(taskDetail); |
183 | ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()); | 184 | ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId()); |
184 | if (receiptDetail == null) { | 185 | if (receiptDetail == null) { |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/domain/Receive.java
1 | package org.jeecg.modules.wms.receipt.receiving.domain; | 1 | package org.jeecg.modules.wms.receipt.receiving.domain; |
2 | 2 | ||
3 | -import lombok.Data; | ||
4 | - | ||
5 | import java.io.Serializable; | 3 | import java.io.Serializable; |
6 | import java.math.BigDecimal; | 4 | import java.math.BigDecimal; |
7 | 5 | ||
8 | import org.jeecg.common.aspect.annotation.Dict; | 6 | import org.jeecg.common.aspect.annotation.Dict; |
9 | 7 | ||
8 | +import lombok.Data; | ||
9 | + | ||
10 | @Data | 10 | @Data |
11 | public class Receive implements Serializable { | 11 | public class Receive implements Serializable { |
12 | private static final long serialVersionUID = 1L; | 12 | private static final long serialVersionUID = 1L; |
@@ -15,7 +15,7 @@ public class Receive implements Serializable { | @@ -15,7 +15,7 @@ public class Receive implements Serializable { | ||
15 | 15 | ||
16 | private String containerCode; // 托盘号 | 16 | private String containerCode; // 托盘号 |
17 | 17 | ||
18 | - private String uniqueCode;// 唯一号 | 18 | + private String sn;// 序列号 |
19 | 19 | ||
20 | private String materialCode; | 20 | private String materialCode; |
21 | 21 |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java
@@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiving.service.impl; | @@ -2,6 +2,7 @@ package org.jeecg.modules.wms.receipt.receiving.service.impl; | ||
2 | 2 | ||
3 | import java.math.BigDecimal; | 3 | import java.math.BigDecimal; |
4 | import java.util.ArrayList; | 4 | import java.util.ArrayList; |
5 | +import java.util.Date; | ||
5 | import java.util.List; | 6 | import java.util.List; |
6 | import java.util.stream.Collectors; | 7 | import java.util.stream.Collectors; |
7 | 8 | ||
@@ -234,7 +235,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl | @@ -234,7 +235,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl | ||
234 | receiptContainerDetail = new ReceiptContainerDetail(); | 235 | receiptContainerDetail = new ReceiptContainerDetail(); |
235 | receiptContainerDetail.setCompanyCode(receiptDetail.getCompanyCode()); | 236 | receiptContainerDetail.setCompanyCode(receiptDetail.getCompanyCode()); |
236 | receiptContainerDetail.setReferCode(receiptDetail.getReferCode()); | 237 | receiptContainerDetail.setReferCode(receiptDetail.getReferCode()); |
237 | - receiptContainerDetail.setUniqueCode(receive.getUniqueCode()); | 238 | + receiptContainerDetail.setSn(receive.getSn()); |
238 | receiptContainerDetail.setContainerCode(receive.getContainerCode()); | 239 | receiptContainerDetail.setContainerCode(receive.getContainerCode()); |
239 | receiptContainerDetail.setReceiptDetailId(receiptDetail.getId()); | 240 | receiptContainerDetail.setReceiptDetailId(receiptDetail.getId()); |
240 | receiptContainerDetail.setReceiptId(receiptDetail.getReceiptId()); | 241 | receiptContainerDetail.setReceiptId(receiptDetail.getReceiptId()); |
@@ -250,6 +251,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl | @@ -250,6 +251,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl | ||
250 | receiptContainerDetail.setLot(receiptDetail.getLot()); | 251 | receiptContainerDetail.setLot(receiptDetail.getLot()); |
251 | receiptContainerDetail.setProject(receiptDetail.getProject()); | 252 | receiptContainerDetail.setProject(receiptDetail.getProject()); |
252 | receiptContainerDetail.setInventoryStatus(receiptDetail.getInventoryStatus()); | 253 | receiptContainerDetail.setInventoryStatus(receiptDetail.getInventoryStatus()); |
254 | + receiptContainerDetail.setReceiveTime(new Date()); | ||
253 | receiptContainerDetailList.add(receiptContainerDetail); | 255 | receiptContainerDetailList.add(receiptContainerDetail); |
254 | } | 256 | } |
255 | } | 257 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskDetail.java
@@ -145,9 +145,13 @@ public class TaskDetail implements Serializable { | @@ -145,9 +145,13 @@ public class TaskDetail implements Serializable { | ||
145 | @ApiModelProperty(value = "入库的库存详情id") | 145 | @ApiModelProperty(value = "入库的库存详情id") |
146 | private Integer toInventoryDetailId; | 146 | private Integer toInventoryDetailId; |
147 | 147 | ||
148 | - @Excel(name = "唯一号", width = 15) | ||
149 | - @ApiModelProperty(value = "唯一号") | ||
150 | - private String uniqueCode; | 148 | + @Excel(name = "序列号", width = 15) |
149 | + @ApiModelProperty(value = "序列号") | ||
150 | + private String sn; | ||
151 | + | ||
152 | + @Excel(name = "收货日期", width = 15) | ||
153 | + @ApiModelProperty(value = "收货日期") | ||
154 | + private Date receiveTime; | ||
151 | 155 | ||
152 | /** 备用字段1 */ | 156 | /** 备用字段1 */ |
153 | @Excel(name = "备用字段1", width = 15) | 157 | @Excel(name = "备用字段1", width = 15) |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -1108,6 +1108,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea | @@ -1108,6 +1108,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea | ||
1108 | inventoryDetail.setBatch(taskDetail.getBatch()); | 1108 | inventoryDetail.setBatch(taskDetail.getBatch()); |
1109 | inventoryDetail.setLot(taskDetail.getLot()); | 1109 | inventoryDetail.setLot(taskDetail.getLot()); |
1110 | inventoryDetail.setProject(taskDetail.getProject()); | 1110 | inventoryDetail.setProject(taskDetail.getProject()); |
1111 | + inventoryDetail.setReceiveTime(taskDetail.getReceiveTime()); | ||
1111 | inventoryDetail.setReceiptDate(new Date()); | 1112 | inventoryDetail.setReceiptDate(new Date()); |
1112 | inventoryDetailList.add(inventoryDetail); | 1113 | inventoryDetailList.add(inventoryDetail); |
1113 | 1114 |