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-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java |    5 
 zy-asrs-wms/src/main/webapp/views/order/order.html                                       |    5 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java                |   45 +++++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java           |   16 
 zy-asrs-wms/src/main/webapp/static/js/order/order.js                                     |  109 ++++++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java          |    2 
 zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml                           |   11 +
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java            |    2 
 zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js                           |    6 
 zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/ReportStockDto.java           |    3 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java                  |  296 ++++++++++++++++++++++----------
 11 files changed, 393 insertions(+), 107 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/ReportStockDto.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/ReportStockDto.java
index aaa6479..6f9ea99 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/ReportStockDto.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/ReportStockDto.java
@@ -5,6 +5,9 @@
 @Data
 public class ReportStockDto {
 
+    //搴撲綅鍙�
+    private String locNo;
+
     //鐗╂枡鍙�
     private String matnr;
 
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
index cf83fa7..726f4a9 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/mapper/LocDetlMapper.java
@@ -41,4 +41,6 @@
 
     List<LocDetl> getStockStatisExcel();
 
+    List<ReportStockDto> getStock(List<String> matnr);
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
index 828df6b..932c1b1 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/LocDetlService.java
@@ -37,4 +37,6 @@
 
     List<LocDetl> getStockStatisExcel();
 
+    List<ReportStockDto> getStock(List<String> matnr);
+
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
index 9826b95..de92afa 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/LocDetlServiceImpl.java
@@ -75,4 +75,9 @@
     public List<LocDetl> getStockStatisExcel() {
         return this.baseMapper.getStockStatisExcel();
     }
+
+    @Override
+    public List<ReportStockDto> getStock(List<String> matnr) {
+        return this.baseMapper.getStock(matnr);
+    }
 }
diff --git a/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml b/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
index b36753b..b783b20 100644
--- a/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
+++ b/zy-asrs-common/src/main/resources/mapper/wms/LocDetlMapper.xml
@@ -160,4 +160,15 @@
         group by a.matnr
     </select>
 
+    <select id="getStock" resultType="com.zy.asrs.common.domain.dto.ReportStockDto">
+        select loc_no as locNo,count(loc_no) as anfme from
+            (select matnr,count(matnr) counts,loc_no
+             from wms_loc_detl where matnr IN
+        <foreach item="item" collection="matnr" open="(" separator="," close=")">
+        #{item, jdbcType=VARCHAR}
+        </foreach> GROUP BY matnr,loc_no) aa
+        GROUP BY aa.loc_no
+        order by anfme desc
+    </select>
+
 </mapper>
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 4dd8f89..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
@@ -500,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()));
+                }
+            }
+        }
+    }
 }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
index 5cdedf2..3e7a0b3 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.common.domain.dto.LocDto;
 import com.zy.asrs.common.domain.dto.OrderDto;
+import com.zy.asrs.common.domain.dto.ReportStockDto;
 import com.zy.asrs.common.domain.dto.TaskDto;
 import com.zy.asrs.common.sys.service.StaDescService;
 import com.zy.asrs.common.web.BaseController;
@@ -53,123 +54,226 @@
 
         Set<String> exist = new HashSet<>();
 
-        //鏍囪搴撲綅
-        HashMap<String,Integer> hm = new HashMap<>();
+        List<String> matnrs = new ArrayList<>();
+        List<LocDto> locDtoss = new ArrayList<>();
 
