From 9b6a50bf1288d2f7f06a67bec0c902d1256e44fe Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 05 七月 2025 11:15:54 +0800
Subject: [PATCH] 1.订单出库改物料多的先出 2.新增订单明细打印功能

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java |  136 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 119 insertions(+), 17 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
index c6e0a66..7f24d05 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -3,11 +3,14 @@
 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.Query;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.common.domain.dto.DetlDto;
 import com.zy.asrs.common.domain.dto.WrkTraceVo;
 import com.zy.asrs.common.domain.param.OrderDomainParam;
 import com.zy.asrs.common.wms.entity.*;
+import com.zy.asrs.common.wms.mapper.OrderDetlMapper;
 import com.zy.asrs.common.wms.service.*;
 import com.zy.asrs.framework.annotations.ManagerAuth;
 import com.zy.asrs.framework.common.Cools;
@@ -17,10 +20,12 @@
 import com.zy.asrs.framework.common.DateUtils;
 import com.zy.asrs.common.web.BaseController;
 import com.zy.asrs.framework.exception.CoolException;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.UnsupportedEncodingException;
@@ -49,15 +54,22 @@
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private DocTypeService docTypeService;
+    @Autowired
+    private LocInPrintMatService locInPrintMatService;
+    @Autowired
+    private MatService matService;
 
     @RequestMapping(value = "/order/list/orderNo")
     public R orderListorderNo(@RequestParam String orderNo) {
         //鏁伴噺淇敼鎴愪负瀹屾垚鏁伴噺
-        List<OrderDetl> orderDetl1=orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo,orderNo));
+        List<OrderDetl> orderDetl1 = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo, orderNo));
         List<OrderDetl> orderDetls= new ArrayList<OrderDetl>();
         for (OrderDetl o: orderDetl1) {
             BigDecimal c1 = new BigDecimal(o.getEnableQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
             o.setAnfme(c1.doubleValue());
+            if (o.getAnfme().equals(0.0)){
+                continue;
+            }
             orderDetls.add(o);
         }
         return R.ok(orderDetls);
@@ -69,10 +81,22 @@
         return R.ok(orderService.selectAllorderNo(getHostId()));
     }
 
+    @RequestMapping(value = "/order/comb/list/all")
+    @ManagerAuth
+    public R orderListComb() {
+        return R.ok(orderService.selectAllCombOrderNo(getHostId()));
+    }
+
+//    @RequestMapping(value = "/outOrder/list/all")
+//    @ManagerAuth
+//    public R orderOutList() {
+//        return R.ok(orderService.selectAllOutOrderNo(getHostId()));
+//    }
+
     @RequestMapping(value = "/outOrder/list/all")
     @ManagerAuth
-    public R orderOutList() {
-        return R.ok(orderService.selectAllOutOrderNo(getHostId()));
+    public R orderOutListOrder(@RequestBody String orderNo) {
+        return R.ok(orderService.selectAllOutOrderNo(orderNo,getHostId()));
     }
 
     @RequestMapping(value = "/order/{id}/auth")
@@ -88,16 +112,17 @@
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false) String timeRange,
                   @RequestParam Map<String, Object> param) {
-        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Order::getHostId, getHostId());
+        QueryWrapper<Order> wrapper = new QueryWrapper<>();
+        wrapper.eq("host_id", getHostId());
         if (!Cools.isEmpty(condition)) {
-            wrapper.like(Order::getId, condition);
+            wrapper.like("id", condition);
         }
         if (!Cools.isEmpty(timeRange)) {
             String[] range = timeRange.split(RANGE_TIME_LINK);
-            wrapper.ge(Order::getCreateTime, DateUtils.convert(range[0]));
-            wrapper.le(Order::getCreateTime, DateUtils.convert(range[1]));
+            wrapper.ge("create_time", DateUtils.convert(range[0]));
+            wrapper.le("create_time", DateUtils.convert(range[1]));
         }
+        allLike(Order.class, param.keySet(), wrapper, condition);
         return R.ok(orderService.page(new Page<>(curr, limit), wrapper));
     }
 
