From 469d41fe09ceec3dc5259d01a4060aac1448e09f Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 03 九月 2025 09:59:34 +0800
Subject: [PATCH] 完善订单组托可用数据显示功能
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java | 143 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 insertions(+), 2 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
index 4faa9f0..9b88462 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
@@ -3,10 +3,11 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.zy.asrs.common.wms.entity.OrderDetl;
-import com.zy.asrs.common.wms.service.OrderDetlService;
+import com.zy.asrs.common.wms.entity.*;
+import com.zy.asrs.common.wms.service.*;
import com.zy.asrs.framework.annotations.ManagerAuth;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
@@ -23,6 +24,20 @@
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private WaitPakinService waitPakinService;
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private WorkService workService;
+ @Autowired
+ private LocDetlService locDetlService;
@RequestMapping(value = "/orderDetl/forOrderNo/auth")
@ManagerAuth
@@ -59,6 +74,87 @@
return R.ok(orderDetlService.page(new Page<>(curr, limit), wrapper));
}
+ @RequestMapping(value = "/orderDetl/forOrderNo/auth/v1")
+ @ManagerAuth
+ public R forOrderNoV1(@RequestParam String orderNo,@RequestParam String locNo,@RequestParam String batch,@RequestParam String matnr) {
+ LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>()
+ .eq(LocDetl::getLocNo, locNo)
+ .eq(LocDetl::getHostId, getHostId())
+ .eq(LocDetl::getMatnr, matnr);
+ List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper);
+ if (Cools.isEmpty(detls)){
+ return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+ }
+ if (detls.size()>1){
+ return R.error("搴撳瓨鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+ }
+ List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+ .eq(OrderDetl::getMatnr, matnr)
+ .eq(OrderDetl::getHostId, getHostId())
+ .like(OrderDetl::getOrderNo, orderNo)
+ );
+ if (Cools.isEmpty(orderDetlList)){
+ return R.error("鏈煡璇㈠埌姝よ鍗曟鐗╂枡鏁版嵁");
+ }
+ if (orderDetlList.size()>1){
+ return R.error("姝よ鍗曟鐗╂枡鏁版嵁鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+ }
+ ArrayList<OrderDetl> orderDetls = new ArrayList<>();
+ for(OrderDetl orderDetl:orderDetlList){
+ double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+ if (count <= 0D) {
+ continue;
+ }
+ orderDetl.setAnfme(count);
+ orderDetls.add(orderDetl);
+ }
+ return R.ok(orderDetls);
+ }
+
+ @RequestMapping(value = "/orderDetl/forOrderNo/mergePakin/v1")
+ @ManagerAuth
+ public R forOrderNoMergePakinV1(@RequestParam String orderNo) {
+ List<DocType> docTypes = docTypeService.list(new LambdaQueryWrapper<DocType>().eq(DocType::getPakin, 1));
+ ArrayList<Long> docTypeIds = new ArrayList<>();
+ for (DocType docType : docTypes) {
+ docTypeIds.add(docType.getDocId());
+ }
+
+ if (docTypeIds.isEmpty()) {
+ return R.error("鍗曟嵁绫诲瀷涓嶅瓨鍦�");
+ }
+
+ List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getDocType, docTypeIds).in(Order::getSettle, 0, 1, 2));
+ if (orders.isEmpty()) {
+ return R.error("鏈煡璇㈠埌璁㈠崟");
+ }
+
+ ArrayList<Long> orderIds = new ArrayList<>();
+ for (Order order : orders) {
+ orderIds.add(order.getId());
+ }
+
+ List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+ .eq(OrderDetl::getHostId, getHostId())
+ .in(OrderDetl::getOrderId, orderIds)
+ .like(OrderDetl::getOrderNo, orderNo)
+ );
+ if (Cools.isEmpty(orderDetlList)){
+ return R.error("鏈煡璇㈠埌姝よ鍗曟鐗╂枡鏁版嵁");
+ }
+
+ ArrayList<OrderDetl> orderDetls = new ArrayList<>();
+ for(OrderDetl orderDetl:orderDetlList){
+ double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+ if (count <= 0D) {
+ continue;
+ }
+ orderDetl.setAnfme(count);
+ orderDetls.add(orderDetl);
+ }
+ return R.ok(orderDetls);
+ }
+
@RequestMapping(value = "/orderDetl/add/auth")
@ManagerAuth
@@ -67,6 +163,49 @@
orderDetlService.save(orderDetl);
return R.ok();
}
+ @RequestMapping(value = "/order/cancel/wrk/auth")
+ @ManagerAuth
+ public R cancelWrk(String orderId) {
+ Order order = orderService.getById(orderId);
+ DocType docType = docTypeService.getById(order.getDocType());
+ if (null != docType && docType.getPakin() == 1) {
+ List<WaitPakin> waitPakinList = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getOrderNo, order.getOrderNo()));
+ if (!Cools.isEmpty(waitPakinList)){
+ for (WaitPakin entity : waitPakinList){
+ List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("barcode", entity.getZpallet()));
+ if(!Cools.isEmpty(wrkMasts) || wrkMasts.size() > 0){
+ continue;
+ }
+ waitPakinService.removeById(entity.getId());
+ //璁㈠崟鍏宠仈锛屼慨鏀硅鍗曚綔涓氭暟閲�
+ if (!Cools.isEmpty(entity.getOrderNo())) {
+ if (!orderDetlService.decrease(entity.getOrderNo(),entity.getHostId(), entity.getMatnr(), entity.getBatch(), entity.getAnfme())) {
+ return R.error("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+ }
+ }
+ }
+ }
+ } else if (null != docType && docType.getPakout() == 1) {
+ List<WrkDetl> wrkDetlList = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getOrderNo, order.getOrderNo()));
+ if (!Cools.isEmpty(wrkDetlList)){
+ List<Integer> wrkNoList = new ArrayList<>();
+ for (WrkDetl wrkDetl:wrkDetlList){
+ if (!wrkNoList.contains(wrkDetl.getWrkNo())){
+ wrkNoList.add(wrkDetl.getWrkNo());
+ }
+ }
+ for (Integer wrkNo:wrkNoList){
+ List<WrkMast> wrkMasts = wrkMastService.list(new QueryWrapper<WrkMast>().eq("wrk_no", wrkNo));
+ if (wrkMasts.size()==1){
+ if (wrkMasts.get(0).getWrkSts()==101){
+ workService.cancelWrkMast(wrkNo.toString(), getUserId(), getHostId());
+ }
+ }
+ }
+ }
+ }
+ return R.ok();
+ }
@RequestMapping(value = "/orderDetl/update/auth")
@ManagerAuth
--
Gitblit v1.9.1