+        //鑾峰彇鎵�鏈夌殑鐗╂枡鍚嶇О
         for (OrderDetl orderDetl : orderDetls) {
+            LocDto locDto = new LocDto();
+            matnrs.add(orderDetl.getMatnr());
             double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
-            if (issued <= 0.0D) {
+            locDto.setMatnr(orderDetl.getMatnr());
+            locDto.setAnfme(issued);
+            locDto.setMaktx(orderDetl.getMaktx());
+            locDto.setOrderNo(orderDetl.getOrderNo());
+            locDtoss.add(locDto);
+        }
+
+        //瀵圭墿鏂欐暟杩涜鎺掑簭
+        List<ReportStockDto> stock = locDetlService.getStock(matnrs);
+
+        Boolean boo1 = false;
+        for (ReportStockDto reportStockDto : stock) {
+            List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+                    .eq(LocDetl::getLocNo, reportStockDto.getLocNo())
+                    .eq(LocDetl::getHostId, hostId));
+            if (Cools.isEmpty(locDetls)) {
                 continue;
             }
-            if(!Cools.isEmpty(hm)){
-                for(HashMap.Entry<String,Integer> entry:hm.entrySet()){
-                    List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
-                            .eq(LocDetl::getHostId, hostId)
-                            .eq(LocDetl::getLocNo, entry.getKey())
-                            .eq(LocDetl::getMatnr, orderDetl.getMatnr()));
-                    for (LocDetl locDetl : locDetls) {
-                        List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
-                                .eq(LocDetl::getLocNo, locDetl.getLocNo())
-                                .eq(LocDetl::getHostId, hostId));
-                        if (issued > 0) {
-                            LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-                                    issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId);
-                            locDto.setStaNos(staNos);
-                            locDtos.add(locDto);
-                            exist.add(locDetl.getLocNo());
-                            // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                            issued = issued - locDetl.getAnfme();
-                            hm.put(locDetl.getLocNo(), 1);
-                        } else {
-                            break;
-                        }
-                    }
+            for (LocDetl locDetl : locDetls) {
+                if(Cools.isEmpty(locDtoss)){
+                    boo1=true;
+                    break;
                 }
-                if (issued >0){
-                    List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
-                    for (LocDetl locDetl : locDetls) {
-                        //杩囨护鎺夊湪宸茶鏍囪鐨勫簱浣嶅彿
-                        boolean boo=false;
-                        for (HashMap.Entry<String,Integer> entry:hm.entrySet()) {
-                            if(locDetl.getLocNo().equals(entry.getKey())){
-                                boo=true;
-                                break;
-                            }
-                        }
-                        if (boo){
+                for (LocDto locDto1 : locDtoss) {
+                    if (locDto1.getMatnr().equals(locDetl.getMatnr())) {
+                        if (locDto1.getAnfme() <= 0.0D) {
                             continue;
                         }
-                        List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
-                                .eq(LocDetl::getLocNo, locDetl.getLocNo())
-                                .eq(LocDetl::getHostId, hostId));
-                        if (issued > 0) {
-                            LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-                                    issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId);
-                            locDto.setStaNos(staNos);
-                            locDtos.add(locDto);
-                            exist.add(locDetl.getLocNo());
-                            // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                            issued = issued - locDetl.getAnfme();
-                            hm.put(locDetl.getLocNo(), 1);
-                        } else {
-                            break;
-                        }
-                    }
-                }
-            }else{
-                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
-                for (LocDetl locDetl : locDetls) {
-                    List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
-                            .eq(LocDetl::getLocNo, locDetl.getLocNo())
-                            .eq(LocDetl::getHostId, hostId));
-                    if (issued > 0) {
-                        LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
-                                issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+                        LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), locDto1.getOrderNo(),
+                                locDto1.getAnfme() >= locDetl.getAnfme() ? locDetl.getAnfme() : locDto1.getAnfme());
+                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((locDto1.getAnfme() >= locDetl.getAnfme()) && (reportStockDto.getAnfme() == 1)) ? 101 : 103, hostId);
                         locDto.setStaNos(staNos);
                         locDtos.add(locDto);
                         exist.add(locDetl.getLocNo());
                         // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                        issued = issued - locDetl.getAnfme();
-                        hm.put(locDetl.getLocNo(), 1);
-                    } else {
+                        if(locDto1.getAnfme()  - locDetl.getAnfme()==0){
+                            locDtoss.remove(locDto1);
+                        }else{
+                            locDto1.setAnfme(locDto1.getAnfme()  - locDetl.getAnfme());
+                        }
                         break;
                     }
                 }
             }
