From f910377a07c3ab8e428f094b4bb4d2b03ea1d1a8 Mon Sep 17 00:00:00 2001
From: Administrator <335182714>
Date: 星期五, 27 六月 2025 09:52:56 +0800
Subject: [PATCH] #接口防抖
---
src/main/java/com/zy/asrs/task/handler/GhjtHandler.java | 2
src/main/webapp/static/js/order/out.js | 9 +++
src/main/java/com/zy/asrs/controller/MobileController.java | 2
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 2
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 128 +++++++++++++++++++++++++++---------------
5 files changed, 96 insertions(+), 47 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 136a38d..9e07434 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -606,7 +606,7 @@
}
@PostMapping("/pdaGetMemo")
- @ManagerAuth(memo = "pda鑾峰彇鏈ㄧ璧勬枡")
+// @ManagerAuth(memo = "pda鑾峰彇鏈ㄧ璧勬枡")
public synchronized List<Map<String, Object>> pdaGetMemo() {
return mobileService.pdaGetMemo();
}
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 7322481..699c9e5 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -30,6 +30,7 @@
import com.zy.system.mapper.ConfigMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -1136,57 +1137,88 @@
return "鍏ュ簱鎴愬姛";
}
+ @Autowired
+ private StringRedisTemplate redisTemplate;
+
@Override
@Transactional
public R kthl(KthlParam param) {
+ String barcode = param.getBarcode();
+ String lockKey = "kthl:lock:" + barcode;
+ String lockVal = UUID.randomUUID().toString(); // 闃叉璇垹浠栦汉閿�
- // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢�
- List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3)
- .eq("wrk_no",0).eq("in_enable","Y").eq("out_enable","Y"));
- if (basCrnps.isEmpty()) {
- // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛�
- basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3).eq("in_enable","Y")
- .eq("out_enable","Y"));
+ // 鍒嗗竷寮忛攣锛�5绉掕繃鏈�
+ Boolean locked = redisTemplate.opsForValue().setIfAbsent(lockKey, lockVal, 5, TimeUnit.SECONDS);
+ if (locked == null || !locked) {
+ return R.error("閲嶅鎻愪氦锛氳鎵樼洏宸插湪澶勭悊锛岃鍕块噸澶嶆搷浣�");
}
- if (basCrnps.isEmpty()) {
- throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父鎴栫鐢�");
- }
- // 鍙敤鍫嗗灈鏈哄垪琛�
- List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList());
- Integer crnNo = crnNoList.get(0);
- int workNo = commonService.getWorkNo(5);
- Date now = new Date();
- // 鐢熸垚宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(1L); //
- wrkMast.setIoType(3); // 绔欏埌绔�
- wrkMast.setIoPri(14D); // 浼樺厛绾�
- wrkMast.setCrnNo(crnNo);
- wrkMast.setSourceStaNo(secondFloorIn[crnNo]);
- wrkMast.setStaNo(secondFloorOut[crnNo]);
- wrkMast.setLocNo("");
- wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setFullPlt("N"); // 婊℃澘锛歒
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk("Y"); // 绌烘澘
- wrkMast.setLinkMis("Y");
- wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
- // 鎿嶄綔浜哄憳鏁版嵁
- wrkMast.setAppeTime(now);
- wrkMast.setModiTime(now);
- boolean res = wrkMastService.insert(wrkMast);
- if (!res) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
- // 杩斿洖GWCS鐩爣淇℃伅
- pushStaNoToGwcs(param.getPalletizingNo(),wrkMast.getSourceStaNo(),workNo,param.getBarcode(),"浜屾ゼ绌烘墭鍥炴祦鎺ㄩ�乬wcs");
+ try {
+ // 鑾峰彇绌洪棽鍫嗗灈鏈猴紙鐢佃剳妯″紡銆佹棤浠诲姟锛�
+ List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>()
+ .eq("crn_sts", 3).eq("wrk_no", 0)
+ .eq("in_enable", "Y").eq("out_enable", "Y"));
- return R.ok("绌烘墭鍥炴祦璇锋眰鎴愬姛");
+ // 濡傛灉娌℃湁绌洪棽鍫嗗灈鏈猴紝灏濊瘯鎵�鏈夊彲鐢ㄥ爢鍨涙満
+ if (basCrnps.isEmpty()) {
+ basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>()
+ .eq("crn_sts", 3)
+ .eq("in_enable", "Y").eq("out_enable", "Y"));
+ }
+
+ if (basCrnps.isEmpty()) {
+ throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父鎴栫鐢�");
+ }
+
+ // 鑾峰彇绗竴涓彲鐢ㄥ爢鍨涙満
+ List<Integer> crnNoList = basCrnps.stream()
+ .map(BasCrnp::getCrnNo)
+ .collect(Collectors.toList());
+ Integer crnNo = crnNoList.get(0);
+
+ int workNo = commonService.getWorkNo(5);
+ Date now = new Date();
+
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(now);
+ wrkMast.setWrkSts(1L);
+ wrkMast.setIoType(3); // 绔欏埌绔�
+ wrkMast.setIoPri(14D);
+ wrkMast.setCrnNo(crnNo);
+ wrkMast.setSourceStaNo(secondFloorIn[crnNo]);
+ wrkMast.setStaNo(secondFloorOut[crnNo]);
+ wrkMast.setLocNo("");
+ wrkMast.setBarcode(barcode);
+ wrkMast.setFullPlt("N");
+ wrkMast.setPicking("N");
+ wrkMast.setExitMk("N");
+ wrkMast.setEmptyMk("Y");
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(1);
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ // 鎺ㄩ�佺珯鐐瑰埌GWCS
+ pushStaNoToGwcs(param.getPalletizingNo(), wrkMast.getSourceStaNo(), workNo, barcode, "浜屾ゼ绌烘墭鍥炴祦鎺ㄩ�乬wcs");
+
+ return R.ok("绌烘墭鍥炴祦璇锋眰鎴愬姛");
+
+ } finally {
+ // 瑙i攣锛岀‘淇濆彧閲婃斁鑷繁鍔犵殑閿�
+ String val = redisTemplate.opsForValue().get(lockKey);
+ if (lockVal.equals(val)) {
+ redisTemplate.delete(lockKey);
+ }
+ }
}
+
@Override
public R tb(TbParam param) {
@@ -1491,8 +1523,14 @@
wrkMastService.updateById(wrkMast);
}
- // 鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍
- ckjgsbPushMes(wrkMast,wrkDetls);
+ if(!wrkDetls.get(0).getMatnr().equals("绌虹")){
+ // 鍑哄簱涓婃姤鎺ㄩ�乵es璁板綍
+ ckjgsbPushMes(wrkMast,wrkDetls);
+ }else{
+ wrkMast.setWrkSts(14L);
+ wrkMastService.updateById(wrkMast);
+ }
+
return "鍑哄簱缁撴灉涓婃姤鎴愬姛";
}
diff --git a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
index c54c985..102a14e 100644
--- a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
@@ -24,6 +24,7 @@
import javax.annotation.Resource;
import java.util.*;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -101,6 +102,7 @@
.setPath(MesConstant.GWCS_DCKK_URL)
.setHeaders(headers)
.setJson(body)
+ .setTimeout(30, TimeUnit.SECONDS) // 璁剧疆杩炴帴 + 璇诲彇瓒呮椂涓�30绉�
.build()
.doPost();
if (!Cools.isEmpty(response)) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 7c4f47b..7e710a2 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -95,7 +95,7 @@
}
// 鍑哄簱 --------------------------------------------------------------------------------
- } else if (wrkMast.getWrkSts() == 15 && wrkMast.getIoType() != 110) {
+ } else if (wrkMast.getWrkSts() == 15 && wrkMast.getIoType() != 110 &&wrkMast.getIoType() != 3) {
List<WrkDetl> wrkDetls101 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls101.isEmpty()) {
// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index abe3c6a..1ebda0a 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -42,6 +42,15 @@
,{field: 'memo', align: 'center',title: '澶囨敞', hide: false}
,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+ ,{field: 'finishStatus', align: 'center', title: '鏄惁瀹屾垚', templet: function(d){
+ if (d.qty === 0 && d.enableQty === 0) {
+ return '<span style="color:green;font-weight:bold;">瀹屾垚</span>';
+ } else {
+ return '<span style="color:red;">鏈畬鎴�</span>';
+ }
+ }}
+
+
// ,{field: 'name', align: 'center',title: '鍚嶇О'}
// ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
// ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
--
Gitblit v1.9.1