From 290e5fd2e74efe19326f56e38c3391aaae23ffc5 Mon Sep 17 00:00:00 2001
From: IZCD4L12RTSW0VZ\Administrator <skyouc>
Date: 星期三, 24 十二月 2025 17:14:09 +0800
Subject: [PATCH] Merge branch 'jsxswms' of http://47.97.1.152:5880/r/zy-asrs into jsxswms
---
src/main/resources/mapper/OrderMapper.xml | 10
src/main/java/com/zy/asrs/service/OrderService.java | 11
src/main/resources/mapper/OrderPakinMapper.xml | 1
src/main/java/com/zy/api/controller/AgvScheduleController.java | 3
src/main/java/com/zy/api/entity/OrderParams.java | 5
src/main/webapp/static/js/adjustOrder/adjustOrder.js | 243 +++---
src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java | 110 ++-
src/main/java/com/zy/api/enums/MatLocType.java | 14
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java | 255 ++++++-
src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java | 4
src/main/java/com/zy/asrs/utils/Utils.java | 11
src/main/java/com/zy/api/service/KopenApiService.java | 28
src/main/java/com/zy/asrs/entity/BasStation.java | 12
src/main/java/com/zy/api/entity/dto/XSR.java | 8
src/main/java/com/zy/asrs/entity/Mat.java | 49 -
src/main/java/com/zy/common/constant/MesConstant.java | 14
src/main/java/com/zy/asrs/entity/ViewWorkInBean.java | 47 +
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 165 +++-
src/main/resources/application-dev.yml | 2
src/main/java/com/zy/common/model/DetlDto.java | 41
src/main/webapp/static/js/common.js | 4
src/main/java/com/zy/asrs/controller/OutController.java | 22
src/main/java/com/zy/api/entity/OrderItemsParam.java | 7
src/main/java/com/zy/asrs/service/MobileService.java | 16
src/main/java/com/zy/asrs/entity/CheckOrderDetl.java | 12
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 24
src/main/resources/mapper/ViewWorkInMapper.xml | 4
src/main/java/com/zy/asrs/controller/LocCacheController.java | 11
src/main/webapp/static/js/report/workIn.js | 4
src/main/webapp/static/js/locCache/locCache.js | 51 +
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 34 +
src/main/resources/mapper/TaskMapper.xml | 4
src/main/webapp/views/locCache/locCache.html | 60 -
src/main/webapp/views/report/viewWorkIn.html | 2
src/main/java/com/zy/asrs/controller/MobileController.java | 24
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java | 6
src/main/java/com/zy/api/entity/ReportOrderParams.java | 7
src/main/java/com/zy/asrs/enums/TaskStatusType.java | 40 +
src/main/java/com/zy/common/CodeBuilder.java | 2
src/main/java/com/zy/asrs/enums/LocStsType.java | 12
src/main/java/com/zy/asrs/entity/LocCache.java | 8
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 9
src/main/java/com/zy/asrs/mapper/OrderMapper.java | 6
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 433 ++++++++++---
src/main/resources/mapper/OrderDetlPakoutMapper.xml | 3
src/main/java/com/zy/api/controller/KopenApiController.java | 72 +
46 files changed, 1,315 insertions(+), 595 deletions(-)
diff --git a/src/main/java/com/zy/api/controller/AgvScheduleController.java b/src/main/java/com/zy/api/controller/AgvScheduleController.java
index 7a4a0e0..507ad1b 100644
--- a/src/main/java/com/zy/api/controller/AgvScheduleController.java
+++ b/src/main/java/com/zy/api/controller/AgvScheduleController.java
@@ -31,9 +31,6 @@
if (Objects.isNull(params)) {
return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- if (Objects.isNull(params.getType())) {
- return R.error("鎼繍绫诲瀷涓嶈兘涓虹┖锛侊紒");
- }
return agvScheduleService.callAgvCarry(params);
}
diff --git a/src/main/java/com/zy/api/controller/KopenApiController.java b/src/main/java/com/zy/api/controller/KopenApiController.java
index 122fa3f..f426e4a 100644
--- a/src/main/java/com/zy/api/controller/KopenApiController.java
+++ b/src/main/java/com/zy/api/controller/KopenApiController.java
@@ -1,14 +1,16 @@
package com.zy.api.controller;
-import com.core.common.R;
-import com.zy.api.entity.OrderParams;
+import com.zy.api.controller.params.PageRequestParams;
import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
+import com.zy.api.entity.StockAdjustParams;
import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.SyncMatParmas;
import com.zy.api.entity.dto.XSR;
import com.zy.api.service.KopenApiService;
+import com.zy.common.web.BaseController;
+
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -26,7 +28,7 @@
@Slf4j
@RestController
@RequestMapping("/kopen")
-public class KopenApiController {
+public class KopenApiController extends BaseController{
@Autowired
private KopenApiService kopenApiService;
@@ -41,19 +43,19 @@
*/
@ApiOperation("涓婃灦娲惧伐鍗�")
@PostMapping("/sendInDispatch")
- public XSR receiveOrders(@RequestBody PubOrderParams params) {
+ public XSR receiveOrders(@RequestBody List<PubOrderParams> params) {
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- if (Objects.isNull(params.getType())) {
- return XSR.error("鍗曟嵁绫诲瀷涓嶈兘涓虹┖锛�");
- }
+// if (Objects.isNull(params.getType())) {
+// return XSR.error("鍗曟嵁绫诲瀷涓嶈兘涓虹┖锛�");
+// }
return kopenApiService.receiveOrders(params);
}
/**
* 涓婃父涓嬪彂闆朵欢鏁版嵁鍙樻洿
- * s
+ *
* @author Ryan
* @date 2025/11/24 15:19
* @param params
@@ -68,7 +70,6 @@
return kopenApiService.basMatupdate(params);
}
-
/**
* 涓婃灦娲惧伐鍗曞弽棣�
* @author Ryan
@@ -78,13 +79,13 @@
*/
@ApiOperation("涓婃灦娲惧伐鍗曞弽棣�")
@PostMapping("/getInDispatchResult")
- public XSR getInDispatchResult(@RequestBody ReportOrderParam params) {
+ public XSR getInDispatchResult(@RequestBody List<ReportOrderParam> params) {
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- if (Objects.isNull(params.getKopen_id()) && Objects.isNull(params.getInv_no()) && Objects.isNull(params.getDispatch_no())) {
- return XSR.error("鍙栨秷鏉′欢涓嶈兘涓虹┖锛侊紒");
- }
+// if (Objects.isNull(params.getKopen_id()) && Objects.isNull(params.getInv_no()) && Objects.isNull(params.getDispatch_no())) {
+// return XSR.error("鍙栨秷鏉′欢涓嶈兘涓虹┖锛侊紒");
+// }
return kopenApiService.getInDispatchResult(params);
}
@@ -97,13 +98,13 @@
*/
@ApiOperation("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�")
@PostMapping("/sendOutDispatch")
- public XSR sendStockPrepareDispatch(@RequestBody PubOrderParams params) {
+ public XSR sendStockPrepareDispatch(@RequestBody List<PubOrderParams> params) {
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
- return XSR.error("涓婃姤璁㈠崟鍒楄〃涓嶈兘涓虹┖锛侊紒");
- }
+// if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+// return XSR.error("涓婃姤璁㈠崟鍒楄〃涓嶈兘涓虹┖锛侊紒");
+// }
return kopenApiService.sendOutDispatch(params);
}
@@ -137,17 +138,46 @@
*/
@ApiOperation("澶囪揣鍗曚笅鍙�")
@PostMapping("/getOutDetails")
- public XSR getOutDetails(@RequestBody StockUpOrderParams params) {
+ public XSR getOutDetails(@RequestBody List<StockUpOrderParams> params) {
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
- }
- if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
- return XSR.error("涓婃姤璁㈠崟鍒楄〃涓嶈兘涓虹┖锛侊紒");
}
return kopenApiService.getOutDetails(params);
}
+ /**
+ * 鏌ヨWMS搴撳瓨淇℃伅
+ * @author Ryan
+ * @date 2025/11/24 15:22
+ * @param params
+ * @return com.core.common.R
+ */
+ @ApiOperation("鏌ヨWMS搴撳瓨淇℃伅")
+ @PostMapping("/getStockInfo")
+ public XSR getStockInfo(@RequestBody PageRequestParams params) {
+ return kopenApiService.getStockInfo(params);
+ }
+
+
+ /**
+ * 闆朵欢鎹熸孩鍗曚笅鍙�
+ * @author Ryan
+ * @date 2025/11/24 15:22
+ * @param params
+ * @return com.core.common.R
+ */
+ @ApiOperation("闆朵欢鎹熸孩鍗曚笅鍙�")
+ @PostMapping("/sendBSBYDetails")
+ public XSR sendStockAdjust(@RequestBody List<StockAdjustParams> params) {
+ if (Objects.isNull(params) || params.isEmpty()) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return kopenApiService.sendStockAdjust(params, 1L);
+ }
+
+
+
}
diff --git a/src/main/java/com/zy/api/entity/OrderItemsParam.java b/src/main/java/com/zy/api/entity/OrderItemsParam.java
index 11d1e63..30f3613 100644
--- a/src/main/java/com/zy/api/entity/OrderItemsParam.java
+++ b/src/main/java/com/zy/api/entity/OrderItemsParam.java
@@ -6,7 +6,6 @@
import lombok.experimental.Accessors;
import java.io.Serializable;
-
@Data
@Accessors(chain = true)
@ApiModel(value = "OrderItemsParam", description = "璁㈠崟鏄庣粏鍙傛暟")
@@ -42,4 +41,10 @@
@ApiModelProperty("鎹嗙粦/鍙枡/鏁伴噺鏁伴噺")
private Integer pick_qty;
+ @ApiModelProperty("鎹熸孩鏁伴噺")
+ private Integer bsby_qty;
+
+ @ApiModelProperty("鎵樼洏缂栧彿")
+ private String location_no;
+
}
diff --git a/src/main/java/com/zy/api/entity/OrderParams.java b/src/main/java/com/zy/api/entity/OrderParams.java
index 0dcdc30..e09e9a9 100644
--- a/src/main/java/com/zy/api/entity/OrderParams.java
+++ b/src/main/java/com/zy/api/entity/OrderParams.java
@@ -1,7 +1,6 @@
package com.zy.api.entity;
import java.io.Serializable;
-import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
@@ -57,8 +56,8 @@
private String cus_address;
-
-
+ @ApiModelProperty("WMS ID")
+ private String wms_id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
diff --git a/src/main/java/com/zy/api/entity/ReportOrderParams.java b/src/main/java/com/zy/api/entity/ReportOrderParams.java
index 848c55b..99585b2 100644
--- a/src/main/java/com/zy/api/entity/ReportOrderParams.java
+++ b/src/main/java/com/zy/api/entity/ReportOrderParams.java
@@ -45,4 +45,11 @@
@ApiModelProperty("宸紓鏁伴噺")
private Integer diff_qty;
+ @ApiModelProperty("鍘熶笂鏋舵淳宸ユ暟閲�")
+ private Integer old_qty;
+
+ @ApiModelProperty("鍙樻洿鏁伴噺")
+ private Integer new_qty;
+
+
}
diff --git a/src/main/java/com/zy/api/entity/dto/XSR.java b/src/main/java/com/zy/api/entity/dto/XSR.java
index d241e06..842a586 100644
--- a/src/main/java/com/zy/api/entity/dto/XSR.java
+++ b/src/main/java/com/zy/api/entity/dto/XSR.java
@@ -10,7 +10,7 @@
@Data
@Accessors(chain = true)
-@ApiModel(value = "BaseResponse", description = "鍩虹鍝嶅簲")
+@ApiModel(value = "XSR", description = "鍩虹鍝嶅簲")
public class XSR<T> {
private static final String SUCCESS_CODE = "200";
private static final String FAIL_CODE = "500";
@@ -23,7 +23,7 @@
private String returnMessage;
- private T data;
+ private T result;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@@ -47,7 +47,7 @@
.setSuccess(true)
.setMessage("鎿嶄綔鎴愬姛")
.setReturnMessage("鎿嶄綔鎴愬姛")
- .setData(data);
+ .setResult(data);
}
public static <T> XSR<T> ok(T data, String message) {
@@ -56,7 +56,7 @@
.setSuccess(true)
.setMessage(message)
.setReturnMessage(message)
- .setData(data);
+ .setResult(data);
}
public static <T> XSR<T> error(String message) {
diff --git a/src/main/java/com/zy/api/enums/MatLocType.java b/src/main/java/com/zy/api/enums/MatLocType.java
index 8d683ab..714ac23 100644
--- a/src/main/java/com/zy/api/enums/MatLocType.java
+++ b/src/main/java/com/zy/api/enums/MatLocType.java
@@ -48,4 +48,18 @@
return null;
}
}
+
+
+
+ public static String getMatTag(String type) {
+ if (type.equals(MatLocType.AUTOMATED.type)) {
+ return MatType.LARGE.type;
+ } else if (type.equals(MatLocType.SO_HOLDING.type)) {
+ return MatType.MIDDEL.type;
+ } else if (type.equals(MatLocType.EO_HOLDING.type)) {
+ return MatType.SMALL.type;
+ } else {
+ return null;
+ }
+ }
}
diff --git a/src/main/java/com/zy/api/service/KopenApiService.java b/src/main/java/com/zy/api/service/KopenApiService.java
index b368a52..1cdb3a5 100644
--- a/src/main/java/com/zy/api/service/KopenApiService.java
+++ b/src/main/java/com/zy/api/service/KopenApiService.java
@@ -2,8 +2,10 @@
import java.util.List;
+import com.zy.api.controller.params.PageRequestParams;
import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
+import com.zy.api.entity.StockAdjustParams;
import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.SyncMatParmas;
import com.zy.api.entity.dto.XSR;
@@ -18,7 +20,7 @@
* @param params
* @return com.core.common.R
*/
- XSR receiveOrders(PubOrderParams params);
+ XSR receiveOrders(List<PubOrderParams> params);
/**
* 鍩虹闆朵欢鍙樻洿
@@ -42,14 +44,14 @@
* @param params
* @return
*/
- XSR getInDispatchResult(ReportOrderParam params);
+ XSR getInDispatchResult(List<ReportOrderParam> params);
/**
* 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
* @param params
* @return
*/
- XSR sendOutDispatch(PubOrderParams params);
+ XSR sendOutDispatch(List<PubOrderParams> params);
/**
* 澶囪揣鍗曚笅鍙�
@@ -58,5 +60,23 @@
* @param params
* @return com.core.common.R
*/
- XSR getOutDetails(StockUpOrderParams params);
+ XSR getOutDetails(List<StockUpOrderParams> params);
+
+ /**
+ * 鏌ヨWMS搴撳瓨淇℃伅
+ * @author Ryan
+ * @date 2025/11/24 15:22
+ * @param params
+ * @return com.core.common.R
+ */
+ XSR getStockInfo(PageRequestParams params);
+
+ /**
+ * 闆朵欢鎹熸孩鍗曚笅鍙�
+ * @author Ryan
+ * @date 2025/11/24 15:22
+ * @param params
+ * @return com.core.common.R
+ */
+ XSR sendStockAdjust(List<StockAdjustParams> params, Long userId);
}
diff --git a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
index b66d76f..a268ab6 100644
--- a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
@@ -15,6 +15,7 @@
import com.zy.asrs.entity.result.HIKResultDTO;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.enums.TaskIOType;
+import com.zy.asrs.enums.TaskStatusType;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.LocCacheService;
import com.zy.asrs.service.TaskService;
@@ -24,8 +25,10 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@@ -48,47 +51,80 @@
* @version 1.0
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public R callAgvCarry(CallAgvParams params) {
- if (params.getType().equals(OrderType.ORDER_OUT.type)) {
- //缂撳瓨鍖哄嚭搴�
- } else if (params.getType().equals(OrderType.ORDER_IN.type)) {
- //缂撳瓨鍖哄叆搴�
- } else {
-
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
+ if (Objects.isNull(params.getWrkNo())) {
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+ if (Objects.isNull(task)) {
+ return R.error("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
+ }
+
+ if (Arrays.asList(TaskIOType.ALL_IN.type, TaskIOType.PICK_IN.type, TaskIOType.MERGE_IN.type)
+ .contains(task.getIoType())) {
+ // 鍏ュ簱
+ task.setWrkSts(TaskStatusType.AGV_TASK_ISSUED_IN.type);
+ } else if (Arrays.asList(TaskIOType.ALL_OUT.type, TaskIOType.PICK_OUT.type, TaskIOType.MERGE_OUT.type, TaskIOType.EMPTY_OUT.type)
+ .contains(task.getIoType())) {
+ // 鍑哄簱
+ task.setWrkSts(TaskStatusType.AGV_TASK_ISSUED_OUT.type);
+ }
+
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+
return R.ok();
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public R callback(CallAgvParams params) {
- //TODO 1. 鎼繍瀹屾垚锛屼慨鏀圭珯鐐瑰簱浣嶇姸鎬�
- if (params.getType().equals(OrderType.ORDER_OUT.type)) {
- //鍑哄簱鍗�
- if (params.getStatus().equals("RUNING")) {
- LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", params.getOrgLoc()));
- if (Objects.isNull(locCache)) {
- throw new CoolException("搴撲綅淇℃伅涓嶅瓨鍦紒锛�");
- }
- if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
- locCache.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
- }
- } else if (params.getStatus().equals("FINISHED")) {
- Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
- if (Objects.isNull(task)) {
- throw new CoolException("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
- }
- if (!taskService.updateById(task)) {
- throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
- }
- }
- } else {
- //鍏ュ簱鍗�
-
+ if (Objects.isNull(params)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getWrkNo())) {
+ return R.error("浠诲姟鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+ if (Objects.isNull(task)) {
+ return R.error("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
}
- return null;
- }
+// if (!Arrays.asList(TaskStatusType.AGV_TASK_ISSUED_IN.type, TaskStatusType.AGV_TASK_ISSUED_OUT.type).contains(task.getIoType())) {
+// return R.error("");
+// }
+//
+ if (Arrays.asList(TaskIOType.ALL_IN.type, TaskIOType.PICK_IN.type, TaskIOType.MERGE_IN.type)
+ .contains(task.getIoType())) {
+ // 鍏ュ簱
+ if (params.getStatus().equals("RUNNING")) {
+ task.setWrkSts(TaskStatusType.AGV_TASK_RUNNING_IN.type);
+ } else if (params.getStatus().equals("FINISHED")){
+ task.setWrkSts(TaskStatusType.AGV_TASK_FINISHED_IN.type);
+ }
+ } else if (Arrays.asList(TaskIOType.ALL_OUT.type, TaskIOType.PICK_OUT.type, TaskIOType.MERGE_OUT.type, TaskIOType.EMPTY_OUT.type)
+ .contains(task.getIoType())) {
+ // 鍑哄簱
+ if (params.getStatus().equals("RUNNING")) {
+ task.setWrkSts(TaskStatusType.AGV_TASK_RUNNING_OUT.type);
+ } else if (params.getStatus().equals("FINISHED")){
+ task.setWrkSts(TaskStatusType.AGV_TASK_FINISHED_OUT.type);
+ }
+ }
+
+ if (!taskService.updateById(task)) {
+ throw new CoolException("鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
+
+ return R.ok("鎵ц瀹屾垚 锛侊紒");
+ }
public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO, String path) {
HIKResultDTO result = new HIKResultDTO();
@@ -99,8 +135,10 @@
forwardAGVTaskParam.setCtnrTyp(haiKangApiDTO.getCtnrType());
forwardAGVTaskParam.setPriority(haiKangApiDTO.getPriority());
List<ForwardAGVTaskDTO.PositionCodePaths> positionCodePathsList = new ArrayList<>();
- positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType()));
- positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType()));
+ positionCodePathsList
+ .add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType()));
+ positionCodePathsList
+ .add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType()));
forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
String body = JSON.toJSONString(forwardAGVTaskParam);
String response = "";
@@ -118,7 +156,7 @@
result.setMessage(jsonObject.getString("message"));
log.error("鍙戦�乤gv浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", HIKApiConstant.AGV_IP + path, body, response);
}
-// {"code":"1","data":"","interrupt":false,"message":"閲嶅鎻愪氦","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"}
+ // {"code":"1","data":"","interrupt":false,"message":"閲嶅鎻愪氦","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"}
} catch (Exception e) {
result.setMessage(e.getMessage());
log.error("鍙戦�乤gv浠诲姟寮傚父", e);
@@ -132,14 +170,12 @@
"127.0.0.1",
body,
response,
- result.isSuccess()
- );
+ result.isSuccess());
} catch (Exception e) {
log.error("", e);
}
}
return result;
}
-
}
diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index 7573e27..0c96d13 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -2,13 +2,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.core.common.R;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
+import com.zy.api.controller.params.PageRequestParams;
import com.zy.api.entity.OrderItemsParam;
import com.zy.api.entity.OrderParams;
import com.zy.api.entity.OutOrderParams;
import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
+import com.zy.api.entity.StockAdjustParams;
import com.zy.api.entity.StockUpOrderParams;
import com.zy.api.entity.SyncMatParmas;
import com.zy.api.entity.dto.XSR;
@@ -16,12 +19,18 @@
import com.zy.api.enums.OrderType;
import com.zy.api.enums.OrderWkType;
import com.zy.api.service.KopenApiService;
+import com.zy.asrs.entity.CheckOrder;
+import com.zy.asrs.entity.CheckOrderDetl;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.enums.CommonEnum;
import com.zy.asrs.enums.OrderSettle;
import com.zy.asrs.enums.OrderTypeEnum;
+import com.zy.asrs.service.CheckOrderDetlService;
+import com.zy.asrs.service.CheckOrderService;
+import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
@@ -33,6 +42,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -47,21 +57,32 @@
private OrderDetlService orderDetlService;
@Autowired
private MatService matService;
+ @Autowired
+ private LocDetlService locDetlService;
+ @Autowired
+ private CheckOrderService checkOrderService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private CheckOrderDetlService checkOrderDetlService;
/**
* 鎺ユ敹涓嬪彂璁㈠崟淇℃伅
*
- * @param params
+ * @param orderParams
* @return com.core.common.R
* @author Ryan
* @date 2025/11/24 14:49
*/
@Override
- public XSR receiveOrders(PubOrderParams params) {
- if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
- return XSR.error("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
- }
- addOrUpdateOrders(params, "add");
+ public XSR receiveOrders(List<PubOrderParams> orderParams) {
+ orderParams.forEach(params -> {
+ if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
+ throw new CoolException("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
+ }
+ addOrUpdateOrders(params, "add");
+ });
+
return XSR.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
}
@@ -73,7 +94,7 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public XSR getInDispatchResult(ReportOrderParam params) {
+ public XSR getInDispatchResult(List<ReportOrderParam> params) {
if (Objects.isNull(params)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
@@ -106,29 +127,31 @@
/**
* 澶囪揣鎸囩ず娲惧伐鍗曚笅鍙�
*
- * @param params
+ * @param pubOrderParams
* @return com.core.common.R
* @author Ryan
* @date 2025/11/24 15:21
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public XSR sendOutDispatch(PubOrderParams params) {
- if (Objects.isNull(params)) {
+ public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams) {
+ if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- // 鏍¢獙鍙傛暟
- if (Objects.isNull(params.getDispatch_no())) {
- return XSR.error("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
- }
- if (Objects.isNull(params.getKopen_id())) {
- return XSR.error("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
- }
- if (Objects.isNull(params.getCompany_id())) {
- return XSR.error("鍏徃ID涓嶈兘涓虹┖锛侊紒");
- }
+ pubOrderParams.forEach(params -> {
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getDispatch_no())) {
+ throw new CoolException("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getKopen_id())) {
+ throw new CoolException("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getCompany_id())) {
+ throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ }
- addOrUpdateOrders(params, "add");
+ addOrUpdateOrders(params, "add");
+ });
return XSR.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
}
@@ -321,6 +344,7 @@
// 澶囪揣鍗曞嚭搴�
newOrder.setOrderNo(params.getPick_no());
newOrder.setNumber(params.getDispatch_no());
+ newOrder.setShipCode(params.getOrder_no());
newOrder.setCstmrName(params.getCus_id());
newOrder.setTel(params.getCus_address());
newOrder.setDocType(Long.parseLong(OrderTypeEnum.STOCK.type + ""));
@@ -396,53 +420,172 @@
/**
* 澶囪揣鍗曚笅鍙�
*
- * @param params
+ * @param stockUpParams
* @return com.core.common.R
* @author Ryan
* @date 2025/11/24 15:40
*/
@Override
- public XSR getOutDetails(StockUpOrderParams params) {
- if (Objects.isNull(params)) {
+ public XSR getOutDetails(List<StockUpOrderParams> stockUpParams) {
+ if (Objects.isNull(stockUpParams)) {
return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- // 鏍¢獙鍙傛暟
- if (Objects.isNull(params.getDispatch_no())) {
- return XSR.error("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
- }
- if (Objects.isNull(params.getKopen_id())) {
- return XSR.error("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
- }
- if (Objects.isNull(params.getCompany_id())) {
- return XSR.error("鍏徃ID涓嶈兘涓虹┖锛侊紒");
- }
- if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
- return XSR.error("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
- }
-
- List<OrderItemsParam> items = new ArrayList<>();
- if (params.getDetails() != null) {
- for (OutOrderParams detail : params.getDetails()) {
- if (detail.getPartList() != null) {
- items.addAll(detail.getPartList());
+ stockUpParams.forEach(params -> {
+ if (Objects.isNull(params.getDispatch_no())) {
+ throw new CoolException("娲惧伐鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getKopen_id())) {
+ throw new CoolException("娴佹按鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+ if (Objects.isNull(params.getCompany_id())) {
+ throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
+ }
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+ List<OrderItemsParam> items = new ArrayList<>();
+ if (params.getDetails() != null) {
+ for (OutOrderParams detail : params.getDetails()) {
+ if (detail.getPartList() != null) {
+ items.addAll(detail.getPartList());
+ }
}
}
- }
- params.getDetails().forEach(item -> {
- PubOrderParams pubOrderParams = new PubOrderParams();
- BeanUtils.copyProperties(params, pubOrderParams);
- pubOrderParams.setType(item.getType())
- .setPick_no(item.getPick_no())
- .setCus_address(item.getCus_address())
- .setOrder_no(item.getOrder_no())
- .setUpdate_time(params.getUpdate_time())
- .setCus_id(item.getCus_id());
- pubOrderParams.setDetails(item.getPartList());
- addOrUpdateOrders(pubOrderParams, "add");
+ params.getDetails().forEach(item -> {
+ PubOrderParams pubOrderParams = new PubOrderParams();
+ BeanUtils.copyProperties(params, pubOrderParams);
+ pubOrderParams.setType(item.getType())
+ .setPick_no(item.getPick_no())
+ .setCus_address(item.getCus_address())
+ .setOrder_no(item.getOrder_no())
+ .setUpdate_time(params.getUpdate_time())
+ .setCus_id(item.getCus_id());
+ pubOrderParams.setDetails(item.getPartList());
+ addOrUpdateOrders(pubOrderParams, "add");
+ });
});
return XSR.ok("澶囪揣鍗曚笅鍙戞垚鍔燂紒锛�");
}
+ /**
+ * 鏌ヨWMS搴撳瓨淇℃伅
+ *
+ * @param params
+ * @return com.core.common.R
+ */
+ @Override
+ public XSR getStockInfo(PageRequestParams params) {
+ EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+ if (!Objects.isNull(params.getPro_id())) {
+ wrapper.eq("supp_code", params.getPro_id());
+ }
+ if (!Objects.isNull(params.getPro_komcode())) {
+ wrapper.eq("matnr", params.getPro_komcode());
+ }
+
+ Page<LocDetl> locDetls = locDetlService.selectPage(new Page<>(params.getCurr(), params.getLimit()), wrapper);
+
+ return XSR.ok(locDetls.getRecords());
+ }
+
+ /**
+ * 闆朵欢鎹熸孩鍗曚笅鍙�
+ *
+ * @author Ryan
+ * @date 2025/11/24 15:22
+ * @param params
+ * @return com.core.common.R
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public XSR sendStockAdjust(List<StockAdjustParams> params, Long userId) {
+ if (Objects.isNull(params)) {
+ return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ params.forEach(param -> {
+ gentCheckOrders(param, userId);
+ });
+
+ return XSR.ok("闆朵欢鎹熸孩鍗曚笅鍙戞垚鍔燂紒锛�");
+ }
+
+ /** 鐢熸垚鏂扮殑闆朵欢鎹熸孩鍗�
+ * @param userId */
+ @Transactional(rollbackFor = Exception.class)
+ public void gentCheckOrders(StockAdjustParams params, Long userId) {
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+ // 鏍¢獙鍙傛暟
+ if (Objects.isNull(params.getBsby_no())) {
+ throw new CoolException("鎹熸孩鍗曠紪鍙蜂笉鑳戒负绌猴紒锛�");
+ }
+
+ CheckOrder checkOrder = checkOrderService
+ .selectOne(new EntityWrapper<CheckOrder>().eq("order_no", params.getBsby_no()));
+ if (!Objects.isNull(checkOrder)) {
+ throw new CoolException("鎹熸孩鍗曞凡瀛樺湪锛侊紒");
+ }
+
+ CheckOrder order = new CheckOrder();
+ order.setOrderNo(params.getBsby_no());
+ order.setCstmrName(params.getCompany_id());
+ order.setDefNumber(params.getKopen_id());
+ order.setDocType(4L);
+ order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ order.setSettle(Long.valueOf(CommonEnum.COMMON_ENUM_Y.type + ""));
+ order.setStatus(CommonEnum.COMMON_ENUM_Y.type);
+ order.setOrderTime(params.getUpdate_time());
+ order.setMemo(params.getResason());
+ order.setShipName(params.getReason_name());
+ order.setCreateTime(new Date());
+ order.setUpdateTime(new Date());
+
+ if (!checkOrderService.insert(order)) {
+ throw new CoolException("鎹熸孩鍗曟柊澧炲け璐ワ紒锛�");
+ }
+
+ if (Objects.isNull(params.getDetails()) || params.getDetails().isEmpty()) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶈兘涓虹┖锛侊紒");
+ }
+
+ params.getDetails().forEach(item -> {
+ CheckOrderDetl checkOrderDetl = new CheckOrderDetl();
+ //閫氳繃鎵樼洏锛� 鐗╂枡缂栫爜锛� 渚涘簲鍟嗙紪鐮佹煡璇㈠簱瀛樻槑缁�
+ LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+ .eq("matnr", item.getPro_komcode())
+ .eq("zpallet", item.getLocation_no())
+ .eq("supp_code", item.getPro_id()));
+ if (Objects.isNull(locDetl)) {
+ throw new CoolException("搴撳瓨涓嶅瓨鍦紒锛�");
+ }
+ BeanUtils.copyProperties(locDetl, checkOrderDetl);
+ checkOrderDetl.setLocDetlId(locDetl.getId());
+ checkOrderDetl.setOrderId(order.getId());
+ checkOrderDetl.setOrderNo(order.getOrderNo());
+ checkOrderDetl.setMatnr(locDetl.getMatnr());
+ checkOrderDetl.setMaktx(locDetl.getMaktx());
+ checkOrderDetl.setBatch(locDetl.getBatch());
+ checkOrderDetl.setSpecs(locDetl.getSpecs());
+ checkOrderDetl.setThreeCode(locDetl.getThreeCode());
+ checkOrderDetl.setSuppCode(locDetl.getSuppCode());
+ checkOrderDetl.setStandby1(locDetl.getSuppCode());
+ checkOrderDetl.setAnfme(new BigDecimal(locDetl.getAnfme().toString()));
+ checkOrderDetl.setDiffQty(BigDecimal.ZERO);
+ checkOrderDetl.setWorkQty(BigDecimal.ZERO);
+ checkOrderDetl.setStatus(1);
+ checkOrderDetl.setZpallet(locDetl.getZpallet());
+ checkOrderDetl.setCreateBy(userId);
+ checkOrderDetl.setCreateTime(new Date());
+ checkOrderDetl.setUpdateBy(userId);
+ checkOrderDetl.setUpdateTime(new Date());
+
+ if (!checkOrderDetlService.insert(checkOrderDetl)) {
+ throw new CoolException("淇濆瓨鐩樼偣鍗曟槑缁嗗け璐�");
+ }
+ });
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/controller/LocCacheController.java b/src/main/java/com/zy/asrs/controller/LocCacheController.java
index 10f96cb..e58146f 100644
--- a/src/main/java/com/zy/asrs/controller/LocCacheController.java
+++ b/src/main/java/com/zy/asrs/controller/LocCacheController.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.LocCache;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.param.LocMastInitParam;
+import com.zy.asrs.enums.LocAreaType;
import com.zy.asrs.service.LocCacheService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
@@ -77,7 +78,15 @@
if (Cools.isEmpty(locCache) || null==locCache.getLocNo()){
return R.error();
}
- locCacheService.updateById(locCache);
+ LocCache cache = locCacheService.selectOne(new EntityWrapper<LocCache>()
+ .eq("loc_no", locCache.getLocNo()));
+ if (Cools.isEmpty(cache)){
+ return R.error("搴撲綅涓嶅瓨鍦�");
+ }
+ cache.setSort(locCache.getSort());
+ if (!locCacheService.updateById(cache)) {
+ return R.error("鏇存柊澶辫触");
+ }
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 2679d9f..1ca86a6 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -66,6 +66,13 @@
return mobileService.collectionPakinView(params);
}
+ /**
+ * SO/EO 鍖虹粍鎵�
+ * @author Ryan
+ * @date 2025/12/18 15:19
+ * @param params
+ * @return com.core.common.R
+ */
@PostMapping("/agv/collectionPakin/auth")
@ManagerAuth
public R pdaAgvCollectionPakin(@RequestBody CollectionPakinParams params) {
@@ -337,6 +344,23 @@
return R.ok("缁勬墭鎴愬姛");
}
+ /**
+ * @author Ryan
+ * @date 2025/9/24
+ * @description: 鍛煎彨AGV杩斿洖
+ * @version 1.0
+ */
+ @ManagerAuth(memo = "鍛煎彨AGV杩斿洖")
+ @RequestMapping("/agv/call/back")
+ public R callAgvBack(@RequestBody AgvCallParams callAgvBackParam) {
+ if (Objects.isNull(callAgvBackParam.getOrgSite())) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖!!");
+ }
+
+ return mobileService.agvCallback(callAgvBackParam, getUserId());
+ }
+
+
@ManagerAuth(memo = "缂撳啿搴撶‘璁や笂鏋�(妯℃嫙鐗╃悊鎸夐挳)")
@RequestMapping("/cache/comb/pub")
public R cacheCombPub(@RequestBody CompleteParam combParam) {
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index ec8168e..7717dcc 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -146,21 +146,30 @@
List<Long> areaIds = basAreas.stream()
.map(BasAreas::getId)
.collect(Collectors.toList());
+ Map<Long, Double> locDetlUsage = new HashMap<>();
for (OrderDetlPakout orderDetl : orderDetlPakouts) {
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
if (issued <= 0.0D) {
continue;
}
- List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist,orderDetl.getMatnr(), orderDetl.getBatch(),
+ List<LocDetl> locDetls = locDetlService.queryStockAll(null, null,orderDetl.getMatnr(), orderDetl.getBatch(),
orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3(),areaIds);
for (LocDetl locDetl : locDetls) {
if (issued > 0) {
- LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
- issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+ Long detlId = locDetl.getId();
+ Double used = locDetlUsage.getOrDefault(detlId, 0.0);
+ Double available = locDetl.getAnfme() - used;
+ if (available <= 0.000001) {
+ continue;
+ }
+
+ Double currentIssue = (issued >= available) ? available : issued;
+
+ LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), currentIssue);
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
locDto.setFrozen(locDetl.getFrozen());
locDto.setFrozenLoc(locMast.getFrozen());
- List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+ List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), currentIssue >= available ? 101 : 103);
locDto.setStaNos(staNos);
locDto.setBrand(orderDetl.getBrand());
@@ -171,9 +180,10 @@
locDto.setBoxType2(orderDetl.getBoxType2());
locDto.setBoxType3(orderDetl.getBoxType3());
locDtos.add(locDto);
- exist.add(locDetl.getLocNo());
+
+ locDetlUsage.put(detlId, used + currentIssue);
// 鍓╀綑寰呭嚭鏁伴噺閫掑噺
- issued = issued - locDetl.getAnfme();
+ issued = issued - currentIssue;
} else {
break;
}
diff --git a/src/main/java/com/zy/asrs/entity/BasStation.java b/src/main/java/com/zy/asrs/entity/BasStation.java
index f2f4b9d..7d73f68 100644
--- a/src/main/java/com/zy/asrs/entity/BasStation.java
+++ b/src/main/java/com/zy/asrs/entity/BasStation.java
@@ -311,17 +311,17 @@
return null;
}
if (this.locSts.equals(LocStsType.LOC_STS_TYPE_O.type)) {
- return LocStsType.LOC_STS_TYPE_O.type + "." + LocStsType.LOC_STS_TYPE_O.desc;
+ return LocStsType.LOC_STS_TYPE_O.desc;
} else if (this.locSts.equals(LocStsType.LOC_STS_TYPE_R.type)) {
- return LocStsType.LOC_STS_TYPE_R.type + "." + LocStsType.LOC_STS_TYPE_R.desc;
+ return LocStsType.LOC_STS_TYPE_R.desc;
} else if (this.locSts.equals(LocStsType.LOC_STS_TYPE_S.type)) {
- return LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc;
+ return LocStsType.LOC_STS_TYPE_S.desc;
} else if (this.locSts.equals(LocStsType.LOC_STS_TYPE_F.type)) {
- return LocStsType.LOC_STS_TYPE_F.type + "." + LocStsType.LOC_STS_TYPE_F.desc;
+ return LocStsType.LOC_STS_TYPE_F.desc;
} else if (this.locSts.equals(LocStsType.LOC_STS_TYPE_X.type)) {
- return LocStsType.LOC_STS_TYPE_X.type + "." + LocStsType.LOC_STS_TYPE_X.desc;
+ return LocStsType.LOC_STS_TYPE_X.desc;
} else if (this.locSts.equals(LocStsType.LOC_STS_TYPE_D.type)) {
- return LocStsType.LOC_STS_TYPE_D.type + "." + LocStsType.LOC_STS_TYPE_D.desc;
+ return LocStsType.LOC_STS_TYPE_D.desc;
}
return null;
}
diff --git a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
index 04afc24..bf76f08 100644
--- a/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
+++ b/src/main/java/com/zy/asrs/entity/CheckOrderDetl.java
@@ -5,9 +5,7 @@
import com.core.common.SpringUtils;
import com.zy.asrs.enums.CheckStatusEnum;
import com.zy.asrs.service.OrderService;
-import com.zy.asrs.entity.Order;
import com.baomidou.mybatisplus.annotations.TableField;
-import com.core.common.SpringUtils;
import com.zy.common.utils.Synchro;
import com.zy.system.service.UserService;
import com.zy.system.entity.User;
@@ -16,15 +14,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
-import com.core.common.SpringUtils;
-import com.zy.system.service.UserService;
-import com.zy.system.entity.User;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
diff --git a/src/main/java/com/zy/asrs/entity/LocCache.java b/src/main/java/com/zy/asrs/entity/LocCache.java
index 8fad291..3309548 100644
--- a/src/main/java/com/zy/asrs/entity/LocCache.java
+++ b/src/main/java/com/zy/asrs/entity/LocCache.java
@@ -1,12 +1,10 @@
package com.zy.asrs.entity;
import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
-import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableField;
import com.core.common.SpringUtils;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.service.BasWhsTypeService;
-import com.zy.asrs.service.BasCrnpService;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -17,6 +15,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
import java.io.Serializable;
@Data
@@ -27,7 +27,7 @@
@ApiModelProperty("涓婚敭ID")
- @TableId
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
@@ -214,7 +214,7 @@
} else if (locSts.equals(LocStsType.LOC_STS_TYPE_D.type)) {
return LocStsType.LOC_STS_TYPE_D.desc;
} else if (locSts.equals(LocStsType.LOC_STS_TYPE_O.type)) {
- return LocStsType.LOC_STS_TYPE_F.desc;
+ return LocStsType.LOC_STS_TYPE_O.desc;
} else if (locSts.equals(LocStsType.LOC_STS_TYPE_R.type)) {
return LocStsType.LOC_STS_TYPE_R.desc;
} else if (locSts.equals(LocStsType.LOC_STS_TYPE_S.type)) {
diff --git a/src/main/java/com/zy/asrs/entity/Mat.java b/src/main/java/com/zy/asrs/entity/Mat.java
index 491b94e..6efecb1 100644
--- a/src/main/java/com/zy/asrs/entity/Mat.java
+++ b/src/main/java/com/zy/asrs/entity/Mat.java
@@ -380,52 +380,7 @@
this.memo = memo;
}
-// Mat mat = new Mat(
-// null, // 缂栧彿
-// null, // 鎵�灞炲綊绫�
-// null, // 鍟嗗搧缂栧彿
-// null, // 鍟嗗搧鍚嶇О
-// null, // 鍒悕
-// null, // 瑙勬牸
-// null, // 鍨嬪彿
-// null, // 棰滆壊
-// null, // 鍝佺墝
-// null, // 鍗曚綅
-// null, // 鍗曚环
-// null, // sku
-// null, // 鍗曚綅閲�
-// null, // 鏉$爜
-// null, // 浜у湴
-// null, // 鍘傚
-// null, // 鐢熶骇鏃ユ湡
-// null, // 鍝侀」鏁�
-// null, // 瀹夊叏搴撳瓨閲�
-// null, // 閲嶉噺
-// null, // 闀垮害
-// null, // 浣撶Н
-// null, // 涓夋柟缂栫爜
-// null, // 渚涘簲鍟�
-// null, // 渚涘簲鍟嗙紪鐮�
-// null, // 鏄惁鎵规
-// null, // 淇濊川鏈�
-// null, // 棰勮澶╂暟
-// null, // 鍒惰喘
-// null, // 瑕佹眰妫�楠�
-// null, // 鍗遍櫓鍝�
-// null, // 鐘舵�乕闈炵┖]
-// null, // 娣诲姞浜哄憳
-// null, // 娣诲姞鏃堕棿
-// null, // 淇敼浜哄憳
-// null, // 淇敼鏃堕棿
-// null // 澶囨敞
-// );
-
public String getTagId$(){
-// TagService service = SpringUtils.getBean(TagService.class);
-// Tag tag = service.selectById(this.tagId);
-// if (!Cools.isEmpty(tag)){
-// return String.valueOf(tag.getName());
-// }
return MatLocType.getTagName(this.tagId + "");
}
@@ -443,6 +398,10 @@
return null;
}
+ public String getProType(){
+ return MatLocType.getMatTag(this.tagId + "");
+ }
+
public String getBeBatch$(){
if (null == this.beBatch){ return null; }
switch (this.beBatch){
diff --git a/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java b/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
index 23f6b0d..8e4b75f 100644
--- a/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
+++ b/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotations.TableField;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.service.MatService;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
@@ -35,13 +36,16 @@
private String crn_end_time;
@ApiModelProperty(value= "宸ヤ綔鍙�")
- private Integer wrk_no;
+ @TableField("wrk_no")
+ private Integer wrkNo;
@ApiModelProperty(value= "宸ヤ綔鏃堕棿")
- private Date io_time;
+ @TableField("io_time")
+ private Date ioTime;
@ApiModelProperty(value= "搴撲綅鍙�")
- private String loc_no;
+ @TableField("loc_no")
+ private String locNo;
@ApiModelProperty(value= "鎵樼洏鏉$爜")
private String zpallet;
@@ -114,13 +118,15 @@
private Double volume;
@ApiModelProperty(value= "涓夋柟缂栫爜")
- private String three_code;
+ @TableField("three_code")
+ private String threeCode;
@ApiModelProperty(value= "渚涘簲鍟�")
private String supp;
@ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�")
- private String supp_code;
+ @TableField("supp_code")
+ private String suppCode;
@ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ")
private Integer be_batch;
@@ -141,23 +147,27 @@
private Integer danger;
@ApiModelProperty(value= "淇敼浜哄憳")
- private Long modi_user;
+ @TableField("modi_user")
+ private Long modiUser;
@ApiModelProperty(value= "淇敼鏃堕棿")
- private Object modi_time;
+ @TableField("modi_time")
+ private Object modiTime;
@ApiModelProperty(value= "鍒涘缓鑰�")
- private Long appe_user;
+ @TableField("appe_user")
+ private Long appeUser;
@ApiModelProperty(value= "娣诲姞鏃堕棿")
- private Object appe_time;
+ @TableField("appe_time")
+ private Object appeTime;
@ApiModelProperty(value= "澶囨敞")
private String memo;
public String getModiUser$(){
UserService service = SpringUtils.getBean(UserService.class);
- User user = service.selectById(this.modi_user);
+ User user = service.selectById(this.modiUser);
if (!Cools.isEmpty(user)){
return String.valueOf(user.getUsername());
}
@@ -166,7 +176,7 @@
public String getAppeUser$(){
UserService service = SpringUtils.getBean(UserService.class);
- User user = service.selectById(this.appe_user);
+ User user = service.selectById(this.appeUser);
if (!Cools.isEmpty(user)){
return String.valueOf(user.getUsername());
}
@@ -174,10 +184,21 @@
}
public String getIoTime$(){
- if (Cools.isEmpty(this.io_time)){
+ if (Cools.isEmpty(this.ioTime)){
return "";
}
- return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.io_time);
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.ioTime);
+ }
+
+ public String getTag$() {
+ if (!Cools.isEmpty(this.matnr)){
+ MatService matnrService = SpringUtils.getBean(MatService.class);
+ Mat matnr = matnrService.selectByMatnr(this.matnr);
+ if (!Cools.isEmpty(matnr)){
+ return matnr.getTagId$();
+ }
+ }
+ return "";
}
public void setQuery_date(String query_date) {
diff --git a/src/main/java/com/zy/asrs/enums/LocStsType.java b/src/main/java/com/zy/asrs/enums/LocStsType.java
index fe48c4d..f2bc325 100644
--- a/src/main/java/com/zy/asrs/enums/LocStsType.java
+++ b/src/main/java/com/zy/asrs/enums/LocStsType.java
@@ -3,17 +3,17 @@
public enum LocStsType {
//绌烘澘
- LOC_STS_TYPE_D("D", "绌烘澘"),
+ LOC_STS_TYPE_D("D", "D.绌烘澘"),
//鍦ㄥ簱
- LOC_STS_TYPE_F("F", "鍦ㄥ簱"),
+ LOC_STS_TYPE_F("F", "F.鍦ㄥ簱"),
//绌哄簱
- LOC_STS_TYPE_O("O", "绌哄簱"),
+ LOC_STS_TYPE_O("O", "O.绌哄簱"),
//绂佺敤
- LOC_STS_TYPE_X("X", "绂佺敤"),
+ LOC_STS_TYPE_X("X", "X.绂佺敤"),
//鍏ュ簱棰勭害
- LOC_STS_TYPE_S("S", "鍏ュ簱棰勭害"),
+ LOC_STS_TYPE_S("S", "S.鍏ュ簱棰勭害"),
//鍑哄簱棰勭害
- LOC_STS_TYPE_R("R", "鍑哄簱棰勭害"),
+ LOC_STS_TYPE_R("R", "R.鍑哄簱棰勭害"),
;
public String type;
diff --git a/src/main/java/com/zy/asrs/enums/TaskStatusType.java b/src/main/java/com/zy/asrs/enums/TaskStatusType.java
new file mode 100644
index 0000000..a14be9f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/enums/TaskStatusType.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.enums;
+
+/**
+ * 宸ヤ綔鐘舵�佹灇涓�
+ * 鏍规嵁WrkStaus琛ㄧ敓鎴愬搴旀灇涓句俊鎭�
+ */
+public enum TaskStatusType {
+
+ IN_START("1", "1.鐢熸垚鍏ュ簱ID"),
+ DEVICE_MOVE("2", "2.璁惧涓婅蛋"),
+ CRANE_IN_PROGRESS("3", "3.鍚婅溅鍏ュ簱涓�"),
+ INBOUND_COMPLETED("4", "4.鍏ュ簱瀹屾垚"),
+ INBOUND_ARCHIVED("5", "5.搴撳瓨鏇存柊瀹屾垚"),
+ DEVICE_EXIT("6", "6.璁惧涓婇��鍑�"),
+ OUT_START("11", "11.鐢熸垚鍑哄簱ID"),
+ CRANE_OUT_PROGRESS("12", "12.鍚婅溅鍑哄簱涓�"),
+ CRANE_EMPTY_OUT_ERROR("13", "13.鍚婅溅绌哄嚭搴撻敊璇�"),
+ OUTBOUND_COMPLETED("14", "14.宸插嚭搴撴湭纭"),
+ OUTBOUND_ARCHIVED("15", "15.鍑哄簱鏇存柊瀹屾垚"),
+ AGV_IN_START("201", "201.鐢熸垚鍏ュ簱ID"),
+ AGV_TASK_ISSUED_IN("202", "202.浠诲姟涓嬪彂鎴愬姛"),
+ AGV_TASK_RUNNING_IN("203", "203.浠诲姟鎵ц涓�"),
+ AGV_TASK_FINISHED_IN("204", "204.浠诲姟鎵ц瀹屾垚"),
+ AGV_INVENTORY_UPDATED_IN("205", "205.搴撳瓨鏇存柊瀹屾垚"),
+ AGV_OUT_START("301", "301.鐢熸垚鍑哄簱ID"),
+ AGV_TASK_ISSUED_OUT("302", "302.浠诲姟涓嬪彂鎴愬姛"),
+ AGV_TASK_RUNNING_OUT("303", "303.浠诲姟鎵ц涓�"),
+ AGV_TASK_FINISHED_OUT("304", "304.浠诲姟鎵ц瀹屾垚"),
+ AGV_INVENTORY_UPDATED_OUT("305", "305.搴撳瓨鏇存柊瀹屾垚"),
+ ;
+
+ public Long type;
+ public String desc;
+
+ TaskStatusType(String type, String desc) {
+ this.type = Long.valueOf(type);
+ this.desc = desc;
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderMapper.java b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
index 69f50ce..ab3ffc7 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -1,6 +1,7 @@
package com.zy.asrs.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.CheckOrder;
import com.zy.asrs.entity.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -25,4 +26,9 @@
Order selectOrderMoveStatus();
Order selectOrderMoveStatusInitial();
+ /**
+ * 鏌ヨ鎹熸孩鍗曞畬缁撶殑璁㈠崟
+ * @return
+ */
+ List<CheckOrder> selectCompleteCheck();
}
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index bfb42a1..3d2864f 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -149,7 +149,23 @@
*/
void combInPub(CompleteParam combParam, Long userId);
+ /**
+ * SO/EO 鍖虹粍鎵�
+ * @author Ryan
+ * @date 2025/12/18 15:19
+ * @param params
+ * @return com.core.common.R
+ */
R collectionPakin(CollectionPakinParams params, Long userId);
R collectionPakinView(CollectionPakinParams params);
+
+ /**
+ * 鍛煎彨AGV杩斿洖
+ * @author Ryan
+ * @date 2025/9/24
+ * @param callAgvBackParam
+ * @return com.core.common.R
+ */
+ R agvCallback(AgvCallParams callAgvBackParam, Long userId);
}
diff --git a/src/main/java/com/zy/asrs/service/OrderService.java b/src/main/java/com/zy/asrs/service/OrderService.java
index 878002f..667df16 100644
--- a/src/main/java/com/zy/asrs/service/OrderService.java
+++ b/src/main/java/com/zy/asrs/service/OrderService.java
@@ -1,10 +1,7 @@
package com.zy.asrs.service;
-import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.*;
import com.baomidou.mybatisplus.service.IService;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
import java.util.List;
@@ -35,5 +32,11 @@
Order selectOrderMoveStatus();
Order selectOrderMoveStatusInitial();
+
+ /**
+ * 鏌ヨ鎹熸孩鍗曞畬缁撶殑璁㈠崟
+ * @return
+ */
+ List<CheckOrder> selectCompleteCheck();
}
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 a114a19..b07baec 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -700,13 +700,13 @@
OrderInAndOutUtil.increaseWorkQty(Boolean.TRUE, order.getId(), elem.getMatnr(), elem.getBatch(),
elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
- DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(),
+ DetlDto detlDto = new DetlDto(order.getOrderNo(), elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(),
elem.getStandby2(), elem.getStandby3(),
elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme(),
elem.getThreeCode());
detlDto.setOrderId(order.getId());
detlDto.setOrderNo(order.getOrderNo());
- if (DetlDto.has(detlDtos, detlDto)) {
+ if (DetlDto.hasOrder(detlDtos, detlDto)) {
DetlDto one = DetlDto.findDto(detlDtos, detlDto);
assert one != null;
one.setAnfme(one.getAnfme() + detlDto.getAnfme());
@@ -991,7 +991,7 @@
try {
response = new HttpHandler.Builder()
.setUri(MesConstant.URL)
- .setPath(MesConstant.PACK_DOWN_URL)
+ .setPath(MesConstant.IN_DISPATCH_RESULT)
.setJson(JSON.toJSONString(mesCombParam))
.build()
.doPost();
@@ -999,11 +999,11 @@
if (jsonObject.getInteger("code").equals(200)) {
success = true;
} else if (jsonObject.getInteger("code").equals(500)) {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PACK_DOWN_URL,
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
JSON.toJSONString(mesCombParam), response);
throw new CoolException(jsonObject.getString("msg"));
} else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.PACK_DOWN_URL,
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
JSON.toJSONString(mesCombParam), response);
throw new CoolException("涓婃姤mes绯荤粺澶辫触");
}
@@ -1015,7 +1015,7 @@
// 淇濆瓨鎺ュ彛鏃ュ織
apiLogService.save(
"鎵撳寘涓嬬嚎甯墭涓婃姤",
- MesConstant.URL + MesConstant.PACK_DOWN_URL,
+ MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
null,
"127.0.0.1",
JSON.toJSONString(mesCombParam),
@@ -1741,6 +1741,7 @@
throw new CoolException("鏁版嵁閿欒锛岀珯鐐逛笉瀛樺湪锛侊紒");
}
station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+ station.setBarcode("");
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
}
@@ -1785,6 +1786,7 @@
}
station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+ station.setBarcode("");
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐�!");
}
@@ -1806,6 +1808,13 @@
generateCrnInTask(waitPakins, station, param.getLocType1(), userId);
}
+ /**
+ * SO/EO 鍖虹粍鎵�
+ * @author Ryan
+ * @date 2025/12/18 15:19
+ * @param params
+ * @return com.core.common.R
+ */
@Override
@Transactional(rollbackFor = Exception.class)
public R collectionPakin(CollectionPakinParams params, Long userId) {
@@ -2186,8 +2195,14 @@
.eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
.orderAsc(Arrays.asList("row1", "bay1", "lev1"))
.last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+
+ if (Objects.isNull(locMast)) {
+ throw new CoolException("鏈煡璇㈠埌鍙敤鐨勭┖鏉夸俊鎭紒锛�");
+ }
+
CrnTaskDetlDTO crnTaskDetlDTO = new CrnTaskDetlDTO().setLocNo(locMast.getLocNo()).setLocDetlList(locDetls);
locMasts.add(crnTaskDetlDTO);
+
// 绌烘澘鍑哄簱
generateTask(locMasts, TaskIOType.MERGE_OUT.type, basDevp, userId, station);
}
@@ -2295,7 +2310,7 @@
Task task = new Task();
task.setWrkNo(workNo)
.setIoTime(new Date())
- .setWrkSts(11L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
.setIoType(loc.getLocSts().equals("D") ? 110 : 101) // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
.setTaskType("agv")
.setIoPri(10D)
@@ -2372,11 +2387,6 @@
*/
@Transactional(rollbackFor = Exception.class)
public void generateAgvTask(String type, LocCache loc, String orgSite, String barcode, Long userId) {
- List<WaitPakin> pakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
- if (Objects.isNull(pakins) || pakins.isEmpty()) {
- throw new CoolException("缁勬墭淇℃伅涓嶅瓨鍦紒锛�");
- }
-
List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", barcode));
if (!tasks.isEmpty()) {
throw new CoolException("鎵樼洏宸插湪浠诲姟鎵ц涓�..");
@@ -2387,7 +2397,7 @@
Task task = new Task();
task.setWrkNo(workNo)
.setIoTime(new Date())
- .setWrkSts(1L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ .setWrkSts(201L) // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
.setIoType(1) // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
.setTaskType("agv")
.setIoPri(10D)
@@ -2407,32 +2417,39 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- for (WaitPakin pakin : pakins) {
- TaskDetl wrkDetl = new TaskDetl();
- BeanUtils.copyProperties(pakin, wrkDetl);
- wrkDetl.setId(null).setWrkNo(workNo)
- .setIoTime(new Date())
- .setOrderNo(pakin.getOrderNo())
- .setAnfme(pakin.getAnfme())
- .setZpallet(pakin.getZpallet())
- .setBatch(pakin.getBatch())
- .setMatnr(pakin.getMatnr())
- .setMaktx(pakin.getMaktx())
- .setAppeUser(userId)
- .setUnit(pakin.getUnit())
- .setModel(pakin.getModel())
- .setAppeTime(new Date())
- .setModiUser(userId);
- if (!taskDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ if (!type.equals("agv_back")) {
+ List<WaitPakin> pakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
+ if (Objects.isNull(pakins) || pakins.isEmpty()) {
+ throw new CoolException("缁勬墭淇℃伅涓嶅瓨鍦紒锛�");
}
- }
+ for (WaitPakin pakin : pakins) {
+ TaskDetl wrkDetl = new TaskDetl();
+ BeanUtils.copyProperties(pakin, wrkDetl);
+ wrkDetl.setId(null).setWrkNo(workNo)
+ .setIoTime(new Date())
+ .setOrderNo(pakin.getOrderNo())
+ .setAnfme(pakin.getAnfme())
+ .setZpallet(pakin.getZpallet())
+ .setBatch(pakin.getBatch())
+ .setMatnr(pakin.getMatnr())
+ .setMaktx(pakin.getMaktx())
+ .setAppeUser(userId)
+ .setUnit(pakin.getUnit())
+ .setModel(pakin.getModel())
+ .setAppeTime(new Date())
+ .setModiUser(userId);
+ if (!taskDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
- for (WaitPakin pakin : pakins) {
- pakin.setIoStatus("Y");
- if (!waitPakinService.updateById(pakin)) {
- throw new CoolException("鏇存柊缁勬墭淇℃伅澶辫触");
+ }
+
+ for (WaitPakin pakin : pakins) {
+ pakin.setIoStatus("Y");
+ if (!waitPakinService.updateById(pakin)) {
+ throw new CoolException("鏇存柊缁勬墭淇℃伅澶辫触");
+ }
}
}
@@ -2454,9 +2471,9 @@
throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
}
- if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+ if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type) || station.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)) {
station.setLocSts("R"); // S.鍏ュ簱棰勭害
-// station.setBarcode(barcode);
+ station.setBarcode(barcode);
station.setModiTime(new Date());
station.setModiUser(userId);
if (!basStationService.updateById(station)) {
@@ -2520,4 +2537,76 @@
}
return result;
}
+
+ /**
+ * 鍛煎彨AGV绌哄彴杞﹁繑鍥�
+ * @author Ryan
+ * @date 2025/9/24
+ * @param callAgvBackParam
+ * @return com.core.common.R
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public R agvCallback(AgvCallParams callAgvBackParam, Long userId) {
+ if (Objects.isNull(callAgvBackParam.getOrgSite())) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖!!");
+ }
+
+ // 鎸夊綋鍓嶆煡鎵惧簱浣嶉『搴忥紝鏌ュ埌涓�涓悗锛屼笉鍐嶅線涓嬫煡璇�
+ LocCache locCache = findPriorityLocCache();
+
+ if (Objects.isNull(locCache)) {
+ return R.error("鏈煡璇㈠埌鍙敤搴撲綅");
+ }
+
+ // 淇敼鐩爣绔欑偣淇℃伅
+ BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", callAgvBackParam.getOrgSite()));
+ if (Objects.isNull(station)) {
+ throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
+ }
+
+ try {
+ //绌哄彴杞﹀洖搴�
+ generateAgvTask("agv_back", locCache, callAgvBackParam.getOrgSite(), station.getBarcode(), userId);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return R.error(e.getMessage());
+ }
+
+ return R.ok(locCache);
+ }
+
+ /**
+ * 鎸変紭鍏堢骇鏌ユ壘鍙敤搴撲綅
+ * 椤哄簭锛氬叆搴撶紦瀛樺尯 -> SO鍖� -> EO鍖�
+ */
+ private LocCache findPriorityLocCache() {
+ // 1. Try Inbound Cache Area
+ LocCache loc = findAvailableLocByAreaType(LocAreaType.LOC_AREA_TYPE_IN_CACHE);
+ if (loc != null) return loc;
+
+ // 2. Try SO Area
+ loc = findAvailableLocByAreaType(LocAreaType.LOC_AREA_TYPE_SO);
+ if (loc != null) return loc;
+
+ // 3. Try EO Area
+ loc = findAvailableLocByAreaType(LocAreaType.LOC_AREA_TYPE_EO);
+ return loc;
+ }
+
+ /**
+ * 鏍规嵁鍖哄煙绫诲瀷鏌ユ壘鍙敤搴撲綅
+ */
+ private LocCache findAvailableLocByAreaType(LocAreaType areaType) {
+ BasAreas area = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", areaType.type));
+ if (area == null) {
+ return null;
+ }
+ return locCacheService.selectOne(new EntityWrapper<LocCache>()
+ .eq("area_id", area.getId())
+ .eq("frozen", 0)
+ .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+ .orderAsc(Arrays.asList("loc_no"))
+ .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 912bdf6..29f7980 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -209,4 +209,13 @@
return this.baseMapper.selectOrderMoveStatusInitial();
}
+ /**
+ * 鏌ヨ鎹熸孩鍗曞畬缁撶殑璁㈠崟
+ * @return
+ */
+ @Override
+ public List<CheckOrder> selectCompleteCheck() {
+ return this.baseMapper.selectCompleteCheck();
+ }
+
}
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 0543095..a94852e 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -59,7 +59,7 @@
BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
if (!Objects.isNull(station)) {
station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
- station.setBarcode(null);
+ station.setBarcode("");
if (!basStationService.updateById(station)) {
throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐�!!");
}
@@ -214,7 +214,7 @@
BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
if (station.getLocSts().equals("S")) {
station.setLocSts("O");
- station.setBarcode(null);
+ station.setBarcode("");
station.setModiTime(new Date());
station.setModiUser(userId);
if (!basStationService.updateById(station)) {
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index 75e2e92..b239a2d 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -1,6 +1,7 @@
package com.zy.asrs.task;
import com.core.common.Cools;
+import com.zy.asrs.entity.CheckOrder;
import com.zy.asrs.entity.Order;
import com.zy.asrs.enums.OrderTypeEnum;
import com.zy.asrs.service.ApiLogService;
@@ -124,4 +125,37 @@
}
}
}
+
+ /**鎹熸孩鍗曞畬缁撲笂鎶� */
+ @Scheduled(cron = "0/30 * * * * ?")
+ @Async("orderThreadPool")
+ public void completeCheckOrderReport() {
+ if (!ErpReportOld){
+ return;
+ }
+ String erpReport = Parameter.get().getErpReport();
+ if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+ List<CheckOrder> orders = orderService.selectCompleteCheck();
+ for (CheckOrder order : orders) {
+ try {
+ ReturnT<String> result = orderSyncHandler.startCheckOrderReport(order);
+ if (!result.isSuccess()) {
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
+ }
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
+ }
+
+ try {
+ Thread.sleep(300);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+
}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index a4b3d7d..3ebadce 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -2,17 +2,27 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
+import com.zy.api.entity.OrderItemsParam;
+import com.zy.api.entity.OutOrderParams;
+import com.zy.api.entity.PubOrderParams;
import com.zy.api.entity.ReportOrderParam;
+import com.zy.api.entity.ReportOrderParams;
+import com.zy.api.entity.StockAdjustParams;
+import com.zy.api.entity.StockUpOrderParams;
+import com.zy.api.entity.dto.XSR;
import com.zy.api.service.KopenApiService;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.OrderTypeEnum;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.CheckOrderDetlServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.OrderInAndOutUtil;
+import com.zy.asrs.utils.Utils;
import com.zy.common.constant.MesConstant;
import com.zy.common.model.DetlDto;
import com.zy.common.model.MesPakinParam;
@@ -26,7 +36,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
/**
* Created by vincent on 2020/7/7
@@ -34,6 +46,8 @@
@Slf4j
@Service
public class OrderSyncHandler extends AbstractHandler<String> {
+
+ private final CheckOrderDetlServiceImpl checkOrderDetlService;
@Autowired
private JdbcTemplate jdbcTemplate;
@@ -46,11 +60,17 @@
@Autowired
private DocTypeService docTypeService;
@Autowired
- private OrderPakinService orderPakinService;
+ private OrderPakinService orderPakinService;
@Autowired
private OrderDetlPakinService orderDetlPakinService;
@Autowired
private KopenApiService kopenApiService;
+ @Autowired
+ private MatService matService;
+
+ OrderSyncHandler(CheckOrderDetlServiceImpl checkOrderDetlService) {
+ this.checkOrderDetlService = checkOrderDetlService;
+ }
@Transactional
public ReturnT<String> startOrderIssuedOnceMore(Order order) {
@@ -60,7 +80,7 @@
}
Order order1 = OrderInAndOutUtil.selectByNo(order.getPakinPakoutStatus$(), order.getOrderNo());
- if (!Cools.isEmpty(order1)){
+ if (!Cools.isEmpty(order1)) {
return FAIL.setMsg("璇风瓑寰�...璁㈠崟鎵ц妗f姝e湪杞巻鍙叉。妗堬紒锛侊紒");
}
List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
@@ -70,12 +90,12 @@
// 鍗曟嵁鏄庣粏妗�
List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
- for (OrderDetl orderDetl : orderDetlList){
- if (orderDetl.getQty().equals(0D)){
+ for (OrderDetl orderDetl : orderDetlList) {
+ if (orderDetl.getQty().equals(0D)) {
continue;
}
orderDetl.setWorkQty(orderDetl.getQty());
- orderDetl.setAnfme(orderDetl.getAnfme()-orderDetl.getQty());
+ orderDetl.setAnfme(orderDetl.getAnfme() - orderDetl.getQty());
orderDetl.setQty(0D);
orderDetlService.updateById(orderDetl);
}
@@ -87,7 +107,7 @@
return SUCCESS;
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public ReturnT<String> startOrderIssued(Order order) {
DocType docType = docTypeService.selectById(order.getDocType());
if (null == docType) {
@@ -95,20 +115,25 @@
}
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
- OrderInAndOutUtil.insertOrder(order.getPakinPakoutStatus$(),order);
+ OrderInAndOutUtil.insertOrder(order.getPakinPakoutStatus$(), order);
// 鍗曟嵁鏄庣粏妗�
List<DetlDto> list = new ArrayList<>();
List<OrderDetl> orderDetlList = new ArrayList<>();
for (OrderDetl detail : orderDetls) {
- DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),
- detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme(), detail.getThreeCode());
+ DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getBrand(), detail.getStandby1(),
+ detail.getStandby2(), detail.getStandby3(),
+ detail.getBoxType1(), detail.getBoxType2(), detail.getBoxType3(), detail.getAnfme(),
+ detail.getThreeCode());
if (DetlDto.has(list, dto)) {
- DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(),
+ dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3());
assert detlDto != null;
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
- OrderDetl orderDetl = OrderDetl.find(orderDetlList, dto.getMatnr(), dto.getBatch(),dto.getBrand(),dto.getStandby1(),dto.getStandby2(),dto.getStandby3(),dto.getBoxType1(),dto.getBoxType2(),dto.getBoxType3());
+ OrderDetl orderDetl = OrderDetl.find(orderDetlList, dto.getMatnr(), dto.getBatch(), dto.getBrand(),
+ dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getBoxType1(), dto.getBoxType2(),
+ dto.getBoxType3());
assert orderDetl != null;
orderDetl.setAnfme(orderDetl.getAnfme() + detail.getAnfme());
} else {
@@ -116,18 +141,17 @@
orderDetlList.add(detail);
}
}
- for (OrderDetl orderDetl : orderDetlList){
+ for (OrderDetl orderDetl : orderDetlList) {
orderDetl.setWorkQty(0D);
- OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(),order,orderDetl);
- //灏忔澗锛氬鏋滀笅鍙戝璐ф淳宸ュ崟锛屽垯鐢熸垚澶囪揣鍑哄簱+澶囪揣鍏ュ簱
- if (order.getDocType().equals(OrderTypeEnum.TRANSFER.type.longValue())){
+ OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(), order, orderDetl);
+ // 灏忔澗锛氬鏋滀笅鍙戝璐ф淳宸ュ崟锛屽垯鐢熸垚澶囪揣鍑哄簱+澶囪揣鍏ュ簱
+ if (order.getDocType().equals(OrderTypeEnum.TRANSFER.type.longValue())) {
try {
- ifTransfetInsertStockIn(order,orderDetl);
- }catch (Exception e){
+ ifTransfetInsertStockIn(order, orderDetl);
+ } catch (Exception e) {
throw new CoolException(e.getMessage());
}
}
-
}
// 淇敼璁㈠崟鐘舵�� 1.鏈綔涓� ===>> 2.浣滀笟涓�
if (!orderService.updateSettle(order.getId(), 2L, null)) {
@@ -137,36 +161,34 @@
}
@Transactional(rollbackFor = Exception.class)
- public void ifTransfetInsertStockIn(Order order, OrderDetl orderDetl){
+ public void ifTransfetInsertStockIn(Order order, OrderDetl orderDetl) {
OrderPakin orderPakin = new OrderPakin();
- BeanUtils.copyProperties(order,orderPakin);
+ BeanUtils.copyProperties(order, orderPakin);
orderPakin.setDocType(OrderTypeEnum.STOCK_IN.type.longValue());
- if (!orderPakinService.insert(orderPakin)){
+ if (!orderPakinService.insert(orderPakin)) {
throw new CoolException("鎻掑叆澶囪揣鍏ュ簱鍗曞け璐�");
}
OrderDetlPakin orderDetlPakin = new OrderDetlPakin();
- BeanUtils.copyProperties(orderDetl,orderDetlPakin);
+ BeanUtils.copyProperties(orderDetl, orderDetlPakin);
orderDetlPakin.setOrderId(orderPakin.getId());
-
- if (!orderDetlPakinService.insert(orderDetlPakin)){
+ if (!orderDetlPakinService.insert(orderDetlPakin)) {
throw new CoolException("鎻掑叆澶囪揣鍏ュ簱鍗曞け璐�");
}
-
}
@Transactional
public ReturnT<String> startOrderInAndOutUtil(Order order) {
- //灏忔澗锛氳疆璁埌澶囪揣娲惧伐鍗曟槸鏌ヨ澶囪揣鍏ュ簱鍗曟槸鍚﹀畬鎴�
- if (order.getDocType().equals(OrderTypeEnum.STOCK_IN.type.longValue())){
+ // 灏忔澗锛氳疆璁埌澶囪揣娲惧伐鍗曟槸鏌ヨ澶囪揣鍏ュ簱鍗曟槸鍚﹀畬鎴�
+ if (order.getDocType().equals(OrderTypeEnum.STOCK_IN.type.longValue())) {
return SUCCESS;
}
- if (order.getDocType().equals(OrderTypeEnum.TRANSFER.type.longValue())){
+ if (order.getDocType().equals(OrderTypeEnum.TRANSFER.type.longValue())) {
OrderPakin orderPakin = orderPakinService.selectByNo(order.getOrderNo());
if (null != orderPakin) {
- if (!orderPakin.getSettle().equals(4L)){
+ if (!orderPakin.getSettle().equals(4L)) {
return SUCCESS;
}
}
@@ -176,32 +198,32 @@
return SUCCESS;
}
Order orderSou = orderService.selectByNo(order.getOrderNo());
- if (!orderSou.getSettle().equals(2L)){
+ if (!orderSou.getSettle().equals(2L)) {
return FAIL.setMsg("璁㈠崟鐘舵�佷笉姝g‘锛岃鑱旂郴绠$悊鍛�");
}
List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(orderSou.getId());
List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
- for (OrderDetl orderDetlSou : orderDetlList){
- for (OrderDetl orderDetl : orderDetls){
- if (orderDetl.getQty().equals(0D)){
+ for (OrderDetl orderDetlSou : orderDetlList) {
+ for (OrderDetl orderDetl : orderDetls) {
+ if (orderDetl.getQty().equals(0D)) {
continue;
}
- if (orderDetlSou.beSimilar(orderDetl)){
+ if (orderDetlSou.beSimilar(orderDetl)) {
double v = orderDetlSou.getAnfme() - orderDetlSou.getQty();
- if (v<orderDetl.getQty() || orderDetl.getQty().equals(v)){
+ if (v < orderDetl.getQty() || orderDetl.getQty().equals(v)) {
orderDetlSou.setQty(orderDetlSou.getAnfme());
orderDetl.setQty(orderDetl.getQty() - v);
break;
} else {
- orderDetlSou.setQty(orderDetlSou.getQty()+orderDetl.getQty());
+ orderDetlSou.setQty(orderDetlSou.getQty() + orderDetl.getQty());
orderDetl.setQty(0D);
}
}
}
}
- for (OrderDetl orderDetlSou : orderDetlList){
+ for (OrderDetl orderDetlSou : orderDetlList) {
orderDetlService.updateById(orderDetlSou);
}
// 淇敼璁㈠崟鐘舵�� 2.浣滀笟涓� ===>> 4.寰呬笂鎶�
@@ -209,18 +231,17 @@
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.缁撴潫
- OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
+ OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(), order.getId(), 6L, null);
return SUCCESS;
}
-
-
/**
* 鍗曟嵁涓婃姤
- * @author Ryan
- * @date 2025/12/15 16:14
+ *
* @param order
* @return com.zy.asrs.task.core.ReturnT<java.lang.String>
+ * @author Ryan
+ * @date 2025/12/15 16:14
*/
@Transactional
public ReturnT<String> startOrderReport(Order order) {
@@ -230,34 +251,148 @@
}
long settle = 6L;
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
- // 鍏ュ簱瀹屾垚涓婃姤
- if (docType.getPakin() == 1) {
- MesPakinParam pakinParam = new MesPakinParam();
- pakinParam.setPakinTime(DateUtils.convert(order.getUpdateTime()));
- pakinParam.setLgortFrom("5008");
- pakinParam.setLgortTo("5006");
- for (OrderDetl orderDetl : orderDetls) {
- if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
- settle = 99L;//浜屾鐢熸垚鍗曟嵁
- }
- String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
- pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
- }
+ if (Integer.valueOf(docType.getDocId() + "").equals(OrderTypeEnum.PICKING.type)) {
+ // 涓婃灦娲惧伐鍗曞畬鎴�
+ ReportOrderParam orderParam = new ReportOrderParam();
+ orderParam.setCompany_id(order.getCstmrName())
+ .setWms_id(order.getId() + "")
+ .setOrder_no(order.getOrderNo())
+ .setType(order.getDocType() + "")
+ .setInv_no(order.getNumber())
+ .setPm_tktid(order.getItemName())
+ .setUpdate_time(Utils.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"))
+ .setTarget_location("");
- String response = "";
+ List<ReportOrderParams> reportOrderParams = new ArrayList<>();
+ orderDetls.forEach(detl -> {
+ Mat material = matService.selectByMatnr(detl.getMatnr());
+ if (Objects.isNull(material)) {
+ throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+ }
+ ReportOrderParams itemParam = new ReportOrderParams();
+ // BS Code
+ itemParam.setTotal_serial(detl.getThreeCode())
+ // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
+ .setPro_type(material.getProType())
+ // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
+ .setPro_komcode(detl.getMatnr())
+ // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
+ .setPro_id(detl.getSuppCode())
+ // 涓婃姤鏃讹紝榛樿鏉ユ簮浣嶇疆鏄痭ull
+ .setLocation_no(null)
+ // 涓婃姤鏃讹紝榛樿鐩爣浣嶇疆鏄痭ull
+ .setLocation_type(null)
+ // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
+ .setSj_date(order.getUpdateBy().toString())
+ // 涓婃姤鏃讹紝榛樿涓婃姤浜烘槸鏇存柊浜�
+ .setSj_emp(order.getUpdateBy$())
+ // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
+ .setPick_qty(detl.getQty().intValue())
+ // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
+ .setDamage_qty(0)
+ // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
+ .setDiff_qty(0);
+
+ reportOrderParams.add(itemParam);
+ });
+
+ orderParam.setDetails(reportOrderParams);
+
+ XSR response = null;
boolean success = false;
try {
- ReportOrderParam orderParam = new ReportOrderParam();
+ List<ReportOrderParam> orderParams = new ArrayList<>();
+ orderParams.add(orderParam);
+ response = kopenApiService.getInDispatchResult(orderParams);
- kopenApiService.getInDispatchResult(orderParam);
-// response = new HttpHandler.Builder()
-// .setUri(MesConstant.URL)
-// .setPath(MesConstant.PAKIN_URL)
-// .setJson(JSON.toJSONString(pakinParam))
-// .build()
-// .doPost();
-// JSONObject jsonObject = JSON.parseObject(response);
-// if (jsonObject.getInteger("code").equals(200)) {
+ // if (true) {
+ // success = true;
+ // // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+ // if (!orderService.updateSettle(order.getId(), settle, null)) {
+ // throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ // }
+ // } else {
+ // log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL +
+ // MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
+ // throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+ // }
+ } catch (Exception e) {
+ log.error("fail", e);
+ // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg(e.getMessage());
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "涓婃灦娲惧伐鍗曞畬鎴愪笂鎶�",
+ MesConstant.URL + MesConstant.IN_DISPATCH_RESULT,
+ null,
+ "127.0.0.1",
+ JSON.toJSONString(orderParam),
+ JSON.toJSONString(response),
+ success);
+ } catch (Exception e) {
+ log.error("", e);
+ }
+ }
+ } else if (Integer.valueOf(docType.getDocId() + "").equals(OrderTypeEnum.TRANSFER.type)) {
+ // 澶囪揣娲惧伐鍗曪紙鍑哄簱锛�
+ ReportOrderParam orderParam = new ReportOrderParam();
+ orderParam.setCompany_id(order.getCstmrName())
+ .setWms_id(order.getId() + "")
+ .setOrder_no(order.getOrderNo())
+ .setType(order.getDocType() + "")
+ .setInv_no(order.getNumber())
+ .setPm_tktid(order.getItemName())
+ .setUpdate_time(Utils.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss"))
+ .setTarget_location("");
+
+ List<ReportOrderParams> reportOrderParams = new ArrayList<>();
+ orderDetls.forEach(detl -> {
+ Mat material = matService.selectByMatnr(detl.getMatnr());
+ if (Objects.isNull(material)) {
+ throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+ }
+ ReportOrderParams itemParam = new ReportOrderParams();
+ // BS Code
+ itemParam.setTotal_serial(detl.getThreeCode())
+ // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
+ .setPro_type(material.getProType())
+ // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
+ .setPro_komcode(detl.getMatnr())
+ // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
+ .setPro_id(detl.getSuppCode())
+ // 涓婃姤鏃讹紝榛樿鏉ユ簮浣嶇疆鏄痭ull
+ .setLocation_no(null)
+ // 涓婃姤鏃讹紝榛樿鐩爣浣嶇疆鏄痭ull
+ .setLocation_type(null)
+ // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
+ .setSj_date(order.getUpdateBy().toString())
+ // 涓婃姤鏃讹紝榛樿涓婃姤浜烘槸鏇存柊浜�
+ .setSj_emp(order.getUpdateBy$())
+ // 涓婃姤鏃讹紝榛樿涓婃姤鏁伴噺鏄鍗曟暟閲�
+ .setPick_qty(detl.getQty().intValue())
+ // 涓婃姤鏃讹紝榛樿鎹熷潖鏁伴噺鏄�0
+ .setDamage_qty(0)
+ // 涓婃姤鏃讹紝榛樿宸紓鏁伴噺鏄�0
+ .setDiff_qty(0);
+
+ reportOrderParams.add(itemParam);
+ });
+
+ orderParam.setDetails(reportOrderParams);
+
+ XSR response = null;
+ boolean success = false;
+ try {
+ // response = new HttpHandler.Builder()
+ // .setUri(MesConstant.URL)
+ // .setPath(MesConstant.PAKOUT_URL)
+ // .setJson(JSON.toJSONString(pakoutParam))
+ // .build()
+ // .doPost();
+ // JSONObject jsonObject = JSON.parseObject(response);
+ // if (jsonObject.getInteger("code").equals(200)) {
if (true) {
success = true;
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -265,57 +400,79 @@
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
} else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
- throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}",
+ MesConstant.URL + MesConstant.OUT_DISPATCH_RESULT,
+ JSON.toJSONString(orderParam), JSON.toJSONString(response));
+ throw new CoolException("涓婃姤KOPEN绯荤粺澶辫触");
}
} catch (Exception e) {
log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
} finally {
try {
// 淇濆瓨鎺ュ彛鏃ュ織
apiLogService.save(
- "鎴愬搧搴撳叆搴撲笂鎶�",
- MesConstant.URL + MesConstant.PAKIN_URL,
+ "澶囪揣娲惧伐鍗曞畬鎴愪笂鎶�",
+ MesConstant.URL + MesConstant.OUT_DISPATCH_RESULT,
null,
"127.0.0.1",
- JSON.toJSONString(pakinParam),
- response,
- success
- );
- } catch (Exception e) { log.error("", e); }
- }
- }
- // 鍑哄簱瀹屾垚涓婃姤
- if (docType.getPakout() == 1) {
- MesPakoutParam pakoutParam = new MesPakoutParam();
- pakoutParam.setTag(!order.getDocType$().equalsIgnoreCase("鎵嬪姩鍑哄簱鍗�"));
- pakoutParam.setPakoutTime(DateUtils.convert(order.getUpdateTime()));
- pakoutParam.setLgortFrom("5006");
- pakoutParam.setLgortTo("1111");
- if (!pakoutParam.isTag()) {
- pakoutParam.setKunnr("C1000");
- }
- pakoutParam.setOrderNo(order.getOrderNo());
- for (OrderDetl orderDetl : orderDetls) {
- if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
- settle = 99L;//浜屾鐢熸垚鍗曟嵁
+ JSON.toJSONString(orderParam),
+ JSON.toJSONString(response),
+ success);
+ } catch (Exception e) {
+ log.error("", e);
}
- String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
- pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
}
- String response = "";
+ } else if (Integer.valueOf(docType.getDocId() + "").equals(OrderTypeEnum.STOCK.type)) {
+ // 澶囪揣鍗曞弽棣�
+ StockUpOrderParams stockUpOrderParams = new StockUpOrderParams();
+ stockUpOrderParams.setCompany_id(order.getCstmrName())
+ .setWms_id(order.getId() + "")
+ .setDispatch_no(order.getNumber());
+
+ OutOrderParams pubOrderParams = new OutOrderParams();
+ pubOrderParams.setPick_no(order.getOrderNo())
+ .setOrder_no(order.getShipCode())
+ .setCus_id(order.getCstmrName())
+ .setCus_address(order.getTel());
+
+ List<OrderItemsParam> reportOrderParams = new ArrayList<>();
+ orderDetls.forEach(detl -> {
+ Mat material = matService.selectByMatnr(detl.getMatnr());
+ if (Objects.isNull(material)) {
+ throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+ }
+ OrderItemsParam itemParam = new OrderItemsParam();
+ // 涓婃姤鏃讹紝榛樿浜у搧绫诲瀷鏄痭ull
+ itemParam.setPro_type(material.getProType());
+ // 涓婃姤鏃讹紝榛樿浜у搧缂栫爜
+ itemParam.setPro_komcode(material.getMatnr());
+ // 涓婃姤鏃讹紝榛樿浜у搧id鏄緵搴斿晢缂栫爜
+ itemParam.setPro_id(detl.getSuppCode());
+
+ // 涓婃姤鏃讹紝榛樿涓婃姤鏃堕棿鏄洿鏂版椂闂�
+ itemParam.setPick_qty(detl.getQty().intValue());
+ reportOrderParams.add(itemParam);
+ });
+ pubOrderParams.setPartList(reportOrderParams);
+
+ List<OutOrderParams> pubOrderParamsList = new ArrayList<>();
+ pubOrderParamsList.add(pubOrderParams);
+ // 璁剧疆娲惧伐鍗曟槑缁�
+ stockUpOrderParams.setDetails(pubOrderParamsList);
+ stockUpOrderParams.setUpdate_time(order.getUpdateBy$());
+
+ XSR response = null;
boolean success = false;
try {
-// response = new HttpHandler.Builder()
-// .setUri(MesConstant.URL)
-// .setPath(MesConstant.PAKOUT_URL)
-// .setJson(JSON.toJSONString(pakoutParam))
-// .build()
-// .doPost();
-// JSONObject jsonObject = JSON.parseObject(response);
-// if (jsonObject.getInteger("code").equals(200)) {
+ // response = new HttpHandler.Builder()
+ // .setUri(MesConstant.URL)
+ // .setPath(MesConstant.PAKOUT_URL)
+ // .setJson(JSON.toJSONString(pakoutParam))
+ // .build()
+ // .doPost();
+ // JSONObject jsonObject = JSON.parseObject(response);
+ // if (jsonObject.getInteger("code").equals(200)) {
if (true) {
success = true;
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -323,29 +480,79 @@
throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
}
} else {
- log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
- throw new CoolException("涓婃姤mes绯荤粺澶辫触");
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}",
+ MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
+ JSON.toJSONString(stockUpOrderParams), JSON.toJSONString(response));
+ throw new CoolException("涓婃姤KOPEN绯荤粺澶辫触");
}
} catch (Exception e) {
log.error("fail", e);
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
} finally {
try {
// 淇濆瓨鎺ュ彛鏃ュ織
apiLogService.save(
- "鎴愬搧搴撳嚭搴撲笂鎶�",
- MesConstant.URL + MesConstant.PAKOUT_URL,
+ "澶囪揣鍗曞畬鎴愪笂鎶�",
+ MesConstant.URL + MesConstant.OUT_DETAILS_RESULT,
null,
"127.0.0.1",
- JSON.toJSONString(pakoutParam),
- response,
- success
- );
- } catch (Exception e) { log.error("", e); }
+ JSON.toJSONString(stockUpOrderParams),
+ JSON.toJSONString(response),
+ success);
+ } catch (Exception e) {
+ log.error("", e);
+ }
}
+
}
return SUCCESS;
}
+ /**
+ * 鎹熸孩鍗曞畬缁撲笂鎶�
+ *
+ * @param order
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public ReturnT<String> startCheckOrderReport(CheckOrder order) {
+ List<StockAdjustParams> adjustParams = new ArrayList<>();
+
+ StockAdjustParams adjustParam = new StockAdjustParams();
+
+ adjustParam.setCompany_id(order.getCstmrName())
+ .setWms_id(order.getId() + "")
+ .setType(0 + "")
+ .setCompany_id(order.getCstmrName());
+
+ adjustParam.setBsby_no(order.getNumber())
+ .setResason("")
+ .setReason_name("");
+ List<CheckOrderDetl> detls = checkOrderDetlService
+ .selectList(new EntityWrapper<CheckOrderDetl>().eq("order_id", order.getId()));
+ if (Objects.isNull(detls) || detls.isEmpty()) {
+ throw new CoolException("鎹熸孩鍗曡鎯呬笉瀛樺湪");
+ }
+ List<OrderItemsParam> items = new ArrayList<>();
+ detls.forEach(detl -> {
+ Mat material = matService.selectByMatnr(detl.getMatnr());
+ if (Objects.isNull(material)) {
+ throw new CoolException("鐗╂枡涓嶅瓨鍦�");
+ }
+ OrderItemsParam itemParam = new OrderItemsParam();
+ itemParam.setLocation_no(detl.getZpallet())
+ .setPro_komcode(material.getMatnr())
+ .setPro_id(detl.getSuppCode())
+ .setBsby_qty(detl.getDiffQty().intValue());
+ items.add(itemParam);
+ });
+ adjustParam.setDetails(items);
+
+ adjustParams.add(adjustParam);
+
+ return SUCCESS;
+ // TODO Auto-generated method stub
+
+ }
+
}
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 4277ac2..6d3d458 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.*;
+import com.zy.asrs.enums.TaskStatusType;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
@@ -132,6 +133,7 @@
return SUCCESS;
}
+ @Transactional(rollbackFor = Exception.class)
public ReturnT<String> AgvStart(Task task) {
try {
List<TaskDetl> taskDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
@@ -153,7 +155,7 @@
}
// 鍏ュ簱 --------------------------------------------------------------------------------
- if (task.getWrkSts() == 5) {
+ if (task.getWrkSts().equals(TaskStatusType.AGV_INVENTORY_UPDATED_IN.type)) {
// 鍏ㄦ澘鍏ュ簱
if (task.getIoType() == 1) {
// 鍏ュ簱閫氱煡鍗�
@@ -183,7 +185,7 @@
}
// 鍑哄簱 --------------------------------------------------------------------------------
- } else if (task.getWrkSts() == 15) {
+ } else if (task.getWrkSts().equals(TaskStatusType.AGV_INVENTORY_UPDATED_OUT.type)) {
// if (!Cools.isEmpty(wrkDetls)) {
// if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
// exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
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 3fb7968..1f869e2 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -7,6 +7,7 @@
import com.zy.asrs.enums.LocAreaType;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.enums.TaskIOType;
+import com.zy.asrs.enums.TaskStatusType;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
@@ -430,7 +431,6 @@
if (wrkMast.getIoType() == TaskIOType.MERGE_IN.type) {
agvSta = wrkMast.getPauseMk();
}
-
// . 鍒犻櫎缂撳瓨绔欑偣鏄庣粏
if (!Objects.isNull(agvSta)) {
// 淇敼鐩爣绔欑偣淇℃伅
@@ -444,9 +444,6 @@
throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
}
}
-
-
-
break;
// 鐩樼偣鍏ュ簱
case 57:
@@ -731,10 +728,10 @@
@Transactional(rollbackFor = Exception.class)
public ReturnT<String> AgvStart(Task task) {
// 4.鍏ュ簱瀹屾垚
- if (task.getWrkSts() == 4) {
+ if (task.getWrkSts().equals(TaskStatusType.AGV_TASK_FINISHED_IN.type)) {
return agvDoIn(task);
// 14.鍑哄簱瀹屾垚
- } else if (task.getWrkSts() == 14) {
+ } else if (task.getWrkSts().equals(TaskStatusType.AGV_TASK_FINISHED_OUT.type)) {
return agvDoOut(task);
}
return SUCCESS;
@@ -743,7 +740,7 @@
/**
* @author Ryan
* @date 2025/9/25
- * @description: AGV鍑哄簱浠诲姟
+ * @description: AGV鍑哄簱浠�
* @version 1.0
*/
@Transactional(rollbackFor = Exception.class)
@@ -832,9 +829,7 @@
throw new CoolException("褰撳墠搴撲綅鐘舵��" + locMast.getLocSts() + ", 鏃犳硶鎵ц鍑哄簱鎿嶄綔锛侊紒");
}
-
-
- task.setWrkSts(15L);
+ task.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_OUT.type);
if (!taskService.updateById(task)) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
@@ -870,7 +865,7 @@
if (!basStationService.updateById(devNo)) {
throw new CoolException("绔欑偣淇℃伅淇敼澶辫触锛侊紒");
}
- task.setWrkSts(15L);
+ task.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_OUT.type);
if (!taskService.updateById(task)) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
}
@@ -883,7 +878,6 @@
@Transactional(rollbackFor = Exception.class)
public ReturnT<String> agvDoIn(Task wrkMast) {
LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
-
if (!Objects.isNull(wrkMast.getSourceStaNo())) {
BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
.eq("dev_no", wrkMast.getSourceStaNo()));
@@ -892,7 +886,7 @@
if (!list.contains(station.getLocSts())) {
station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
}
- station.setBarcode(null);
+ station.setBarcode("");
basStationService.updateById(station);
}
}
@@ -969,7 +963,7 @@
if (!locCacheService.updateById(locCache)) {
throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒");
}
- wrkMast.setWrkSts(5L);
+ wrkMast.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_IN.type);
wrkMast.setModiTime(new Date());
if (!taskService.updateById(wrkMast)) {
throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
@@ -1064,7 +1058,7 @@
}
// 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(5L);
+ wrkMast.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_IN.type);
wrkMast.setModiTime(now);
if (!taskService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 3bcb9d4..1927845 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -654,4 +654,15 @@
return result;
}
+ /**
+ * 鏃ユ湡杞崲涓哄瓧绗︿覆
+ * @param date 鏃ユ湡
+ * @param format 鏍煎紡
+ * @return 瀛楃涓�
+ */
+ public static String dateToStr(Date date, String format) {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ return sdf.format(date);
+ }
+
}
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index e25557a..dfd72fa 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -20,7 +20,7 @@
generator.url="192.168.4.15:1433;databasename=jsxsasrs";
generator.username="sa";
generator.password="sa@123";
- generator.table="agv_bas_station_detl";
+ generator.table="man_order_pakin_rela";
generator.packagePath="com.zy.asrs";
generator.html = false;
generator.js = false;
diff --git a/src/main/java/com/zy/common/constant/MesConstant.java b/src/main/java/com/zy/common/constant/MesConstant.java
index 0fc2f46..09762d3 100644
--- a/src/main/java/com/zy/common/constant/MesConstant.java
+++ b/src/main/java/com/zy/common/constant/MesConstant.java
@@ -5,13 +5,15 @@
*/
public class MesConstant {
- public static final String URL = "http://192.168.99.130:80";
+ //灏忕郴缁熸帴鍙e湴鍧�
+ public static final String URL = "http://webservice.kopen.com.cn:1482/kc-api/api/wms/ ";
- public static final String PACK_DOWN_URL = "mes/api/zy/v1/packDown/sendList";
-
- public static final String PAKIN_URL = "mes/api/zy/v1/warehouse/sendList";
-
- public static final String PAKOUT_URL = "wmsFinprd/api/zy/v1/packOut/sendList";
+ //涓婃灦娲惧伐鍗曞弽棣�
+ public static final String IN_DISPATCH_RESULT = "getInDispatchResult";
+ //澶囪揣鎸囩ず娲惧伐鍗曞弽棣�
+ public static final String OUT_DISPATCH_RESULT = "getOutDispatchResult";
+ //澶囪揣璁㈠崟鍙嶉
+ public static final String OUT_DETAILS_RESULT = "getOutDetailsResult";
/**
diff --git a/src/main/java/com/zy/common/model/DetlDto.java b/src/main/java/com/zy/common/model/DetlDto.java
index 6369afb..3b0902f 100644
--- a/src/main/java/com/zy/common/model/DetlDto.java
+++ b/src/main/java/com/zy/common/model/DetlDto.java
@@ -99,19 +99,20 @@
}
-// public DetlDto(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double anfme) {
-// this.orderNo = orderNo;
-// this.matnr = matnr;
-// this.batch = batch;
-// this.brand = brand;
-// this.standby1 = standby1;
-// this.standby2 = standby2;
-// this.standby3 = standby3;
-// this.boxType1 = boxType1;
-// this.boxType2 = boxType2;
-// this.boxType3 = boxType3;
-// this.anfme = anfme;
-// }
+ public DetlDto(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double anfme, String threeCode) {
+ this.orderNo = orderNo;
+ this.matnr = matnr;
+ this.batch = batch;
+ this.brand = brand;
+ this.standby1 = standby1;
+ this.standby2 = standby2;
+ this.standby3 = standby3;
+ this.boxType1 = boxType1;
+ this.boxType2 = boxType2;
+ this.boxType3 = boxType3;
+ this.anfme = anfme;
+ this.threeCode = threeCode;
+ }
public DetlDto(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Long lineNumber, String boxType1, String boxType2, String boxType3, Double anfme, String threeCode) {
this.orderNo = orderNo;
@@ -220,6 +221,20 @@
return false;
}
+ public static boolean hasOrder(List<DetlDto> detlDtos, DetlDto detlDto) {
+ for (DetlDto dto : detlDtos) {
+ if (dto.getOrderNo().equals(detlDto.getOrderNo()) && dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())
+ && Cools.eq(dto.getBrand(), detlDto.getBrand()) && Cools.eq(dto.getStandby1(), detlDto.getStandby1())
+ && Cools.eq(dto.getStandby2(), detlDto.getStandby2()) && Cools.eq(dto.getStandby3(), detlDto.getStandby3())
+ && Cools.eq(dto.getBoxType1(), detlDto.getBoxType1()) && Cools.eq(dto.getBoxType2(), detlDto.getBoxType2())
+ && Cools.eq(dto.getBoxType3(), detlDto.getBoxType3()) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+
public static boolean hasLineNumber(List<DetlDto> detlDtos, DetlDto detlDto) {
for (DetlDto dto : detlDtos) {
if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 681d5c3..d29e67c 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -30,7 +30,7 @@
# global-config:
# field-strategy: 0
configuration:
-# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
cache-enabled: true
call-setters-on-nulls: true
diff --git a/src/main/resources/mapper/OrderDetlPakoutMapper.xml b/src/main/resources/mapper/OrderDetlPakoutMapper.xml
index 7f70401..fcd4b25 100644
--- a/src/main/resources/mapper/OrderDetlPakoutMapper.xml
+++ b/src/main/resources/mapper/OrderDetlPakoutMapper.xml
@@ -100,6 +100,9 @@
<if test="matnr!=null and matnr!='' ">
and mod.matnr like '%' + #{matnr} + '%'
</if>
+ <if test="doc_type!=null and doc_type!='' ">
+ and mo.doc_type like '%' + #{doc_type} + '%'
+ </if>
<if test="maktx!=null and maktx!='' ">
and mod.maktx like '%' + #{maktx} + '%'
</if>
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml
index f8c5070..270025a 100644
--- a/src/main/resources/mapper/OrderMapper.xml
+++ b/src/main/resources/mapper/OrderMapper.xml
@@ -118,5 +118,15 @@
and move_status = 1
order by update_time
</select>
+ <select id="selectCompleteCheck" resultType="com.zy.asrs.entity.Order">
+ SELECT TOP
+ 20 *
+ FROM
+ man_check_order
+ WHERE
+ settle = 4
+ AND status = 1
+ AND doc_type = 4
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/OrderPakinMapper.xml b/src/main/resources/mapper/OrderPakinMapper.xml
index cd82c6c..f74704b 100644
--- a/src/main/resources/mapper/OrderPakinMapper.xml
+++ b/src/main/resources/mapper/OrderPakinMapper.xml
@@ -61,6 +61,7 @@
where 1=1
and settle = 4
and status = 1
+ and doc_type != 7
order by create_time asc
</select>
diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml
index 16d8fda..0006c2d 100644
--- a/src/main/resources/mapper/TaskMapper.xml
+++ b/src/main/resources/mapper/TaskMapper.xml
@@ -9,13 +9,13 @@
</resultMap>
<select id="selectToBeCompleteData" resultType="com.zy.asrs.entity.Task">
- select * from agv_task where ((wrk_sts = 4 Or wrk_sts = 14 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
+ select * from agv_task where ((wrk_sts = 204 Or wrk_sts = 304 ) and io_type != 103 and io_type != 104 and io_type != 107 ) or (wrk_sts = 2 and io_type=6) order by upd_mk,error_time,io_time,wrk_no
</select>
<select id="selectToBeHistoryData" resultType="com.zy.asrs.entity.Task">
select * from agv_task
- where wrk_sts=5 or wrk_sts=15
+ where wrk_sts=205 or wrk_sts=305
order by io_time,wrk_no asc
</select>
diff --git a/src/main/resources/mapper/ViewWorkInMapper.xml b/src/main/resources/mapper/ViewWorkInMapper.xml
index 0f5d0cd..043a29e 100644
--- a/src/main/resources/mapper/ViewWorkInMapper.xml
+++ b/src/main/resources/mapper/ViewWorkInMapper.xml
@@ -5,8 +5,8 @@
<!-- mapper涓嶆敮鎸乻ql璇彞宓屽鏃讹紝閲囩敤sql鐗囨鍖呭惈鏂瑰紡锛岃В鍐硏ml鏍囩闂 -->
<sql id="viewWorkInConditionSql">
- <if test="loc_no!=null and loc_no!='' ">
- and loc_no like '%' + #{loc_no} + '%'
+ <if test="locNo!=null and locNo!='' ">
+ and loc_no like '%' + #{locNo} + '%'
</if>
<if test="matnr!=null and matnr!='' ">
and matnr like '%' + #{matnr} + '%'
diff --git a/src/main/webapp/static/js/adjustOrder/adjustOrder.js b/src/main/webapp/static/js/adjustOrder/adjustOrder.js
index a5936e9..11ec3ab 100644
--- a/src/main/webapp/static/js/adjustOrder/adjustOrder.js
+++ b/src/main/webapp/static/js/adjustOrder/adjustOrder.js
@@ -3,7 +3,7 @@
base: baseUrl + "/static/layui/lay/modules/"
}).extend({
notice: 'notice/notice',
-}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate','tableMerge','notice'], function () {
+}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate', 'tableMerge', 'notice'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
@@ -18,21 +18,21 @@
// 娓叉煋鎼滅储妯℃澘
$.ajax({
- url: baseUrl+"/docType/list/auth",
- headers: {'token': localStorage.getItem('token')},
+ url: baseUrl + "/docType/list/auth",
+ headers: { 'token': localStorage.getItem('token') },
data: {
limit: 9999
},
method: 'POST',
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
let template = Handlebars.compile($('#docTypeTpl').html());
$('#docType-query').html(template(res.data));
layui.form.render('select');
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
} else {
- layer.msg(res.msg, {icon: 2})
+ layer.msg(res.msg, { icon: 2 })
}
}
})
@@ -40,19 +40,22 @@
// 娓叉煋琛ㄦ牸
var insTb = table.render({
elem: '#order',
- url: baseUrl+'/adjustOrder/list/auth',
- headers: {token: localStorage.getItem('token')},
+ url: baseUrl + '/adjustOrder/list/auth',
+ headers: { token: localStorage.getItem('token') },
page: true,
cellMinWidth: 100,
cols: [[
- {type: 'numbers'},
- {field: 'orderNo', title: '鍗曟嵁缂栧彿'},
- {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160},
- {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
- {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
- {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
- {field: 'memo', align: 'center',title: '澶囨敞', hide: true},
- {align: 'center', title: '鎿嶄綔', toolbar: '#operate',}
+ { type: 'numbers' },
+ { field: 'orderNo', title: '鍗曟嵁缂栧彿' },
+ { field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 120, width: 120 },
+ { field: 'defNumber', align: 'center', title: '娴佹按鍙�', minWidth: 160, width: 160 },
+ { field: 'cstmrName', align: 'center', title: '鍏徃', minWidth: 160, width: 160 },
+ { field: 'orderTime', title: '璁㈠崟鏃堕棿', minWidth: 200, width: 200 },
+ { field: 'shipName', align: 'center', title: '璋冩暣鍘熷洜' },
+ { field: 'memo', align: 'center', title: '鍘熷洜鎻忚堪' },
+ { field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 120, width: 120 },
+ { align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160 },
+ { align: 'center', title: '鎿嶄綔', toolbar: '#operate', }
]],
request: {
pageName: 'curr',
@@ -72,7 +75,7 @@
done: function (res, curr, count) {
limit();
if (res.code === 403) {
- top.location.href = baseUrl+"/";
+ top.location.href = baseUrl + "/";
}
insTbCount = count;
}
@@ -80,7 +83,7 @@
// 鎼滅储
form.on('submit(tbSearch)', function (data) {
- insTb.reload({where: data.field, page: {curr: 1}});
+ insTb.reload({ where: data.field, page: { curr: 1 } });
});
// 娣诲姞
@@ -94,11 +97,11 @@
var layEvent = obj.event;
if (layEvent === 'edit') {
showEditModel(data);
- }else if (layEvent === 'adjust') {
+ } else if (layEvent === 'adjust') {
adjustComplete(data.id);
- }else if (layEvent === 'export') {
+ } else if (layEvent === 'export') {
export1(data.id);
- }else if (layEvent === 'del') {
+ } else if (layEvent === 'del') {
doDel(data.id);
} else if (layEvent === 'complete') {
doModify(data.id, data.orderNo, 4);
@@ -125,15 +128,17 @@
height: '450px;',
cellMinWidth: 100,
cols: [[
- {type: 'numbers'},
- {field: 'locNo', title: '搴撲綅鍙�', width: 120},
- {field: 'zpallet', title: '瀹瑰櫒鐮�', width: 120},
- {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
- {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160},
- {field: 'batch', title: '鎵瑰彿'},
- {field: 'diffQty', title: '宸紓鏁伴噺', style: 'font-weight: bold'},
- {field: 'specs', title: '瑙勬牸'},
- {field: 'status$', title: '鐘舵��'}
+ { type: 'numbers' },
+ { field: 'locNo', title: '搴撲綅鍙�', width: 120 },
+ { field: 'zpallet', title: '瀹瑰櫒鐮�', width: 120 },
+ { field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160 },
+ { field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160 },
+ { field: 'suppCode', title: '渚涘簲鍟嗙紪鐮�' },
+ { field: 'length', align: 'center', title: '閲嶉噺', hide: false }
+ ,{ field: 'volume', align: 'center', title: '灏哄', hide: false }
+ ,{ field: 'diffQty', title: '宸紓鏁伴噺', style: 'font-weight: bold' },
+ { field: 'specs', title: '瑙勬牸' },
+ { field: 'status$', title: '鐘舵��' }
]],
request: {
pageName: 'curr',
@@ -179,58 +184,58 @@
form.on('submit(orderEditSubmit)', function (data) {
// 缁勮鏁版嵁
if (xxDataList.length <= 0) {
- layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']});
+ layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', { tips: [1, '#ff4c4c'] });
return false;
}
let nList = admin.util.deepClone(xxDataList);
layer.load(2);
- if (isExpAdd){
+ if (isExpAdd) {
$.ajax({
- url: baseUrl+"/checkOrder/form/" + "add" + "/auth",
- headers: {'token': localStorage.getItem('token')},
+ url: baseUrl + "/checkOrder/form/" + "add" + "/auth",
+ headers: { 'token': localStorage.getItem('token') },
data: JSON.stringify({
orderId: Number(data.field.id),
docType: Number(data.field.docType),
orderNo: data.field.orderNo,
locDetlList: nList
}),
- contentType:'application/json;charset=UTF-8',
+ contentType: 'application/json;charset=UTF-8',
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
layer.close(dIndex);
$(".layui-laypage-btn")[0].click();
- layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 1 });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, { icon: 2 });
}
}
})
- }else {
+ } else {
$.ajax({
- url: baseUrl+"/checkOrder/form/" + "modify" + "/auth",
- headers: {'token': localStorage.getItem('token')},
+ url: baseUrl + "/checkOrder/form/" + "modify" + "/auth",
+ headers: { 'token': localStorage.getItem('token') },
data: JSON.stringify({
orderId: Number(data.field.id),
docType: Number(data.field.docType),
orderNo: data.field.orderNo,
checkOrderDetls: nList
}),
- contentType:'application/json;charset=UTF-8',
+ contentType: 'application/json;charset=UTF-8',
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
layer.close(dIndex);
$(".layui-laypage-btn")[0].click();
- layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 1 });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, { icon: 2 });
}
}
})
@@ -242,21 +247,21 @@
var xxDataList = [];
var tbOptions = {
elem: '#formSSXMTable',
- headers: {token: localStorage.getItem('token')},
+ headers: { token: localStorage.getItem('token') },
data: xxDataList,
page: true,
height: '350px;',
cellMinWidth: 100,
cols: [[
- {type: 'numbers', title: '#'},
- {field: 'locNo', title: '搴撲綅鍙�'},
- {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160},
- {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200},
- {field: 'batch', title: '鎵瑰彿'},
- {field: 'specs', title: '瑙勬牸'},
- {field: 'anfme', title: '鏁伴噺', minWidth: 110, width: 110},
+ { type: 'numbers', title: '#' },
+ { field: 'locNo', title: '搴撲綅鍙�' },
+ { field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160 },
+ { field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200 },
+ { field: 'batch', title: '鎵瑰彿' },
+ { field: 'specs', title: '瑙勬牸' },
+ { field: 'anfme', title: '鏁伴噺', minWidth: 110, width: 110 },
// {field: 'unit', title: '鍗曚綅', width: 80},
- {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
+ { align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right' }
]],
done: function (res) {
$(layero).find('.layui-table-view').css('margin', '0');
@@ -265,18 +270,18 @@
};
if (!isExpAdd) {
$.ajax({
- url: baseUrl+"/checkOrderDetl/select/all?orderId=" + expTpe.id,
- headers: {'token': localStorage.getItem('token')},
+ url: baseUrl + "/checkOrderDetl/select/all?orderId=" + expTpe.id,
+ headers: { 'token': localStorage.getItem('token') },
method: 'GET',
async: false,
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
xxDataList = res.data;
tbOptions.data = xxDataList;
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2})
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, { icon: 2 })
}
}
})
@@ -287,8 +292,8 @@
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'del') {
- if(data.workQty > 0){
- layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2});
+ if (data.workQty > 0) {
+ layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", { icon: 2 });
return;
}
layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
@@ -302,13 +307,13 @@
break;
}
}
- insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+ insTbSSXM.reload({ data: xxDataList, page: { curr: 1 } });
});
}
});
// 鍏ㄥ眬鍑芥暟锛岀敤浜庢帴鏀朵粠搴撳瓨鏌ヨ椤甸潰杩斿洖鐨勬暟鎹�
- window.addCheckOrderTableData = function(data) {
+ window.addCheckOrderTableData = function (data) {
// 澶勭悊閫変腑鐨勫簱瀛樻暟鎹�
var addedCount = 0;
var duplicateCount = 0;
@@ -317,7 +322,7 @@
var isDuplicate = false;
for (var j = 0; j < xxDataList.length; j++) {
if (xxDataList[j].locNo === data[i].locNo && xxDataList[j].matnr === data[i].matnr && xxDataList[j].batch === data[i].batch) {
- if (xxDataList[j].diffQty !== 0){
+ if (xxDataList[j].diffQty !== 0) {
isDuplicate = true;
duplicateCount++;
break;
@@ -325,22 +330,22 @@
}
}
- if (data[j].diffQty !== 0){
+ if (data[j].diffQty !== 0) {
isDuplicate = true;
duplicateCount++;
}
// 濡傛灉涓嶉噸澶嶏紝鍒欐坊鍔犲埌鍒楄〃
if (!isDuplicate) {
- xxDataList.push({...data[i]});
+ xxDataList.push({ ...data[i] });
addedCount++;
}
}
- insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+ insTbSSXM.reload({ data: xxDataList, page: { curr: 1 } });
// 鎻愮ず娣诲姞缁撴灉
if (duplicateCount > 0) {
- layer.msg('鎴愬姛娣诲姞 ' + addedCount + ' 鏉℃暟鎹紝' + duplicateCount + ' 鏉℃暟鎹凡蹇界暐', {icon: 1});
+ layer.msg('鎴愬姛娣诲姞 ' + addedCount + ' 鏉℃暟鎹紝' + duplicateCount + ' 鏉℃暟鎹凡蹇界暐', { icon: 1 });
} else if (addedCount > 0) {
- layer.msg('鎴愬姛娣诲姞 ' + addedCount + ' 鏉℃暟鎹�', {icon: 1});
+ layer.msg('鎴愬姛娣诲姞 ' + addedCount + ' 鏉℃暟鎹�', { icon: 1 });
}
};
@@ -350,7 +355,7 @@
// 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥 - 鎻愬彇搴撳瓨
function showEditModel2(exp) {
- let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ let loadIndex = layer.msg('璇锋眰涓�...', { icon: 16, shade: 0.01, time: false });
layer.open({
type: 2,
title: '鎻愬彇搴撳瓨',
@@ -359,7 +364,7 @@
area: ['90%', '85%'],
shadeClose: true,
content: 'checkOrderLocQuery.html',
- success: function(layero, index){
+ success: function (layero, index) {
layer.close(loadIndex);
}
});
@@ -378,25 +383,25 @@
layer.close(i);
layer.load(2);
$.ajax({
- url: baseUrl+"/checkOrder/delete/auth",
- headers: {'token': localStorage.getItem('token')},
+ url: baseUrl + "/checkOrder/delete/auth",
+ headers: { 'token': localStorage.getItem('token') },
data: {
orderId: orderId
},
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
if (insTbCount === 0) {
- insTb.reload({page: {curr: 1}});
+ insTb.reload({ page: { curr: 1 } });
} else {
$(".layui-laypage-btn")[0].click();
}
- layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 1 });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, { icon: 2 });
}
}
})
@@ -412,25 +417,25 @@
layer.close(i);
layer.load(2);
$.ajax({
- url: baseUrl+"/checkOrder/complete/auth",
- headers: {'token': localStorage.getItem('token')},
+ url: baseUrl + "/checkOrder/complete/auth",
+ headers: { 'token': localStorage.getItem('token') },
data: {
orderId: orderId
},
method: 'POST',
success: function (res) {
layer.closeAll('loading');
- if (res.code === 200){
+ if (res.code === 200) {
if (insTbCount === 0) {
- insTb.reload({page: {curr: 1}});
+ insTb.reload({ page: { curr: 1 } });
} else {
$(".layui-laypage-btn")[0].click();
}
- layer.msg(res.msg, {icon: 1});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
- }else {
- layer.msg(res.msg, {icon: 2});
+ layer.msg(res.msg, { icon: 1 });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, { icon: 2 });
}
}
})
@@ -442,31 +447,31 @@
let loadIndex = layer.load(2);
$.ajax({
url: baseUrl + "/adjustOrder/complete/auth",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
data: {
orderId: id
},
method: 'POST',
success: function (res) {
- if (res.code === 200){
+ if (res.code === 200) {
layer.close(loadIndex);
- layer.msg(res.msg, {icon: 1});
- insTb.reload({where: null});
- } else if (res.code === 403){
- top.location.href = baseUrl+"/";
+ layer.msg(res.msg, { icon: 1 });
+ insTb.reload({ where: null });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
} else {
layer.close(loadIndex);
- layer.msg(res.msg, {icon: 2})
+ layer.msg(res.msg, { icon: 2 })
}
}
})
}
function export1(id) {
- notice.msg('姝e湪瀵煎嚭鏂囦欢......', {icon: 4});
+ notice.msg('姝e湪瀵煎嚭鏂囦欢......', { icon: 4 });
$.ajax({
url: baseUrl + "/checkOrder/export/auth",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
data: {
orderId: id
},
@@ -486,9 +491,9 @@
filename = decodeURIComponent(matches[1].replace(/['"]/g, ''));
}
}
-
+
// 鍒涘缓涓嬭浇閾炬帴
- var blob = new Blob([data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
+ var blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = filename;
@@ -496,15 +501,15 @@
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(link.href);
-
- layer.msg('瀵煎嚭鎴愬姛', {icon: 1});
+
+ layer.msg('瀵煎嚭鎴愬姛', { icon: 1 });
},
error: function (xhr, status, error) {
notice.destroy();
if (xhr.status === 403) {
top.location.href = baseUrl + "/";
} else {
- layer.msg('瀵煎嚭澶辫触锛�' + error, {icon: 2});
+ layer.msg('瀵煎嚭澶辫触锛�' + error, { icon: 2 });
}
}
});
@@ -512,10 +517,10 @@
function pakout(tableCache, layerIndex) {
// let loadIndex = layer.load(2);
- notice.msg('姝e湪鐢熸垚鐩樼偣鍑哄簱浠诲姟......', {icon: 4});
+ notice.msg('姝e湪鐢熸垚鐩樼偣鍑哄簱浠诲姟......', { icon: 4 });
$.ajax({
url: baseUrl + "/out/checkPakOut/auth",
- headers: {'token': localStorage.getItem('token')},
+ headers: { 'token': localStorage.getItem('token') },
contentType: 'application/json;charset=UTF-8',
data: JSON.stringify(tableCache),
method: 'POST',
@@ -523,12 +528,12 @@
notice.destroy();
if (res.code === 200) {
layer.close(layerIndex);
- layer.msg(res.msg, {icon: 1});
- insTb.reload({where: null});
+ layer.msg(res.msg, { icon: 1 });
+ insTb.reload({ where: null });
} else if (res.code === 403) {
top.location.href = baseUrl + "/";
} else {
- layer.msg(res.msg, {icon: 2})
+ layer.msg(res.msg, { icon: 2 })
}
}
});
@@ -536,7 +541,7 @@
layDate.render({
elem: '.layui-laydate-range'
- ,type: 'datetime'
- ,range: true
+ , type: 'datetime'
+ , range: true
});
});
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index e767615..1770a64 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -246,7 +246,7 @@
{field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true}
,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true}
,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false}
- ,{field: 'standby1', align: 'center',title: '渚涘簲鍟嗙紪鐮�', hide: false}
+ ,{field: 'suppCode', align: 'center',title: '渚涘簲鍟嗙紪鐮�', hide: false}
,{field: 'threeCode', align: 'center',title: 'BS Code', hide: false}
,{field: 'tag$', align: 'center',title: '闆朵欢绫诲瀷', hide: false}
,{field: 'batch', align: 'center',title: '鎵瑰彿', hide: true}
@@ -254,7 +254,7 @@
,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜', hide: false}
,{field: 'length', align: 'center',title: '閲嶉噺', hide: false}
,{field: 'volume', align: 'center',title: '灏哄', hide: false}
- ,{field: 'modiTime$', align: 'center',title: '鏇存柊鏃堕棿', hide: false}
+ ,{field: 'modiTime', align: 'center',title: '鏇存柊鏃堕棿', hide: false}
,{field: 'supp', align: 'center',title: '渚涘簲鍟�', hide: true}
,{field: 'specs', align: 'center',title: '瑙勬牸', hide: true}
,{field: 'model', align: 'center',title: '浠g爜', hide: true}
diff --git a/src/main/webapp/static/js/locCache/locCache.js b/src/main/webapp/static/js/locCache/locCache.js
index b44b445..b836a62 100644
--- a/src/main/webapp/static/js/locCache/locCache.js
+++ b/src/main/webapp/static/js/locCache/locCache.js
@@ -23,13 +23,11 @@
cols: [[{type: 'checkbox'}, {field: 'locNo', align: 'center', title: '搴撲綅鍙�', width: 120}
, {field: 'barcode', align: 'center', title: '鎵樼洏鐮�'}
, {field: 'areaName', align: 'center', title: '搴撳尯鍚嶇О'}
- // , {field: 'whsType$', align: 'center', title: '搴撲綅绫诲瀷'}
- , {field: 'locSts', align: 'center', title: '搴撲綅鐘舵��'}
+ , {field: 'locSts$', align: 'center', title: '搴撲綅鐘舵��'}
, {field: 'row1', align: 'center', title: '鎺�'}
, {field: 'bay1', align: 'center', title: '鍒�'}
, {field: 'lev1', align: 'center', title: '灞�'}
- // , {field: 'locType', align: 'center', title: '搴撲綅绫诲瀷'}
- , {field: 'sort', align: 'center', title: '浼樺厛绾�'}
+ , {field: 'sort', align: 'center', title: '浼樺厛绾�', sort: true}
, {field: 'modiUser$', align: 'center', title: '淇敼浜哄憳'}
, {field: 'modiTime$', align: 'center', title: '淇敼鏃堕棿'}
, {field: 'appeUser$', align: 'center', title: '鍒涘缓鑰�'}
@@ -38,6 +36,8 @@
, {field: 'frozenMemo', align: 'center', title: '鍐荤粨澶囨敞', hide: true}
, {fixed: 'right', title: '鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}]
],
+
+
request: {
pageName: 'curr', pageSize: 'limit'
},
@@ -171,6 +171,49 @@
})
});
+ // 淇敼浼樺厛绾�
+ form.on('submit(updateProi)', function (data) {
+ var checkStatus = table.checkStatus('locCache').data;
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨闇�瑕佷慨鏀圭殑鏁版嵁淇℃伅', {icon: 2});
+ return false;
+ }
+ var sortVal = data.field.identifying;
+ var loadIndex = layer.load(2);
+ var promises = checkStatus.map(function (item) {
+ return new Promise(function (resolve, reject) {
+ $.ajax({
+ url: baseUrl + "/locCache/update/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ id: item.id,
+ locNo: item.locNo,
+ sort: sortVal
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200) resolve(res);
+ else reject(res);
+ },
+ error: function (err) {
+ reject(err);
+ }
+ });
+ });
+ });
+
+ Promise.all(promises).then(function () {
+ layer.close(loadIndex);
+ layer.closeAll();
+ layer.msg("淇敼鎴愬姛");
+ tableReload(false);
+ }).catch(function (err) {
+ layer.close(loadIndex);
+ layer.msg("淇敼澶辫触: " + (err.msg || "鏈煡閿欒"));
+ });
+ return false;
+ });
+
function batchModifies() {
layer.open({
type: 1,
diff --git a/src/main/webapp/static/js/report/workIn.js b/src/main/webapp/static/js/report/workIn.js
index ec329f9..c774179 100644
--- a/src/main/webapp/static/js/report/workIn.js
+++ b/src/main/webapp/static/js/report/workIn.js
@@ -1,8 +1,8 @@
var pageCurr;
function getCol() {
var cols = [
- {field: 'ioTime$', align: 'center', title: '鍏ュ簱鏃ユ湡', width: 200}
- ,{field: 'loc_no', align: 'center',title: '搴撲綅鍙�'}
+ {field: 'ioTime', align: 'center', title: '鍏ュ簱鏃ユ湡', width: 200}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
];
cols.push.apply(cols, detlCols);
return cols;
diff --git a/src/main/webapp/views/locCache/locCache.html b/src/main/webapp/views/locCache/locCache.html
index ec258aa..5d019ad 100644
--- a/src/main/webapp/views/locCache/locCache.html
+++ b/src/main/webapp/views/locCache/locCache.html
@@ -30,6 +30,15 @@
</div>
<div class="layui-inline">
<div class="layui-input-inline">
+ <select name="area_name">
+ <option value="">搴撳尯鍚嶇О</option>
+ <option value="鍏ュ簱鍖�">鍏ュ簱鍖�</option>
+ <option value="闆嗚揣鍖�">闆嗚揣鍖�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
<input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�"
autocomplete="off">
</div>
@@ -63,57 +72,14 @@
<div class="layui-form layui-form-pane">
<div class="layui-form-item">
<div class="layui-inline">
- <label class="layui-form-label"><span class="not-null">*</span>搴撳尯鍚嶇О锛�</label>
- <div class="layui-input-inline cool-auto-complete">
- <input id="identifying" name="identifying" class="layui-input" type="text" style="display: none">
- <input id="identifying$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)"
- type="text" onfocus=this.blur()>
- <div class="cool-auto-complete-window">
- <input class="cool-auto-complete-window-input" data-key="basAreasQueryBywhsType"
- onkeyup="autoLoad(this.getAttribute('data-key'))">
- <select class="cool-auto-complete-window-select" data-key="basAreasQueryBywhsTypeSelect"
- onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
- </select>
- </div>
+ <label class="layui-form-label"><span class="not-null">*</span>浼樺厛绾э細</label>
+ <div class="layui-input-inline">
+ <input id="identifying" name="identifying" class="layui-input" type="text">
</div>
</div>
</div>
- <!-- 搴撲綅绫诲瀷 -->
- <div class="layui-form-item">
- <label class="layui-form-label">楂樹綆绫诲瀷</label>
- <div class="layui-input-inline">
- <select name="locType1">
- <option style="display: none"></option>
- <option value="0">鏈煡</option>
- <option value="1">浣庡簱浣�</option>
- <option value="2">楂樺簱浣�</option>
- </select>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">瀹界獎绫诲瀷</label>
- <div class="layui-input-inline">
- <select name="locType2">
- <option style="display: none"></option>
- <option value="0">鏈煡</option>
- <option value="1">绐勫簱浣�</option>
- <option value="2">瀹藉簱浣�</option>
- </select>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">杞婚噸绫诲瀷</label>
- <div class="layui-input-inline">
- <select name="locType3">
- <option style="display: none"></option>
- <option value="0">鏈煡</option>
- <option value="1">杞诲簱浣�</option>
- <option value="2">閲嶅簱浣�</option>
- </select>
- </div>
- </div>
<div style="text-align: center; margin-top: 20px">
- <button class="layui-btn layui-btn-normal" id="initDo" lay-submit lay-filter="initDo">
+ <button class="layui-btn layui-btn-normal" id="updateProi" lay-submit lay-filter="updateProi">
纭畾
</button>
</div>
diff --git a/src/main/webapp/views/report/viewWorkIn.html b/src/main/webapp/views/report/viewWorkIn.html
index b0caa2e..cf28bc6 100644
--- a/src/main/webapp/views/report/viewWorkIn.html
+++ b/src/main/webapp/views/report/viewWorkIn.html
@@ -21,7 +21,7 @@
<div id="search-box" class="layui-form layui-card-header">
<div class="layui-inline">
<div class="layui-input-inline">
- <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ <input class="layui-input" type="text" name="locNo" placeholder="搴撲綅鍙�" autocomplete="off">
</div>
</div>
<div class="layui-inline">
--
Gitblit v1.9.1