-
-            if (issued > 0) {
-                List<LocDetl> locDetls1 = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
-                        .eq(LocDetl::getMatnr, orderDetl.getMatnr()).eq(LocDetl::getHostId, hostId));
-                boolean boo = false;
-                if (Cools.isEmpty(locDetls1)) {
-                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
-                    locDto.setLack(Boolean.TRUE);
-                    locDtos.add(locDto);
-                } else {
-                    for (LocDetl locDetl : locDetls1
-                    ) {
-                        String locNo = locDetl.getLocNo().substring(1, 2);
-                        if (Integer.valueOf(locNo) > 4) {
-                            boo = true;
-                            LocDto locDto = new LocDto("鍦ㄥ钩搴�", orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
-                            locDto.setLack(Boolean.TRUE);
-                            locDtos.add(locDto);
-                            break;
-                        }
-                    }
-                    if (!boo) {
-                        LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+            if(boo1){
+                break;
+            }
+        }
+        if (!boo1) {
+            for(LocDto locDto : locDtoss){
+                if (locDto.getAnfme() > 0) {
+                    List<LocDetl> locDetls1 = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+                            .eq(LocDetl::getMatnr, locDto.getMatnr()).eq(LocDetl::getHostId, hostId));
+                    boolean boo = false;
+                    if (Cools.isEmpty(locDetls1)) {
                         locDto.setLack(Boolean.TRUE);
                         locDtos.add(locDto);
+                    } else {
+                        for (LocDetl locDetl : locDetls1
+                        ) {
+                            String locNo = locDetl.getLocNo().substring(1, 2);
+                            if (Integer.valueOf(locNo) > 4) {
+                                boo = true;
+//                                LocDto locDto = new LocDto("鍦ㄥ钩搴�", orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                                locDto.setLack(Boolean.TRUE);
+                                locDto.setLocNo("鍦ㄥ钩搴�");
+                                locDtos.add(locDto);
+                                break;
+                            }
+                        }
+                        if (!boo) {
+//                            LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                            locDto.setLocNo(null);
+                            locDto.setLack(Boolean.TRUE);
+                            locDtos.add(locDto);
+                        }
                     }
                 }
             }
         }
         return R.ok().add(locDtos);
     }
