From f4f3c04ba37cec6739370c4aa0b9622493de8a23 Mon Sep 17 00:00:00 2001
From: wang..123 <brook_w@163.com>
Date: 星期五, 25 三月 2022 20:34:19 +0800
Subject: [PATCH] Merge branch 'master' of http://47.97.1.152:5880/r/wms_saas

---
 src/main/webapp/views/pickout/pickout.html                                |   56 ++++++
 src/main/java/zy/cloud/wms/manager/entity/Pickout.java                    |   33 +++
 src/main/java/zy/cloud/wms/manager/service/PickoutService.java            |    3 
 src/main/java/zy/cloud/wms/manager/entity/dto/PickOutPrintDTO.java        |   18 ++
 src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java                |   46 ++++
 src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java            |    3 
 src/main/java/zy/cloud/wms/manager/controller/PickoutController.java      |   95 +++++++++++
 src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java |    6 
 src/main/resources/mapper/OrderDetlMapper.xml                             |    8 +
 src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java          |    3 
 src/main/java/zy/cloud/wms/manager/controller/WaveController.java         |    3 
 src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java   |   75 +++++++++
 src/main/resources/mapper/PickoutMapper.xml                               |    4 
 src/main/java/zy/cloud/wms/manager/controller/WorkController.java         |    8 +
 src/main/webapp/static/js/pickout/pickout.js                              |   76 +++++++++
 15 files changed, 413 insertions(+), 24 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java
index a25878a..73b270d 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/PickoutController.java
@@ -6,10 +6,8 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
-import zy.cloud.wms.manager.entity.Pickout;
-import zy.cloud.wms.manager.entity.PickoutDetl;
-import zy.cloud.wms.manager.service.PickoutDetlService;
-import zy.cloud.wms.manager.service.PickoutService;
+import zy.cloud.wms.manager.entity.*;
+import zy.cloud.wms.manager.service.*;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
@@ -27,6 +25,14 @@
     private PickoutService pickoutService;
     @Autowired
     private PickoutDetlService pickoutDetlService;
+    @Autowired
+    private WaveService waveService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private WaveDetlService waveDetlService;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     @RequestMapping(value = "/pickout/{id}/auth")
     @ManagerAuth
@@ -44,7 +50,8 @@
         EntityWrapper<Pickout> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+//        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        wrapper.orderBy("wrk_sts",true);
         Page<Pickout> pickoutPage = pickoutService.selectPage(new Page<>(curr, limit), wrapper);
 
         return R.ok(pickoutPage);
@@ -131,4 +138,82 @@
         return R.ok();
     }
 
