Commit 09e076dd5446ec46d009730d05772600a55a17c1
Merge branch 'develop4' of http://www.huahengrobot.com:90/wms/wms4 into develop4
Showing
21 changed files
with
372 additions
and
77 deletions
ant-design-vue-jeecg/.env.development
@@ -2,7 +2,7 @@ NODE_ENV=development | @@ -2,7 +2,7 @@ NODE_ENV=development | ||
2 | VUE_APP_ENV=development | 2 | VUE_APP_ENV=development |
3 | outputDir=dist | 3 | outputDir=dist |
4 | VUE_APP_API_BASE_URL=http://localhost:8080/wms | 4 | VUE_APP_API_BASE_URL=http://localhost:8080/wms |
5 | -VUE_APP_CAS_BASE_URL=http://localhost:8443/cas | 5 | +VUE_APP_CAS_BASE_URL=http://172.16.29.77:8443/cas |
6 | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview | 6 | VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview |
7 | 7 | ||
8 | # 微应用列表必须VUE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径 | 8 | # 微应用列表必须VUE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径 |
ant-design-vue-jeecg/src/cas/sso.js
@@ -10,7 +10,7 @@ const init = (callback) => { | @@ -10,7 +10,7 @@ const init = (callback) => { | ||
10 | console.log("-------单点登录开始-------"); | 10 | console.log("-------单点登录开始-------"); |
11 | let token = Vue.ls.get(ACCESS_TOKEN); | 11 | let token = Vue.ls.get(ACCESS_TOKEN); |
12 | let st = getUrlParam("ticket"); | 12 | let st = getUrlParam("ticket"); |
13 | - let sevice = "http://" + window.location.host + "/"; | 13 | + let sevice = "http://" + window.location.host + "/wms/"; |
14 | if (token) { | 14 | if (token) { |
15 | loginSuccess(callback); | 15 | loginSuccess(callback); |
16 | } else { | 16 | } else { |
@@ -61,7 +61,7 @@ function validateSt(ticket, service, callback) { | @@ -61,7 +61,7 @@ function validateSt(ticket, service, callback) { | ||
61 | if (res.success) { | 61 | if (res.success) { |
62 | loginSuccess(callback); | 62 | loginSuccess(callback); |
63 | } else { | 63 | } else { |
64 | - let sevice = "http://" + window.location.host + "/"; | 64 | + let sevice = "http://" + window.location.host + "/wms/"; |
65 | let serviceUrl = encodeURIComponent(sevice); | 65 | let serviceUrl = encodeURIComponent(sevice); |
66 | window.location.href = window._CONFIG['casPrefixUrl'] + "/login?service=" + serviceUrl; | 66 | window.location.href = window._CONFIG['casPrefixUrl'] + "/login?service=" + serviceUrl; |
67 | } | 67 | } |
ant-design-vue-jeecg/src/components/jeecgbiz/JButtonBizComponent/JSelectBizComponentModal.vue
@@ -59,7 +59,7 @@ | @@ -59,7 +59,7 @@ | ||
59 | </a-card> | 59 | </a-card> |
60 | </a-col> | 60 | </a-col> |
61 | </a-row> | 61 | </a-row> |
62 | - <InventoryDetailList></InventoryDetailList> | 62 | + <InventoryDetailSelectList></InventoryDetailSelectList> |
63 | </j-modal> | 63 | </j-modal> |
64 | </template> | 64 | </template> |
65 | 65 | ||
@@ -72,12 +72,13 @@ import JSelectBizQueryItem from './JSelectBizQueryItem' | @@ -72,12 +72,13 @@ import JSelectBizQueryItem from './JSelectBizQueryItem' | ||
72 | import {cloneDeep} from 'lodash' | 72 | import {cloneDeep} from 'lodash' |
73 | import {stockTakeTask} from "../../../api/api"; | 73 | import {stockTakeTask} from "../../../api/api"; |
74 | import Utils from './util.js'; | 74 | import Utils from './util.js'; |
75 | -import InventoryDetailList from "../../../views/system/inventory/InventoryDetailList"; | 75 | +import InventoryDetailSelectList from "../../../views/system/inventory/InventoryDetailSelectList"; |
76 | + | ||
76 | 77 | ||
77 | export default { | 78 | export default { |
78 | name: 'JSelectBizComponentModal', | 79 | name: 'JSelectBizComponentModal', |
79 | mixins: [JeecgListMixin], | 80 | mixins: [JeecgListMixin], |
80 | - components: {Ellipsis, JSelectBizQueryItem,InventoryDetailList}, | 81 | + components: {Ellipsis, JSelectBizQueryItem,InventoryDetailSelectList}, |
81 | props: { | 82 | props: { |
82 | value: { | 83 | value: { |
83 | type: Array, | 84 | type: Array, |
@@ -242,6 +243,7 @@ export default { | @@ -242,6 +243,7 @@ export default { | ||
242 | this.selectedTable.dataSource = val.map(key => { | 243 | this.selectedTable.dataSource = val.map(key => { |
243 | for (let data of this.dataSource) { | 244 | for (let data of this.dataSource) { |
244 | if (data[this.rowKey] === key) { | 245 | if (data[this.rowKey] === key) { |
246 | + Utils.$emit('methodA',data[this.valueKey]); | ||
245 | pushIfNotExist(this.innerValue, data[this.valueKey]) | 247 | pushIfNotExist(this.innerValue, data[this.valueKey]) |
246 | return data | 248 | return data |
247 | } | 249 | } |
@@ -264,6 +266,7 @@ export default { | @@ -264,6 +266,7 @@ export default { | ||
264 | /** 关闭弹窗 */ | 266 | /** 关闭弹窗 */ |
265 | close() { | 267 | close() { |
266 | this.$emit('update:visible', false) | 268 | this.$emit('update:visible', false) |
269 | + this.handleDeleteSelected(this.selectedTable.dataSource,0); | ||
267 | }, | 270 | }, |
268 | 271 | ||
269 | valueWatchHandler(val) { | 272 | valueWatchHandler(val) { |
@@ -348,9 +351,11 @@ export default { | @@ -348,9 +351,11 @@ export default { | ||
348 | { | 351 | { |
349 | alert("至少选择一项") | 352 | alert("至少选择一项") |
350 | } | 353 | } |
354 | + this.handleDeleteSelected(this.selectedTable.dataSource,0); | ||
351 | }, | 355 | }, |
352 | /** 删除已选择的 */ | 356 | /** 删除已选择的 */ |
353 | handleDeleteSelected(record, index) { | 357 | handleDeleteSelected(record, index) { |
358 | + Utils.$emit('methodA',10); | ||
354 | this.selectedRowKeys.splice(this.selectedRowKeys.indexOf(record[this.rowKey]), 1) | 359 | this.selectedRowKeys.splice(this.selectedRowKeys.indexOf(record[this.rowKey]), 1) |
355 | //update--begin--autor:wangshuai-----date:20200722------for:JSelectBizComponent组件切换页数值问题------ | 360 | //update--begin--autor:wangshuai-----date:20200722------for:JSelectBizComponent组件切换页数值问题------ |
356 | this.selectedTable.dataSource.splice(this.selectedTable.dataSource.indexOf(record), 1) | 361 | this.selectedTable.dataSource.splice(this.selectedTable.dataSource.indexOf(record), 1) |
ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiCycleCount.vue
@@ -29,7 +29,7 @@ export default { | @@ -29,7 +29,7 @@ export default { | ||
29 | }, | 29 | }, |
30 | data() { | 30 | data() { |
31 | return { | 31 | return { |
32 | - url: {list: '/inventory/inventoryHeader/list'}, | 32 | + url: {list: '/inventory/inventoryHeader/freeList'}, |
33 | columns: [ | 33 | columns: [ |
34 | {title: 'ID', align: 'center', width: '20%',widthRight: '70%', dataIndex: 'id'}, | 34 | {title: 'ID', align: 'center', width: '20%',widthRight: '70%', dataIndex: 'id'}, |
35 | {title: '容器号', align: 'center', width: '25%', dataIndex: 'containerCode'}, | 35 | {title: '容器号', align: 'center', width: '25%', dataIndex: 'containerCode'}, |
ant-design-vue-jeecg/src/store/modules/user.js
@@ -183,7 +183,7 @@ const user = { | @@ -183,7 +183,7 @@ const user = { | ||
183 | //console.log('logoutToken: '+ logoutToken) | 183 | //console.log('logoutToken: '+ logoutToken) |
184 | logout(logoutToken).then(() => { | 184 | logout(logoutToken).then(() => { |
185 | if (process.env.VUE_APP_SSO == 'true') { | 185 | if (process.env.VUE_APP_SSO == 'true') { |
186 | - let sevice = 'http://' + window.location.host + '/' | 186 | + let sevice = 'http://' + window.location.host + '/wms/' |
187 | let serviceUrl = encodeURIComponent(sevice) | 187 | let serviceUrl = encodeURIComponent(sevice) |
188 | window.location.href = process.env.VUE_APP_CAS_BASE_URL + '/logout?service=' + serviceUrl | 188 | window.location.href = process.env.VUE_APP_CAS_BASE_URL + '/logout?service=' + serviceUrl |
189 | } | 189 | } |
ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailSelectList.vue
0 → 100644
1 | +<template> | ||
2 | + <a-card :bordered="false" :class="'cust-erp-sub-tab'"> | ||
3 | + <!-- 操作按钮区域 --> | ||
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 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 | + | ||
17 | + </div> | ||
18 | + | ||
19 | + <!-- table区域-begin --> | ||
20 | + <div> | ||
21 | + <a-table | ||
22 | + ref="table" | ||
23 | + size="middle" | ||
24 | + bordered | ||
25 | + rowKey="id" | ||
26 | + :scroll="{x:true}" | ||
27 | + :columns="columns" | ||
28 | + :dataSource="dataSource" | ||
29 | + :pagination="ipagination" | ||
30 | + :loading="loading" | ||
31 | + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" | ||
32 | + @change="handleTableChange"> | ||
33 | + | ||
34 | + <span slot="companyCode" slot-scope="companyCode"> | ||
35 | + <a-tag :key="companyCode" color=blue> | ||
36 | + {{ solutionCompany(companyCode) }} | ||
37 | + </a-tag> | ||
38 | + </span> | ||
39 | + | ||
40 | + <template slot="htmlSlot" slot-scope="text"> | ||
41 | + <div v-html="text"></div> | ||
42 | + </template> | ||
43 | + <template slot="imgSlot" slot-scope="text"> | ||
44 | + <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span> | ||
45 | + <img v-else :src="getImgView(text)" height="25px" alt="" | ||
46 | + style="max-width:80px;font-size: 12px;font-style: italic;"/> | ||
47 | + </template> | ||
48 | + <template slot="fileSlot" slot-scope="text"> | ||
49 | + <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span> | ||
50 | + <a-button | ||
51 | + v-else | ||
52 | + :ghost="true" | ||
53 | + type="primary" | ||
54 | + icon="download" | ||
55 | + size="small" | ||
56 | + @click="downloadFile(text)"> | ||
57 | + 下载 | ||
58 | + </a-button> | ||
59 | + </template> | ||
60 | + | ||
61 | + | ||
62 | + </a-table> | ||
63 | + </div> | ||
64 | + <inventoryDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></inventoryDetail-modal> | ||
65 | + </a-card> | ||
66 | +</template> | ||
67 | + | ||
68 | +<script> | ||
69 | + | ||
70 | +import {JeecgListMixin} from '@/mixins/JeecgListMixin' | ||
71 | +import InventoryDetailModal from './modules/InventoryDetailModal' | ||
72 | +import {getCompanyList} from '@/api/api' | ||
73 | +import {getAction} from '@/api/manage' | ||
74 | +import Utils from "../../../components/jeecgbiz/JButtonBizComponent/util"; | ||
75 | + | ||
76 | +export default { | ||
77 | + name: "InventoryDetailSelectList", | ||
78 | + mixins: [JeecgListMixin], | ||
79 | + components: {InventoryDetailModal}, | ||
80 | + props: { | ||
81 | + mainId: { | ||
82 | + type: String, | ||
83 | + default: '', | ||
84 | + required: false | ||
85 | + } | ||
86 | + }, | ||
87 | + watch: { | ||
88 | + mainId: { | ||
89 | + immediate: true, | ||
90 | + handler(val) { | ||
91 | + if (!this.mainId) { | ||
92 | + this.clearList() | ||
93 | + } else { | ||
94 | + this.queryParam['inventoryHeaderId'] = val | ||
95 | + this.loadData(1); | ||
96 | + } | ||
97 | + } | ||
98 | + } | ||
99 | + }, | ||
100 | + data() { | ||
101 | + return { | ||
102 | + description: '库存表管理页面', | ||
103 | + disableMixinCreated: true, | ||
104 | + companyList: [], | ||
105 | + // 表头 | ||
106 | + columns: [ | ||
107 | + { | ||
108 | + title: '容器编码', | ||
109 | + align: "center", | ||
110 | + dataIndex: 'containerCode' | ||
111 | + }, | ||
112 | + { | ||
113 | + title: '库位编码', | ||
114 | + align: "center", | ||
115 | + dataIndex: 'locationCode' | ||
116 | + }, | ||
117 | + { | ||
118 | + title: '物料编码', | ||
119 | + align: "center", | ||
120 | + dataIndex: 'materialCode' | ||
121 | + }, | ||
122 | + { | ||
123 | + title: '物料名称', | ||
124 | + align: "center", | ||
125 | + dataIndex: 'materialName' | ||
126 | + }, | ||
127 | + { | ||
128 | + title: '物料规格', | ||
129 | + align: "center", | ||
130 | + dataIndex: 'materialSpec' | ||
131 | + }, | ||
132 | + { | ||
133 | + title: '物料单位', | ||
134 | + align: "center", | ||
135 | + dataIndex: 'materialUnit' | ||
136 | + }, | ||
137 | + { | ||
138 | + title: '数量', | ||
139 | + align: "center", | ||
140 | + dataIndex: 'qty' | ||
141 | + }, | ||
142 | + { | ||
143 | + title: '库存状态', | ||
144 | + align: "center", | ||
145 | + dataIndex: 'inventoryStatus_dictText', | ||
146 | + }, | ||
147 | + { | ||
148 | + title: '批次', | ||
149 | + align: "center", | ||
150 | + dataIndex: 'batch' | ||
151 | + }, | ||
152 | + { | ||
153 | + title: '入库日期', | ||
154 | + align: "center", | ||
155 | + dataIndex: 'receiptDate' | ||
156 | + }, | ||
157 | + ], | ||
158 | + url: { | ||
159 | + list: "/inventory/inventoryHeader/listInventoryDetailByMainId", | ||
160 | + delete: "/inventory/inventoryHeader/deleteInventoryDetail", | ||
161 | + deleteBatch: "/inventory/inventoryHeader/deleteBatchInventoryDetail", | ||
162 | + exportXlsUrl: "/inventory/inventoryHeader/exportInventoryDetail", | ||
163 | + importUrl: "/inventory/inventoryHeader/importInventoryDetail", | ||
164 | + }, | ||
165 | + dictOptions: { | ||
166 | + containerStatus: [], | ||
167 | + } | ||
168 | + } | ||
169 | + }, | ||
170 | + created() { | ||
171 | + this.loadFrom(); | ||
172 | + }, | ||
173 | + mounted() { | ||
174 | + let _this = this; | ||
175 | + Utils.$on('methodA',(data)=> { | ||
176 | + _this.methodA(data); | ||
177 | + }) | ||
178 | + // var _this = this; | ||
179 | + // setInterval(function () { | ||
180 | + // if(_this.isLoad) { | ||
181 | + // _this.loadDataList(); | ||
182 | + // } | ||
183 | + // },1000) | ||
184 | + }, | ||
185 | + computed: { | ||
186 | + importExcelUrl() { | ||
187 | + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`; | ||
188 | + } | ||
189 | + }, | ||
190 | + methods: { | ||
191 | + | ||
192 | + methodA(data) { | ||
193 | + var _this = this; | ||
194 | + _this.loadDatas(data); | ||
195 | + }, | ||
196 | + | ||
197 | + loadDatas(record) { | ||
198 | + this.loading = true | ||
199 | + this.dataSource = [] | ||
200 | + getAction(this.url.list, { | ||
201 | + inventoryHeaderId: record | ||
202 | + }).then((res) => { | ||
203 | + if (res.success) { | ||
204 | + this.dataSource = res.result.records | ||
205 | + } | ||
206 | + }).finally(() => { | ||
207 | + this.loading = false | ||
208 | + }) | ||
209 | + }, | ||
210 | + loadFrom() { | ||
211 | + getCompanyList().then((res) => { | ||
212 | + if (res.success) { | ||
213 | + this.companyList = res.result | ||
214 | + } | ||
215 | + }); | ||
216 | + }, | ||
217 | + solutionCompany(value) { | ||
218 | + var actions = [] | ||
219 | + Object.keys(this.companyList).some((key) => { | ||
220 | + if (this.companyList[key].code == ('' + value)) { | ||
221 | + actions.push(this.companyList[key].name) | ||
222 | + return true | ||
223 | + } | ||
224 | + }) | ||
225 | + return actions.join('') | ||
226 | + }, | ||
227 | + clearList() { | ||
228 | + this.dataSource = [] | ||
229 | + this.selectedRowKeys = [] | ||
230 | + this.ipagination.current = 1 | ||
231 | + } | ||
232 | + | ||
233 | + } | ||
234 | +} | ||
235 | +</script> | ||
236 | +<style scoped> | ||
237 | +@import '~@assets/less/common.less' | ||
238 | +</style> |
huaheng-wms-core/src/main/java/org/jeecg/modules/cas/util/CASServiceUtil.java
@@ -19,9 +19,9 @@ import org.apache.http.impl.client.HttpClients; | @@ -19,9 +19,9 @@ import org.apache.http.impl.client.HttpClients; | ||
19 | public class CASServiceUtil { | 19 | public class CASServiceUtil { |
20 | 20 | ||
21 | public static void main(String[] args) { | 21 | public static void main(String[] args) { |
22 | - String serviceUrl = "https://cas.8f8.com.cn:8443/cas/p3/serviceValidate"; | ||
23 | - String service = "http://localhost:3003/user/login"; | ||
24 | - String ticket = "ST-5-1g-9cNES6KXNRwq-GuRET103sm0-DESKTOP-VKLS8B3"; | 22 | + String serviceUrl = "http://172.16.29.77:8443/cas/"; |
23 | + String service = "http://localhost:8080/wms/sys/cas/client/validateLogin"; | ||
24 | + String ticket = "TGT-4-P-Usqyx62yy2fMVUL7iWlrww-yQ4ClsrhZn5bPgdHqjrOWYeGEs9VrdE-a9dm5FOB44localhost"; | ||
25 | String res = getSTValidate(serviceUrl, ticket, service); | 25 | String res = getSTValidate(serviceUrl, ticket, service); |
26 | 26 | ||
27 | System.out.println("---------res-----" + res); | 27 | System.out.println("---------res-----" + res); |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ReceiptController.java
@@ -32,23 +32,4 @@ public class ReceiptController extends HuahengBaseController { | @@ -32,23 +32,4 @@ public class ReceiptController extends HuahengBaseController { | ||
32 | @Resource | 32 | @Resource |
33 | private IMobileService mobileService; | 33 | private IMobileService mobileService; |
34 | 34 | ||
35 | - @AutoLog(value = "PDA入库-呼叫料盒") | ||
36 | - @ApiOperation(value = "PDA入库-呼叫料盒", notes = "创建空的补充入库任务,并返回任务id") | ||
37 | - @PostMapping("/callbox") | ||
38 | - @ResponseBody | ||
39 | - @ApiLogger(apiName = "PDA入库-呼叫料盒", from = "PDA") | ||
40 | - public Result<?> callBox(@RequestBody CallBoxBean bean, HttpServletRequest req) { | ||
41 | - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | ||
42 | - | ||
43 | - // 补充入库类型 | ||
44 | - bean.setType(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT); | ||
45 | - | ||
46 | - Result<?> result = handleMultiProcess("callBox", new MultiProcessListener() { | ||
47 | - @Override | ||
48 | - public Result<?> doProcess() { | ||
49 | - return mobileService.callBox(bean, warehouseCode); | ||
50 | - } | ||
51 | - }); | ||
52 | - return result; | ||
53 | - } | ||
54 | } | 35 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/controller/ShipmentController.java
@@ -32,23 +32,5 @@ public class ShipmentController extends HuahengBaseController { | @@ -32,23 +32,5 @@ public class ShipmentController extends HuahengBaseController { | ||
32 | @Resource | 32 | @Resource |
33 | private IMobileService mobileService; | 33 | private IMobileService mobileService; |
34 | 34 | ||
35 | - @AutoLog(value = "PDA出库-呼叫料盒") | ||
36 | - @ApiOperation(value = "PDA出库-呼叫料盒", notes = "创建空的分拣出库任务,并返回任务id") | ||
37 | - @PostMapping("/callbox") | ||
38 | - @ResponseBody | ||
39 | - @ApiLogger(apiName = "PDA出库-呼叫料盒", from = "PDA") | ||
40 | - public Result<TaskHeader> callBox(@RequestBody CallBoxBean bean, HttpServletRequest req) { | ||
41 | - String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | ||
42 | 35 | ||
43 | - // 补充入库类型 | ||
44 | - bean.setType(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT); | ||
45 | - | ||
46 | - Result result = handleMultiProcess("callBox", new MultiProcessListener() { | ||
47 | - @Override | ||
48 | - public Result doProcess() { | ||
49 | - return mobileService.callBox(bean, warehouseCode); | ||
50 | - } | ||
51 | - }); | ||
52 | - return result; | ||
53 | - } | ||
54 | } | 36 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/IContainerService.java
@@ -21,6 +21,8 @@ public interface IContainerService extends IService<Container> { | @@ -21,6 +21,8 @@ public interface IContainerService extends IService<Container> { | ||
21 | 21 | ||
22 | boolean updateStatus(String containerCode, String status, String wareohuseCode); | 22 | boolean updateStatus(String containerCode, String status, String wareohuseCode); |
23 | 23 | ||
24 | + boolean restoreContainer(String containerCode, String wareohuseCode); | ||
25 | + | ||
24 | boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode); | 26 | boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode); |
25 | 27 | ||
26 | // 创建零时容器 | 28 | // 创建零时容器 |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java
@@ -72,12 +72,25 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container | @@ -72,12 +72,25 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container | ||
72 | if (container == null) { | 72 | if (container == null) { |
73 | return false; | 73 | return false; |
74 | } | 74 | } |
75 | + container.setLastStatus(container.getStatus()); | ||
75 | container.setStatus(status); | 76 | container.setStatus(status); |
76 | boolean result = this.updateById(container); | 77 | boolean result = this.updateById(container); |
77 | return result; | 78 | return result; |
78 | } | 79 | } |
79 | 80 | ||
80 | @Override | 81 | @Override |
82 | + public boolean restoreContainer(String containerCode, String wareohuseCode) { | ||
83 | + Container container = this.getContainerByCode(containerCode, wareohuseCode); | ||
84 | + if (container == null) { | ||
85 | + return false; | ||
86 | + } | ||
87 | + container.setLastStatus(container.getStatus()); | ||
88 | + container.setStatus(container.getLastStatus()); | ||
89 | + boolean result = this.updateById(container); | ||
90 | + return result; | ||
91 | + } | ||
92 | + | ||
93 | + @Override | ||
81 | public boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode) { | 94 | public boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode) { |
82 | Container container = getContainerByCode(containerCode, warehouseCode); | 95 | Container container = getContainerByCode(containerCode, warehouseCode); |
83 | if (container == null) { | 96 | if (container == null) { |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/aspectj/ApiLogAspect.java
@@ -399,7 +399,7 @@ public class ApiLogAspect { | @@ -399,7 +399,7 @@ public class ApiLogAspect { | ||
399 | public static void setApiLogException(ApiLog log, Exception e) { | 399 | public static void setApiLogException(ApiLog log, Exception e) { |
400 | try { | 400 | try { |
401 | String exception = ExceptionUtils.getFullStackTrace(e); | 401 | String exception = ExceptionUtils.getFullStackTrace(e); |
402 | - String shortExpInfo = e.getMessage() + "\n" + org.apache.commons.lang3.StringUtils.left(exception, 1000) + "..."; | 402 | + String shortExpInfo = e.getMessage() + "\n" + org.apache.commons.lang3.StringUtils.left(exception, 2000) + "..."; |
403 | log.setException(shortExpInfo); | 403 | log.setException(shortExpInfo); |
404 | } catch (Exception ex) { | 404 | } catch (Exception ex) { |
405 | ex.printStackTrace(); | 405 | ex.printStackTrace(); |
@@ -409,7 +409,7 @@ public class ApiLogAspect { | @@ -409,7 +409,7 @@ public class ApiLogAspect { | ||
409 | public static void setApiLogThrowable(ApiLog log, Throwable e) { | 409 | public static void setApiLogThrowable(ApiLog log, Throwable e) { |
410 | try { | 410 | try { |
411 | String exception = ExceptionUtils.getFullStackTrace(e); | 411 | String exception = ExceptionUtils.getFullStackTrace(e); |
412 | - String shortExpInfo = e.getMessage() + "\n" + org.apache.commons.lang3.StringUtils.left(exception, 1000) + "..."; | 412 | + String shortExpInfo = e.getMessage() + "\n" + org.apache.commons.lang3.StringUtils.left(exception, 2000) + "..."; |
413 | log.setException(shortExpInfo); | 413 | log.setException(shortExpInfo); |
414 | } catch (Exception ex) { | 414 | } catch (Exception ex) { |
415 | ex.printStackTrace(); | 415 | ex.printStackTrace(); |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/framework/controller/HuahengBaseController.java
@@ -73,14 +73,14 @@ public class HuahengBaseController { | @@ -73,14 +73,14 @@ public class HuahengBaseController { | ||
73 | log.info("[{}] 开始分布式事务 lockKey = {},获取锁耗时: {}ms", taskName, fullLockKey, endTime - startTime); | 73 | log.info("[{}] 开始分布式事务 lockKey = {},获取锁耗时: {}ms", taskName, fullLockKey, endTime - startTime); |
74 | result = multiProcessListener.doProcess(); | 74 | result = multiProcessListener.doProcess(); |
75 | } catch (Exception e) { | 75 | } catch (Exception e) { |
76 | - final long finishTime = SystemClock.now(); | ||
77 | - throw new RuntimeException(StrUtil.format("[{}] 执行分布式事务失败 lockKey = {},事务耗时:{}ms", taskName, fullLockKey, finishTime - endTime), e); | 76 | + String errorMessage = StrUtil.format("[{}] 执行分布式事务失败 lockKey = {},errorMessage = {}", taskName, fullLockKey, e.getCause()); |
77 | + log.error(errorMessage, e); | ||
78 | + throw (RuntimeException)e; | ||
78 | } finally { | 79 | } finally { |
79 | redissonDistributedLocker.unlock(fullLockKey); | 80 | redissonDistributedLocker.unlock(fullLockKey); |
80 | final long finishTime = SystemClock.now(); | 81 | final long finishTime = SystemClock.now(); |
81 | log.info("[{}] 结束分布式事务 lockKey = {},事务耗时:{}ms", taskName, fullLockKey, finishTime - endTime); | 82 | log.info("[{}] 结束分布式事务 lockKey = {},事务耗时:{}ms", taskName, fullLockKey, finishTime - endTime); |
82 | } | 83 | } |
83 | - | ||
84 | return result; | 84 | return result; |
85 | } | 85 | } |
86 | } | 86 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/controller/InventoryHeaderController.java
@@ -12,6 +12,7 @@ import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; | @@ -12,6 +12,7 @@ import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; | ||
12 | import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader; | 12 | import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader; |
13 | import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; | 13 | import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; |
14 | import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryHeaderService; | 14 | import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryHeaderService; |
15 | +import org.jeecg.utils.constant.QuantityConstant; | ||
15 | import org.springframework.beans.factory.annotation.Autowired; | 16 | import org.springframework.beans.factory.annotation.Autowired; |
16 | import org.springframework.web.bind.annotation.*; | 17 | import org.springframework.web.bind.annotation.*; |
17 | import javax.servlet.http.HttpServletRequest; | 18 | import javax.servlet.http.HttpServletRequest; |
@@ -252,6 +253,29 @@ public class InventoryHeaderController extends JeecgController<InventoryHeader, | @@ -252,6 +253,29 @@ public class InventoryHeaderController extends JeecgController<InventoryHeader, | ||
252 | } | 253 | } |
253 | 254 | ||
254 | /** | 255 | /** |
256 | + * 有货非锁定列表查询 | ||
257 | + * @param inventoryHeader | ||
258 | + * @param pageNo | ||
259 | + * @param pageSize | ||
260 | + * @param req | ||
261 | + * @return | ||
262 | + */ | ||
263 | + // @AutoLog(value = "库存表-分页列表查询") | ||
264 | + @ApiOperation(value = "库存表-有货非锁定列表查询", notes = "库存表-有货非锁定列表查询") | ||
265 | + @GetMapping(value = "/freeList") | ||
266 | + public Result<IPage<InventoryHeader>> freeList(InventoryHeader inventoryHeader, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, | ||
267 | + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { | ||
268 | + | ||
269 | + | ||
270 | + | ||
271 | + QueryWrapper<InventoryHeader> queryWrapper = QueryGenerator.initQueryWrapper(inventoryHeader, req.getParameterMap()); | ||
272 | + queryWrapper.eq("container_status", QuantityConstant.STATUS_CONTAINER_SOME); | ||
273 | + Page<InventoryHeader> page = new Page<InventoryHeader>(pageNo, pageSize); | ||
274 | + IPage<InventoryHeader> pageList = inventoryHeaderService.page(page, queryWrapper); | ||
275 | + return Result.OK(pageList); | ||
276 | + } | ||
277 | + | ||
278 | + /** | ||
255 | * 导入 | 279 | * 导入 |
256 | * @return | 280 | * @return |
257 | */ | 281 | */ |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||
9 | import lombok.extern.slf4j.Slf4j; | 9 | import lombok.extern.slf4j.Slf4j; |
10 | import org.jeecg.common.system.base.controller.JeecgController; | 10 | import org.jeecg.common.system.base.controller.JeecgController; |
11 | import org.jeecg.common.api.vo.Result; | 11 | import org.jeecg.common.api.vo.Result; |
12 | +import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; | ||
12 | import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; | 13 | import org.jeecg.modules.wms.api.mobile.entity.QuickReceiptBean; |
13 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; | 14 | import org.jeecg.modules.wms.api.mobile.service.IMobileService; |
14 | import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; | 15 | import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; |
@@ -365,4 +366,17 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec | @@ -365,4 +366,17 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec | ||
365 | return mobileService.quickReceipt(bean, warehouseCode); | 366 | return mobileService.quickReceipt(bean, warehouseCode); |
366 | 367 | ||
367 | } | 368 | } |
369 | + | ||
370 | + @AutoLog(value = "PDA入库-呼叫料盒") | ||
371 | + @ApiOperation(value = "PDA入库-呼叫料盒", notes = "创建空的补充入库任务,并返回任务id") | ||
372 | + @PostMapping("/callbox") | ||
373 | + @ResponseBody | ||
374 | + @ApiLogger(apiName = "PDA入库-呼叫料盒", from = "PDA") | ||
375 | + public Result<?> callBox(@RequestBody CallBoxBean bean, HttpServletRequest req) { | ||
376 | + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | ||
377 | + | ||
378 | + // 补充入库类型 | ||
379 | + bean.setType(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT); | ||
380 | + return mobileService.callBox(bean, warehouseCode); | ||
381 | + } | ||
368 | } | 382 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java
@@ -20,12 +20,17 @@ import org.jeecg.common.system.query.QueryGenerator; | @@ -20,12 +20,17 @@ import org.jeecg.common.system.query.QueryGenerator; | ||
20 | import org.jeecg.common.system.vo.LoginUser; | 20 | import org.jeecg.common.system.vo.LoginUser; |
21 | import org.jeecg.common.util.oConvertUtils; | 21 | import org.jeecg.common.util.oConvertUtils; |
22 | import org.jeecg.modules.wms.api.erp.service.IErpService; | 22 | import org.jeecg.modules.wms.api.erp.service.IErpService; |
23 | +import org.jeecg.modules.wms.api.mobile.entity.CallBoxBean; | ||
24 | +import org.jeecg.modules.wms.api.mobile.service.IMobileService; | ||
25 | +import org.jeecg.modules.wms.framework.aspectj.lang.annotation.ApiLogger; | ||
26 | +import org.jeecg.modules.wms.framework.controller.HuahengBaseController; | ||
23 | import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; | 27 | import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; |
24 | import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; | 28 | import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; |
25 | import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentDetail; | 29 | import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentDetail; |
26 | import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader; | 30 | import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader; |
27 | import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailService; | 31 | import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailService; |
28 | import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService; | 32 | import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService; |
33 | +import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; | ||
29 | import org.jeecg.utils.HuahengJwtUtil; | 34 | import org.jeecg.utils.HuahengJwtUtil; |
30 | import org.jeecg.utils.constant.QuantityConstant; | 35 | import org.jeecg.utils.constant.QuantityConstant; |
31 | import org.jeecgframework.poi.excel.ExcelImportUtil; | 36 | import org.jeecgframework.poi.excel.ExcelImportUtil; |
@@ -60,6 +65,9 @@ import lombok.extern.slf4j.Slf4j; | @@ -60,6 +65,9 @@ import lombok.extern.slf4j.Slf4j; | ||
60 | @Slf4j | 65 | @Slf4j |
61 | public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IShipmentHeaderService> { | 66 | public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IShipmentHeaderService> { |
62 | 67 | ||
68 | + @Resource | ||
69 | + private IMobileService mobileService; | ||
70 | + | ||
63 | @Autowired | 71 | @Autowired |
64 | private IShipmentHeaderService shipmentHeaderService; | 72 | private IShipmentHeaderService shipmentHeaderService; |
65 | 73 | ||
@@ -355,4 +363,17 @@ public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IS | @@ -355,4 +363,17 @@ public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IS | ||
355 | Result result = erpService.backShipment(shipmentHeader); | 363 | Result result = erpService.backShipment(shipmentHeader); |
356 | return result; | 364 | return result; |
357 | } | 365 | } |
366 | + | ||
367 | + @AutoLog(value = "PDA出库-呼叫料盒") | ||
368 | + @ApiOperation(value = "PDA出库-呼叫料盒", notes = "创建空的分拣出库任务,并返回任务id") | ||
369 | + @PostMapping("/callbox") | ||
370 | + @ResponseBody | ||
371 | + @ApiLogger(apiName = "PDA出库-呼叫料盒", from = "PDA") | ||
372 | + public Result<TaskHeader> callBox(@RequestBody CallBoxBean bean, HttpServletRequest req) { | ||
373 | + String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); | ||
374 | + | ||
375 | + // 补充入库类型 | ||
376 | + bean.setType(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT); | ||
377 | + return mobileService.callBox(bean, warehouseCode); | ||
378 | + } | ||
358 | } | 379 | } |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java
@@ -4,6 +4,8 @@ import com.aliyun.oss.ServiceException; | @@ -4,6 +4,8 @@ import com.aliyun.oss.ServiceException; | ||
4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
5 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 5 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
6 | import org.jeecg.common.api.vo.Result; | 6 | import org.jeecg.common.api.vo.Result; |
7 | +import org.jeecg.modules.wms.config.container.entity.Container; | ||
8 | +import org.jeecg.modules.wms.config.container.service.impl.ContainerServiceImpl; | ||
7 | import org.jeecg.modules.wms.config.location.entity.Location; | 9 | import org.jeecg.modules.wms.config.location.entity.Location; |
8 | import org.jeecg.modules.wms.config.location.service.impl.LocationServiceImpl; | 10 | import org.jeecg.modules.wms.config.location.service.impl.LocationServiceImpl; |
9 | import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; | 11 | import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; |
@@ -32,6 +34,7 @@ import java.math.BigDecimal; | @@ -32,6 +34,7 @@ import java.math.BigDecimal; | ||
32 | import java.util.Date; | 34 | import java.util.Date; |
33 | import java.util.List; | 35 | import java.util.List; |
34 | import java.util.Collection; | 36 | import java.util.Collection; |
37 | +import java.util.stream.Stream; | ||
35 | 38 | ||
36 | /** | 39 | /** |
37 | * @Description: 盘点明细表 | 40 | * @Description: 盘点明细表 |
@@ -58,6 +61,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -58,6 +61,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
58 | private TaskDetailServiceImpl taskDetailService; | 61 | private TaskDetailServiceImpl taskDetailService; |
59 | @Resource | 62 | @Resource |
60 | private CycleCountHeaderServiceImpl cycleCountHeaderService; | 63 | private CycleCountHeaderServiceImpl cycleCountHeaderService; |
64 | + @Resource | ||
65 | + private ContainerServiceImpl containerServiceImpl; | ||
61 | 66 | ||
62 | 67 | ||
63 | @Override | 68 | @Override |
@@ -119,21 +124,20 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -119,21 +124,20 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
119 | inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getInventoryHeaderId,taskId); | 124 | inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getInventoryHeaderId,taskId); |
120 | List<InventoryDetail> inventoryDetails = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); | 125 | List<InventoryDetail> inventoryDetails = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); |
121 | 126 | ||
122 | -// LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
123 | -// locationLambdaQueryWrapper.eq(Location::getCode, inventoryDetails.get(0).getLocationCode()) | ||
124 | -// .eq(Location::getWarehouseCode, inventoryDetails.get(0).getWarehouseCode()) | ||
125 | -// .ne(Location::getStatus, QuantityConstant.STATUS_LOCATION_LOCK); | ||
126 | -// Location location = locationService.getOne(locationLambdaQueryWrapper); | ||
127 | -// if (StringUtils.isNull(location)) { | ||
128 | -// return Result.error("库位已锁定!"); | ||
129 | -// } | 127 | + |
128 | + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | ||
129 | + cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getContainerCode,inventoryDetails.get(0).getContainerCode()) | ||
130 | + .ne(CycleCountDetail::getEnableStatus,QuantityConstant.CYCLECOUNT_STATUS_COMPLETED); | ||
131 | + List<CycleCountDetail> cycleCountDetails = this.list(cycleCountDetailLambdaQueryWrapper); | ||
132 | + if (cycleCountDetails.size() >0) | ||
133 | + { | ||
134 | + return Result.error("当前容器已经在盘点队列还没有完成 盘点单号"+cycleCountDetails.get(0).getCycleCountHeadCode()); | ||
135 | + } | ||
130 | 136 | ||
131 | CycleCountDetail cycleCountDetail = new CycleCountDetail(); | 137 | CycleCountDetail cycleCountDetail = new CycleCountDetail(); |
132 | cycleCountDetail.setCycleCountHeadId(headerId); | 138 | cycleCountDetail.setCycleCountHeadId(headerId); |
133 | cycleCountDetail.setContainerCode(inventoryDetails.get(0).getContainerCode()); | 139 | cycleCountDetail.setContainerCode(inventoryDetails.get(0).getContainerCode()); |
134 | 140 | ||
135 | - | ||
136 | - | ||
137 | cycleCountDetail.setCycleCountHeadCode(code); | 141 | cycleCountDetail.setCycleCountHeadCode(code); |
138 | cycleCountDetail.setCompanyCode(inventoryDetails.get(0).getCompanyCode()); | 142 | cycleCountDetail.setCompanyCode(inventoryDetails.get(0).getCompanyCode()); |
139 | cycleCountDetail.setWarehouseCode(inventoryDetails.get(0).getWarehouseCode()); | 143 | cycleCountDetail.setWarehouseCode(inventoryDetails.get(0).getWarehouseCode()); |
@@ -198,14 +202,21 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -198,14 +202,21 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
198 | } | 202 | } |
199 | Location location = locationService.getLocationByCode( | 203 | Location location = locationService.getLocationByCode( |
200 | cycleCountDetail.getLocationCode(), warehouseCode); | 204 | cycleCountDetail.getLocationCode(), warehouseCode); |
201 | - /*if(!loc.getStatus().equals(QuantityConstant.STATUS_EMPTY)){ | ||
202 | - return AjaxResult.error(cycleCountDetail.getLocationCode() + "库位不在空闲状态,请先完成其他任务,操作失败!"); | ||
203 | - }*/ | 205 | + if(!location.getStatus().equals(QuantityConstant.STATUS_LOCATION_EMPTY)){ |
206 | + return Result.error(cycleCountDetail.getLocationCode() + "库位不在空闲状态,请先完成其他任务,操作失败!"); | ||
207 | + } | ||
204 | if(StringUtils.isEmpty(location.getContainerCode())){ | 208 | if(StringUtils.isEmpty(location.getContainerCode())){ |
205 | return Result.error(cycleCountDetail.getLocationCode() + "库位中没有容器,操作失败!"); | 209 | return Result.error(cycleCountDetail.getLocationCode() + "库位中没有容器,操作失败!"); |
206 | } | 210 | } |
211 | + | ||
207 | //生成任务同时锁定库位 | 212 | //生成任务同时锁定库位 |
208 | locationService.updateStatus(location.getCode(), QuantityConstant.STATUS_LOCATION_LOCK,warehouseCode); | 213 | locationService.updateStatus(location.getCode(), QuantityConstant.STATUS_LOCATION_LOCK,warehouseCode); |
214 | + | ||
215 | + //生成任务同时锁定容器 | ||
216 | + containerServiceImpl.updateStatus(location.getContainerCode(),QuantityConstant.STATUS_LOCATION_LOCK,warehouseCode); | ||
217 | + | ||
218 | + | ||
219 | + | ||
209 | //每个明细单生成一张主任务,子单就是任务明细。 | 220 | //每个明细单生成一张主任务,子单就是任务明细。 |
210 | TaskHeader task = new TaskHeader(); | 221 | TaskHeader task = new TaskHeader(); |
211 | task.setWarehouseCode(warehouseCode); | 222 | task.setWarehouseCode(warehouseCode); |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -1725,6 +1725,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea | @@ -1725,6 +1725,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea | ||
1725 | locationService.updateStatus(cycleCountDetail.getLocationCode(), | 1725 | locationService.updateStatus(cycleCountDetail.getLocationCode(), |
1726 | QuantityConstant.STATUS_LOCATION_EMPTY, taskHeader.getWarehouseCode()); | 1726 | QuantityConstant.STATUS_LOCATION_EMPTY, taskHeader.getWarehouseCode()); |
1727 | 1727 | ||
1728 | + | ||
1729 | + //还原容器状态 | ||
1730 | + containerService.restoreContainer(cycleCountDetail.getLocationCode(),taskHeader.getWarehouseCode()); | ||
1731 | + | ||
1728 | return Result.OK("完成盘点任务成功"); | 1732 | return Result.OK("完成盘点任务成功"); |
1729 | } | 1733 | } |
1730 | 1734 |
huaheng-wms-core/src/main/resources/application-dev.yml
@@ -191,7 +191,7 @@ jeecg: | @@ -191,7 +191,7 @@ jeecg: | ||
191 | #webapp文件路径 | 191 | #webapp文件路径 |
192 | webapp: /opt/webapp | 192 | webapp: /opt/webapp |
193 | shiro: | 193 | shiro: |
194 | - excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/sys/getWarehouseByUserCode,/test/test**,/api/wms/** | 194 | + excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/sys/getWarehouseByUserCode,/test/test**,/api/wms/**,/sys/cas/client/validateLogin |
195 | #阿里云oss存储和大鱼短信秘钥配置 | 195 | #阿里云oss存储和大鱼短信秘钥配置 |
196 | oss: | 196 | oss: |
197 | accessKey: ?? | 197 | accessKey: ?? |
@@ -269,14 +269,14 @@ jeecg: | @@ -269,14 +269,14 @@ jeecg: | ||
269 | enabled: true | 269 | enabled: true |
270 | #cas单点登录 | 270 | #cas单点登录 |
271 | cas: | 271 | cas: |
272 | - prefixUrl: http://cas.example.org:8443/cas | 272 | + prefixUrl: http://cas.server.com:8443/cas |
273 | #Mybatis输出sql日志 | 273 | #Mybatis输出sql日志 |
274 | logging: | 274 | logging: |
275 | level: | 275 | level: |
276 | - org.jeecg.common: WARN | ||
277 | - org.jeecg.modules: WARN | 276 | + org.jeecg.common: DEBUG |
277 | + org.jeecg.modules: DEBUG | ||
278 | org.jeecg.modules.wms: DEBUG | 278 | org.jeecg.modules.wms: DEBUG |
279 | - org.jeecg.config.shiro: INFO | 279 | + org.jeecg.config.shiro: DEBUG |
280 | #swagger | 280 | #swagger |
281 | knife4j: | 281 | knife4j: |
282 | #开启增强配置 | 282 | #开启增强配置 |
huaheng-wms-core/src/main/resources/application-prod.yml
@@ -189,7 +189,7 @@ jeecg: | @@ -189,7 +189,7 @@ jeecg: | ||
189 | #webapp文件路径 | 189 | #webapp文件路径 |
190 | webapp: /opt/jeecg-boot/webapp | 190 | webapp: /opt/jeecg-boot/webapp |
191 | shiro: | 191 | shiro: |
192 | - excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/sys/getWarehouseByUserCode,/test/test**,/api/wms/** | 192 | + excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/sys/getWarehouseByUserCode,/test/test**,/api/wms/**,/sys/cas/client/validateLogin |
193 | #阿里云oss存储和大鱼短信秘钥配置 | 193 | #阿里云oss存储和大鱼短信秘钥配置 |
194 | oss: | 194 | oss: |
195 | accessKey: ?? | 195 | accessKey: ?? |
@@ -258,7 +258,7 @@ jeecg: | @@ -258,7 +258,7 @@ jeecg: | ||
258 | enabled: true | 258 | enabled: true |
259 | #cas单点登录 | 259 | #cas单点登录 |
260 | cas: | 260 | cas: |
261 | - prefixUrl: http://cas.example.org:8443/cas | 261 | + prefixUrl: http://172.16.29.77:8443/cas |
262 | #Mybatis输出sql日志 | 262 | #Mybatis输出sql日志 |
263 | logging: | 263 | logging: |
264 | level: | 264 | level: |
huaheng-wms-core/src/main/resources/application-test.yml
@@ -191,7 +191,7 @@ jeecg: | @@ -191,7 +191,7 @@ jeecg: | ||
191 | #webapp文件路径 | 191 | #webapp文件路径 |
192 | webapp: /opt/webapp | 192 | webapp: /opt/webapp |
193 | shiro: | 193 | shiro: |
194 | - excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/sys/getWarehouseByUserCode,/test/test**,/api/wms/** | 194 | + excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/sys/getWarehouseByUserCode,/test/test**,/api/wms/**,/sys/cas/client/validateLogin |
195 | #阿里云oss存储和大鱼短信秘钥配置 | 195 | #阿里云oss存储和大鱼短信秘钥配置 |
196 | oss: | 196 | oss: |
197 | accessKey: ?? | 197 | accessKey: ?? |
@@ -270,12 +270,12 @@ jeecg: | @@ -270,12 +270,12 @@ jeecg: | ||
270 | enabled: true | 270 | enabled: true |
271 | #cas单点登录 | 271 | #cas单点登录 |
272 | cas: | 272 | cas: |
273 | - prefixUrl: http://cas.example.org:8443/cas | 273 | + prefixUrl: http://172.16.29.77:8443/cas |
274 | #Mybatis输出sql日志 | 274 | #Mybatis输出sql日志 |
275 | logging: | 275 | logging: |
276 | level: | 276 | level: |
277 | - org.jeecg.common: WARN | ||
278 | - org.jeecg.modules: WARN | 277 | + org.jeecg.common: DEBUG |
278 | + org.jeecg.modules: DEBUG | ||
279 | org.jeecg.modules.wms: DEBUG | 279 | org.jeecg.modules.wms: DEBUG |
280 | org.jeecg.config.shiro: DEBUG | 280 | org.jeecg.config.shiro: DEBUG |
281 | #swagger | 281 | #swagger |