Commit 09e076dd5446ec46d009730d05772600a55a17c1

Authored by 肖超群
2 parents 688f8233 60baf7e4

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 &#39;./JSelectBizQueryItem&#39; @@ -72,12 +72,13 @@ import JSelectBizQueryItem from &#39;./JSelectBizQueryItem&#39;
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&lt;Container&gt; { @@ -21,6 +21,8 @@ public interface IContainerService extends IService&lt;Container&gt; {
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&lt;ContainerMapper, Container @@ -72,12 +72,25 @@ public class ContainerServiceImpl extends ServiceImpl&lt;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&lt;InventoryHeader, @@ -252,6 +253,29 @@ public class InventoryHeaderController extends JeecgController&lt;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&lt;ReceiptHeader, IRec @@ -365,4 +366,17 @@ public class ReceiptHeaderController extends JeecgController&lt;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&lt;ShipmentHeader, IS @@ -355,4 +363,17 @@ public class ShipmentHeaderController extends JeecgController&lt;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&lt;CycleCountDetailMap @@ -58,6 +61,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;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&lt;CycleCountDetailMap @@ -119,21 +124,20 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;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&lt;CycleCountDetailMap @@ -198,14 +202,21 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;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&lt;TaskHeaderMapper, TaskHea @@ -1725,6 +1725,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;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