From 74863c38a407b1e0f36250dfa0c63e5da7fe5f66 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 19 一月 2026 18:06:51 +0800
Subject: [PATCH] WMS功能完善
---
src/main/resources/mapper/WrkMastLogMapper.xml | 1
src/main/webapp/static/js/pakStore/emptyOut.js | 1
src/main/java/com/zy/common/config/AdminInterceptor.java | 4
src/main/java/com/zy/common/config/ControllerResAdvice.java | 15
src/main/java/com/zy/asrs/task/JlerScheduler.java | 12
src/main/java/com/zy/asrs/controller/DigitalTwinController.java | 212 +++++-----
src/main/java/com/zy/asrs/controller/WorkController.java | 16
src/main/java/com/zy/asrs/entity/digitaltwin/DtDetainMatVo.java | 1
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java | 10
src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailDto.java | 11
src/main/java/com/zy/asrs/entity/digitaltwin/DtEquipmentVo.java | 2
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java | 169 ++++++--
src/main/java/com/zy/asrs/service/DigitalTwinService.java | 4
src/main/webapp/static/js/wrkMastLog/wrkMastLog.js | 1
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 65 +++
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 17
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 19
src/main/resources/application-dev.yml | 5
src/main/resources/mapper/ViewInOutMapper.xml | 15
src/main/java/com/zy/asrs/controller/MesController.java | 4
src/main/java/com/zy/asrs/controller/TaskLogController.java | 4
src/main/webapp/static/js/pakStore/pakStore.js | 14
src/main/java/com/zy/asrs/mapper/DigitalTwinMapper.java | 9
src/main/java/com/zy/asrs/service/MobileService.java | 2
src/main/java/com/zy/asrs/service/WorkService.java | 7
src/main/resources/mapper/ViewDigitalTwinMapper.xml | 97 +++--
src/main/java/com/zy/system/controller/UserController.java | 3
src/main/webapp/views/pakStore/pakStore.html | 12
src/main/resources/mapper/ViewWorkInMapper.xml | 70 +++
src/main/webapp/views/task/task.html | 4
src/main/java/com/zy/asrs/controller/TaskController.java | 2
src/main/resources/mapper/ViewStayTimeMapper.xml | 59 +++
src/main/resources/mapper/WrkMastMapper.xml | 1
src/main/java/com/zy/asrs/entity/WrkMastLog.java | 8
src/main/java/com/zy/asrs/controller/MobileController.java | 4
src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailVo.java | 7
src/main/resources/mapper/ViewStockUseMapper.xml | 13
src/main/java/com/zy/asrs/entity/digitaltwin/DtInAndOutBoundVo.java | 10
src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java | 4
src/main/resources/mapper/LocCountMapper.xml | 15
src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java | 187 ++++++---
41 files changed, 794 insertions(+), 322 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/DigitalTwinController.java b/src/main/java/com/zy/asrs/controller/DigitalTwinController.java
index decee80..2779f9a 100644
--- a/src/main/java/com/zy/asrs/controller/DigitalTwinController.java
+++ b/src/main/java/com/zy/asrs/controller/DigitalTwinController.java
@@ -31,16 +31,16 @@
// @ManagerAuth
public R overview(@RequestParam(required = false) String areaId){
- //digitalTwinService.overview(areaId);
+ DtOverviewVo dtOverviewVo = digitalTwinService.overview(areaId);
- DtOverviewVo dtOverviewVo = DtOverviewVo.builder()
- .totalLoc(999)
- .useLoc(900)
- .idleLoc(99)
- .todayOutbound(160)
- .todayWarehousing(170)
- .remainingStock(180)
- .build();
+// DtOverviewVo dtOverviewVo = DtOverviewVo.builder()
+// .totalLoc(999)
+// .useLoc(900)
+// .idleLoc(99)
+// .todayOutbound(160)
+// .todayWarehousing(170)
+// .remainingStock(180)
+// .build();
return R.ok().add(dtOverviewVo);
}
@@ -57,19 +57,19 @@
public R recentOrder(@RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate){
-// digitalTwinService.order(startDate, endDate);
+ List<DtOrderVo> orderVoList = digitalTwinService.order(startDate, endDate);
- DtOrderVo dtOrderVo = DtOrderVo.builder()
- .orderDate("2025-10-22")
- .orderNum(156)
- .build();
- DtOrderVo dtOrderVo2 = DtOrderVo.builder()
- .orderDate("2025-10-23")
- .orderNum(166)
- .build();
- List<DtOrderVo> orderVoList = new ArrayList<>();
- orderVoList.add(dtOrderVo);
- orderVoList.add(dtOrderVo2);
+// DtOrderVo dtOrderVo = DtOrderVo.builder()
+// .orderDate("2025-10-22")
+// .orderNum(156)
+// .build();
+// DtOrderVo dtOrderVo2 = DtOrderVo.builder()
+// .orderDate("2025-10-23")
+// .orderNum(166)
+// .build();
+// List<DtOrderVo> orderVoList = new ArrayList<>();
+// orderVoList.add(dtOrderVo);
+// orderVoList.add(dtOrderVo2);
return R.ok().add(orderVoList);
}
@@ -88,19 +88,19 @@
@RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate){
-// digitalTwinService.recentLoc(areaId, startDate, endDate);
+ List<DtLocVo> locVoList = digitalTwinService.recentLoc(areaId, startDate, endDate);
- DtLocVo dtLocVo = DtLocVo.builder()
- .locDate("2025-10-22")
- .idleNum(208)
- .build();
- DtLocVo dtLocVo2 = DtLocVo.builder()
- .locDate("2025-10-23")
- .idleNum(177)
- .build();
- List<DtLocVo> locVoList = new ArrayList<>();
- locVoList.add(dtLocVo);
- locVoList.add(dtLocVo2);
+// DtLocVo dtLocVo = DtLocVo.builder()
+// .locDate("2025-10-22")
+// .idleNum(208)
+// .build();
+// DtLocVo dtLocVo2 = DtLocVo.builder()
+// .locDate("2025-10-23")
+// .idleNum(177)
+// .build();
+// List<DtLocVo> locVoList = new ArrayList<>();
+// locVoList.add(dtLocVo);
+// locVoList.add(dtLocVo2);
return R.ok().add(locVoList);
}
@@ -119,21 +119,21 @@
@RequestParam(required = false) String startDate,
@RequestParam(required = false) String endDate){
-// digitalTwinService.inAndOutBound(areaId, startDate, endDate);
+ List<DtInAndOutBoundVo> inAndOutBoundVoList = digitalTwinService.inAndOutBound(areaId, startDate, endDate);
- DtInAndOutBoundVo dtInAndOutBoundVo = DtInAndOutBoundVo.builder()
- .boundDate("2025-10-22")
- .inBoundNum(237)
- .outBoundNum(487)
- .build();
- DtInAndOutBoundVo dtInAndOutBoundVo2 = DtInAndOutBoundVo.builder()
- .boundDate("2025-10-23")
- .inBoundNum(187)
- .outBoundNum(287)
- .build();
- List<DtInAndOutBoundVo> inAndOutBoundVoList = new ArrayList<>();
- inAndOutBoundVoList.add(dtInAndOutBoundVo);
- inAndOutBoundVoList.add(dtInAndOutBoundVo2);
+// DtInAndOutBoundVo dtInAndOutBoundVo = DtInAndOutBoundVo.builder()
+// .boundDate("2025-10-22")
+// .inBoundNum(237)
+// .outBoundNum(487)
+// .build();
+// DtInAndOutBoundVo dtInAndOutBoundVo2 = DtInAndOutBoundVo.builder()
+// .boundDate("2025-10-23")
+// .inBoundNum(187)
+// .outBoundNum(287)
+// .build();
+// List<DtInAndOutBoundVo> inAndOutBoundVoList = new ArrayList<>();
+// inAndOutBoundVoList.add(dtInAndOutBoundVo);
+// inAndOutBoundVoList.add(dtInAndOutBoundVo2);
return R.ok().add(inAndOutBoundVoList);
}
@@ -152,31 +152,31 @@
@RequestParam(required = false) Integer pageIndex,
@RequestParam(required = false) Integer pageSize){
-// digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize);
+ List<DtDetainMatVo> detainMatVoList = digitalTwinService.recentDetainMat(areaId, overDayNum, pageIndex, pageSize);
- DtDetainMatVo dtDetainMatVo = DtDetainMatVo.builder()
- .belongAreaId("A1")
- .belongAreaName("鍒�鍏峰簱")
- .matId("mat10001")
- .matName("閬撳叿鎶�")
- .lokId("loc1001")
- .lokName("搴撲綅10001")
- .detainTime(765)
- .inBoundTime("2025-10-11T11:15:16")
- .build();
- DtDetainMatVo dtDetainMatVo2 = DtDetainMatVo.builder()
- .belongAreaId("A1")
- .belongAreaName("鍒�鍏峰簱")
- .matId("mat10002")
- .matName("閬撳叿鎶�")
- .lokId("loc1002")
- .lokName("搴撲綅10002")
- .detainTime(665)
- .inBoundTime("2025-10-10T11:15:16")
- .build();
- List<DtDetainMatVo> detainMatVoList = new ArrayList<>();
- detainMatVoList.add(dtDetainMatVo);
- detainMatVoList.add(dtDetainMatVo2);
+// DtDetainMatVo dtDetainMatVo = DtDetainMatVo.builder()
+// .belongAreaId("A1")
+// .belongAreaName("鍒�鍏峰簱")
+// .matId("mat10001")
+// .matName("閬撳叿鎶�")
+// .lokId("loc1001")
+// .lokName("搴撲綅10001")
+// .detainTime(765)
+// .inBoundTime("2025-10-11T11:15:16")
+// .build();
+// DtDetainMatVo dtDetainMatVo2 = DtDetainMatVo.builder()
+// .belongAreaId("A1")
+// .belongAreaName("鍒�鍏峰簱")
+// .matId("mat10002")
+// .matName("閬撳叿鎶�")
+// .lokId("loc1002")
+// .lokName("搴撲綅10002")
+// .detainTime(665)
+// .inBoundTime("2025-10-10T11:15:16")
+// .build();
+// List<DtDetainMatVo> detainMatVoList = new ArrayList<>();
+// detainMatVoList.add(dtDetainMatVo);
+// detainMatVoList.add(dtDetainMatVo2);
return R.ok().add(detainMatVoList);
}
@@ -191,35 +191,49 @@
// @ManagerAuth
public R equipment(@RequestParam(required = false) String areaId){
- DtEquipmentVo dtDetainMatVo = DtEquipmentVo.builder()
- .equipmentId("eq1001")
- .equipmentName("鍫嗗灈鏈�1")
- .equipmentType(1)
- .belongAreaId("A1")
- .belongAreaName("鍒�鍏峰簱")
- .verticalSpeed(288)
- .horizontalSpeed(203)
- .voltage(48)
- .status(1)
- .operateMethod(1)
- .build();
- DtEquipmentVo dtDetainMatVo2 = DtEquipmentVo.builder()
- .equipmentId("eq1002")
- .equipmentName("鍫嗗灈鏈�2")
- .equipmentType(1)
- .belongAreaId("A1")
- .belongAreaName("鍒�鍏峰簱")
- .verticalSpeed(208)
- .horizontalSpeed(253)
- .voltage(48)
- .status(1)
- .operateMethod(1)
- .build();
- List<DtEquipmentVo> dtEquipmentVoList = new ArrayList<>();
- dtEquipmentVoList.add(dtDetainMatVo);
- dtEquipmentVoList.add(dtDetainMatVo2);
+ return R.ok(digitalTwinService.equipment(areaId));
+// DtEquipmentVo dtDetainMatVo = DtEquipmentVo.builder()
+// .equipmentId("eq1001")
+// .equipmentName("鍫嗗灈鏈�1")
+// .equipmentType(1)
+// .belongAreaId("A1")
+// .belongAreaName("鍒�鍏峰簱")
+// .verticalSpeed(288)
+// .horizontalSpeed(203)
+// .voltage(48)
+// .status(1)
+// .operateMethod(1)
+// .build();
+// DtEquipmentVo dtDetainMatVo2 = DtEquipmentVo.builder()
+// .equipmentId("eq1002")
+// .equipmentName("鍫嗗灈鏈�2")
+// .equipmentType(1)
+// .belongAreaId("A1")
+// .belongAreaName("鍒�鍏峰簱")
+// .verticalSpeed(208)
+// .horizontalSpeed(253)
+// .voltage(48)
+// .status(1)
+// .operateMethod(1)
+// .build();
+// List<DtEquipmentVo> dtEquipmentVoList = new ArrayList<>();
+// dtEquipmentVoList.add(dtDetainMatVo);
+// dtEquipmentVoList.add(dtDetainMatVo2);
+//
+// return R.ok().add(dtEquipmentVoList);
+ }
- return R.ok().add(dtEquipmentVoList);
+ /**
+ * 搴撲綅鍜屽簱瀛樿鎯�,鏁板瓧瀛敓鐢�
+ *
+ * @param areaId
+ * @return
+ */
+ @RequestMapping(value = "/warehouseDetail2")
+// @ManagerAuth
+ public R warehouseDetail2(@RequestParam(required = false) String areaId) {
+
+ return R.ok(digitalTwinService.warehouseDetail2(areaId));
}
/**
diff --git a/src/main/java/com/zy/asrs/controller/MesController.java b/src/main/java/com/zy/asrs/controller/MesController.java
index a243f80..a452518 100644
--- a/src/main/java/com/zy/asrs/controller/MesController.java
+++ b/src/main/java/com/zy/asrs/controller/MesController.java
@@ -69,7 +69,9 @@
// 涓嬪彂杩愯緭浠诲姟锛宮es璋冪敤涓嬪垁06(鍛煎彨agv鎼繍)
@PostMapping("/api/mes/submitTask")
- public JSONObject submitTask(@RequestBody TransTask param){
+ @AppAuth(memo = "涓嬪垁(閫�鍒�)")
+ public JSONObject submitTask(@RequestHeader(required = false) String appkey,@RequestBody TransTask param,HttpServletRequest request){
+ auth(appkey, param, request);
log.info("涓嬪垁(閫�鍒�)锛歿}",JSONObject.toJSONString(param));
// 缁堢偣涓虹┖锛岃绠楁帴椹充綅
BasStation basStation = null;
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 5befdc3..8756d2a 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -105,10 +105,10 @@
@RequestMapping("/pda/WarehouseOutPickMerge/v1")
@ManagerAuth(memo = "鎷f枡閫斾腑骞舵澘")
public R WarehouseOutPickMergeV1(@RequestBody WarehouseOutPickMergeParam param) {
- if (Cools.isEmpty(param,param.getLocNo(),param.getBarcode(),param.getCombMats())) {
+ if (Cools.isEmpty(param,param.getBarcode(),param.getCombMats())) {
return R.parse("鍙傛暟涓嶈兘涓虹┖锛�");
}
- return mobileService.WarehouseOutPickMergeV1(param, getHostId(), getUserId());
+ return mobileService.WarehouseOutPickMergeV1(param, getUserId());
}
@RequestMapping("/pick/in")
diff --git a/src/main/java/com/zy/asrs/controller/TaskController.java b/src/main/java/com/zy/asrs/controller/TaskController.java
index b453629..25bd153 100644
--- a/src/main/java/com/zy/asrs/controller/TaskController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskController.java
@@ -103,7 +103,7 @@
return R.ok("宸ヤ綔妗e凡鍙栨秷");
} else if (type == 3) {
taskService.pickWrkMast(workNo, getUserId());
- return R.ok("宸ヤ綔妗e凡鎷f枡");
+ return R.ok("宸ヤ綔妗e凡杞崲");
}
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/controller/TaskLogController.java b/src/main/java/com/zy/asrs/controller/TaskLogController.java
index 1c642ba..c1c3d9a 100644
--- a/src/main/java/com/zy/asrs/controller/TaskLogController.java
+++ b/src/main/java/com/zy/asrs/controller/TaskLogController.java
@@ -42,7 +42,9 @@
excludeTrash(param);
convert(param, wrapper);
allLike(TaskLog.class, param.keySet(), wrapper, condition);
- if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ wrapper.orderBy("modi_time", false);
+ }
return R.ok(taskLogService.selectPage(new Page<>(curr, limit), wrapper));
}
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 6de7c6e..1cf5362 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -88,14 +88,16 @@
}
@RequestMapping("/full/store/put/start")
- @ManagerAuth(memo = "鍏ㄦ澘鍏ュ簱")
+ @ManagerAuth(memo = "WEB缁勬墭")
public R fullStorePutStart(@RequestBody FullStoreParam fullStoreParam) {
- try {
- String locNo = workService.startupFullPutStore(fullStoreParam, getUserId());
- return R.ok("鍏ュ簱鍚姩鎴愬姛").add(locNo);
- } catch (Exception e){
- return R.error("鍏ュ簱鍚姩澶辫触==>"+e.getMessage());
- }
+ workService.webComb(fullStoreParam,getUserId());
+ return R.ok("缁勬墭鎴愬姛");
+// try {
+// String locNo = workService.startupFullPutStore(fullStoreParam, getUserId());
+// return R.ok("鍏ュ簱鍚姩鎴愬姛").add(locNo);
+// } catch (Exception e){
+// return R.error("鍏ュ簱鍚姩澶辫触==>"+e.getMessage());
+// }
}
@RequestMapping("/plate/out/start")
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastLog.java b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
index e4d3c58..08dade6 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -327,6 +327,14 @@
@TableField("take_none")
private String takeNone;
+ /**
+ * 澶栭儴浠诲姟缂栧彿
+ */
+ @ApiModelProperty(value= "澶栭儴浠诲姟缂栧彿")
+ @TableField("task_no")
+ private String taskNo;
+
+
public WrkMastLog() {
}
diff --git a/src/main/java/com/zy/asrs/entity/digitaltwin/DtDetainMatVo.java b/src/main/java/com/zy/asrs/entity/digitaltwin/DtDetainMatVo.java
index 29129c9..7890539 100644
--- a/src/main/java/com/zy/asrs/entity/digitaltwin/DtDetainMatVo.java
+++ b/src/main/java/com/zy/asrs/entity/digitaltwin/DtDetainMatVo.java
@@ -5,7 +5,6 @@
// 鏁板瓧瀛敓锛氬憜婊炲搧淇℃伅
@Data
-@Builder
public class DtDetainMatVo {
// 褰掑睘搴撳尯ID
diff --git a/src/main/java/com/zy/asrs/entity/digitaltwin/DtEquipmentVo.java b/src/main/java/com/zy/asrs/entity/digitaltwin/DtEquipmentVo.java
index 67d9fe7..3143b81 100644
--- a/src/main/java/com/zy/asrs/entity/digitaltwin/DtEquipmentVo.java
+++ b/src/main/java/com/zy/asrs/entity/digitaltwin/DtEquipmentVo.java
@@ -4,7 +4,7 @@
import lombok.Data;
@Data
-@Builder
+
public class DtEquipmentVo {
// 璁惧ID
diff --git a/src/main/java/com/zy/asrs/entity/digitaltwin/DtInAndOutBoundVo.java b/src/main/java/com/zy/asrs/entity/digitaltwin/DtInAndOutBoundVo.java
index e983dbe..00225d4 100644
--- a/src/main/java/com/zy/asrs/entity/digitaltwin/DtInAndOutBoundVo.java
+++ b/src/main/java/com/zy/asrs/entity/digitaltwin/DtInAndOutBoundVo.java
@@ -3,15 +3,17 @@
import lombok.Builder;
import lombok.Data;
+import java.math.BigDecimal;
+
// 鏁板瓧瀛敓锛氭寜澶╁嚭鍏ュ簱鏁伴噺
@Data
-@Builder
+//@Builder
public class DtInAndOutBoundVo {
// 鏃ユ湡
private String boundDate;
// 鍏ュ簱鏁伴噺
- private Integer inBoundNum;
+ private BigDecimal inBoundNum;
// 鍑哄簱鏁伴噺
- private Integer outBoundNum;
-}
+ private BigDecimal outBoundNum;
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailDto.java b/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailDto.java
new file mode 100644
index 0000000..0706728
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailDto.java
@@ -0,0 +1,11 @@
+package com.zy.asrs.entity.digitaltwin;
+
+import lombok.Data;
+
+@Data
+public class DtLocDetailDto {
+ // 搴撲綅鍙�
+ private String locNo;
+ // 搴撲綅鐘舵�侊紝O绌哄簱浣嶏紙鑻辨枃涓嶆槸鏁板瓧锛夛紱F 鍦ㄥ簱锛汥 绌烘澘锛汸 鍑哄簱涓紱R 鍑哄簱棰勭害锛汼 鍏ュ簱棰勭害锛涘叾浠� 鍏朵粬锛�
+ private String locSts;
+}
diff --git a/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailVo.java b/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailVo.java
index cfd9da0..9f2eec2 100644
--- a/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailVo.java
+++ b/src/main/java/com/zy/asrs/entity/digitaltwin/DtLocDetailVo.java
@@ -25,7 +25,12 @@
// 灞�
private Integer lev1;
+ // 搴撲綅淇℃伅
+ private LocMast locMast;
// 搴撳瓨淇℃伅
- private List<StockDetl> locDetl;
+ private LocDetl locDetl;
+
+ // 搴撳瓨淇℃伅
+ private List<StockDetl> locDetls;
}
diff --git a/src/main/java/com/zy/asrs/mapper/DigitalTwinMapper.java b/src/main/java/com/zy/asrs/mapper/DigitalTwinMapper.java
index 33f1999..103b0f8 100644
--- a/src/main/java/com/zy/asrs/mapper/DigitalTwinMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/DigitalTwinMapper.java
@@ -7,6 +7,7 @@
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
+import java.util.Date;
import java.util.List;
@Mapper
@@ -15,12 +16,12 @@
List<Double> overview(@Param("areaId")String areaId);
- List<DtOrderVo> recentOrder(@Param("startTime")String startTime, @Param("endTime")String endTime);
+ List<DtOrderVo> recentOrder(@Param("startTime") Date startTime, @Param("endTime")Date endTime);
- List<DtInAndOutBoundVo> recentInBound(@Param("areaId")String areaId, @Param("startTime")String startTime, @Param("endTime")String endTime);
+ List<DtInAndOutBoundVo> recentInBound(@Param("areaId")String areaId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);
- List<DtInAndOutBoundVo> recentOutBound(@Param("areaId")String areaId, @Param("startTime")String startTime, @Param("endTime")String endTime);
+ List<DtInAndOutBoundVo> recentOutBound(@Param("areaId")String areaId, @Param("startTime")Date startTime, @Param("endTime")Date endTime);
- List<DtDetainMatVo> recentDetainMat(@Param("areaId")String areaId, @Param("startTime")String startTime,
+ List<DtDetainMatVo> recentDetainMat(@Param("areaId")String areaId, @Param("startTime")Date startTime,
@Param("pageIndex")Integer pageIndex, @Param("pageSize")Integer pageSize);
}
diff --git a/src/main/java/com/zy/asrs/service/DigitalTwinService.java b/src/main/java/com/zy/asrs/service/DigitalTwinService.java
index c8f1f55..c523fe8 100644
--- a/src/main/java/com/zy/asrs/service/DigitalTwinService.java
+++ b/src/main/java/com/zy/asrs/service/DigitalTwinService.java
@@ -51,6 +51,8 @@
* @param areaId
* @return
*/
+ List<DtLocDetailVo> warehouseDetail2(String areaId);
+
R warehouseDetail(String areaId);
/**
@@ -68,4 +70,6 @@
*
*/
void locNumCount();
+
+ DtEquipmentVo equipment(String areaId);
}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index 3354ce9..36d7f91 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -19,7 +19,7 @@
/**
* 鎷f枡閫斾腑骞舵澘
*/
- R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId, Long userId);
+ R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long userId);
/**
* 骞舵澘鍏ュ簱
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index 8d34c6e..6a94867 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -28,6 +28,13 @@
void startupFullTakeStore(StockOutParam param, Long userId);
/**
+ * web绔粍鎵�
+ * @param fullStoreParam
+ * @param userId
+ */
+ void webComb(FullStoreParam fullStoreParam, Long userId);
+
+ /**
* 瀹㈡埛杞崲
*/
void turnOverOut(EmptyPlateOutParam param, Long userId);
diff --git a/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
index 0a14629..48197f3 100644
--- a/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/DigitalTwinServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.R;
+import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocCount;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
@@ -10,12 +11,16 @@
import com.zy.asrs.entity.mes.StockDetl;
import com.zy.asrs.mapper.DigitalTwinMapper;
import com.zy.asrs.mapper.LocCountMapper;
+import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.DigitalTwinService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -63,24 +68,32 @@
*/
public List<DtOrderVo> order(String startDate, String endDate) {
- String startTime;
- String endTime;
+ Date startTime = new Date();
+ Date endTime = new Date();
if (startDate == null || endDate == null || startDate.isEmpty() || endDate.isEmpty()){
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, -7);
- Date start = calendar.getTime();
+ startTime = calendar.getTime();
+ endTime = now;
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- endDate = sdf.format(now);
- startDate = sdf.format(start);
+ } else {
+ SimpleDateFormat sdf =
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+
+ try {
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
}
- startTime = startDate.substring(0, 4) + "-" + startDate.substring(4, 6) + "-" + startDate.substring(6, 8) + "00:00:00";
- endTime = endDate.substring(0, 4) + "-" + endDate.substring(4, 6) + "-" + endDate.substring(6, 8) + "00:00:00";
List<DtOrderVo> dbOrder = digitalTwinMapper.recentOrder(startTime, endTime);
// 绌烘棩鏈熻ˉ鍏�
-
+ for (DtOrderVo dtOrderVo : dbOrder) {
+ dtOrderVo.setOrderDate(dtOrderVo.getOrderDate());
+ }
return dbOrder;
}
@@ -95,27 +108,34 @@
*/
public List<DtInAndOutBoundVo> inAndOutBound(String areaId, String startDate, String endDate) {
- List<DtInAndOutBoundVo> dtInAndOutBoundVos = new ArrayList<>();
-
- String startTime;
- String endTime;
+ Date startTime = new Date();
+ Date endTime = new Date();
if (startDate == null || endDate == null || startDate.isEmpty() || endDate.isEmpty()){
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, -7);
- Date start = calendar.getTime();
+ startTime = calendar.getTime();
+ endTime = now;
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
- endDate = sdf.format(now);
- startDate = sdf.format(start);
+ } else {
+ SimpleDateFormat sdf =
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+
+ try {
+ startTime = sdf.parse(startDate);
+ endTime = sdf.parse(endDate);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
}
- startTime = startDate.substring(0, 4) + "-" + startDate.substring(4, 6) + "-" + startDate.substring(6, 8) + "00:00:00";
- endTime = endDate.substring(0, 4) + "-" + endDate.substring(4, 6) + "-" + endDate.substring(6, 8) + "00:00:00";
+
List<DtInAndOutBoundVo> dtInBoundVos = digitalTwinMapper.recentInBound(areaId, startTime, endTime);
List<DtInAndOutBoundVo> dtOutBoundVos = digitalTwinMapper.recentOutBound(areaId, startTime, endTime);
// 鏍煎紡鏁寸悊
+ List<DtInAndOutBoundVo> dtInAndOutBoundVos = new ArrayList<>(dtInBoundVos);
+ dtInAndOutBoundVos.addAll(dtOutBoundVos);
return dtInAndOutBoundVos;
}
@@ -140,12 +160,10 @@
calendar.setTime(now);
calendar.add(Calendar.DAY_OF_MONTH, -overDayNum);
Date start = calendar.getTime();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String startTime = sdf.format(start);
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+// Date startTime = sdf.parse(start);
- List<DtDetainMatVo> dbDetainMats = digitalTwinMapper.recentDetainMat(areaId, startTime, pageIndex, pageSize);
-
- return dbDetainMats;
+ return digitalTwinMapper.recentDetainMat(areaId, start, pageIndex, pageSize);
}
@Resource
@@ -160,36 +178,73 @@
* @param areaId
* @return
*/
+ public List<DtLocDetailVo> warehouseDetail2(String areaId) {
+ List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<>());
+ return locMastList.stream()
+ .map(loc -> {
+ DtLocDetailVo vo = new DtLocDetailVo();
+ BeanUtils.copyProperties(loc, vo);
+ return vo;
+ })
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 鏌ヨ搴撳瓨鍜屽簱浣嶈缁嗕俊鎭�
+ *
+ * @param areaId
+ * @return
+ */
public R warehouseDetail(String areaId) {
- List<LocDetl> locDetls;
- locDetls = locDetlService.selectList(new EntityWrapper<>());
+ List<DtLocDetailVo> locDetailVos = new ArrayList<>();
- List<String> locNoList = locDetls.stream().map(LocDetl::getLocNo).distinct().collect(Collectors.toList());
- List<DtLocDetailVo> dtLocDetailVoList = new ArrayList<>();
- for (String locNo: locNoList) {
-
- LocMast locMast = locMastService.selectById(locNo);
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","F"));
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<>());
+ for (LocMast locMast : locMasts) {
DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
- dtLocDetailVo.setLocNo(locNo);
+ dtLocDetailVo.setLocMast(locMast);
+ dtLocDetailVo.setLocNo(locMast.getLocNo());
dtLocDetailVo.setLocSts(locMast.getLocSts());
dtLocDetailVo.setRow1(locMast.getRow1());
dtLocDetailVo.setBay1(locMast.getBay1());
dtLocDetailVo.setLev1(locMast.getLev1());
-
- List<LocDetl> locDetlList2 = locDetls.parallelStream().filter(o-> o.getLocNo().equals(locNo)).collect(Collectors.toList());
- List<StockDetl> stockDetls = new ArrayList<>();
- for(LocDetl locDetl:locDetlList2) {
- StockDetl stockDetl = new StockDetl();
- stockDetl.setMatnr(locDetl.getMatnr());
- stockDetl.setMaktx(locDetl.getMaktx());
- stockDetl.setAnfme(locDetl.getAnfme());
- stockDetls.add(stockDetl);
+ for (LocDetl locDetl : locDetls) {
+ List<LocDetl> locDetl1 = locDetls.parallelStream().filter(a -> a.getLocNo().equals(locDetl.getLocNo())).collect(Collectors.toList());
+ if (locDetl1.size() == 1) {
+ dtLocDetailVo.setLocDetl(locDetl1.get(0));
+// dtLocDetailVo.setAreaId(locDetl.getAreaId());
+// dtLocDetailVo.setAreaName(locDetl.getAreaName());
+ }
}
- dtLocDetailVo.setLocDetl(stockDetls);
- dtLocDetailVoList.add(dtLocDetailVo);
+ locDetailVos.add(dtLocDetailVo);
}
- return R.ok(dtLocDetailVoList);
+ return R.ok(locDetailVos);
+// List<DtLocDetailVo> locDetailVos = new ArrayList<>();
+//
+// List<LocMast> locMasts = new ArrayList<>();
+// List<LocDetl> locDetls = new ArrayList<>();
+//
+// for (LocMast locMast : locMasts) {
+// DtLocDetailVo dtLocDetailVo = new DtLocDetailVo();
+// dtLocDetailVo.setLocMast(locMast);
+// dtLocDetailVo.setLocNo(locMast.getLocNo());
+// dtLocDetailVo.setLocSts(locMast.getLocSts());
+// dtLocDetailVo.setRow1(locMast.getRow1());
+// dtLocDetailVo.setBay1(locMast.getBay1());
+// dtLocDetailVo.setLev1(locMast.getLev1());
+// for (LocDetl locDetl : locDetls) {
+// List<LocDetl> locDetl1 = locDetls.parallelStream().filter(a -> a.getLocNo().equals(locDetl.getLocNo())).collect(Collectors.toList());
+// if (locDetl1 != null && locDetl1.size() == 1) {
+// dtLocDetailVo.setLocDetl(locDetl1.get(0));
+// dtLocDetailVo.setAreaId(locDetl.getAreaId());
+// dtLocDetailVo.setAreaName(locDetl.getAreaName());
+// }
+// }
+// locDetailVos.add(dtLocDetailVo);
+// }
+//
+// return locDetailVos;
}
/**
@@ -217,11 +272,11 @@
}
List<LocCount> locCounts;
- if(areaId.isEmpty()){
+// if(areaId.isEmpty()){
locCounts = locCountMapper.getByDate(Integer.parseInt(startDate), Integer.parseInt(endDate));
- } else {
- locCounts = locCountMapper.getByAreaAndDate(areaId, Integer.parseInt(startDate), Integer.parseInt(endDate));
- }
+// } else {
+// locCounts = locCountMapper.getByAreaAndDate(areaId, Integer.parseInt(startDate), Integer.parseInt(endDate));
+// }
for (LocCount locCount : locCounts) {
String date = locCount.getDate().toString();
@@ -240,30 +295,34 @@
* 瀹氭湡缁熻鍓╀綑搴撳瓨
*
*/
+ @Transactional
public void locNumCount() {
- List<LocCount> result = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date = sdf.format(new Date());
List<LocCount> totalLoc = locCountMapper.totalLoc();
List<LocCount> useLoc = locCountMapper.useLoc();
- for (LocCount locCount : totalLoc) {
- LocCount locCount1 = new LocCount();
- locCount1.setDate(Integer.valueOf(date));
- locCount1.setAreaId(locCount.getAreaId());
- locCount1.setLocNum(locCount1.getLocNum());
- for (LocCount locCount2 : useLoc) {
- if(locCount1.getAreaId().equals(locCount2.getAreaId())){
- locCount1.setRemainNum(locCount1.getLocNum() - locCount2.getLocNum());
- }
- }
- result.add(locCount1);
- }
- for (LocCount locCount : result) {
- locCountMapper.insertOrUpdate(locCount);
- }
+ LocCount locCount1 = new LocCount();
+ locCount1.setDate(Integer.valueOf(date));
+ locCount1.setLocNum(totalLoc.get(0).getLocNum());
+ locCount1.setRemainNum(locCount1.getLocNum() - useLoc.get(0).getLocNum());
+
+ locCountMapper.insertOrUpdate(locCount1);
+ }
+
+ @Resource
+ private BasCrnpService basCrnpService;
+
+ @Override
+ public DtEquipmentVo equipment(String areaId) {
+ return new DtEquipmentVo();
+// BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<>());
+// return DtEquipmentVo.builder()
+// .equipmentId("1").equipmentName("鍫嗗灈鏈�1").equipmentType(1)
+// .belongAreaId("A").belongAreaName("鍔犲伐搴�").verticalSpeed(Integer.valueOf(crnp.getCtlHp()))
+// .horizontalSpeed(Integer.valueOf(crnp.getCtlRest())).voltage(220).status(crnp.getCrnErr() == 0 ? 1 : 3).operateMethod(crnp.getCrnSts() == 3 ? 1 : 3).build();
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
index 97ce139..b2fa41e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -714,9 +714,9 @@
// 涓嬪彂缁橰CS
RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
// 妯℃澘鍚�
- if(transTask.getCurStationId().startsWith("LL") || transTask.getCurStationId().startsWith("LG")) { // 璧风偣浜х嚎
+ if(transTask.getCurStationId().startsWith("LL") || transTask.getCurStationId().startsWith("LJ")|| transTask.getCurStationId().startsWith("LG") || transTask.getCurStationId().startsWith("LT")) { // 璧风偣浜х嚎
rcsTaskSubmit.setTaskType("DJ1");
- } else if(transTask.getNextStationId().startsWith("LL") || transTask.getNextStationId().startsWith("LG")) { // 缁堢偣浜х嚎
+ } else if(transTask.getNextStationId().startsWith("LL") || transTask.getNextStationId().startsWith("LJ")|| transTask.getNextStationId().startsWith("LG") || transTask.getNextStationId().startsWith("LT")) { // 缁堢偣浜х嚎
rcsTaskSubmit.setTaskType("DJ2");
}
rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno());
@@ -850,7 +850,7 @@
*/
public int applyInStation(TransParent apply) {
- String url = MES_URL + (apply.getProductLineId().equals("LL") ? "AGVTransportPalletNotice" : "Aprs/AGVTransportPalletNotice");
+ String url = MES_URL + (apply.getProductLineId().equals("LL") || apply.getProductLineId().equals("LJ") ? "AGVTransportPalletNotice" : "Aprs/AGVTransportPalletNotice");
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
if (!StringUtils.isEmpty(response) && response.contains("Success")){
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
@@ -962,7 +962,7 @@
*/
public int outStation(TransParent apply) {
- String url = MES_URL + (apply.getProductLineId().equals("LL") ? "AGVDepartureCompleted" : "Aprs/AGVDepartureCompleted");
+ String url = MES_URL + (apply.getProductLineId().equals("LL") || apply.getProductLineId().equals("LJ") ? "AGVDepartureCompleted" : "Aprs/AGVDepartureCompleted");
String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
if (!StringUtils.isEmpty(response) && response.contains("Success")){
MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
@@ -1010,7 +1010,7 @@
stockDetl.setAnfme(locDetl.getAnfme());
stockDetls.add(stockDetl);
}
- dtLocDetailVo.setLocDetl(stockDetls);
+ dtLocDetailVo.setLocDetls(stockDetls);
dtLocDetailVoList.add(dtLocDetailVo);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index a008dca..32ba6a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -300,9 +300,15 @@
@Override
@Transactional
- public R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId, Long userId) {
+ public R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long userId) {
+ WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+ if(wrkMast1 == null) {
+ return R.parse("璇ユ潯鐮佷笉瀛樺湪浠诲姟锛�" + param.getBarcode());
+ } else if(wrkMast1.getIoType() != 103) {
+ return R.parse("璇ヤ换鍔″嚭搴撶被鍨嬩笉涓烘嫞鏂欏嚭搴擄細" + wrkMast1.getIoType());
+ }
//鍒ゆ柇搴撲綅鐘舵��
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo()));
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast1.getSourceLocNo()));
if (Cools.isEmpty(locMast)) {
return R.error("璇ュ簱浣嶄笉瀛樺湪");
}
@@ -319,9 +325,9 @@
wrkMast.setIoType(8); // 鍏ュ嚭搴撶姸鎬侊細8.鎷f枡閫斾腑骞舵澘
wrkMast.setIoPri(13D); // 浼樺厛绾�
wrkMast.setCrnNo(1);
- wrkMast.setSourceStaNo(1 + "");
- wrkMast.setStaNo(1 + "");
- wrkMast.setLocNo(param.getLocNo());
+ wrkMast.setSourceStaNo(104 + "");
+ wrkMast.setStaNo(106 + "");
+ wrkMast.setLocNo(locMast.getLocNo());
wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
@@ -761,7 +767,8 @@
}
int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
- int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
+// int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
+ int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()).ne("wrk_sts",15));
int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
if (countLoc > 0 || countWrk > 0 || countwait > 0) {
throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index f3dd197..02bf153 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -487,13 +487,13 @@
mesService.outStation(apply);
// agv缁х画鎵ц
// 婧愮珯鐐规槸浜х嚎锛岀绔欏畬鎴愬悗缁檙cs鍙嶉缁х画鎵ц
- if(task.getSourceStaNo().contains("TOOL")) {
- TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
- inOutStationAllow.setTaskno(robotTaskCode);
- inOutStationAllow.setStatus("Y");
- inOutStationAllow.setAgvCode(singleRobotCode);
- mesService.allowOutStation(inOutStationAllow);
- }
+// if(task.getSourceStaNo().contains("TOOL")) {
+// TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+// inOutStationAllow.setTaskno(robotTaskCode);
+// inOutStationAllow.setStatus("Y");
+// inOutStationAllow.setAgvCode(singleRobotCode);
+// mesService.allowOutStation(inOutStationAllow);
+// }
}
} break;
case ARRIVE_ON_STATION: {
@@ -527,6 +527,9 @@
if(transType.equals("01") && arrivalStation.getStationID().contains("XL") || arrivalStation.getStationID().contains("TOOL")) {
path = "ToolArrivalNotice";
}
+ if (arrivalStation.getStationID().startsWith("LG") || arrivalStation.getStationID().startsWith("LT")) {
+ path = "Aprs/" + path;
+ }
mesService.arriveOnStation(arrivalStation,path);
} break;
default: {} break;
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index 6e602da..1b0199b 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.TaskMapper;
@@ -14,6 +15,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -35,6 +37,9 @@
@Autowired
private TaskDetlLogService taskDetlLogService;
+ @Resource
+ private BasStationService basStationService;
+
@Override
@Transactional(rollbackFor = Exception.class)
public void completeWrkMast(String workNo, Long userId) {
@@ -42,13 +47,37 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- if (wrkMast.getWrkSts() == 304) {
- throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ Date now = new Date();
+ // 缁堢偣鏄帴椹充綅 鍙兘瀹屾垚305
+ if (wrkMast.getStaNo().startsWith("A")) {
+ if(wrkMast.getWrkSts() == 305) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ wrkMast.setWrkSts(305L);
+ // 缁戝畾绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("F");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
+ } else {
+ // 璧风偣鏄帴椹充綅 鍙兘瀹屾垚304
+ if (wrkMast.getWrkSts() == 304) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ wrkMast.setWrkSts(304L);
+ // 瑙g粦绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("O");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
}
- wrkMast.setWrkSts(304L);
-
- Date now = new Date();
wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
wrkMast.setCrnEndTime(now);
wrkMast.setModiTime(now);
@@ -60,61 +89,68 @@
}
}
+ @Resource
+ private MobileService mobileService;
+
@Override
@Transactional
public void pickWrkMast(String workNo, Long userId) {
- Task wrkMast = this.selectById(workNo);
+ Task wrkMast = this.selectOne(new EntityWrapper<Task>().eq("wrk_no", workNo));
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- // 鍏ュ嚭搴撶被鍨嬪垽鏂�
- if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
- throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
+ R r = mobileService.djReturn(wrkMast.getBarcode());
+ if(!r.get("code").equals(200)) {
+ throw new CoolException(""+r.get("msg"));
}
- // 宸ヤ綔鐘舵�佸垽鏂�
- if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
- throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
- }
- // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
-// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
-// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+// // 鍏ュ嚭搴撶被鍨嬪垽鏂�
+// if (wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) {
+// throw new CoolException("褰撳墠鍏ュ嚭搴撶被鍨嬫棤娉曡繘琛屾搷浣�");
// }
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (!taskLogService.save(wrkMast.getWrkNo())) {
- throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
- }
- // 鑾峰彇鐩爣绔�
-// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-// .eq("type_no", wrkMast.getIoType() - 50)
-// .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-// .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
-// StaDesc staDesc = staDescService.selectOne(wrapper);
-// if (Cools.isEmpty(staDesc)) {
-// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+// // 宸ヤ綔鐘舵�佸垽鏂�
+// if (wrkMast.getWrkSts() < 11 || wrkMast.getWrkSts() == 15) {
+// throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曡繘琛屾搷浣�");
// }
- Date now = new Date();
- // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
-// Integer staNo = staDesc.getCrnStn();
- // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
- wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
- wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
- wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-// wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
- wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
- wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
- wrkMast.setModiTime(now);
- wrkMast.setModiUser(userId);
- if (!this.updateById(wrkMast)) {
- throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
- }
- // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
- LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
- locMast.setLocSts("Q");
- locMast.setModiTime(now);
- locMast.setModiUser(userId);
- if (!locCacheService.updateById(locMast)) {
- throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
- }
+// // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+//// if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
+//// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。澶辫触");
+//// }
+// // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+// if (!taskLogService.save(wrkMast.getWrkNo())) {
+// throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+// }
+// // 鑾峰彇鐩爣绔�
+//// Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+//// .eq("type_no", wrkMast.getIoType() - 50)
+//// .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+//// .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+//// StaDesc staDesc = staDescService.selectOne(wrapper);
+//// if (Cools.isEmpty(staDesc)) {
+//// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+//// }
+// Date now = new Date();
+// // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+//// Integer staNo = staDesc.getCrnStn();
+// // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+// wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+// wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+// wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+//// wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+// wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+// wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+// wrkMast.setModiTime(now);
+// wrkMast.setModiUser(userId);
+// if (!this.updateById(wrkMast)) {
+// throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+// }
+// // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+// LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
+// locMast.setLocSts("Q");
+// locMast.setModiTime(now);
+// locMast.setModiUser(userId);
+// if (!locCacheService.updateById(locMast)) {
+// throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+// }
}
@Override
@@ -131,8 +167,35 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
- if(wrkMast.getWrkSts() >= 304) {
- throw new CoolException("宸ヤ綔鐘舵�佸凡缁忓畬鎴愶細" + wrkMast.getWrkSts());
+ // 缁堢偣鏄帴椹充綅
+ if (wrkMast.getStaNo().startsWith("A")) {
+// if(wrkMast.getWrkSts() == 305) {
+// throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+// }
+ // 瑙g粦绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("O");
+ basStation.setBarcode("");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
+
+ } else {
+ // 璧风偣鏄帴椹充綅 鍙兘瀹屾垚304
+ if (wrkMast.getWrkSts() == 304) {
+ throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+ }
+ // 瑙g粦绔欑偣
+ BasStation basStation = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
+ if (basStation.getBarcode().equals(wrkMast.getBarcode())) {
+ basStation.setLocSts("O");
+ basStation.setBarcode("");
+ basStation.setModiTime(now);
+ basStation.setModiUser(userId);
+ basStationService.updateById(basStation);
+ }
}
// 鍙栨秷鎿嶄綔浜哄憳璁板綍
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 494de65..e3c903e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -24,6 +24,7 @@
import com.zy.common.service.CommonService;
import com.zy.common.web.WcsController;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -209,6 +210,70 @@
}
@Override
+ public void webComb(FullStoreParam param, Long userId) {
+ if (Cools.isEmpty(param.getBarcode(), param.getList())) {
+ throw new CoolException(BaseRes.PARAM);
+ }
+ if (param.getList().size() < 1) {
+ throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒");
+ }
+ // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+ if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+ eq("zpallet", param.getBarcode())
+ .eq("io_status", "N")) > 0) {
+ throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+ }
+
+ if (param.getBarcode().length() != 8) {
+ throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+ }
+
+ int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
+ int countWrk = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()).ne("wrk_sts",15));
+ int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
+ if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+ throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+ }
+
+ Date now = new Date();
+
+ List<DetlDto> detlDtos = new ArrayList<>();
+ param.getList().forEach(elem -> {
+ DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
+ elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+ if (DetlDto.has(detlDtos, detlDto)) {
+ DetlDto one = DetlDto.findDto(detlDtos, detlDto);
+ assert one != null;
+ one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+ } else {
+ detlDtos.add(detlDto);
+ }
+ });
+
+ for (DetlDto detlDto : detlDtos) {
+ Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ WaitPakin waitPakin = new WaitPakin();
+ BeanUtils.copyProperties(mat, waitPakin);
+ waitPakin.setMemo("");
+ waitPakin.setBatch(detlDto.getBatch());
+ waitPakin.setZpallet(param.getBarcode());
+ waitPakin.setIoStatus("N");
+ waitPakin.setAnfme(detlDto.getAnfme());
+ waitPakin.setStatus("Y");
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ }
+ }
+
+ @Override
@Transactional
public void turnOverOut(EmptyPlateOutParam param, Long userId) {
try {
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
index 1951327..bea3d86 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
@@ -37,7 +37,9 @@
WrkMastLog mastLog = new WrkMastLog();
BeanUtils.copyProperties(mast, mastLog);
// mastLog.setLogId(mast.getId());
-
+ mastLog.setWrkSts(mast.getWrkSts().intValue());
+ mastLog.setSourceStaNo(Integer.valueOf(mast.getSourceStaNo()));
+ mastLog.setStaNo(Integer.valueOf(mast.getStaNo()));
if (!wrkMastLogService.insert(mastLog)) {
throw new CoolException("浠诲姟鏃ュ織淇濆瓨澶辫触锛侊紒");
}
diff --git a/src/main/java/com/zy/asrs/task/JlerScheduler.java b/src/main/java/com/zy/asrs/task/JlerScheduler.java
index 1989eca..b6c640d 100644
--- a/src/main/java/com/zy/asrs/task/JlerScheduler.java
+++ b/src/main/java/com/zy/asrs/task/JlerScheduler.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.entity.OrderPakout;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.DigitalTwinService;
import com.zy.asrs.service.OrderPakoutService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.handler.JlerHandler;
@@ -67,5 +68,16 @@
}
}
+ @Resource
+ private DigitalTwinService digitalTwinService;
+
+ /**
+ * 瀹氭椂缁熻姣忓ぉ鍓╀綑搴撳瓨
+ */
+ @Scheduled(cron = "0 50 23 * * ?")
+ private void locNumCount() {
+ digitalTwinService.locNumCount();
+ }
+
}
diff --git a/src/main/java/com/zy/common/config/AdminInterceptor.java b/src/main/java/com/zy/common/config/AdminInterceptor.java
index 795e7a1..7ede2ec 100644
--- a/src/main/java/com/zy/common/config/AdminInterceptor.java
+++ b/src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -122,8 +122,8 @@
User user = userService.selectById(userLogin.getUserId());
// String deToken = Cools.deTokn(token, user.getPassword());
// long timestamp = Long.parseLong(deToken.substring(0, 13));
- // 15鍒嗛挓鍚庤繃鏈�
- if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 900000){
+ // 45鍒嗛挓鍚庤繃鏈�
+ if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 2700000){
Http.response(response, BaseRes.DENIED);
return false;
}
diff --git a/src/main/java/com/zy/common/config/ControllerResAdvice.java b/src/main/java/com/zy/common/config/ControllerResAdvice.java
index d48b27f..b30f16a 100644
--- a/src/main/java/com/zy/common/config/ControllerResAdvice.java
+++ b/src/main/java/com/zy/common/config/ControllerResAdvice.java
@@ -1,6 +1,7 @@
package com.zy.common.config;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.mes.MesReturn;
@@ -75,6 +76,20 @@
String.valueOf(mesReturn.getSuccess()).equalsIgnoreCase("1")
);
}
+ if (o instanceof JSONObject) {
+ String appkey = request.getHeader("appkey");
+ Object reqCache = request.getAttribute("cache");
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ String.valueOf(appAuth),
+ request.getRequestURI(),
+ appkey,
+ IpTools.gainRealIp(request),
+ reqCache==null?"": JSON.toJSONString(reqCache),
+ JSON.toJSONString(o),
+ String.valueOf(((JSONObject) o).get("Success")).equalsIgnoreCase("1")
+ );
+ }
}
}
return o;
diff --git a/src/main/java/com/zy/system/controller/UserController.java b/src/main/java/com/zy/system/controller/UserController.java
index a823f5a..98825f2 100644
--- a/src/main/java/com/zy/system/controller/UserController.java
+++ b/src/main/java/com/zy/system/controller/UserController.java
@@ -117,6 +117,9 @@
if (user.getMobile()!=null) {
entity.setMobile(user.getMobile());
}
+ if (user.getRoleId()!=null) {
+ entity.setRoleId(user.getRoleId());
+ }
userService.updateById(entity);
return R.ok();
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 27054ef..35bedfd 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -126,7 +126,8 @@
#mes瀵规帴
mes:
- url: http://172.26.11.250/dev-api/basicmodel/Api/WMS/
+ url: http://192.9.100.173:8088/prod-api/basicmodel/Api/WMS/
+ # url: http://172.26.11.250/dev-api/basicmodel/Api/WMS/
#榛樿鎺ュ彛鎿嶄綔浜哄憳id
defaultUserId: 30
@@ -140,5 +141,5 @@
#鍒�鍏风鐞嗙郴缁熷鎺�
dj:
- url: http://172.26.11.2/
+ url: http://172.26.11.2:8080/
diff --git a/src/main/resources/mapper/LocCountMapper.xml b/src/main/resources/mapper/LocCountMapper.xml
index 60bc842..ab431a3 100644
--- a/src/main/resources/mapper/LocCountMapper.xml
+++ b/src/main/resources/mapper/LocCountMapper.xml
@@ -22,11 +22,18 @@
</select>
<insert id="insertOrUpdate" parameterType="com.zy.asrs.entity.LocCount">
- IF EXISTS (SELECT date FROM asr_loc_count WHERE date = #{model.date} AND area_id = #{model.areaId})
- INSERT INTO asr_loc_count(date, area_id, loc_num, remain_num)
- VALUES (#{model.date}, #{model.areaId}, #{model.locNum}, #{model.remainNum})
+ IF EXISTS (SELECT 1 FROM asr_loc_count WHERE date = #{model.date})
+ BEGIN
+ UPDATE asr_loc_count
+ SET loc_num = #{model.locNum},
+ remain_num = #{model.remainNum}
+ WHERE date = #{model.date}
+ END
ELSE
- UPDATE asr_loc_count SET loc_num = #{model.locNum}, remain_num = #{model.remainNum}
+ BEGIN
+ INSERT INTO asr_loc_count(date, area_id, loc_num, remain_num)
+ VALUES (#{model.date}, #{model.areaId}, #{model.locNum}, #{model.remainNum})
+ END
</insert>
<select id="totalLoc" resultType="com.zy.asrs.entity.LocCount">
diff --git a/src/main/resources/mapper/ViewDigitalTwinMapper.xml b/src/main/resources/mapper/ViewDigitalTwinMapper.xml
index 4f909df..3fa11af 100644
--- a/src/main/resources/mapper/ViewDigitalTwinMapper.xml
+++ b/src/main/resources/mapper/ViewDigitalTwinMapper.xml
@@ -6,45 +6,61 @@
<!--鎬昏锛氭�诲簱浣嶃�佸凡鐢ㄥ簱浣嶃�佷粖鏃ュ簱瀛樸�佷粖鏃ュ嚭搴撱�佷粖鏃ュ叆搴�-->
<select id="overview" resultType="Double">
SELECT COUNT(*) FROM asr_loc_mast WHERE loc_sts != 'Z'
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
+ <!-- <if test="areaId != null">-->
+ <!-- and area_id = #{areaId}-->
+ <!-- </if>-->
UNION ALL
SELECT COUNT(*) FROM asr_loc_mast WHERE loc_sts = 'F' or loc_sts = 'P' or loc_sts = 'Q' or loc_sts = 'R' or loc_sts = 'S' or loc_sts = 'X'
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
+ <!-- <if test="areaId != null">-->
+ <!-- and area_id = #{areaId}-->
+ <!-- </if>-->
UNION ALL
SELECT ISNULL(SUM(anfme), 0) FROM asr_loc_detl
- <if test="areaId != null">
- WHERE area_id = #{areaId}
- </if>
+ <!-- <if test="areaId != null">-->
+ <!-- WHERE area_id = #{areaId}-->
+ <!-- </if>-->
UNION ALL
SELECT ISNULL(SUM(anfme), 0) FROM asr_wrkin_view WHERE CONVERT(VARCHAR, io_time, 23) = CONVERT(VARCHAR, GETDATE(), 23)
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
+ <!-- <if test="areaId != null">-->
+ <!-- and area_id = #{areaId}-->
+ <!-- </if>-->
UNION ALL
SELECT ISNULL(SUM(anfme), 0) FROM asr_wrkout_view WHERE CONVERT(VARCHAR, io_time, 23) = CONVERT(VARCHAR, GETDATE(), 23)
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
+ <!-- <if test="areaId != null">-->
+ <!-- and area_id = #{areaId}-->
+ <!-- </if>-->
</select>
<select id="recentOrder" resultType="com.zy.asrs.entity.digitaltwin.DtOrderVo">
- SELECT CONVERT(VARCHAR, order_time, 23) as orderDate, COUNT(*) AS orderNum
- FROM man_order
+
+ SELECT
+ FORMAT(orderDate, 'yyyyMMdd') as orderDate,
+ COUNT(*) as orderNum
+ FROM (
+ SELECT
+ CAST(order_time AS DATE) as orderDate
+ FROM man_order_pakin
WHERE order_time BETWEEN #{startTime} AND #{endTime}
- GROUP BY CONVERT(VARCHAR, order_time, 23)
+
+ UNION ALL
+
+ SELECT
+ CAST(order_time AS DATE) as orderDate
+ FROM man_order_pakout
+ WHERE order_time BETWEEN #{startTime} AND #{endTime}
+ ) combined
+ GROUP BY orderDate
+ ORDER BY orderDate
+
</select>
<select id="recentInBound" resultType="com.zy.asrs.entity.digitaltwin.DtInAndOutBoundVo">
SELECT CONVERT(VARCHAR, io_time, 23) AS boundDate, SUM(anfme) AS inBoundNum
FROM asr_wrkin_view
WHERE io_time BETWEEN #{startTime} AND #{endTime}
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
+<!-- <if test="areaId != null">-->
+<!-- and area_id = #{areaId}-->
+<!-- </if>-->
GROUP BY CONVERT(VARCHAR, io_time, 23)
</select>
@@ -52,28 +68,31 @@
SELECT CONVERT(VARCHAR, io_time, 23) AS boundDate, SUM(anfme) AS outBoundNum
FROM asr_wrkout_view
WHERE io_time BETWEEN #{startTime} AND #{endTime}
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
+<!-- <if test="areaId != null">-->
+<!-- and area_id = #{areaId}-->
+<!-- </if>-->
GROUP BY CONVERT(VARCHAR, io_time, 23)
</select>
<select id="recentDetainMat" resultType="com.zy.asrs.entity.digitaltwin.DtDetainMatVo">
- select
- *
- from (
- select
- ROW_NUMBER() OVER(Order by t.io_time desc) as row , *
- from (
- SELECT area_id AS belongAreaId, area_name AS belongAreaName, matnr AS matId, maktx AS matName,
- loc_no AS lokId, '' AS lokName,
- DATEDIFF(MINUTE, appe_time, GETDATE()) AS detainTime, appe_time AS inBoundTime
- FROM asr_loc_detl WHERE appe_time < #{startTime}
- <if test="areaId != null">
- and area_id = #{areaId}
- </if>
- ) t
- ) a where 1=1 and a.row between ((#{pageIndex}-1)*#{pageSize}+1) and (#{pageIndex}*#{pageSize})
+ SELECT *
+ FROM (
+ SELECT
+ ROW_NUMBER() OVER(ORDER BY t.inBoundTime DESC) AS rownum,
+ t.*
+ FROM (
+ SELECT
+ matnr AS matId,
+ maktx AS matName,
+ loc_no AS lokId,
+ '' AS lokName,
+ DATEDIFF(MINUTE, appe_time, GETDATE()) AS detainTime,
+ appe_time AS inBoundTime
+ FROM asr_loc_detl
+ WHERE appe_time <= #{startTime}
+ ) t
+ ) a
+ WHERE a.rownum BETWEEN ((#{pageIndex}-1)*#{pageSize}+1) AND (#{pageIndex}*#{pageSize})
</select>
</mapper>
diff --git a/src/main/resources/mapper/ViewInOutMapper.xml b/src/main/resources/mapper/ViewInOutMapper.xml
index 8152776..64694b1 100644
--- a/src/main/resources/mapper/ViewInOutMapper.xml
+++ b/src/main/resources/mapper/ViewInOutMapper.xml
@@ -19,9 +19,22 @@
]]>
</if>
</sql>
+ <resultMap id="ViewInOutMap" type="com.zy.asrs.entity.ViewInOutBean">
+ <result column="ymd" property="ymd"/>
+ <result column="source_sta_no" property="source_sta_no"/>
+
+ <result column="sto_qty" property="sto_qty"/>
+ <result column="ret_qty" property="ret_qty"/>
+ <result column="total_qty" property="total_qty"/>
+
+ <!-- 鏌ヨ鏉′欢瀛楁锛堜竴鑸笉浠� SQL 杩斿洖锛屼篃鍐欎笂涓嶅奖鍝嶏級 -->
+ <result column="begin_date" property="begin_date"/>
+ <result column="end_date" property="end_date"/>
+
+ </resultMap>
<!-- 鍒嗛〉鏌ヨ鎵�鏈変俊鎭� -->
-<select id="queryViewInOutList" parameterType="com.zy.asrs.entity.ViewInOutBean" resultType="com.zy.asrs.entity.ViewInOutBean">
+<select id="queryViewInOutList" parameterType="com.zy.asrs.entity.ViewInOutBean" resultMap="ViewInOutMap">
select * from (
select *,ROW_NUMBER() OVER(Order by ymd desc) as rowid
from asr_sta_inout_view
diff --git a/src/main/resources/mapper/ViewStayTimeMapper.xml b/src/main/resources/mapper/ViewStayTimeMapper.xml
index 2b01a4f..2793723 100644
--- a/src/main/resources/mapper/ViewStayTimeMapper.xml
+++ b/src/main/resources/mapper/ViewStayTimeMapper.xml
@@ -38,9 +38,66 @@
]]>
</if>
</sql>
+ <resultMap id="ViewStayTimeMap" type="com.zy.asrs.entity.ViewStayTimeBean">
+ <!-- 鍒嗛〉 / 琛屽彿 -->
+ <result column="row" property="row"/>
+ <result column="stay_time" property="stay_time"/>
+
+ <!-- 鏃堕棿鏉′欢 -->
+ <result column="begin_date" property="begin_date"/>
+ <result column="end_date" property="end_date"/>
+
+ <!-- 鍩虹淇℃伅 -->
+ <result column="loc_no" property="loc_no"/>
+ <result column="zpallet" property="zpallet"/>
+ <result column="anfme" property="anfme"/>
+ <result column="matnr" property="matnr"/>
+ <result column="maktx" property="maktx"/>
+ <result column="batch" property="batch"/>
+
+ <!-- 鈿狅笍 鐗瑰埆娉ㄦ剰杩欎釜 -->
+ <result column="order_no" property="orderNo"/>
+
+ <result column="specs" property="specs"/>
+ <result column="model" property="model"/>
+ <result column="color" property="color"/>
+ <result column="brand" property="brand"/>
+ <result column="unit" property="unit"/>
+ <result column="price" property="price"/>
+ <result column="sku" property="sku"/>
+ <result column="units" property="units"/>
+ <result column="barcode" property="barcode"/>
+ <result column="origin" property="origin"/>
+ <result column="manu" property="manu"/>
+ <result column="manu_date" property="manu_date"/>
+ <result column="item_num" property="item_num"/>
+ <result column="safe_qty" property="safe_qty"/>
+ <result column="weight" property="weight"/>
+ <result column="man_length" property="man_length"/>
+ <result column="volume" property="volume"/>
+ <result column="three_code" property="three_code"/>
+ <result column="supp" property="supp"/>
+ <result column="supp_code" property="supp_code"/>
+
+ <!-- 鏍囧織浣� -->
+ <result column="be_batch" property="be_batch"/>
+ <result column="dead_time" property="dead_time"/>
+ <result column="dead_warn" property="dead_warn"/>
+ <result column="source" property="source"/>
+ <result column="inspect" property="inspect"/>
+ <result column="danger" property="danger"/>
+
+ <!-- 瀹¤瀛楁 -->
+ <result column="modi_user" property="modi_user"/>
+ <result column="modi_time" property="modi_time"/>
+ <result column="appe_user" property="appe_user"/>
+ <result column="appe_time" property="appe_time"/>
+ <result column="memo" property="memo"/>
+
+ </resultMap>
<!-- 鍒嗛〉鏌ヨ鎵�鏈変俊鎭� -->
-<select id="queryViewStayTimeList" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean">
+<select id="queryViewStayTimeList" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultMap="ViewStayTimeMap">
select
*
from (
diff --git a/src/main/resources/mapper/ViewStockUseMapper.xml b/src/main/resources/mapper/ViewStockUseMapper.xml
index cb6440b..cf1c9e0 100644
--- a/src/main/resources/mapper/ViewStockUseMapper.xml
+++ b/src/main/resources/mapper/ViewStockUseMapper.xml
@@ -9,9 +9,20 @@
and row1 like '%' + #{row1} + '%'
</if>
</sql>
+ <resultMap id="ViewStockUseMap" type="com.zy.asrs.entity.ViewStockUseBean">
+ <id column="row1" property="row1"/>
+ <result column="total_qty" property="total_qty"/>
+ <result column="full_qty" property="full_qty"/>
+ <result column="null_qty" property="null_qty"/>
+ <result column="forbid_qty" property="forbid_qty"/>
+ <result column="empty_qty" property="empty_qty"/>
+ <!-- <result column="use_qty" property="use_qty"/>-->
+ <result column="full_rate" property="full_rate"/>
+ <result column="occ_rate" property="occ_rate"/>
+ </resultMap>
<!-- 鍒嗛〉鏌ヨ鎵�鏈変俊鎭� -->
-<select id="queryViewStockUseList" parameterType="com.zy.asrs.entity.ViewStockUseBean" resultType="com.zy.asrs.entity.ViewStockUseBean">
+<select id="queryViewStockUseList" parameterType="com.zy.asrs.entity.ViewStockUseBean" resultMap="ViewStockUseMap">
select top (#{pageSize}) * from asr_stk_use_view
<where>
row1 not in (select top ((#{pageNumber}-1)*#{pageSize}) row1 from asr_stk_use_view
diff --git a/src/main/resources/mapper/ViewWorkInMapper.xml b/src/main/resources/mapper/ViewWorkInMapper.xml
index 0f5d0cd..b928e19 100644
--- a/src/main/resources/mapper/ViewWorkInMapper.xml
+++ b/src/main/resources/mapper/ViewWorkInMapper.xml
@@ -83,10 +83,76 @@
]]>
</if>
</sql>
+ <resultMap id="ViewWorkInMap" type="com.zy.asrs.entity.ViewWorkInBean">
+ <!-- 鍒嗛〉 / 琛屽彿 / 鍋滅暀鏃堕暱 -->
+ <result column="row" property="row"/>
+ <result column="stay_time" property="stay_time"/>
+
+ <!-- 鏌ヨ鏉′欢 -->
+ <result column="begin_date" property="begin_date"/>
+ <result column="end_date" property="end_date"/>
+ <result column="query_date" property="query_date"/>
+
+ <!-- 鍫嗗灈鏈� / 鏃堕棿 -->
+ <result column="crn_str_time" property="crn_str_time"/>
+ <result column="crn_end_time" property="crn_end_time"/>
+
+ <!-- 浣滀笟淇℃伅 -->
+ <result column="wrk_no" property="wrk_no"/>
+ <result column="io_time" property="io_time"/>
+
+ <!-- 搴撳瓨淇℃伅 -->
+ <result column="loc_no" property="loc_no"/>
+ <result column="zpallet" property="zpallet"/>
+ <result column="anfme" property="anfme"/>
+ <result column="matnr" property="matnr"/>
+ <result column="maktx" property="maktx"/>
+ <result column="batch" property="batch"/>
+
+ <!-- 鈿狅笍 娉ㄨВ鍦� XML 涓棤鏁堬紝蹇呴』鎵嬪姩 -->
+ <result column="order_no" property="orderNo"/>
+
+ <result column="specs" property="specs"/>
+ <result column="model" property="model"/>
+ <result column="color" property="color"/>
+ <result column="brand" property="brand"/>
+ <result column="unit" property="unit"/>
+ <result column="price" property="price"/>
+ <result column="sku" property="sku"/>
+ <result column="units" property="units"/>
+ <result column="barcode" property="barcode"/>
+ <result column="origin" property="origin"/>
+ <result column="manu" property="manu"/>
+ <result column="manu_date" property="manu_date"/>
+ <result column="item_num" property="item_num"/>
+ <result column="safe_qty" property="safe_qty"/>
+ <result column="weight" property="weight"/>
+ <result column="man_length" property="man_length"/>
+ <result column="volume" property="volume"/>
+ <result column="three_code" property="three_code"/>
+ <result column="supp" property="supp"/>
+ <result column="supp_code" property="supp_code"/>
+
+ <!-- 鏍囧織 / 绛栫暐 -->
+ <result column="be_batch" property="be_batch"/>
+ <result column="dead_time" property="dead_time"/>
+ <result column="dead_warn" property="dead_warn"/>
+ <result column="source" property="source"/>
+ <result column="inspect" property="inspect"/>
+ <result column="danger" property="danger"/>
+
+ <!-- 瀹¤瀛楁 -->
+ <result column="modi_user" property="modi_user"/>
+ <result column="modi_time" property="modi_time"/>
+ <result column="appe_user" property="appe_user"/>
+ <result column="appe_time" property="appe_time"/>
+ <result column="memo" property="memo"/>
+
+ </resultMap>
<!-- 鍏ュ簱缁熻 -->
<!-- 鍒嗛〉鏌ヨ鎵�鏈変俊鎭� -->
-<select id="queryViewWorkInList" parameterType="com.zy.asrs.entity.ViewWorkInBean" resultType="com.zy.asrs.entity.ViewWorkInBean">
+<select id="queryViewWorkInList" parameterType="com.zy.asrs.entity.ViewWorkInBean" resultMap="ViewWorkInMap">
select
*
from (
@@ -122,7 +188,7 @@
<!-- 鍑哄簱缁熻 -->
<!-- 鍒嗛〉鏌ヨ鎵�鏈変俊鎭� -->
-<select id="queryViewWorkOutList" parameterType="com.zy.asrs.entity.ViewWorkInBean" resultType="com.zy.asrs.entity.ViewWorkInBean">
+<select id="queryViewWorkOutList" parameterType="com.zy.asrs.entity.ViewWorkInBean" resultMap="ViewWorkInMap">
select
diff --git a/src/main/resources/mapper/WrkMastLogMapper.xml b/src/main/resources/mapper/WrkMastLogMapper.xml
index 8a91989..b484e56 100644
--- a/src/main/resources/mapper/WrkMastLogMapper.xml
+++ b/src/main/resources/mapper/WrkMastLogMapper.xml
@@ -61,6 +61,7 @@
<result column="full_plt" property="fullPlt" />
<result column="pre_have" property="preHave" />
<result column="take_none" property="takeNone" />
+ <result column="task_no" property="taskNo" />
</resultMap>
<sql id="queryWhere">
<where>
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index f6e0a06..27fe5f3 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -60,6 +60,7 @@
<result column="full_plt" property="fullPlt" />
<result column="pre_have" property="preHave" />
<result column="take_none" property="takeNone" />
+ <result column="task_no" property="taskNo" />
</resultMap>
<select id="selectToBeCompleteData" resultMap="BaseResultMap">
diff --git a/src/main/webapp/static/js/pakStore/emptyOut.js b/src/main/webapp/static/js/pakStore/emptyOut.js
index 8bbc97c..88cb0ea 100644
--- a/src/main/webapp/static/js/pakStore/emptyOut.js
+++ b/src/main/webapp/static/js/pakStore/emptyOut.js
@@ -55,6 +55,7 @@
,{field: 'row1', align: 'center',title: '鎺�'}
,{field: 'bay1', align: 'center',title: '鍒�'}
,{field: 'lev1', align: 'center',title: '灞�'}
+ ,{field: 'barcode', align: 'center',title: '鏂欑鐮�'}
,{field: 'fullPlt', align: 'center',title: '婊℃澘', templet:function(row){
var html = "<input value='fullPlt' type='checkbox' disabled=鈥榙isabled鈥� lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
if(row.fullPlt === 'Y'){html += " checked ";}
diff --git a/src/main/webapp/static/js/pakStore/pakStore.js b/src/main/webapp/static/js/pakStore/pakStore.js
index 863b89f..3f5f9ec 100644
--- a/src/main/webapp/static/js/pakStore/pakStore.js
+++ b/src/main/webapp/static/js/pakStore/pakStore.js
@@ -79,9 +79,14 @@
return;
}
}
- let devpNo = $('#putSiteSelect').val();
+ let devpNo = $('#barcode').val();
if (isEmpty(devpNo)) {
- layer.msg("璇烽�夋嫨鍏ュ簱绔�", {icon: 2});
+ layer.msg("璇疯緭鍏ユ枡绠辩爜", {icon: 2});
+ return;
+ }
+ // 8 浣嶇函鏁板瓧鏍¢獙
+ if (!/^\d{8}$/.test(devpNo)) {
+ layer.msg("鏂欑鐮佸繀椤绘槸 8 浣嶇函鏁板瓧", { icon: 2 });
return;
}
console.log(matCodeData)
@@ -89,7 +94,7 @@
url: baseUrl+"/full/store/put/start",
headers: {'token': localStorage.getItem('token')},
data: JSON.stringify({
- devpNo: Number(devpNo),
+ barcode: devpNo,
list: matCodeData
}),
contentType:'application/json;charset=UTF-8',
@@ -97,8 +102,9 @@
async: false,
success: function (res) {
if (res.code === 200){
- layer.msg("鍏ュ簱鍚姩鎴愬姛锛岀洰鏍囧簱浣嶏細" + res.data, {icon: 1});
+ layer.msg(res.msg, {icon: 1});
matCodeData = [];
+ $('#barcode').val("");
$('#focusMatByMat').val("");
tableIns.reload({data: matCodeData,done:function (res) { limit(); getInBound();}});
} else if (res.code === 403){
diff --git a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
index 9f7c461..8b0266d 100644
--- a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
+++ b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -33,6 +33,7 @@
,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'taskNo', align: 'center',title: 'CTU浠诲姟鍙�', width:140}
// ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
// var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
// if(row.picking === 'Y'){html += " checked ";}
diff --git a/src/main/webapp/views/pakStore/pakStore.html b/src/main/webapp/views/pakStore/pakStore.html
index fc396cb..8761e0a 100644
--- a/src/main/webapp/views/pakStore/pakStore.html
+++ b/src/main/webapp/views/pakStore/pakStore.html
@@ -98,12 +98,14 @@
<div class="layui-form">
<div class="layui-btn-container">
<!-- 1.閫夋嫨鍏ュ簱鍙� -->
- <span id="staNoSpan">鍏ュ簱鍙o細</span>
- <select id="putSiteSelect" lay-verify="required">
- <option value="">璇烽�夋嫨绔欑偣</option>
- </select>
+ <span id="staNoSpan">鏂欑鐮侊細
+ <input id="barcode" class="layui-input" type="text" autocomplete="off" style="width: 120px">
+ </span>
+ <!-- <select id="putSiteSelect" lay-verify="required">-->
+ <!-- <option value="">璇烽�夋嫨绔欑偣</option>-->
+ <!-- </select>-->
<!-- 2.鍚姩鍏ュ簱 -->
- <button class="layui-btn layui-btn-normal layui-btn-lg" id="btn-comb" lay-event="comb" style="">鍚姩鍏ュ簱</button>
+ <button class="layui-btn layui-btn-normal layui-btn-lg" id="btn-comb" lay-event="comb">缁勬墭</button>
</div>
</div>
</script>
diff --git a/src/main/webapp/views/task/task.html b/src/main/webapp/views/task/task.html
index b3e97a7..1dd2b5e 100644
--- a/src/main/webapp/views/task/task.html
+++ b/src/main/webapp/views/task/task.html
@@ -59,8 +59,8 @@
<a class="layui-btn layui-btn-xs btn-detlShow" lay-event="detlShow">鏄庣粏</a>
<a class="layui-btn layui-btn-danger layui-btn-xs btn-complete" lay-event="complete">瀹屾垚</a>
<a class="layui-btn layui-btn-primary layui-btn-xs btn-cancel" lay-event="cancel">鍙栨秷</a>
- {{#if (d.ioType === 103) { }}
- <a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">鎷�</a>
+ {{#if (d.wrkSts === 305) { }}
+ <a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">鍥�</a>
{{# } }}
{{#if (d.ioType === 107) { }}
<a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">鐩�</a>
--
Gitblit v1.9.1