From 788b9bfcf3d4935a9e171488fb4e55482480472c Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 01 八月 2024 13:27:29 +0800
Subject: [PATCH] #
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetlLog.java | 9 ++
zy-asrs-admin/src/views/in/waitPakin/edit.vue | 5
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java | 24 +++++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java | 5 +
zy-asrs-admin/src/components/taskLog/showTaskDetlLog/index.vue | 2
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlLog.java | 9 ++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlFieldLog.java | 5 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java | 3
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java | 55 ++++++++++++-
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderLog.java | 6 +
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java | 96 ++++++++++++++++++++++++
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskLog.java | 4
12 files changed, 207 insertions(+), 16 deletions(-)
diff --git a/zy-asrs-admin/src/components/taskLog/showTaskDetlLog/index.vue b/zy-asrs-admin/src/components/taskLog/showTaskDetlLog/index.vue
index f16dab9..2cfde6c 100644
--- a/zy-asrs-admin/src/components/taskLog/showTaskDetlLog/index.vue
+++ b/zy-asrs-admin/src/components/taskLog/showTaskDetlLog/index.vue
@@ -186,7 +186,7 @@
<script>
export default {
- name: 'showOrderDetlLogComponent'
+ name: 'showTaskDetlLogComponent'
}
</script>
diff --git a/zy-asrs-admin/src/views/in/waitPakin/edit.vue b/zy-asrs-admin/src/views/in/waitPakin/edit.vue
index 9e1f324..3624dc9 100644
--- a/zy-asrs-admin/src/views/in/waitPakin/edit.vue
+++ b/zy-asrs-admin/src/views/in/waitPakin/edit.vue
@@ -98,10 +98,11 @@
let result = await orderDetlQuery(id);
let tmp = []
result.data.forEach((item) => {
+ let count = item.anfme - item.qty - item.workQty;
tmp.push({
value: item.id,
- label: item.mat$.matnr + '-' + item.anfme,
- anfme: item.anfme
+ label: item.mat$.matnr + '-' + count,
+ anfme: count
})
})
orderDetlQueryList.value = tmp;
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
index 9126c72..de41adb 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaitPakinController.java
@@ -5,23 +5,23 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
+import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
-import com.zy.asrs.wms.asrs.entity.WaitPakin;
-import com.zy.asrs.wms.asrs.service.WaitPakinService;
import com.zy.asrs.wms.system.controller.BaseController;
import com.zy.asrs.wms.utils.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@RestController
@RequestMapping("/api")
@@ -29,6 +29,14 @@
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private LocService locService;
+ @Autowired
+ private TaskService taskService;
@PreAuthorize("hasAuthority('asrs:waitPakin:list')")
@PostMapping("/waitPakin/page")
@@ -53,10 +61,45 @@
@PreAuthorize("hasAuthority('asrs:waitPakin:save')")
@OperationLog("娣诲姞缁勬墭閫氱煡妗�")
@PostMapping("/waitPakin/save")
+ @Transactional
public R save(@RequestBody WaitPakin waitPakin) {
+ if (waitPakin.getAnfme() <= 0) {
+ return R.error("缁勬墭鏁伴噺閿欒");
+ }
+
+ List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, waitPakin.getBarcode()));
+ if (!locList.isEmpty()) {
+ return R.error("鎵樼洏宸插湪搴�");
+ }
+
+ List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, waitPakin.getBarcode()));
+ if (!taskList.isEmpty()) {
+ return R.error("鎵樼洏姝e湪鍏ュ簱涓�");
+ }
+
if (!waitPakinService.save(waitPakin)) {
return R.error("娣诲姞澶辫触");
}
+
+ OrderDetl orderDetl = orderDetlService.getById(waitPakin.getDetlId());
+ if (orderDetl == null) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+ }
+
+ //鑾峰彇璁㈠崟
+ Order order = orderService.getById(orderDetl.getOrderId());
+ if(order == null){
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ //鏇存柊璁㈠崟鐘舵��
+ if (order.getOrderSettle().equals(OrderSettleType.INIT.val())) {
+ order.setOrderSettle(OrderSettleType.WAIT.val());
+ order.setUpdateTime(new Date());
+ if (!orderService.updateById(order)) {
+ throw new CoolException("璁㈠崟鏁版嵁鏇存柊澶辫触");
+ }
+ }
return R.ok("娣诲姞鎴愬姛");
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlFieldLog.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlFieldLog.java
index d7d275c..0889e97 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlFieldLog.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlFieldLog.java
@@ -4,6 +4,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
+import com.zy.asrs.common.utils.Synchro;
import com.zy.asrs.wms.asrs.service.MatFieldService;
import com.zy.asrs.wms.asrs.service.OrderDetlLogService;
import com.zy.asrs.wms.system.entity.Host;
@@ -230,5 +231,9 @@
return null;
}
+ public void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
+
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlLog.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlLog.java
index f2c2426..fa530ce 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlLog.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderDetlLog.java
@@ -189,6 +189,15 @@
return null;
}
+ public Mat getMat$(){
+ MatService service = SpringUtils.getBean(MatService.class);
+ Mat mat = service.getById(this.matId);
+ if (!Cools.isEmpty(mat)){
+ return mat;
+ }
+ return null;
+ }
+
public String getHostId$(){
HostService service = SpringUtils.getBean(HostService.class);
Host host = service.getById(this.hostId);
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderLog.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderLog.java
index 309078c..7670e03 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderLog.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/OrderLog.java
@@ -4,6 +4,7 @@
import java.text.SimpleDateFormat;
import java.util.Date;
+import com.zy.asrs.common.utils.Synchro;
import com.zy.asrs.wms.asrs.service.OrderSettleService;
import com.zy.asrs.wms.asrs.service.OrderTypeService;
import com.zy.asrs.wms.system.entity.Host;
@@ -37,7 +38,7 @@
* ID
*/
@ApiModelProperty(value= "ID")
- @TableId(value = "id", type = IdType.AUTO)
+ @TableId(value = "id", type = IdType.INPUT)
private Long id;
/**
@@ -230,5 +231,8 @@
return null;
}
+ public void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetlLog.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetlLog.java
index 7088727..71e1d66 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetlLog.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskDetlLog.java
@@ -237,6 +237,15 @@
return null;
}
+ public Mat getMat$(){
+ MatService service = SpringUtils.getBean(MatService.class);
+ Mat mat = service.getById(this.matId);
+ if (!Cools.isEmpty(mat)){
+ return mat;
+ }
+ return null;
+ }
+
public String getHostId$(){
HostService service = SpringUtils.getBean(HostService.class);
Host host = service.getById(this.hostId);
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskLog.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskLog.java
index fc5c86e..0d7ed7c 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskLog.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/TaskLog.java
@@ -192,7 +192,7 @@
TaskStsService service = SpringUtils.getBean(TaskStsService.class);
TaskSts taskSts = service.getById(this.taskSts);
if (!Cools.isEmpty(taskSts)){
- return String.valueOf(taskSts.getId());
+ return String.valueOf(taskSts.getTitle());
}
return null;
}
@@ -201,7 +201,7 @@
TaskTypeService service = SpringUtils.getBean(TaskTypeService.class);
TaskType taskType = service.getById(this.taskType);
if (!Cools.isEmpty(taskType)){
- return String.valueOf(taskType.getId());
+ return String.valueOf(taskType.getTitle());
}
return null;
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
index 6c7c7ce..5d793ba 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
@@ -4,6 +4,7 @@
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam;
import com.zy.asrs.wms.asrs.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +30,8 @@
private OrderDetlFieldService orderDetlFieldService;
@Autowired
private TaskDetlFieldService taskDetlFieldService;
+ @Autowired
+ private OrderService orderService;
@Autowired
private OrderDetlService orderDetlService;
@Autowired
@@ -135,17 +138,32 @@
throw new CoolException("缁勬墭閫氱煡妗f洿鏂板け璐�");
}
- //鏇存柊璁㈠崟鏁版嵁
+ //鏇存柊璁㈠崟鏄庣粏鏁版嵁
OrderDetl orderDetl = orderDetlService.getById(taskDetl.getDetlId());
if(orderDetl == null){
- throw new CoolException("璁㈠崟鏁版嵁寮傚父");
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
}
orderDetl.setWorkQty(orderDetl.getWorkQty() + taskDetl.getAnfme());
orderDetl.setUpdateTime(new Date());
boolean orderDetlUpdate = orderDetlService.updateById(orderDetl);
if(!orderDetlUpdate){
- throw new CoolException("璁㈠崟鏇存柊澶辫触");
+ throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
+ }
+
+ //鑾峰彇璁㈠崟
+ Order order = orderService.getById(taskDetl.getOrderId());
+ if(order == null){
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ //鏇存柊璁㈠崟鐘舵��
+ if (order.getOrderSettle().equals(OrderSettleType.WAIT.val())) {
+ order.setOrderSettle(OrderSettleType.WORKING.val());
+ order.setUpdateTime(new Date());
+ if (!orderService.updateById(order)) {
+ throw new CoolException("璁㈠崟鏁版嵁鏇存柊澶辫触");
+ }
}
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
new file mode 100644
index 0000000..8f40c34
--- /dev/null
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
@@ -0,0 +1,96 @@
+package com.zy.asrs.wms.asrs.timer;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.plugins.IgnoreStrategy;
+import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.*;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
+import com.zy.asrs.wms.asrs.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.List;
+
+@Component
+public class OrderTimer {
+
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+ @Autowired
+ private OrderDetlFieldService orderDetlFieldService;
+ @Autowired
+ private OrderLogService orderLogService;
+ @Autowired
+ private OrderDetlLogService orderDetlLogService;
+ @Autowired
+ private OrderDetlFieldLogService orderDetlFieldLogService;
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ @Transactional
+ public void orderToHistory() {
+ InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
+ try {
+ List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderSettle, OrderSettleType.COMPLETE.val()));
+ if (list.isEmpty()) {
+ return;
+ }
+
+ for (Order order : list) {
+ //杞巻鍙叉。
+ OrderLog orderLog = new OrderLog();
+ orderLog.sync(order);
+ if (!orderLogService.save(orderLog)) {
+ throw new CoolException("璁㈠崟杞巻鍙叉。澶辫触");
+ }
+
+ //璁㈠崟鏄庣粏杞巻鍙叉。
+ List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
+ for (OrderDetl orderDetl : orderDetls) {
+ OrderDetlLog orderDetlLog = new OrderDetlLog();
+ orderDetlLog.sync(orderDetl);
+ if(!orderDetlLogService.save(orderDetlLog)) {
+ throw new CoolException("璁㈠崟鏄庣粏杞巻鍙叉。澶辫触");
+ }
+
+ //鏄庣粏鎵╁睍瀛楁杞巻鍙叉。
+ List<OrderDetlField> orderDetlFields = orderDetlFieldService.list(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, orderDetl.getId()));
+ for (OrderDetlField orderDetlField : orderDetlFields) {
+ OrderDetlFieldLog orderDetlFieldLog = new OrderDetlFieldLog();
+ orderDetlFieldLog.sync(orderDetlField);
+ if(!orderDetlFieldLogService.save(orderDetlFieldLog)) {
+ throw new CoolException("鏄庣粏鎵╁睍瀛楁杞巻鍙叉。澶辫触");
+ }
+
+ //鍒犻櫎鏄庣粏鎵╁睍瀛楁
+ if (!orderDetlFieldService.removeById(orderDetlField.getId())) {
+ throw new CoolException("鍒犻櫎鏄庣粏鎵╁睍瀛楁澶辫触");
+ }
+ }
+
+ //鍒犻櫎璁㈠崟鏄庣粏
+ if (!orderDetlService.removeById(orderDetl.getId())) {
+ throw new CoolException("鍒犻櫎璁㈠崟鏄庣粏澶辫触");
+ }
+ }
+
+ //鍒犻櫎璁㈠崟
+ if (!orderService.removeById(order.getId())) {
+ throw new CoolException("鍒犻櫎璁㈠崟澶辫触");
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }finally {
+ InterceptorIgnoreHelper.clearIgnoreStrategy();
+ }
+ }
+
+}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
index 86a640f..2ede7d5 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskLogTimer.java
@@ -11,6 +11,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.Date;
import java.util.List;
@@ -122,7 +123,7 @@
order.setOrderSettle(OrderSettleType.COMPLETE.val());
order.setUpdateTime(new Date());
- if (!orderService.save(order)) {
+ if (!orderService.updateById(order)) {
throw new CoolException("璁㈠崟鏇存柊澶辫触");
}
}
@@ -133,6 +134,7 @@
} catch (Exception e) {
e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}finally {
InterceptorIgnoreHelper.clearIgnoreStrategy();
}
@@ -146,6 +148,7 @@
} catch (Exception e) {
e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}finally {
InterceptorIgnoreHelper.clearIgnoreStrategy();
}
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
index 4c95b69..90bbd5a 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskTimer.java
@@ -11,6 +11,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.Date;
import java.util.List;
@@ -114,6 +115,7 @@
}
} catch (Exception e) {
e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}finally {
InterceptorIgnoreHelper.clearIgnoreStrategy();
}
@@ -127,6 +129,7 @@
} catch (Exception e) {
e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}finally {
InterceptorIgnoreHelper.clearIgnoreStrategy();
}
--
Gitblit v1.9.1