@@ -105,32 +130,40 @@
     @ManagerAuth
     public R head(@RequestParam(defaultValue = "1")Integer curr,
                   @RequestParam(defaultValue = "10")Integer limit,
+                  @RequestParam(required = false) String condition,
                   @RequestParam(required = false)String orderByField,
                   @RequestParam(required = false)String orderByType,
                   @RequestParam Map<String, Object> param) throws UnsupportedEncodingException {
-        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+        if(!Cools.isEmpty(condition)){
+            condition = condition.trim();
+        }
+        QueryWrapper<Order> wrapper = new QueryWrapper<>();
         excludeTrash(param);
-        wrapper.eq(Order::getStatus, 1);
-        wrapper.eq(Order::getHostId, getHostId());
+        wrapper.eq("status", 1);
+        wrapper.eq("host_id", getHostId());
         if (!Cools.isEmpty(param.get("order_no"))) {
-            wrapper.eq(Order::getOrderNo, param.get("order_no"));
+            wrapper.eq("order_no", param.get("order_no"));
         }
         if (!Cools.isEmpty(param.get("create_time"))) {
             String[] range = param.get("create_time").toString().split(RANGE_TIME_LINK);
-            wrapper.ge(Order::getCreateTime, DateUtils.convert(range[0]));
-            wrapper.le(Order::getCreateTime, DateUtils.convert(range[1]));
+            wrapper.ge("create_time", DateUtils.convert(range[0]));
+            wrapper.le("create_time", DateUtils.convert(range[1]));
         }
         if (!Cools.isEmpty(param.get("doc_type"))) {
-            wrapper.eq(Order::getDocType, param.get("doc_type"));
+            wrapper.eq("doc_type", param.get("doc_type"));
         }
         if (!Cools.isEmpty(param.get("docName"))) {
             String docName = URLDecoder.decode(param.get("docName").toString(), "UTF-8");
             DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocName, docName));
-            wrapper.eq(Order::getDocType, docType.getDocId());
+            wrapper.eq("doc_type", docType.getDocId());
         }
         if (!Cools.isEmpty(param.get("settle"))) {
-            wrapper.eq(Order::getSettle, param.get("settle"));
+            wrapper.eq("settle", param.get("settle"));
         }
+
+        param.remove("order_no");
+        allLike(Order.class, param.keySet(), wrapper, condition);
+        wrapper.orderByDesc("create_time");
         return R.ok(orderService.page(new Page<>(curr, limit), wrapper));
     }
 
@@ -167,6 +200,30 @@
         }
         if (!orderDetlService.remove(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId))) {
             throw new CoolException("鍒犻櫎鍗曟嵁鏄庣粏澶辫触");
+        }
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/order/dy")
+    @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
+    @Transactional
+    public R dy(@RequestParam Long orderId){
+        List<OrderDetl> list = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId));
+        for (OrderDetl orderDetl : list) {
+            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, orderDetl.getMatnr()));
+            LocInPrintMat locInPrintMat = new LocInPrintMat();
+            locInPrintMat.setMatnr(orderDetl.getMatnr());
+            locInPrintMat.setMaktx(orderDetl.getMaktx());
+            locInPrintMat.setStatus(1);
+            locInPrintMat.setOrderNo(orderDetl.getOrderNo());
+            locInPrintMat.setBatch(orderDetl.getBatch());
+            locInPrintMat.setCreateBy(getUserId());
+            locInPrintMat.setCreateTime(new Date());
+            locInPrintMat.setUpdateTime(new Date());
+            if(!Cools.isEmpty(mat)){
+                locInPrintMat.setDecrees(mat.getDecrees());
+            }
+            locInPrintMatService.save(locInPrintMat);
         }
         return R.ok();
     }
@@ -443,4 +500,49 @@
         return R.ok("璁㈠崟淇敼鎴愬姛");
     }
 
+    @RequestMapping(value = "/order/export/auth")
+    @ManagerAuth(memo = "璁㈠崟鏄庣粏瀵煎嚭")
+    public synchronized R export(@RequestBody JSONObject param){
+        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+        QueryWrapper<OrderDetl> wrapper = new QueryWrapper<>();
+        JSONArray orderNo = param.getJSONArray("orderNo");
+        List<String> orderNoList = new ArrayList<>();
+        for (int i = 0; i < orderNo.size(); i++) {
+            Object o = orderNo.get(i);
+            orderNoList.add(o.toString());
+        }
+        List<OrderDetl> list = orderDetlService.list(new  QueryWrapper<OrderDetl>().in("order_no", orderNoList));
+        return R.ok(exportSupport(list, fields));
+    }
+
+    private <T> void convert(Map<String, Object> map, QueryWrapper<T> wrapper){
+        for (Map.Entry<String, Object> entry : map.entrySet()){
+            if(Cools.eq(entry.getKey(),"curr")
+                    || Cools.eq(entry.getKey(),"limit")
+                    || Cools.eq(entry.getKey(),"unreason")
+                    || Cools.eq(entry.getKey(),"orderByField")
+                    || Cools.eq(entry.getKey(),"orderByType")
+                    || Cools.eq(entry.getKey(),"row")
+                    || Cools.eq(entry.getKey(),"condition")){
+                continue;
+            }
+
+            if(Cools.isEmpty(entry.getValue())){
+                continue;
+            }
+
+            String val = String.valueOf(entry.getValue());
+            if (val.contains(RANGE_TIME_LINK)){
+                String[] dates = val.split(RANGE_TIME_LINK);
+                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+            } else {
+                if (entry.getKey().equals("locNo")) {
+                    wrapper.eq("loc_no", String.valueOf(entry.getValue()));
+                } else {
+                    wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.9.1