+
+//    @PostMapping("/out/pakout/preview/auth")
+//    @ManagerAuth
+//    public R pakoutPreview(@RequestBody List<Long> ids) {
+//        if (Cools.isEmpty(ids)) {
+//            return R.parse(BaseRes.PARAM);
+//        }
+//        Long hostId = getHostId();
+//        List<OrderDetl> orderDetls = orderDetlService.listByIds(ids);
+//        List<LocDto> locDtos = new ArrayList<>();
+//
+//        Set<String> exist = new HashSet<>();
+//
+//        //鏍囪搴撲綅
+//        HashMap<String,Integer> hm = new HashMap<>();
+//
+//        for (OrderDetl orderDetl : orderDetls) {
+//            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
+//            if (issued <= 0.0D) {
+//                continue;
+//            }
+//            if(!Cools.isEmpty(hm)){
+//                for(HashMap.Entry<String,Integer> entry:hm.entrySet()){
+//                    List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+//                            .eq(LocDetl::getHostId, hostId)
+//                            .eq(LocDetl::getLocNo, entry.getKey())
+//                            .eq(LocDetl::getMatnr, orderDetl.getMatnr()));
+//                    for (LocDetl locDetl : locDetls) {
+//                        List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+//                                .eq(LocDetl::getLocNo, locDetl.getLocNo())
+//                                .eq(LocDetl::getHostId, hostId));
+//                        if (issued > 0) {
+//                            LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+//                                    issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+//                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+//                            locDto.setStaNos(staNos);
+//                            locDtos.add(locDto);
+//                            exist.add(locDetl.getLocNo());
+//                            // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+//                            issued = issued - locDetl.getAnfme();
+//                            hm.put(locDetl.getLocNo(), 1);
+//                        } else {
+//                            break;
+//                        }
+//                    }
+//                }
+//                if (issued >0){
+//                    List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
+//                    for (LocDetl locDetl : locDetls) {
+//                        //杩囨护鎺夊湪宸茶鏍囪鐨勫簱浣嶅彿
+//                        boolean boo=false;
+//                        for (HashMap.Entry<String,Integer> entry:hm.entrySet()) {
+//                            if(locDetl.getLocNo().equals(entry.getKey())){
+//                                boo=true;
+//                                break;
+//                            }
+//                        }
+//                        if (boo){
+//                            continue;
+//                        }
+//                        List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+//                                .eq(LocDetl::getLocNo, locDetl.getLocNo())
+//                                .eq(LocDetl::getHostId, hostId));
+//                        if (issued > 0) {
+//                            LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+//                                    issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+//                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+//                            locDto.setStaNos(staNos);
+//                            locDtos.add(locDto);
+//                            exist.add(locDetl.getLocNo());
+//                            // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+//                            issued = issued - locDetl.getAnfme();
+//                            hm.put(locDetl.getLocNo(), 1);
+//                        } else {
+//                            break;
+//                        }
+//                    }
+//                }
+//            }else{
+//                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId);
+//                for (LocDetl locDetl : locDetls) {
+//                    List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+//                            .eq(LocDetl::getLocNo, locDetl.getLocNo())
+//                            .eq(LocDetl::getHostId, hostId));
+//                    if (issued > 0) {
+//                        LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
+//                                issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+//                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId);
+//                        locDto.setStaNos(staNos);
+//                        locDtos.add(locDto);
+//                        exist.add(locDetl.getLocNo());
+//                        // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+//                        issued = issued - locDetl.getAnfme();
+//                        hm.put(locDetl.getLocNo(), 1);
+//                    } else {
+//                        break;
+//                    }
+//                }
+//            }
+//
+//            if (issued > 0) {
+//                List<LocDetl> locDetls1 = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+//                        .eq(LocDetl::getMatnr, orderDetl.getMatnr()).eq(LocDetl::getHostId, hostId));
+//                boolean boo = false;
+//                if (Cools.isEmpty(locDetls1)) {
+//                    LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+//                    locDto.setLack(Boolean.TRUE);
+//                    locDtos.add(locDto);
+//                } else {
+//                    for (LocDetl locDetl : locDetls1
+//                    ) {
+//                        String locNo = locDetl.getLocNo().substring(1, 2);
+//                        if (Integer.valueOf(locNo) > 4) {
+//                            boo = true;
+//                            LocDto locDto = new LocDto("鍦ㄥ钩搴�", orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+//                            locDto.setLack(Boolean.TRUE);
+//                            locDtos.add(locDto);
+//                            break;
+//                        }
+//                    }
+//                    if (!boo) {
+//                        LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+//                        locDto.setLack(Boolean.TRUE);
+//                        locDtos.add(locDto);
+//                    }
+//                }
+//            }
+//        }
+//        return R.ok().add(locDtos);
+//    }
 
     @PostMapping("/out/pakout/auth")
     @ManagerAuth(memo = "璁㈠崟鍑哄簱")
@@ -212,12 +316,12 @@
                 return R.error(orderDto.getOrderNo() + "璁㈠崟宸插け鏁堬紝璇峰強鏃跺埛鏂伴〉闈�");
             }
             OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), orderDto.getMatnr(), null, getHostId());