+    /**
+     * 鎵撳嵃瀹屾垚涔嬪悗,灏�'鏈墦鍗�'鐘舵�佹浛鎹负'鎷h揣涓�'
+     * @param pickout
+     * @return
+     */
+    @RequestMapping("/pickout/print/auth")
+    @ManagerAuth
+    public R printed(@RequestBody Pickout pickout){
+        /**
+         * 鎵撳嵃瀹屾垚,鍚戝悗鍙版洿鏂版暟鎹�
+         */
+        Date now = new Date();
+        pickout.setPrintTimes(pickout.getPrintTimes() + 1);
+        pickout.setUpdateTime(now);
+        pickout.setUpdateBy(getUserId().intValue());
+        pickout.setPickStaff(getUserId());
+        pickout.setPickStart(now);
+        pickout.setWrkSts(2L);
+        pickoutService.update(pickout,new EntityWrapper<Pickout>()
+                .eq("id",pickout.getId()));
+        return R.ok();
+    }
+
+    /**
+     * 鐐瑰嚮瀹屾垚鎸夐挳鏃�,灏嗙姸鎬佷粠'鎷h揣涓�'璋冩暣鑷�'宸插畬鎴�'
+     */
+    @RequestMapping("/pickout/done/auth")
+    @ManagerAuth
+    public R donePickOut(@RequestBody Pickout pickout){
+        HashSet<String> orderNos = new HashSet<>();
+        /**
+         * 鍙嶅啓鎷h揣鍗�
+         */
+        pickout.setWrkSts(3L);
+        pickout.setPickEnd(new Date());
+        pickoutService.update(pickout,new EntityWrapper<Pickout>()
+                .eq("id",pickout.getId()));
+        List<PickoutDetl> pickoutDetls = pickoutDetlService.selectList(new EntityWrapper<PickoutDetl>()
+                .eq("head_id", pickout.getId()));
+        if (Cools.isEmpty(pickoutDetls)) {
+            return R.error("鎵句笉鍒版嫞璐у崟鏄庣粏");
+        }
+        /**
+         * 鍙嶅啓娉㈡
+         */
+        Wave wave = waveService.selectOne(new EntityWrapper<Wave>()
+                .eq("wave_no", pickout.getWaveNo()));
+        if (Cools.isEmpty(wave)) {
+            return R.error("鎵句笉鍒板搴旀尝娆�");
+        }
+        wave.setStatus((short) 2);
+        waveService.update(wave,new EntityWrapper<Wave>()
+                .eq("id",wave.getId()));
+        List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>()
+                .eq("wave_id", wave.getId()));
+        if (Cools.isEmpty(waveDetls)) {
+            return R.error("鎵句笉鍒板搴旀尝娆℃槑缁�");
+        }
+
+        /**
+         * 鍙嶅啓鍑哄簱璁㈠崟
+         */
+        for (WaveDetl waveDetl : waveDetls) {
+            String[] split = waveDetl.getOrderNos().split(",");
+            for (String s : split) {
+                orderNos.add(s);
+            }
+        }
+        for (PickoutDetl pickoutDetl : pickoutDetls) {
+            Double anfme = pickoutDetl.getAnfme();
+            String matnr = pickoutDetl.getMatnr();
+            List<OrderDetl> orderDetls = orderDetlService.selectOutList(matnr,new ArrayList<String>(orderNos));
+
+        }
+
+        return R.ok();
+    }
+
 }
diff --git a/src/main/java/zy/cloud/wms/manager/controller/WaveController.java b/src/main/java/zy/cloud/wms/manager/controller/WaveController.java
index 4181182..b8e71e8 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/WaveController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/WaveController.java
@@ -54,7 +54,8 @@
         EntityWrapper<Wave> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+//        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+        wrapper.orderBy("create_time",false);
         return R.ok(waveService.selectPage(new Page<>(curr, limit), wrapper));
     }
 
diff --git a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
index 8a71d2d..c1f4a6d 100644
--- a/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
+++ b/src/main/java/zy/cloud/wms/manager/controller/WorkController.java
@@ -40,6 +40,8 @@
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private PickoutService pickoutService;
 
     @Autowired
     private ReceiveService receiveService;
@@ -85,6 +87,12 @@
         return workService.stockOutPrint(stockOutParam, getUserId(), getHostId());
     }
 
+    @RequestMapping("/pick/out/print")
+    @ManagerAuth(memo = "PickOut鎵撳嵃鎷h揣鍗�")
+    public R pickOutPrint(@RequestBody Pickout pickout){
+        return pickoutService.stockOutPrint(pickout,getUserId(), getHostId());
+    }
+
     @RequestMapping("/stock/allot")
     @ManagerAuth(memo = "搴撳瓨璋冩嫧")
     public R stockAllot() {
diff --git a/src/main/java/zy/cloud/wms/manager/entity/Pickout.java b/src/main/java/zy/cloud/wms/manager/entity/Pickout.java
index 804a8f3..38877ab 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/Pickout.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/Pickout.java
@@ -101,6 +101,18 @@
     @TableField("wave_no")
     private String waveNo;
 
+    @TableField("print_times")
+    private Integer printTimes;
+
+    @TableField("pick_staff")
+    private Long pickStaff;
+
+    @TableField("pick_start")
+    private Date pickStart;
+
+    @TableField("pick_end")
+    private Date pickEnd;
+
     public Pickout() {}
 
 
@@ -122,14 +134,12 @@
             return "鏈墦鍗�";
         }
         if (this.wrkSts == 2) {
-            return "鏈嫞璐�";
+            return "鎷h揣涓�";
         }
         if (this.wrkSts == 3) {
-            return "寮�濮嬫嫞璐�";
+            return "宸插畬鎴�";
         }
