From 65539f6fb4d836180f784c2c4e0bc441764cd23f Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期一, 19 一月 2026 11:02:44 +0800
Subject: [PATCH] agv逻辑调整
---
src/main/java/com/zy/system/controller/UserController.java | 6
src/main/java/com/zy/asrs/task/handler/AgvHandler.java | 80 +++++-----
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 68 +++++++++
src/main/webapp/views/user/user.html | 16 ++
src/main/java/com/zy/system/entity/User.java | 28 ++++
src/main/resources/logback-spring.xml | 52 ++++++-
src/main/java/com/zy/asrs/task/AgvScheduler.java | 96 ++++++++-----
src/main/webapp/static/js/user/user.js | 43 ++++++
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 5
src/main/resources/mapper/UserMapper.xml | 1
10 files changed, 303 insertions(+), 92 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index c4c7790..5f49418 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -118,6 +118,11 @@
if (!Cools.isEmpty(param.getStatus())) {
switch (param.getStatus()) {
case "Assigned":
+ // AGV宸叉淳杞︼紝纭鎺ユ敹鍛戒护锛岃褰曠‘璁ゆ椂闂�
+ if (task.getPlcStrTime() == null) {
+ task.setPlcStrTime(new Date());
+// log.info("AGV宸茬‘璁ゆ帴鏀跺懡浠わ紝璁板綍纭鏃堕棿锛宼askId锛歿}", taskId);
+ }
if (Cools.isEmpty(robotGroup)) {
task.setInvWh(param.getRobotName());
}
diff --git a/src/main/java/com/zy/asrs/task/AgvScheduler.java b/src/main/java/com/zy/asrs/task/AgvScheduler.java
index cd317c9..4139ec6 100644
--- a/src/main/java/com/zy/asrs/task/AgvScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvScheduler.java
@@ -203,7 +203,10 @@
/**
* 妫�鏌GV浠诲姟瀵瑰簲鐨勫伐浣滄。鏄惁宸插畬鎴愭垨宸茶浆鍘嗗彶妗e苟瀹岀粨
- * 澶勭悊琚烦杩囩殑AGV浠诲姟锛氬鏋滃伐浣滄。宸插畬鎴愶紙wrk_sts=4,5,14,15锛夋垨宸茶浆鍘嗗彶妗e苟瀹岀粨锛屽垯瀹岀粨AGV浠诲姟
+ * 澶勭悊琚烦杩囩殑AGV浠诲姟锛�
+ * 1. 濡傛灉宸ヤ綔妗e凡瀹屾垚锛坵rk_sts=4,5,14,15锛夋垨宸茶浆鍘嗗彶妗e苟瀹岀粨锛屽垯瀹岀粨AGV浠诲姟
+ * 2. 濡傛灉宸ヤ綔妗e拰鍘嗗彶妗i兘娌℃湁鏁版嵁锛屼絾鏄疉GV宸茬‘璁ゆ帴鏀跺懡浠ゅ悗瓒呰繃1灏忔椂澶勪簬鎼繍涓紙鐘舵��8锛夛紝涔熺粨鏉烝GV浠诲姟
+ * 娉ㄦ剰锛氬彧鏈堿GV纭鎺ユ敹鍛戒护鍚庯紙plcStrTime涓嶄负绌猴級鎵嶅紑濮嬭鏃讹紝濡傛灉AGV鎺ュ彈鍛戒护澶辫触锛屼細缁х画鍛煎彨AGV
*/
@Scheduled(cron = "0/10 * * * * ? ")
private void checkCompletedTasksInHistory() {
@@ -216,7 +219,6 @@
new EntityWrapper<Task>()
.eq("task_type", "agv")
.eq("wrk_sts", 8L) // 宸插懠鍙獳GV鐘舵��
- .isNotNull("wrk_no")
);
if (agvTasks.isEmpty()) {
@@ -226,6 +228,8 @@
Date now = new Date();
int completedCount = 0;
List<Task> completedTasks = new ArrayList<>();
+ // 1灏忔椂鐨勬绉掓暟锛堜粠AGV纭鎺ユ敹鍛戒护寮�濮嬭鏃讹級
+ long oneHourInMillis = 60 * 60 * 1000L;
for (Task agvTask : agvTasks) {
boolean isCompleted = false;
@@ -237,6 +241,24 @@
wrkMast = wrkMastService.selectOne(
new EntityWrapper<WrkMast>().eq("wrk_no", agvTask.getWrkNo())
);
+ }
+
+ // 妫�鏌ュ巻鍙叉。鏄惁瀛樺湪锛堟棤璁哄伐浣滄。鏄惁瀛樺湪閮介渶瑕佹鏌ワ級
+ WrkMastLog wrkMastLog = null;
+ // 浼樺厛閫氳繃wrk_no鏌ヨ鍘嗗彶妗�
+ if (agvTask.getWrkNo() != null) {
+ wrkMastLog = wrkMastLogService.selectOne(
+ new EntityWrapper<WrkMastLog>().eq("wrk_no", agvTask.getWrkNo())
+ );
+ }
+ // 濡傛灉閫氳繃wrk_no娌℃壘鍒帮紝涓旀湁鏉$爜锛屽垯閫氳繃鏉$爜鏌ヨ
+ if (wrkMastLog == null && !Cools.isEmpty(agvTask.getBarcode())) {
+ List<WrkMastLog> logList = wrkMastLogService.selectList(
+ new EntityWrapper<WrkMastLog>().eq("barcode", agvTask.getBarcode())
+ );
+ if (!logList.isEmpty()) {
+ wrkMastLog = logList.get(0); // 鍙栫涓�涓�
+ }
}
// 濡傛灉宸ヤ綔妗e瓨鍦紝妫�鏌ユ槸鍚﹀凡瀹屾垚
@@ -258,47 +280,45 @@
reason = String.format("宸ヤ綔妗e凡瀹屾垚锛岀姸鎬侊細%d", wrkSts);
}
}
- } else {
- // 濡傛灉宸ヤ綔妗d笉瀛樺湪锛屾鏌ュ巻鍙叉。
- WrkMastLog wrkMastLog = null;
+ }
+
+ // 濡傛灉宸ヤ綔妗d笉瀛樺湪鎴栨湭瀹屾垚锛屾鏌ュ巻鍙叉。鏄惁宸插畬缁�
+ if (!isCompleted && wrkMastLog != null) {
+ Integer ioType = agvTask.getIoType();
+ long logWrkSts = wrkMastLog.getWrkSts();
- // 浼樺厛閫氳繃wrk_no鏌ヨ鍘嗗彶妗�
- if (agvTask.getWrkNo() != null) {
- wrkMastLog = wrkMastLogService.selectOne(
- new EntityWrapper<WrkMastLog>().eq("wrk_no", agvTask.getWrkNo())
- );
- }
-
- // 濡傛灉閫氳繃wrk_no娌℃壘鍒帮紝涓旀湁鏉$爜锛屽垯閫氳繃鏉$爜鏌ヨ
- if (wrkMastLog == null && !Cools.isEmpty(agvTask.getBarcode())) {
- List<WrkMastLog> logList = wrkMastLogService.selectList(
- new EntityWrapper<WrkMastLog>().eq("barcode", agvTask.getBarcode())
- );
- if (!logList.isEmpty()) {
- wrkMastLog = logList.get(0); // 鍙栫涓�涓�
+ if (ioType != null) {
+ // 鍏ュ簱浠诲姟锛氱姸鎬�5锛堝簱瀛樻洿鏂板畬鎴愶級
+ if ((ioType == 1 || ioType == 10 || ioType == 53 || ioType == 57) &&
+ logWrkSts == 5L) {
+ isCompleted = true;
+ reason = String.format("宸ヤ綔妗e凡杞巻鍙叉。骞跺畬缁擄紝鍘嗗彶妗g姸鎬侊細%d", logWrkSts);
+ }
+ // 鍑哄簱浠诲姟锛氱姸鎬�15锛堝嚭搴撴洿鏂板畬鎴愶級
+ else if ((ioType == 101 || ioType == 110 || ioType == 103 || ioType == 107) &&
+ logWrkSts == 15L) {
+ isCompleted = true;
+ reason = String.format("宸ヤ綔妗e凡杞巻鍙叉。骞跺畬缁擄紝鍘嗗彶妗g姸鎬侊細%d", logWrkSts);
}
}
+ }
+
+ // 濡傛灉宸ヤ綔妗e拰鍘嗗彶妗i兘娌℃湁鏁版嵁锛屾鏌ユ槸鍚﹁秴杩�1灏忔椂锛堜粠AGV纭鎺ユ敹鍛戒护寮�濮嬭鏃讹級
+ if (!isCompleted && wrkMast == null && wrkMastLog == null) {
+ // 鍙湁AGV纭鎺ユ敹鍛戒护鍚庯紙plcStrTime涓嶄负绌猴級鎵嶅紑濮嬭鏃�
+ // 濡傛灉plcStrTime涓虹┖锛岃鏄嶢GV杩樻病鏈夌‘璁ゆ帴鏀跺懡浠わ紝浼氱户缁懠鍙紝涓嶇粨鏉熶换鍔�
+ Date agvConfirmedTime = agvTask.getPlcStrTime();
- // 濡傛灉鍘嗗彶妗e瓨鍦ㄤ笖宸插畬缁擄紝鍒欏畬缁揂GV浠诲姟
- if (wrkMastLog != null) {
- Integer ioType = agvTask.getIoType();
- long logWrkSts = wrkMastLog.getWrkSts();
-
- if (ioType != null) {
- // 鍏ュ簱浠诲姟锛氱姸鎬�5锛堝簱瀛樻洿鏂板畬鎴愶級
- if ((ioType == 1 || ioType == 10 || ioType == 53 || ioType == 57) &&
- logWrkSts == 5L) {
- isCompleted = true;
- reason = String.format("宸ヤ綔妗e凡杞巻鍙叉。骞跺畬缁擄紝鍘嗗彶妗g姸鎬侊細%d", logWrkSts);
- }
- // 鍑哄簱浠诲姟锛氱姸鎬�15锛堝嚭搴撴洿鏂板畬鎴愶級
- else if ((ioType == 101 || ioType == 110 || ioType == 103 || ioType == 107) &&
- logWrkSts == 15L) {
- isCompleted = true;
- reason = String.format("宸ヤ綔妗e凡杞巻鍙叉。骞跺畬缁擄紝鍘嗗彶妗g姸鎬侊細%d", logWrkSts);
- }
+ if (agvConfirmedTime != null) {
+ long timeDiff = now.getTime() - agvConfirmedTime.getTime();
+ if (timeDiff >= oneHourInMillis) {
+ isCompleted = true;
+ long hours = timeDiff / (60 * 60 * 1000L);
+ long minutes = (timeDiff % (60 * 60 * 1000L)) / (60 * 1000L);
+ reason = String.format("宸ヤ綔妗e拰鍘嗗彶妗i兘涓嶅瓨鍦紝AGV纭鎺ユ敹鍛戒护鍚庤秴杩�1灏忔椂锛堝疄闄咃細%d灏忔椂%d鍒嗛挓锛夊浜庢惉杩愪腑锛岃嚜鍔ㄧ粨鏉�", hours, minutes);
}
}
+ // 濡傛灉plcStrTime涓虹┖锛岃鏄嶢GV杩樻病鏈夌‘璁ゆ帴鏀跺懡浠わ紝涓嶇粨鏉熶换鍔★紝缁х画绛夊緟鍛煎彨
}
// 濡傛灉宸插畬鎴愶紝鏇存柊AGV浠诲姟鐘舵�佸苟鏀堕泦鍒板垪琛�
@@ -325,7 +345,7 @@
}
if (completedCount > 0) {
- log.info("鏈妫�鏌ュ畬缁撲簡{}涓狝GV鍛煎彨鍗曪紙宸ヤ綔妗e凡瀹屾垚鎴栧凡杞巻鍙叉。锛�", completedCount);
+ log.info("鏈妫�鏌ュ畬缁撲簡{}涓狝GV鍛煎彨鍗曪紙宸ヤ綔妗e凡瀹屾垚鎴栧凡杞巻鍙叉。鎴栫‘璁ゆ帴鏀跺悗瓒呮椂锛�", completedCount);
}
} catch (Exception e) {
log.error("妫�鏌ュ伐浣滄。宸插畬鎴愭垨鍘嗗彶妗e畬缁撲换鍔″苟瀹岀粨AGV鍛煎彨鍗曞紓甯�", e);
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
index 7d8fa87..69db13d 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
@@ -80,7 +80,7 @@
for (Task task : taskList) {
// 濡傛灉浠诲姟鐘舵�佸凡缁忔槸8锛堝凡鍛煎彨AGV锛屾鍦ㄦ惉杩愶級锛屽垯涓嶅啀鍙戦�佹寚浠�
if (task.getWrkSts() != null && task.getWrkSts() == 8L) {
- log.debug("浠诲姟ID锛歿}鐘舵�佸凡鏄�8锛堟鍦ㄦ惉杩愶級锛岃烦杩囧彂閫�", task.getId());
+ // log.debug("浠诲姟ID锛歿}鐘舵�佸凡鏄�8锛堟鍦ㄦ惉杩愶級锛岃烦杩囧彂閫�", task.getId());
continue;
}
@@ -90,7 +90,7 @@
String errorMsg = allocateSiteForTask(task);
if (errorMsg != null) {
// 鏃犳硶鍒嗛厤绔欑偣锛屽彧鍦ㄦ棩蹇椾腑璁板綍锛屼笉璁板綍鍒颁换鍔′腑锛坅pp涓嶉渶瑕佺煡閬擄級
- log.warn("浠诲姟ID锛歿}鏃犳硶鍒嗛厤绔欑偣锛歿}", task.getId(), errorMsg);
+ // log.warn("浠诲姟ID锛歿}鏃犳硶鍒嗛厤绔欑偣锛歿}", task.getId(), errorMsg);
continue;
}
// 妫�鏌ユ槸鍚︽垚鍔熷垎閰嶄簡绔欑偣锛堝鏋滆繑鍥瀗ull涓攕taNo浠嶄负绌猴紝璇存槑鎵�鏈夌珯鐐归兘鍦ㄦ惉杩愶紝绛夊緟涓嬫鍐嶈瘯锛�
@@ -99,7 +99,7 @@
// 鎵�鏈夌珯鐐归兘鍦ㄦ惉杩愶紝鏆備笉鍒嗛厤锛岀瓑寰呬笅娆″畾鏃朵换鍔″啀灏濊瘯
continue;
}
- log.info("浠诲姟ID锛歿}宸插垎閰嶇珯鐐癸細{}", task.getId(), staNo);
+ // log.info("浠诲姟ID锛歿}宸插垎閰嶇珯鐐癸細{}", task.getId(), staNo);
}
// 妫�鏌ョ洰鏍囩珯鐐规槸鍚︽湁鏁堬紙涓嶄负0涓斿瓨鍦級
@@ -108,18 +108,18 @@
Integer siteNo = Integer.parseInt(staNo);
// 妫�鏌ョ珯鐐规槸鍚︿负0锛堟棤鏁堢珯鐐癸級锛屽鏋滄槸0鍒欎笉鍙戦�侊紝浣嗕笉娓呯┖绔欑偣
if (siteNo == null || siteNo == 0) {
- log.warn("浠诲姟ID锛歿}鐨勭洰鏍囩珯鐐箋}鏃犳晥锛堜负0锛夛紝璺宠繃鍙戦�侊紝淇濈暀绔欑偣鍒嗛厤", task.getId(), staNo);
+ // log.warn("浠诲姟ID锛歿}鐨勭洰鏍囩珯鐐箋}鏃犳晥锛堜负0锛夛紝璺宠繃鍙戦�侊紝淇濈暀绔欑偣鍒嗛厤", task.getId(), staNo);
continue;
}
List<BasDevp> basDevpList = basDevpMapper.selectList(new EntityWrapper<BasDevp>().eq("dev_no", siteNo));
if (basDevpList == null || basDevpList.isEmpty()) {
// 绔欑偣涓嶅瓨鍦紝璺宠繃鍙戦�侊紝涓嶆竻绌虹珯鐐�
- log.warn("浠诲姟ID锛歿}鐨勭洰鏍囩珯鐐箋}涓嶅瓨鍦紝璺宠繃鍙戦�侊紝淇濈暀绔欑偣鍒嗛厤", task.getId(), staNo);
+ // log.warn("浠诲姟ID锛歿}鐨勭洰鏍囩珯鐐箋}涓嶅瓨鍦紝璺宠繃鍙戦�侊紝淇濈暀绔欑偣鍒嗛厤", task.getId(), staNo);
continue;
}
} catch (NumberFormatException e) {
// 绔欑偣鏍煎紡閿欒锛岃烦杩囧彂閫侊紝涓嶆竻绌虹珯鐐�
- log.warn("浠诲姟ID锛歿}鐨勭洰鏍囩珯鐐箋}鏍煎紡閿欒锛岃烦杩囧彂閫侊紝淇濈暀绔欑偣鍒嗛厤", task.getId(), staNo);
+ // log.warn("浠诲姟ID锛歿}鐨勭洰鏍囩珯鐐箋}鏍煎紡閿欒锛岃烦杩囧彂閫侊紝淇濈暀绔欑偣鍒嗛厤", task.getId(), staNo);
continue;
}
} else {
@@ -155,8 +155,8 @@
);
if (!transportingTasks.isEmpty()) {
- log.info("绔欑偣{}鏈墈}涓鍦ㄦ惉杩愮殑{}AGV浠诲姟锛岃烦杩囧綋鍓嶄换鍔D锛歿}",
- staNo, transportingTasks.size(), taskType, task.getId());
+ // log.info("绔欑偣{}鏈墈}涓鍦ㄦ惉杩愮殑{}AGV浠诲姟锛岃烦杩囧綋鍓嶄换鍔D锛歿}",
+ // staNo, transportingTasks.size(), taskType, task.getId());
continue;
}
}
@@ -193,8 +193,8 @@
// 濡傛灉閲嶈瘯娆℃暟宸茶揪鍒版渶澶у�硷紝璺宠繃鏈鍙戦��
if (retryEnabled && currentRetryCount >= maxRetryCount) {
- log.warn("{}鍛煎彨agv鎼繍 - 浠诲姟ID锛歿}宸茶揪鍒版渶澶ч噸璇曟鏁帮紙{}锛夛紝鍋滄閲嶈瘯",
- namespace, task.getId(), maxRetryCount);
+ // log.warn("{}鍛煎彨agv鎼繍 - 浠诲姟ID锛歿}宸茶揪鍒版渶澶ч噸璇曟鏁帮紙{}锛夛紝鍋滄閲嶈瘯",
+ // namespace, task.getId(), maxRetryCount);
// 璁板綍鏈�缁堝け璐ヤ俊鎭�
task.setErrorTime(new Date());
task.setErrorMemo(String.format("AGV鍛煎彨澶辫触锛屽凡杈惧埌鏈�澶ч噸璇曟鏁帮紙%d娆★級", maxRetryCount));
@@ -203,12 +203,12 @@
}
// 鎵撳嵃璇锋眰淇℃伅锛堝寘鍚噸璇曟鏁帮級
- if (currentRetryCount > 0) {
- log.info("{}鍛煎彨agv鎼繍锛堢{}娆¢噸璇曪級 - 璇锋眰鍦板潃锛歿}", namespace, currentRetryCount + 1, url);
- } else {
- log.info("{}鍛煎彨agv鎼繍 - 璇锋眰鍦板潃锛歿}", namespace, url);
- }
- log.info("{}鍛煎彨agv鎼繍 - 璇锋眰鍙傛暟锛歿}", namespace, body);
+ // if (currentRetryCount > 0) {
+ // log.info("{}鍛煎彨agv鎼繍锛堢{}娆¢噸璇曪級 - 璇锋眰鍦板潃锛歿}", namespace, currentRetryCount + 1, url);
+ // } else {
+ // log.info("{}鍛煎彨agv鎼繍 - 璇锋眰鍦板潃锛歿}", namespace, url);
+ // }
+ // log.info("{}鍛煎彨agv鎼繍 - 璇锋眰鍙傛暟锛歿}", namespace, body);
try {
// 浣跨敤浠欏伐M4鎺ュ彛
@@ -219,12 +219,12 @@
.build()
.doPost();
// 鎵撳嵃杩斿洖鍙傛暟
- log.info("{}鍛煎彨agv鎼繍 - 杩斿洖鍙傛暟锛歿}", namespace, response);
+ // log.info("{}鍛煎彨agv鎼繍 - 杩斿洖鍙傛暟锛歿}", namespace, response);
// 妫�鏌ュ搷搴旀槸鍚︿负绌�
if (response == null || response.trim().isEmpty()) {
String errorMsg = "AGV鎺ュ彛杩斿洖涓虹┖";
- log.error("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛寋}", namespace, task.getId(), errorMsg);
+ // log.error("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛寋}", namespace, task.getId(), errorMsg);
handleCallFailure(task, namespace, errorMsg, retryEnabled, maxRetryCount, currentRetryCount);
continue;
}
@@ -232,7 +232,7 @@
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject == null) {
String errorMsg = "鍝嶅簲JSON瑙f瀽澶辫触锛屽搷搴斿唴瀹癸細" + response;
- log.error("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛寋}", namespace, task.getId(), errorMsg);
+ // log.error("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛寋}", namespace, task.getId(), errorMsg);
handleCallFailure(task, namespace, errorMsg, retryEnabled, maxRetryCount, currentRetryCount);
continue;
}
@@ -246,17 +246,17 @@
task.setErrorTime(null);
task.setErrorMemo(null);
taskService.updateById(task);
- log.info("{}鍛煎彨agv鎼繍鎴愬姛 - 浠诲姟ID锛歿}", namespace, task.getId());
+ // log.info("{}鍛煎彨agv鎼繍鎴愬姛 - 浠诲姟ID锛歿}", namespace, task.getId());
} else {
String message = jsonObject.getString("message");
String errorMsg = String.format("閿欒鐮侊細%s锛岄敊璇俊鎭細%s", code, message);
- log.error("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛寋}", namespace, task.getId(), errorMsg);
+ // log.error("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛寋}", namespace, task.getId(), errorMsg);
handleCallFailure(task, namespace, errorMsg, retryEnabled, maxRetryCount, currentRetryCount);
}
} catch (Exception e) {
String errorMsg = "寮傚父淇℃伅锛�" + e.getMessage();
- log.error("{}鍛煎彨agv鎼繍寮傚父 - 浠诲姟ID锛歿}锛岃姹傚湴鍧�锛歿}锛岃姹傚弬鏁帮細{}锛寋}",
- namespace, task.getId(), url, body, errorMsg, e);
+ // log.error("{}鍛煎彨agv鎼繍寮傚父 - 浠诲姟ID锛歿}锛岃姹傚湴鍧�锛歿}锛岃姹傚弬鏁帮細{}锛寋}",
+ // namespace, task.getId(), url, body, errorMsg, e);
handleCallFailure(task, namespace, errorMsg, retryEnabled, maxRetryCount, currentRetryCount);
} finally {
try {
@@ -271,7 +271,7 @@
success
);
} catch (Exception e) {
- log.error(namespace + "鍛煎彨agv淇濆瓨鎺ュ彛鏃ュ織寮傚父:", e);
+ // log.error(namespace + "鍛煎彨agv淇濆瓨鎺ュ彛鏃ュ織寮傚父:", e);
}
}
}
@@ -295,8 +295,8 @@
task.setErrorTime(new Date());
task.setErrorMemo(String.format("AGV鍛煎彨澶辫触锛堢%d娆¢噸璇曪級锛�%s", newRetryCount, errorMsg));
taskService.updateById(task);
- log.info("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛屽凡閲嶈瘯{}娆★紝灏嗗湪涓嬫瀹氭椂浠诲姟鏃剁户缁噸璇曪紙鏈�澶歿}娆★級",
- namespace, task.getId(), newRetryCount, maxRetryCount);
+ // log.info("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛屽凡閲嶈瘯{}娆★紝灏嗗湪涓嬫瀹氭椂浠诲姟鏃剁户缁噸璇曪紙鏈�澶歿}娆★級",
+ // namespace, task.getId(), newRetryCount, maxRetryCount);
} else {
// 涓嶅惎鐢ㄩ噸璇曟垨宸茶揪鍒版渶澶ч噸璇曟鏁帮紝鍋滄閲嶈瘯
task.setErrorTime(new Date());
@@ -306,8 +306,8 @@
task.setErrorMemo(String.format("AGV鍛煎彨澶辫触锛堥噸璇曟湭鍚敤锛夛細%s", errorMsg));
}
taskService.updateById(task);
- log.warn("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛屽仠姝㈤噸璇曘�傞敊璇俊鎭細{}",
- namespace, task.getId(), errorMsg);
+ // log.warn("{}鍛煎彨agv鎼繍澶辫触 - 浠诲姟ID锛歿}锛屽仠姝㈤噸璇曘�傞敊璇俊鎭細{}",
+ // namespace, task.getId(), errorMsg);
}
}
@@ -390,7 +390,7 @@
fromBin = task.getSourceStaNo();
}
if (fromBin == null || fromBin.isEmpty() || "0".equals(fromBin)) {
- log.warn("浠诲姟{}鐨勬簮搴撲綅鍜屾簮绔欑偣閮戒负绌猴紝浣跨敤榛樿鍊�", task.getId());
+ // log.warn("浠诲姟{}鐨勬簮搴撲綅鍜屾簮绔欑偣閮戒负绌猴紝浣跨敤榛樿鍊�", task.getId());
fromBin = "0";
}
object.put("fromBin", fromBin);
@@ -449,12 +449,12 @@
// 榛樿浣跨敤涓滀晶
targetStations = agvProperties.getEastStations();
groupKey = "east";
- log.warn("浠诲姟ID锛歿}鐨勬満鍣ㄤ汉缁剓}鏈瘑鍒紝浣跨敤榛樿涓滀晶绔欑偣", task.getId(), robotGroup);
+ // log.warn("浠诲姟ID锛歿}鐨勬満鍣ㄤ汉缁剓}鏈瘑鍒紝浣跨敤榛樿涓滀晶绔欑偣", task.getId(), robotGroup);
}
if (targetStations.isEmpty()) {
String errorMsg = "娌℃湁鍙敤鐨勭洰鏍囩珯鐐归厤缃�";
- log.warn("浠诲姟ID锛歿}", errorMsg, task.getId());
+ // log.warn("浠诲姟ID锛歿}", errorMsg, task.getId());
return errorMsg;
}
@@ -476,7 +476,7 @@
if (sites.isEmpty()) {
String errorMsg = "娌℃湁鑳藉叆绔欑偣";
- log.warn("浠诲姟ID锛歿}", errorMsg, task.getId());
+ // log.warn("浠诲姟ID锛歿}", errorMsg, task.getId());
return errorMsg;
}
@@ -492,7 +492,7 @@
if (devListWithConfig.isEmpty()) {
// 绔欑偣閰嶇疆涓嶅厑璁稿叆搴擄紙canining != "Y"锛夛紝鏆備笉鍒嗛厤锛岀瓑寰呴厤缃紑閫氾紙鍙湪瀹氭椂浠诲姟涓褰曟棩蹇楋級
- log.warn("浠诲姟ID锛歿}娌℃湁鍙叆绔欑偣锛堢珯鐐规湭寮�閫氬彲鍏ュ厑璁革細canining='Y'锛夛紝鏆備笉鍒嗛厤绔欑偣锛岀瓑寰呴厤缃紑閫�", task.getId());
+ // log.warn("浠诲姟ID锛歿}娌℃湁鍙叆绔欑偣锛堢珯鐐规湭寮�閫氬彲鍏ュ厑璁革細canining='Y'锛夛紝鏆備笉鍒嗛厤绔欑偣锛岀瓑寰呴厤缃紑閫�", task.getId());
return null; // 杩斿洖null锛岃〃绀烘殏涓嶅垎閰嶏紝绛夊緟閰嶇疆寮�閫�
}
@@ -503,7 +503,7 @@
List<Integer> canInSites = basDevpMapper.getCanInSites(configuredSites);
if (canInSites.isEmpty()) {
// 鎵�鏈夊凡閰嶇疆鍙叆鐨勭珯鐐归兘鏈夊嚭搴撲换鍔★紝鏆備笉鍒嗛厤锛岀瓑寰呬笅娆″畾鏃朵换鍔″啀灏濊瘯锛堝彧鍦ㄥ畾鏃朵换鍔′腑璁板綍鏃ュ織锛�
- log.warn("浠诲姟ID锛歿}娌℃湁鍙叆绔欑偣锛堣绛夊緟鍑哄簱瀹屾垚锛夛紝鏆備笉鍒嗛厤绔欑偣锛岀瓑寰呬笅娆″畾鏃朵换鍔″啀灏濊瘯", task.getId());
+ // log.warn("浠诲姟ID锛歿}娌℃湁鍙叆绔欑偣锛堣绛夊緟鍑哄簱瀹屾垚锛夛紝鏆備笉鍒嗛厤绔欑偣锛岀瓑寰呬笅娆″畾鏃朵换鍔″啀灏濊瘯", task.getId());
return null; // 杩斿洖null锛岃〃绀烘殏涓嶅垎閰嶏紝绛夊緟涓嬫瀹氭椂浠诲姟鍐嶅皾璇�
}
@@ -520,7 +520,7 @@
if (devList.isEmpty()) {
// 鐞嗚涓婁笉搴旇鍒拌繖閲岋紝鍥犱负鍓嶉潰宸茬粡妫�鏌ヨ繃浜嗭紝浣嗕负浜嗗畨鍏ㄨ捣瑙佽繕鏄繚鐣�
String errorMsg = "娌℃湁鍙叆绔欑偣锛坕n_enable='Y'涓攃anining='Y'锛�";
- log.warn("浠诲姟ID锛歿}", errorMsg, task.getId());
+ // log.warn("浠诲姟ID锛歿}", errorMsg, task.getId());
return errorMsg;
}
@@ -599,15 +599,15 @@
isTransporting = !transportingTasks.isEmpty();
if (isTransporting) {
- log.debug("绔欑偣{}鏈墈}涓鍦ㄦ惉杩愮殑{}AGV浠诲姟锛屾鏌ヤ笅涓�涓珯鐐�",
- staNo, transportingTasks.size(), taskTypeName);
+ // log.debug("绔欑偣{}鏈墈}涓鍦ㄦ惉杩愮殑{}AGV浠诲姟锛屾鏌ヤ笅涓�涓珯鐐�",
+ // staNo, transportingTasks.size(), taskTypeName);
continue; // 璇ョ珯鐐规鍦ㄦ惉杩愶紝妫�鏌ヤ笅涓�涓珯鐐�
}
}
// 鎵惧埌绗竴涓┖闂茬珯鐐癸紝鍒嗛厤
selectedSite = dev;
- log.info("浠诲姟ID锛歿}鎸夎鍒欏簲鍒嗛厤鍒扮珯鐐箋}锛岃绔欑偣绌洪棽锛屽垎閰嶆垚鍔�", task.getId(), staNo);
+ // log.info("浠诲姟ID锛歿}鎸夎鍒欏簲鍒嗛厤鍒扮珯鐐箋}锛岃绔欑偣绌洪棽锛屽垎閰嶆垚鍔�", task.getId(), staNo);
break;
}
@@ -623,7 +623,7 @@
// 妫�鏌ョ珯鐐规槸鍚︽湁鏁堬紙涓嶈兘涓�0鎴杗ull锛�
if (endSite == null || endSite == 0) {
String errorMsg = String.format("鍒嗛厤鐨勭珯鐐规棤鏁堬紙dev_no=%s锛�", endSite);
- log.error("浠诲姟ID锛歿}锛寋}", task.getId(), errorMsg);
+ // log.error("浠诲姟ID锛歿}锛寋}", task.getId(), errorMsg);
return errorMsg;
}
@@ -634,7 +634,7 @@
task.setStaNo(String.valueOf(endSite));
taskService.updateById(task);
- log.info("浠诲姟ID锛歿}宸插垎閰嶇珯鐐癸細{}", task.getId(), endSite);
+ // log.info("浠诲姟ID锛歿}宸插垎閰嶇珯鐐癸細{}", task.getId(), endSite);
return null; // 鍒嗛厤鎴愬姛锛岃繑鍥瀗ull
}
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 399614d..b8114ca 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -629,9 +629,40 @@
public ReturnT<String> agvDoOut(Task task) {
if (task.getIoType().equals(101)) {
Date now = new Date();
+
+ // 妫�鏌ourceLocNo鏄惁涓虹┖
+ if (task.getSourceLocNo() == null || task.getSourceLocNo().isEmpty()) {
+// log.warn("浠诲姟ID锛歿}鐨剆ourceLocNo涓虹┖锛岃烦杩囧簱浣嶆搷浣滐紙鍙兘鏄粠绔欑偣鍏ュ簱鐨勪换鍔★級", task.getId());
+ task.setWrkSts(15L);
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+
+ // 鏌ヨ搴撲綅淇℃伅
LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", task.getSourceLocNo()));
if (Objects.isNull(locMast)) {
- throw new RuntimeException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉鑳戒负绌猴紒锛�");
+ // 濡傛灉鏌ヨ涓嶅埌搴撲綅锛屽彲鑳芥槸sourceLocNo鏄珯鐐瑰彿鑰屼笉鏄簱浣嶅彿
+ // 妫�鏌asDevp琛ㄤ腑鏄惁瀛樺湪璇ョ珯鐐�
+ try {
+ Integer siteNo = Integer.parseInt(task.getSourceLocNo());
+ List<BasDevp> basDevpList = basDevpMapper.selectList(new EntityWrapper<BasDevp>().eq("dev_no", siteNo));
+ if (basDevpList != null && !basDevpList.isEmpty()) {
+ // sourceLocNo鏄珯鐐瑰彿锛岃繖鏄粠绔欑偣鍏ュ簱鐨勪换鍔★紝涓嶉渶瑕佸鐞嗗簱浣�
+// log.info("浠诲姟ID锛歿}鐨剆ourceLocNo鏄珯鐐瑰彿锛歿}锛岃烦杩囧簱浣嶆搷浣滐紙浠庣珯鐐瑰叆搴撲换鍔★級", task.getId(), task.getSourceLocNo());
+ task.setWrkSts(15L);
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+ } catch (NumberFormatException e) {
+ // sourceLocNo涓嶆槸鏁板瓧锛屽彲鑳芥槸搴撲綅鍙锋牸寮忛敊璇�
+ log.warn("浠诲姟ID锛歿}鐨剆ourceLocNo锛歿}涓嶆槸鏈夋晥鐨勬暟瀛楁牸寮�", task.getId(), task.getSourceLocNo());
+ }
+ // 鏃笉鏄簱浣嶄篃涓嶆槸绔欑偣锛屾姏鍑哄紓甯�
+ throw new RuntimeException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉鑳戒负绌猴紒锛佷换鍔D锛�" + task.getId() + "锛宻ourceLocNo锛�" + task.getSourceLocNo());
}
List<TaskDetl> wrkDetls101 = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
if (wrkDetls101.isEmpty()) {
@@ -1182,9 +1213,42 @@
if (ioType == 1 || ioType == 10 || ioType == 53 || ioType == 57) {
// ioType == 1 闇�瑕佸鐞嗙粍鎵樻暟鎹�
if (ioType == 1) {
+ // 妫�鏌ocNo鏄惁涓虹┖
+ if (wrkMast.getLocNo() == null || wrkMast.getLocNo().isEmpty()) {
+ log.warn("浠诲姟ID锛歿}鐨刲ocNo涓虹┖锛岃烦杩囧簱浣嶆搷浣滐紙鍙兘鏄粠绔欑偣鍏ュ簱鐨勪换鍔★級", wrkMast.getId());
+ // 鏇存柊浠诲姟鐘舵�佷负5锛堝簱瀛樻洿鏂板畬鎴愶級
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(new Date());
+ if (!taskService.updateById(wrkMast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+
LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
if (Objects.isNull(locCache)) {
- throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒");
+ // 濡傛灉鏌ヨ涓嶅埌搴撲綅锛屽彲鑳芥槸locNo鏄珯鐐瑰彿鑰屼笉鏄簱浣嶅彿
+ // 妫�鏌asDevp琛ㄤ腑鏄惁瀛樺湪璇ョ珯鐐�
+ try {
+ Integer siteNo = Integer.parseInt(wrkMast.getLocNo());
+ List<BasDevp> basDevpList = basDevpMapper.selectList(new EntityWrapper<BasDevp>().eq("dev_no", siteNo));
+ if (basDevpList != null && !basDevpList.isEmpty()) {
+ // locNo鏄珯鐐瑰彿锛岃繖鏄粠绔欑偣鍏ュ簱鐨勪换鍔★紝涓嶉渶瑕佸鐞嗗簱浣嶆槑缁�
+ log.info("浠诲姟ID锛歿}鐨刲ocNo鏄珯鐐瑰彿锛歿}锛岃烦杩囧簱浣嶆搷浣滐紙浠庣珯鐐瑰叆搴撲换鍔★級", wrkMast.getId(), wrkMast.getLocNo());
+ // 鏇存柊浠诲姟鐘舵�佷负5锛堝簱瀛樻洿鏂板畬鎴愶級
+ wrkMast.setWrkSts(5L);
+ wrkMast.setModiTime(new Date());
+ if (!taskService.updateById(wrkMast)) {
+ throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+ return SUCCESS;
+ }
+ } catch (NumberFormatException e) {
+ // locNo涓嶆槸鏁板瓧锛屽彲鑳芥槸搴撲綅鍙锋牸寮忛敊璇�
+ log.warn("浠诲姟ID锛歿}鐨刲ocNo锛歿}涓嶆槸鏈夋晥鐨勬暟瀛楁牸寮�", wrkMast.getId(), wrkMast.getLocNo());
+ }
+ // 鏃笉鏄簱浣嶄篃涓嶆槸绔欑偣锛屾姏鍑哄紓甯�
+ throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒浠诲姟ID锛�" + wrkMast.getId() + "锛宭ocNo锛�" + wrkMast.getLocNo());
}
if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) {
throw new CoolException("褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�");
diff --git a/src/main/java/com/zy/system/controller/UserController.java b/src/main/java/com/zy/system/controller/UserController.java
index 72b7101..f7a0b4d 100644
--- a/src/main/java/com/zy/system/controller/UserController.java
+++ b/src/main/java/com/zy/system/controller/UserController.java
@@ -120,6 +120,12 @@
if (user.getDeptId() != null) {
entity.setDeptId(user.getDeptId());
}
+ if (user.getAdLogin() != null) {
+ entity.setAdLogin(user.getAdLogin());
+ }
+ if (user.getEmail() != null) {
+ entity.setEmail(user.getEmail());
+ }
userService.updateById(entity);
return R.ok();
}
diff --git a/src/main/java/com/zy/system/entity/User.java b/src/main/java/com/zy/system/entity/User.java
index 1ebf235..d8a463e 100644
--- a/src/main/java/com/zy/system/entity/User.java
+++ b/src/main/java/com/zy/system/entity/User.java
@@ -92,6 +92,12 @@
*/
private Integer status;
+ /**
+ * AD鐧诲綍 1: 鍚敤 0: 绂佺敤
+ */
+ @TableField("ad_login")
+ private Integer adLogin;
+
public Long getId() {
return id;
}
@@ -260,4 +266,26 @@
this.status = status;
}
+ public Integer getAdLogin() {
+ return adLogin;
+ }
+
+ public void setAdLogin(Integer adLogin) {
+ this.adLogin = adLogin;
+ }
+
+ public String getAdLogin$() {
+ if (null == this.adLogin) {
+ return "绂佺敤";
+ }
+ switch (this.adLogin) {
+ case 1:
+ return "鍚敤";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.adLogin);
+ }
+ }
+
}
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index fb78c11..089a235 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -10,9 +10,10 @@
<property name="CONSOLE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(-%5p) ${PID:-} [%15.15t] %-40.40logger{39} : %m%n">
</property>
- <property name="LOG_PATH" value="/stock/out/wms/logs"/>
+ <!-- 鏃ュ織璺緞锛欴鐩橈紙Windows鐜锛夛紝Linux鐜浣跨敤/stock/out/wms/logs -->
+ <property name="LOG_PATH" value="D:/stock/out/wms/logs"/>
- <!--鎺у埗鍙�-->
+ <!--鎺у埗鍙拌緭鍑�-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
@@ -20,23 +21,27 @@
</encoder>
</appender>
- <!--info绾у埆-->
+ <!--INFO绾у埆鏃ュ織-->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/info_%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <maxHistory>10</maxHistory>
+ <!-- 淇濈暀15澶� -->
+ <maxHistory>15</maxHistory>
+ <!-- 鎬诲ぇ灏忛檺鍒�15GB锛堥槻姝㈡棩蹇楀崰鐢ㄨ繃澶氱┖闂达級 -->
+ <totalSizeCap>15GB</totalSizeCap>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>10MB</maxFileSize>
+ <!-- 鍗曚釜鏂囦欢100MB锛堝噺灏戞枃浠舵暟閲忥級 -->
+ <maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
- <!--error绾у埆-->
+ <!--ERROR绾у埆鏃ュ織-->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
@@ -44,13 +49,39 @@
<file>${LOG_PATH}/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/error_%d{yyyy-MM-dd}.%i.log</FileNamePattern>
- <maxHistory>10</maxHistory>
+ <!-- 閿欒鏃ュ織淇濈暀30澶� -->
+ <maxHistory>30</maxHistory>
+ <!-- 閿欒鏃ュ織鎬诲ぇ灏忛檺鍒�5GB -->
+ <totalSizeCap>5GB</totalSizeCap>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>10MB</maxFileSize>
+ <maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ <charset>UTF-8</charset>
+ </encoder>
+ </appender>
+
+ <!--WARN绾у埆鏃ュ織锛堝彲閫夛級-->
+ <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>WARN</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ <file>${LOG_PATH}/warn.log</file>
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <FileNamePattern>${LOG_PATH}/warn_%d{yyyy-MM-dd}.%i.log</FileNamePattern>
+ <!-- 璀﹀憡鏃ュ織淇濈暀15澶� -->
+ <maxHistory>15</maxHistory>
+ <totalSizeCap>2GB</totalSizeCap>
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>50MB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
@@ -59,5 +90,6 @@
<appender-ref ref="CONSOLE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="ERROR_FILE"/>
+ <appender-ref ref="WARN_FILE"/>
</root>
</configuration>
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index df40f6c..8275533 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -16,6 +16,7 @@
<result column="sex" property="sex" />
<result column="create_time" property="createTime" />
<result column="status" property="status" />
+ <result column="ad_login" property="adLogin" />
</resultMap>
diff --git a/src/main/webapp/static/js/user/user.js b/src/main/webapp/static/js/user/user.js
index 7bb9f95..440901c 100644
--- a/src/main/webapp/static/js/user/user.js
+++ b/src/main/webapp/static/js/user/user.js
@@ -31,6 +31,7 @@
,{field: 'roleName', align: 'center',title: '瑙掕壊'}
,{field: 'email', align: 'center',title: '閭'}
// ,{field: 'sex$', align: 'center',title: '鎬у埆'}
+ ,{field: 'adLogin$', align: 'center',title: 'AD鐧诲綍', templet: '#adLoginTpl', width: 100, unresize: true}
,{field: 'createTime$', align: 'center',title: '娉ㄥ唽鏃堕棿', hide: true}
,{field: 'status$', align: 'center',title: '鐘舵��', templet: '#statusTpl', width: 120, unresize: true}
@@ -92,6 +93,16 @@
})
})
+ // 淇敼AD鐧诲綍鐘舵��
+ form.on('switch(adLoginSwitch)', function (obj) {
+ var index = obj.othis.parents('tr').attr("data-index");
+ var data = tableData[index];
+ data[this.name] = obj.elem.checked?1:0;
+ http.post(baseUrl+"/user/edit/auth", {id: data.id, adLogin: data[this.name]}, function (res) {
+ layer.msg(res.msg, {icon: 1});
+ })
+ })
+
/* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
table.on('tool(userTable)', function (obj) {
var data = obj.data;
@@ -132,7 +143,31 @@
content: $('#editDialog').html(),
success: function (layero, dIndex) {
// 鍥炴樉琛ㄥ崟鏁版嵁
- form.val('detail', mData);
+ if (mData) {
+ form.val('detail', mData);
+ // 澶勭悊AD鐧诲綍澶嶉�夋鐨勫洖鏄撅紙缂栬緫鐢ㄦ埛鏃讹級
+ if (mData.adLogin === 1 || mData.adLogin === '1') {
+ $('input[name="adLogin"]').prop('checked', true);
+ } else {
+ $('input[name="adLogin"]').prop('checked', false);
+ }
+ } else {
+ // 鏂板鐢ㄦ埛鏃讹紝纭繚AD鐧诲綍榛樿涓烘湭閫変腑
+ $('input[name="adLogin"]').prop('checked', false);
+ // 娓呯┖琛ㄥ崟
+ form.val('detail', {
+ username: '',
+ mobile: '',
+ email: '',
+ roleId: '',
+ roleName: '',
+ deptId: '',
+ deptName: '',
+ adLogin: 0
+ });
+ }
+ // 閲嶆柊娓叉煋琛ㄥ崟锛岀‘淇濆紑鍏虫帶浠舵纭樉绀�
+ form.render('checkbox');
// 琛ㄥ崟鎻愪氦浜嬩欢
form.on('submit(editSubmit)', function (data) {
if (isEmpty(data.field.roleId)) {
@@ -143,6 +178,12 @@
layer.msg('璇烽�夋嫨閮ㄩ棬', {icon: 2});
return false;
}
+ // 澶勭悊AD鐧诲綍澶嶉�夋鐨勫��
+ if (data.field.adLogin === '1' || data.field.adLogin === true) {
+ data.field.adLogin = 1;
+ } else {
+ data.field.adLogin = 0;
+ }
var loadIndex = layer.load(2);
$.ajax({
url: baseUrl+"/user/"+(mData?'update':'add')+"/auth",
diff --git a/src/main/webapp/views/user/user.html b/src/main/webapp/views/user/user.html
index ef10b06..1d8bd18 100644
--- a/src/main/webapp/views/user/user.html
+++ b/src/main/webapp/views/user/user.html
@@ -67,6 +67,10 @@
<input type="checkbox" name="status" value="{{d.status}}" lay-skin="switch" lay-text="姝e父|绂佺敤" lay-filter="statusSwitch" {{ d.status === 1 ? 'checked' : '' }}>
</script>
+ <script type="text/html" id="adLoginTpl">
+ <input type="checkbox" name="adLogin" value="{{d.adLogin}}" lay-skin="switch" lay-text="鍚敤|绂佺敤" lay-filter="adLoginSwitch" {{ d.adLogin === 1 ? 'checked' : '' }}>
+</script>
+
<script type="text/html" id="operate">
<a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
<a class="layui-btn layui-btn-xs btn-edit layui-btn-warm" lay-event="resetPwd">閲嶇疆瀵嗙爜</a>
@@ -150,10 +154,20 @@
</div>
</div>
</div>
-
</div>
</div>
<hr class="layui-bg-gray">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label">AD鐧诲綍</label>
+ <div class="layui-input-block">
+ <input type="checkbox" name="adLogin" value="1" title="鍚敤AD鐧诲綍" lay-skin="switch" lay-text="鍚敤|绂佺敤" lay-filter="adLoginFormSwitch">
+ <div class="layui-form-mid layui-word-aux" style="margin-left: 10px;">寮�鍚悗锛岀敤鎴峰彲浠ヤ娇鐢ˋD鍩熻处鍙风櫥褰曠郴缁�</div>
+ </div>
+ </div>
+ </div>
+ </div>
<div class="layui-form-item text-right">
<button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
<button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
--
Gitblit v1.9.1