-            if(Cools.isEmpty(orderDetl)){
+            if (Cools.isEmpty(orderDetl)) {
                 return R.error("娌℃湁鎵惧埌璁㈠崟鏄庣粏");
             }
             int oerderDetlCount = orderDetlService.count(new LambdaQueryWrapper<OrderDetl>()
-                    .eq(OrderDetl::getOrderId,order.getId()).eq(OrderDetl::getMatnr,orderDto.getMatnr()).eq(OrderDetl::getHostId,getHostId()));
-            if(oerderDetlCount>1){
+                    .eq(OrderDetl::getOrderId, order.getId()).eq(OrderDetl::getMatnr, orderDto.getMatnr()).eq(OrderDetl::getHostId, getHostId()));
+            if (oerderDetlCount > 1) {
                 return R.error("鍚屼竴璁㈠崟涓嶅厑璁告湁鐩稿悓鐗╂枡");
             }
             if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java
index ca3d690..34b7638 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/WrkMastLogController.java
@@ -47,17 +47,17 @@
         if (!Cools.isEmpty(param.get("barcode"))) {
             wrapper.eq("barcode", param.get("barcode"));
         }
-        if (!Cools.isEmpty(param.get("wrkNo"))) {
-            wrapper.eq("wrk_no", param.get("wrkNo"));
+        if (!Cools.isEmpty(param.get("wrk_no"))) {
+            wrapper.eq("wrk_no", param.get("wrk_no"));
         }
-        if (!Cools.isEmpty(param.get("wrkSts"))) {
-            wrapper.eq("wrk_sts", param.get("wrkSts"));
+        if (!Cools.isEmpty(param.get("wrk_sts"))) {
+            wrapper.eq("wrk_sts", param.get("wrk_sts"));
         }
-        if (!Cools.isEmpty(param.get("ioType"))) {
-            wrapper.eq("iotype", param.get("ioType"));
+        if (!Cools.isEmpty(param.get("io_type"))) {
+            wrapper.eq("iotype", param.get("io_type"));
         }
-        if (!Cools.isEmpty(param.get("manuType"))) {
-            wrapper.like("manu_type", param.get("manuType"));
+        if (!Cools.isEmpty(param.get("manu_type"))) {
+            wrapper.like("manu_type", param.get("manu_type"));
         }
         allLike(WrkMastLog.class, param.keySet(), wrapper, condition);
         wrapper.orderByDesc("id");
diff --git a/zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js b/zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js
index 73dca48..565e1f9 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/operateLog/operateLog.js
@@ -23,10 +23,10 @@
         cellMinWidth: 50,
         height: 'full-120',
         cols: [[
-            {type: 'checkbox'}
-            ,{field: 'id', align: 'center',title: '缂栧彿'}
-            ,{field: 'action', align: 'center',title: '璁块棶鍦板潃'}
+            // {type: 'checkbox'}
+            {field: 'id', title: 'ID', sort: true,align: 'center', width: 80}
             ,{field: 'userId$', align: 'center',title: '鐢ㄦ埛'}
+            ,{field: 'action', align: 'center',title: '鎿嶄綔鍐呭'}
             ,{field: 'ip', align: 'center',title: '瀹㈡埛绔疘P'}
             ,{field: 'request', align: 'center',title: '璇锋眰鏁版嵁'}
             ,{field: 'response', align: 'center',title: '鍝嶅簲鏁版嵁'}
diff --git a/zy-asrs-wms/src/main/webapp/static/js/order/order.js b/zy-asrs-wms/src/main/webapp/static/js/order/order.js
index ac897ab..cb22c64 100644
--- a/zy-asrs-wms/src/main/webapp/static/js/order/order.js
+++ b/zy-asrs-wms/src/main/webapp/static/js/order/order.js
@@ -49,7 +49,9 @@
         where: where,
         limit: 16,
         limits: [16, 30, 50, 100, 200, 500],
+        toolbar: '#toolbar',
         cols: [[
+            {type: 'checkbox', width: 70},
             {type: 'numbers'},
             {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl',sort:true},
             {field: 'docType$', align: 'center', title: '绫诲瀷',  minWidth: 160, width: 160,sort:true},
@@ -92,6 +94,113 @@
     $("#orderAddBtn").click(function () {
         showEditModel();
     });
+    // Excel瀵煎嚭
+    // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+    table.on('toolbar(order)', function (obj) {
+        var data = table.checkStatus(obj.config.id).data;
+        switch (obj.event) {
+            case 'exportData':
+                layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+                    var titles=[];
+                    var fields=[];
+
+                    titles.push("璁㈠崟缂栧彿");
+                    titles.push("鍝佸彿");
+                    titles.push("鍝佸悕");
+                    titles.push("璁㈠崟鏁伴噺");
+                    titles.push("瀹屾垚鏁伴噺");
+                    titles.push("浣滀笟涓暟閲�");
+                    titles.push("鍒涘缓鏃堕棿");
+
+                    fields.push("orderNo");
+                    fields.push("matnr");
+                    fields.push("maktx");
+                    fields.push("anfme");
+                    fields.push("qty");
+                    fields.push("workQty");
+                    fields.push("createTime$");
+
+
+                    var orderNos = [];
+                    data.forEach(function(elem) {
+                        console.log("elem="+elem.settle);
+                        if(elem.payType >0) {
+                            co = 1;
+                        }
+                        orderNos.push(elem.orderNo);
+                    });
+                    var param = {
+                        'orderNo': orderNos,
+                        'fields' : fields
+                    };
+                    $.ajax({
+                        url: baseUrl+"/order/export/auth",
+                        headers: {'token': localStorage.getItem('token')},
+                        data: JSON.stringify(param),
+                        dataType:'json',
+                        contentType:'application/json;charset=UTF-8',
+                        method: 'POST',
+                        success: function (res) {
+                            layer.closeAll();
+                            if (res.code === 200) {
+                                table.exportFile(titles,res.data,'xls');
+                            } else if (res.code === 403) {
+                                top.location.href = baseUrl+"/";
+                            } else {
+                                layer.msg(res.msg)
+                            }
+                        }
+                    });
+                });
+                break;
+        }
+    });
+    $("#orderExcel").click(function () {
+        var checkStatus = table.checkStatus(obj.config.id);
+        var data = checkStatus.data;
+        layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+            if (data.length === 0){
+                layer.msg('璇烽�夋嫨鏁版嵁');
+            } else {
+                var titles=[];
+                var fields=[];
+                data.config.cols[0].map(function (col) {
+                    if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+                        titles.push(col.title);
+                        fields.push(col.field);
+                    }
+                });
+                var exportData = {};
+                $.each($('#search-box [name]').serializeArray(), function() {
+                    exportData[this.name] = this.value;
+                });
+                var param = {
+                    'wrkMast': exportData,
+                    'fields': fields
+                };
+                $.ajax({
+                    url: baseUrl+"/order/export/auth",
+                    headers: {'token': localStorage.getItem('token')},
+                    data: JSON.stringify(param),
+                    dataType:'json',
+                    contentType:'application/json;charset=UTF-8',
+                    method: 'POST',
+                    success: function (res) {
+                        layer.closeAll();
+                        if (res.code === 200) {
+                            table.exportFile(titles,res.data,'xls');
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl+"/";
+                        } else {
+                            layer.msg(res.msg)
+                        }
+                    }
+                });
+            }
+
+        });
+
+    });
 
     // 宸ュ叿鏉$偣鍑讳簨浠�
     table.on('tool(order)', function (obj) {
diff --git a/zy-asrs-wms/src/main/webapp/views/order/order.html b/zy-asrs-wms/src/main/webapp/views/order/order.html
index ec13eb6..3aa8f67 100644
--- a/zy-asrs-wms/src/main/webapp/views/order/order.html
+++ b/zy-asrs-wms/src/main/webapp/views/order/order.html
@@ -185,6 +185,11 @@
         </div>
     </form>
 </script>
+<script type="text/html" id="toolbar">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+    </div>
+</script>
 <!-- 琛ㄦ牸鎿嶄綔鍒� -->
 <script type="text/html" id="formSSXMTableBar">
     <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">淇敼</a>-->

--
Gitblit v1.9.1