-        if (this.wrkSts == 4) {
-            return "鎷h揣瀹屾垚";
-        }
+
         return "";
     }
     public Long getId() {
@@ -191,6 +201,7 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
     }
 
+
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
@@ -234,5 +245,17 @@
         this.memo = memo;
     }
 
+    public String getPickStart$() {
+        if (Cools.isEmpty(this.pickStart)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickStart);
+    }
 
+    public String getPickEnd$() {
+        if (Cools.isEmpty(this.pickEnd)){
+            return "";
+        }
+        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickEnd);
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java b/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java
index 79d3e56..e0d259d 100644
--- a/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java
+++ b/src/main/java/zy/cloud/wms/manager/entity/PickoutDetl.java
@@ -2,7 +2,10 @@
 
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.enums.IdType;
-import com.core.common.Cools;import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotations.TableField;
 import io.swagger.annotations.ApiModelProperty;
@@ -43,6 +46,11 @@
 import io.swagger.annotations.ApiModelProperty;
 
 import com.baomidou.mybatisplus.annotations.TableName;
+import zy.cloud.wms.manager.service.PickoutService;
+import zy.cloud.wms.manager.service.impl.PickoutServiceImpl;
+import zy.cloud.wms.system.entity.User;
+import zy.cloud.wms.system.service.UserService;
+
 import java.io.Serializable;
 
 @Data
@@ -228,6 +236,7 @@
     @TableField("wrk_no")
     private String wrkNo;
 
+
     public PickoutDetl() {}
 
 
@@ -402,6 +411,21 @@
         return pickStaff;
     }
 
+    public String getPickStaff$(){
+        PickoutService pickoutService = SpringUtils.getBean(PickoutService.class);
+        Pickout pickout = pickoutService.selectOne(new EntityWrapper<Pickout>()
+                .eq("id", this.headId));
+        if (!Cools.isEmpty(pickout)) {
+            UserService service = SpringUtils.getBean(UserService.class);
+            User user = service.selectOne(new EntityWrapper<User>()
+                    .eq("id", pickout.getPickStaff()));
+            if (!Cools.isEmpty(user)) {
+                return user.getNickname();
+            }
+        }
+        return "";
+    }
+
     public void setPickStaff(Long pickStaff) {
         this.pickStaff = pickStaff;
     }
@@ -411,11 +435,16 @@
     }
 
     public String getPickStart$(){
-        if (Cools.isEmpty(this.pickStart)){
-            return "";
+        PickoutService service = SpringUtils.getBean(PickoutService.class);
+        Pickout pickout = service.selectOne(new EntityWrapper<Pickout>()
+                .eq("id", this.headId));
+        if (!Cools.isEmpty(pickout)) {
+            return pickout.getPickStart$();
         }
-        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickStart);
+        return "";
     }
+
+
 
     public void setPickStart(Date pickStart) {
         this.pickStart = pickStart;
@@ -426,10 +455,13 @@
     }
 
     public String getPickEnd$(){
-        if (Cools.isEmpty(this.pickEnd)){
-            return "";
+        PickoutService service = SpringUtils.getBean(PickoutService.class);
+        Pickout pickout = service.selectOne(new EntityWrapper<Pickout>()
+                .eq("id", this.headId));
+        if (!Cools.isEmpty(pickout)) {
+            return pickout.getPickEnd$();
         }
-        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickEnd);
+        return "";
     }
 
     public void setPickEnd(Date pickEnd) {
diff --git a/src/main/java/zy/cloud/wms/manager/entity/dto/PickOutPrintDTO.java b/src/main/java/zy/cloud/wms/manager/entity/dto/PickOutPrintDTO.java
new file mode 100644
index 0000000..7803f4d
--- /dev/null
+++ b/src/main/java/zy/cloud/wms/manager/entity/dto/PickOutPrintDTO.java
@@ -0,0 +1,18 @@
+package zy.cloud.wms.manager.entity.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import zy.cloud.wms.manager.entity.Pickout;
+import zy.cloud.wms.manager.entity.PickoutDetl;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class PickOutPrintDTO {
+    private Pickout pickout;
+    private List<PickoutDetl> pickoutDetls;
+    private Double total;
+    private String workerName;
+    private String custName;
+}
diff --git a/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java b/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java
index fca279e..60cdc05 100644
--- a/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java
+++ b/src/main/java/zy/cloud/wms/manager/mapper/OrderDetlMapper.java
@@ -7,6 +7,7 @@
 import zy.cloud.wms.manager.entity.Order;
 import zy.cloud.wms.manager.entity.OrderDetl;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Mapper
@@ -16,4 +17,6 @@
     List<OrderDetl> selectByOrderNo(@Param("orderNo") String orderNo, @Param("hostId") Long hostId);
 
     List<OrderDetl> selectBatchByOrderNo(List<Order> orders);
+
+    List<OrderDetl> selectOutList(@Param("matnr") String matnr, @Param("list") ArrayList<String> list);
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java b/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java
index 9bfd20d..bbe4f1a 100644
--- a/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/OrderDetlService.java
@@ -4,6 +4,7 @@
 import zy.cloud.wms.manager.entity.Order;
 import zy.cloud.wms.manager.entity.OrderDetl;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public interface OrderDetlService extends IService<OrderDetl> {
@@ -11,4 +12,6 @@
     List<OrderDetl> selectByOrderNo(String orderNo, Long hostId);
 
     List<OrderDetl> selectBatchByOrderNo(List<Order> orders);
+
+    List<OrderDetl> selectOutList(String matnr, ArrayList<String> strings);
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/PickoutService.java b/src/main/java/zy/cloud/wms/manager/service/PickoutService.java
index c5269bb..0a1be20 100644
--- a/src/main/java/zy/cloud/wms/manager/service/PickoutService.java
+++ b/src/main/java/zy/cloud/wms/manager/service/PickoutService.java
@@ -1,9 +1,12 @@
 package zy.cloud.wms.manager.service;
 
+import com.core.common.R;
 import zy.cloud.wms.manager.entity.Pickout;
 import com.baomidou.mybatisplus.service.IService;
 
 public interface PickoutService extends IService<Pickout> {
 
     void updateWaveStatus(String waveNo);
+
+    R stockOutPrint(Pickout pickout, Long userId, Long hostId);
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java
index 0cc0c47..0bff2f8 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/OrderDetlServiceImpl.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Service("orderDetlService")
@@ -21,4 +22,9 @@
     public List<OrderDetl> selectBatchByOrderNo(List<Order> orders) {
         return this.baseMapper.selectBatchByOrderNo(orders);
     }
+
+    @Override
+    public List<OrderDetl> selectOutList(String matnr, ArrayList<String> strings) {
+        return this.baseMapper.selectOutList(matnr,strings);
+    }
 }
diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java
index c0d5357..87874a2 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/PickoutServiceImpl.java
@@ -1,16 +1,91 @@
 package zy.cloud.wms.manager.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import zy.cloud.wms.manager.entity.PickoutDetl;
+import zy.cloud.wms.manager.entity.dto.PickOutPrintDTO;
 import zy.cloud.wms.manager.mapper.PickoutMapper;
 import zy.cloud.wms.manager.entity.Pickout;
+import zy.cloud.wms.manager.service.PickoutDetlService;
 import zy.cloud.wms.manager.service.PickoutService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import zy.cloud.wms.system.entity.Host;
+import zy.cloud.wms.system.entity.User;
+import zy.cloud.wms.system.service.HostService;
+import zy.cloud.wms.system.service.UserService;
+
+import java.util.List;
 
 @Service("pickoutService")
 public class PickoutServiceImpl extends ServiceImpl<PickoutMapper, Pickout> implements PickoutService {
+    @Autowired
+    private PickoutService pickoutService;
+    @Autowired
+    private PickoutDetlService pickoutDetlService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private HostService hostService;
 
     @Override
     public void updateWaveStatus(String waveNo) {
         this.baseMapper.updateWaveStatus(waveNo);
     }
+
+    /**
+     * 鎵撳嵃鎷h揣鍗�
+     * @param pickout
+     * @param userId
+     * @param hostId
+     * @return
+     */
+    @Override
+    public R stockOutPrint(Pickout pickout, Long userId, Long hostId) {
+        /**
+         * 鍒濆鍖栦笌鎺х
+         */
+        PickOutPrintDTO printDTO = new PickOutPrintDTO();
+        Double total = 0.0;
+        List<PickoutDetl> pickoutDetls = pickoutDetlService.selectList(new EntityWrapper<PickoutDetl>()
+                .eq("head_id", pickout.getId()));
+        if (Cools.isEmpty(pickoutDetls)) {
+            return R.error("鏃犳硶鎵惧埌璇ュ崟鎹槑缁�");
+        }
+        for (PickoutDetl pickoutDetl : pickoutDetls) {
+            total = total + pickoutDetl.getAnfme();
+        }
+
+        if (Cools.isEmpty(userId)) {
+            User user = userService.selectOne(new EntityWrapper<User>()
+                    .eq("id", userId));
+            if (Cools.isEmpty(user)) {
+                printDTO.setWorkerName("榛樿鎷h揣鍛�");
+            }
+            else {
+                printDTO.setWorkerName(user.getNickname());
+            }
+        }else {
+            printDTO.setWorkerName("榛樿鎷h揣鍛�");
+        }
+
+        if (Cools.isEmpty(hostId)) {
+            Host host = hostService.selectOne(new EntityWrapper<Host>()
+                    .eq("id", hostId));
+            if (Cools.isEmpty(host)) {
+                printDTO.setCustName("榛樿鍟嗘埛");
+            }else {
+                printDTO.setCustName(host.getName());
+            }
+        }else {
+            printDTO.setCustName("榛樿鍟嗘埛");
+        }
+
+        printDTO.setPickoutDetls(pickoutDetls);
+        printDTO.setPickout(pickout);
+        printDTO.setTotal(total);
+        return R.ok().add(printDTO);
+    }
 }
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml
index 088fc8a..b34d843 100644
--- a/src/main/resources/mapper/OrderDetlMapper.xml
+++ b/src/main/resources/mapper/OrderDetlMapper.xml
@@ -46,5 +46,13 @@
             order_no = #{orders.orderNo}
         </foreach>
     </select>
+    <select id="selectOutList" resultMap="BaseResultMap">
+        SELECT * FROM man_order_detl WHERE 1 = 1
+                                       AND matnr = #{matnr}
+        AND
+        <foreach collection="list" open="(" close=")" separator="or" index="index" item="item">
+            order_no = #{item}
+        </foreach>
+    </select>
 
 </mapper>
diff --git a/src/main/resources/mapper/PickoutMapper.xml b/src/main/resources/mapper/PickoutMapper.xml
index 4961e3f..93a2150 100644
--- a/src/main/resources/mapper/PickoutMapper.xml
+++ b/src/main/resources/mapper/PickoutMapper.xml
@@ -18,6 +18,10 @@
         <result column="order_qty" property="orderQty" />
         <result column="order_nos" property="orderNos" />
         <result column="wave_no" property="waveNo" />
+        <result column="print_times" property="printTimes" />
+        <result column="pick_staff" property="pickStaff" />
+        <result column="pick_start" property="pickStart" />
+        <result column="pick_end" property="pickEnd" />
 
     </resultMap>
     <update id="updateWaveStatus">
diff --git a/src/main/webapp/static/js/pickout/pickout.js b/src/main/webapp/static/js/pickout/pickout.js
index 95be0cb..aca4626 100644
--- a/src/main/webapp/static/js/pickout/pickout.js
+++ b/src/main/webapp/static/js/pickout/pickout.js
@@ -41,6 +41,7 @@
             ,{field: 'userId', align: 'center',title: '鐢ㄦ埛ID', hide: true}
 
             ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��' ,templet: '#wrkStsTpl' , width: 100}
+            ,{field: 'printTimes', align: 'center', title: '鎵撳嵃娆℃暟',width: 90}
             ,{field: 'zpallet', align: 'center',title: '鏉″舰鐮�' , hide:true}
             ,{field: 'createTime$', align: 'center',title: '', hide:true}
             ,{field: 'createBy', align: 'center',title: '', hide:true}
@@ -57,6 +58,9 @@
     // 鐩戝惉琛屽伐鍏蜂簨浠�
     table.on('tool(leftTable)', function(obj){
         var data = obj.data;
+
+
+
         switch (obj.event) {
             case 'printOrder':
                 printPick(data);
@@ -64,6 +68,9 @@
             case "del":
                 var ids = [data.id];
                 del(ids);
+                break;
+            case "complete":
+                donePickOut(data);
                 break;
         }
     });
@@ -121,8 +128,73 @@
         tableReload(false);
     });
 
-    function printPick(data){
+    function donePickOut(data) {
+        $.ajax({
+            url:baseUrl + "/pickout/done/auth",
+            headers : {'token' : localStorage.getItem('token')},
+            data: JSON.stringify(data),
+            contentType:'application/json;charset=UTF-8',
+            method: 'POST',
+            success: function (res) {
 
+                leftTB.reload();
+            }
+        })
+    }
+
+    function printPick(data){
+        $.ajax({
+            url:baseUrl + "/work/pick/out/print",
+            headers : {'token' : localStorage.getItem('token')},
+            data: JSON.stringify(data),
+            contentType:'application/json;charset=UTF-8',
+            method: 'POST',
+            success: function (res) {
+                    if (res.code === 200){
+                        console.log(res);
+                        res.data["barcodeUrl"]=baseUrl+"/order/code/auth?type=1&param="+res.data.pickout.wrkNo;
+                        var tpl = $('#pakoutPrintTpl').html();
+                        var template = Handlebars.compile(tpl);
+                        var html = template(res);
+                        var box = $("#pakoutPrintBox");
+                        box.html(html);box.show();
+                        box.print({
+                            mediaPrint:true,
+                            deferred: $.Deferred().done(function () {
+                                layer.confirm('[閲嶈] 鎵撳嵃鏄惁鎴愬姛锛�',  {btn: ['Yes', 'No']}, function(){
+                                    $.ajax({
+                                        url: baseUrl+"/pickout/print/auth",
+                                        headers: {'token': localStorage.getItem('token')},
+                                        data: JSON.stringify(res.data.pickout),
+                                        contentType:'application/json;charset=UTF-8',
+                                        method: 'POST',
+                                        success: function (res) {
+                                            if (res.code === 200){
+                                                layer.closeAll();
+                                                $(".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})
+                                            }
+                                            leftTB.reload();
+                                        }
+                                    })
+                                });
+                            })
+                        });
+                        box.hide();
+                    }
+                    else if (res.code === 403){
+                        top.location.href = baseUrl+"/";
+                    }else {
+                        layer.msg(res.msg, {icon: 2})
+                    }
+
+            }
+
+        })
     }
 
 
@@ -158,7 +230,7 @@
             ,{field: 'price', align: 'center',title: '浠锋牸', hide:true}
             ,{field: 'weight', align: 'center',title: '閲嶉噺', hide:true}
             ,{field: 'status', align: 'center',title: '鐘舵��' , hide:true}
-            ,{field: 'pickStaff', align: 'center',title: '鎷h揣鍛業D'}
+            ,{field: 'pickStaff$', align: 'center',title: '鎷h揣鍛業D'}
             ,{field: 'pickStart$', align: 'center',title: '鎷h揣寮�濮嬫椂闂�'}
             ,{field: 'pickEnd$', align: 'center',title: '鎷h揣缁撴潫鏃堕棿'}
             ,{field: 'createTime$', align: 'center',title: '鍒涘缓鏃堕棿', hide:true}
diff --git a/src/main/webapp/views/pickout/pickout.html b/src/main/webapp/views/pickout/pickout.html
index 09c1aa3..6825de9 100644
--- a/src/main/webapp/views/pickout/pickout.html
+++ b/src/main/webapp/views/pickout/pickout.html
@@ -112,6 +112,8 @@
     </div>
 </div>
 
+<!-- 鎵撳嵃瀹瑰櫒 -->
+<div id="pakoutPrintBox" style="display: none"></div>
 <!--&lt;!&ndash; 鎼滅储鏍� &ndash;&gt;-->
 <!--<div id="search-box" class="layui-form layui-card-header">-->
 <!--    <div class="layui-inline">-->
@@ -139,9 +141,7 @@
 </script>
 
 <script type="text/html" id="operate">
-    {{#if (d.wrkSts == 3){ }}
-    <a class="layui-btn layui-btn-xs btn-complete" lay-event="complete">瀹屾垚</a>
-    {{# } }}
+
     {{#if (d.wrkSts == 1||d.wrkSts == 2){ }}
     <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="printOrder">鎵撳嵃鎷h揣鍗�</a>
     {{# } }}
@@ -149,8 +149,11 @@
 
 
 <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>-->
-    {{#if (d.wrkSts == 1||d.wrkSts == 2){ }}
+    {{#if (d.wrkSts == 1){ }}
     <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鎾ら攢</a>
+    {{# } }}
+    {{#if (d.wrkSts == 2){ }}
+    <a class="layui-btn layui-btn-xs btn-complete" lay-event="complete">瀹屾垚</a>
     {{# } }}
 <!--    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>-->
 
@@ -170,7 +173,9 @@
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
 <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/jquery/jQuery.print.js"></script>
 <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/js/pickout/pickout.js" charset="utf-8"></script>
 </body>
 <!-- 琛ㄥ崟寮圭獥 -->
@@ -249,5 +254,48 @@
         </div>
     </form>
 </script>
+
+
+<script type="text/template" id="pakoutPrintTpl">
+    <!-- 澶� -->
+    <div id="print-header" style="margin: 20px 0">
+        <div style="text-align: center">
+            <div style="text-align: center;margin-bottom: 10px">
+                <span style="font-family: 瀹嬩綋"> 鎷h揣鍗� </span>
+            </div>
+
+            <img class="template-code template-qrcode" src="{{data.barcodeUrl}}" style="width: 80%">
+            <p style="letter-spacing: 2px;margin-top: 5px">{{data.pickout.wrkNo}}</p>
+        </div>
+        <div style="font-size: xx-small; text-align: left; margin-top: 10px">
+            <span style="font-family: 瀹嬩綋">瀹㈡埛锛歿{data.custName}}</span>
+        </div>
+        <div style="margin-top: 10px">
+            <div style="float: left;width: 50%; text-align: left">
+                <span style="font-size: xx-small;font-family: 瀹嬩綋">鎷h揣鏁伴噺锛歿{data.total}}</span>
+            </div>
+            <div style="float: left; width: 50%; text-align: right">
+                <span style="font-size: xx-small;font-family: 瀹嬩綋">鎷h揣浜猴細{{data.workerName}}</span>
+            </div>
+            <div style="clear:both;"></div>
+        </div>
+    </div>
+
+    <!-- 涓讳綋 -->
+    <div style="margin-top: 10px">
+        {{#each data.pickoutDetls}}
+        <div class="pakout-item" style="padding: 10px 5px 10px 5px;border-top: 1px solid #525252">
+            <div class="item-header" style="margin-top: 10px;font-family: 瀹嬩綋; font-size: x-small">
+                {{maktx}}
+            </div>
+            <div class="item-content" style="margin: 10px 0 ">
+                <div style="float: left;font-family: 瀹嬩綋; font-size: xx-small">{{anfme}}{{unit}}</div>
+                <div style="float: right;font-family: 瀹嬩綋; font-size: xx-small">璐т綅锛歿{nodeName}}</div>
+                <div style="clear: both;"></div>
+            </div>
+        </div>
+        {{/each}}
+    </div>
+</script>
 </html>
 

--
Gitblit v1.9.1