自动化立体仓库 - WMS系统
#
mrzhssss
2023-02-17 50be60574f905504eb65fb247e840f51353cc947
#
11个文件已修改
1个文件已添加
568 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderDetlController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/PakoutController.java 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/MatnrDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/ioWorks/stockIn.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/ioWorks/stockInOrder.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/ioWorks/orderQuery.html 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -9,8 +9,10 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -25,6 +27,8 @@
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderService orderService;
    @RequestMapping(value = "/orderDetl/{id}/auth")
    @ManagerAuth
@@ -48,6 +52,65 @@
        wrapper.eq("status", 1);
        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/orderDetl/out/list")
    @ManagerAuth
    public R out(@RequestParam(defaultValue = "1")Integer curr,
                  @RequestParam(defaultValue = "10")Integer limit,
                  @RequestParam(required = false)String orderByField,
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        List<Order> orders = orderService.selectInOrOutOrders(false);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
            wrapper.orderBy("create_time", false);
        }
        if (Cools.isEmpty(orders)) {
            return R.ok(new  Page<OrderDetl>());
        }else {
            for (Order order : orders) {
                wrapper.or();
                wrapper.eq("order_no",order.getOrderNo());
            }
        }
        wrapper.eq("status", 1);
        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
    }
    @RequestMapping(value = "/orderDetl/in/list")
    @ManagerAuth
    public R in(@RequestParam(defaultValue = "1")Integer curr,
                 @RequestParam(defaultValue = "10")Integer limit,
                 @RequestParam(required = false)String orderByField,
                 @RequestParam(required = false)String orderByType,
                 @RequestParam Map<String, Object> param){
        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        List<Order> orders = orderService.selectInOrOutOrders(true);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
            wrapper.orderBy("create_time", false);
        }
        if (Cools.isEmpty(orders)) {
            return R.ok(new  Page<OrderDetl>());
        }else {
            for (Order order : orders) {
                wrapper.or();
                wrapper.eq("order_no",order.getOrderNo());
            }
        }
        wrapper.eq("status", 1);
        Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        return R.ok(orderDetlPage);
    }
    @RequestMapping(value = "/orderDetl/pakout/list/auth")
    @ManagerAuth
src/main/java/com/zy/asrs/controller/PakoutController.java
@@ -6,7 +6,14 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.Pakout;
import com.zy.asrs.entity.param.OrderDomainParam;
import com.zy.asrs.service.ManLocDetlService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.service.PakoutService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
@@ -23,6 +30,12 @@
    @Autowired
    private PakoutService pakoutService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private ManLocDetlService manLocDetlService;
    @RequestMapping(value = "/pakout/{id}/auth")
    @ManagerAuth
@@ -59,12 +72,210 @@
    @RequestMapping(value = "/pakout/add/auth")
    @ManagerAuth
    public R add(Pakout pakout) {
        pakoutService.insert(pakout);
        return R.ok();
    public R add(@RequestBody OrderDomainParam param) {
        if (Cools.isEmpty(param)){
            return R.error("数据异常");
        }
        if (!Cools.isEmpty(param.getOrderNo())){
            Order order = orderService.selectOne(new EntityWrapper<Order>()
                    .eq("order_no", param.getOrderNo())
            );
            if (Cools.isEmpty(order)){
                return R.error("单据不存在");
            }
            List<OrderDetl> orderDetls =orderDetlService.selectList(new EntityWrapper<OrderDetl>()
                    .eq("order_no", param.getOrderNo())
            );
            if (Cools.isEmpty(orderDetls)){
                return R.error("单据明细为空");
            }
            for (OrderDetl orderDetl : orderDetls){
                List<ManLocDetl> manLocDetls=null;
                try{
                    if (Cools.isEmpty(orderDetl.getBatch())){
                        manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>()
                                .eq("matnr",orderDetl.getMatnr())
                        );
                    }else {
                        manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>()
                                .eq("matnr",orderDetl.getMatnr())
                                .eq("batch",orderDetl.getBatch())
                        );
                    }
                }catch (Exception e){
                    return R.error("添加拣货单失败");
                }
                if (!Cools.isEmpty(manLocDetls)){
                    for (ManLocDetl manLocDetl:manLocDetls){
                        Double statusAnfme = 0.0;
                        if (Cools.isEmpty(manLocDetl.getStatus())){
                            manLocDetl.setStatus(1);
                        }
                        try{
                            if (manLocDetl.getStatus$().equals("禁用")){
                                if (Cools.isEmpty(manLocDetl.getBatch())){
                                    List<Pakout> manPakOuts = pakoutService.selectList(new EntityWrapper<Pakout>()
                                            .eq("loc_no", manLocDetl.getLocNo())
                                            .eq("matnr", manLocDetl.getMatnr())
                                            .eq("status",0)
                                    );
                                    if (!Cools.isEmpty(manPakOuts)){
                                        for (Pakout manPakOut:manPakOuts){
                                            statusAnfme=statusAnfme+manPakOut.getAnfme();
                                        }
                                    }
                                }else {
                                    List<Pakout> manPakOuts = pakoutService.selectList(new EntityWrapper<Pakout>()
                                            .eq("loc_no", manLocDetl.getLocNo())
                                            .eq("matnr", manLocDetl.getMatnr())
                                            .eq("batch",manLocDetl.getBatch())
                                            .eq("status",0)
                                    );
                                    if (!Cools.isEmpty(manPakOuts)){
                                        for (Pakout manPakOut:manPakOuts){
                                            statusAnfme=statusAnfme+manPakOut.getAnfme();
                                        }
                                    }
                                }
                            }
                        }catch (Exception e){
                            return R.error("查询库存禁用数量失败");
                        }
                        Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>()
                                .eq("loc_no", manLocDetl.getLocNo())
                                .eq("matnr", manLocDetl.getMatnr());
                        if (orderDetl.getAnfme() > manLocDetl.getAnfme()-statusAnfme){
                            if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
                                manLocDetl.setStatus(0);
                                try{
                                    if (Cools.isEmpty(manLocDetl.getBatch())){
                                        manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime()));
                                    }else {
                                        manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
                                    }
                                }catch (Exception e){
                                    return R.error("更新库存失败");
                                }
                                orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme());
                            }else {
                                return R.error("添加拣货单失败");
                            }
                        }else if (orderDetl.getAnfme()-manLocDetl.getAnfme()-statusAnfme==0){
                            if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
                                manLocDetl.setStatus(0);
                                try{
                                    if (Cools.isEmpty(manLocDetl.getBatch())){
                                        manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime()));
                                    }else {
                                        manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
                                    }
                                }catch (Exception e){
                                    return R.error("更新库存失败");
                                }
                                orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme());
                            }else {
                                return R.error("添加拣货单失败");
                            }
                        }else if (orderDetl.getAnfme()<manLocDetl.getAnfme()-statusAnfme){
                            Double a=manLocDetl.getAnfme();
                            manLocDetl.setAnfme(orderDetl.getAnfme());
                            if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
                                orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme());
                                manLocDetl.setStatus(0);
                                manLocDetl.setAnfme(a);
                                try{
                                    if (Cools.isEmpty(manLocDetl.getBatch())){
                                        manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime()));
                                    }else {
                                        manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch()));
                                    }
                                }catch (Exception e){
                                    return R.error("更新库存失败");
                                }
                            }else {
                                return R.error("添加拣货单失败");
                            }
                        }else {
                            return R.error("系统出错,请联系管理员");
                        }
                        if (orderDetl.getAnfme()==0){
                            break;
                        }
                    }
                    if (orderDetl.getAnfme()!=0){
                        ManLocDetl manLocDetl=new ManLocDetl();
                        manLocDetl.setAnfme(0.0);
                        manLocDetl.setMatnr(orderDetl.getMatnr());
                        manLocDetl.setMaktx(orderDetl.getMaktx());
                        manLocDetl.setMemo(orderDetl.getMemo()+"库存不足");
                        if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
                            continue;
                        }else {
                            return R.error("添加拣货单失败");
                        }
                    }
                }else {
                    ManLocDetl manLocDetl=new ManLocDetl();
                    manLocDetl.setAnfme(0.0);
                    manLocDetl.setMatnr(orderDetl.getMatnr());
                    manLocDetl.setMaktx(orderDetl.getMaktx());
                    manLocDetl.setMemo(orderDetl.getMemo()+"无库存");
                    if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){
                        continue;
                    }else {
                        return R.error("添加拣货单失败");
                    }
                }
            }
            orderService.updateSettle(order.getId(),(long)2,null);
        }else {
            return R.error("单据编号异常");
        }
        return R.ok("拣货单添加成功");
    }
    @RequestMapping(value = "/pakout/update/auth")
    private R addPakOUT(ManLocDetl manLocDetl,String OrderNo){
        Pakout manPakOut=new Pakout();
        manPakOut.setWrkNo(OrderNo+"-"+System.currentTimeMillis());
        manPakOut.setWrkSts((long)1);
        manPakOut.setAnfme(manLocDetl.getAnfme());
        manPakOut.setLocNo(manLocDetl.getLocNo());
        manPakOut.setNodeId(manLocDetl.getNodeId());
        manPakOut.setMatnr(manLocDetl.getMatnr());
        manPakOut.setMaktx(manLocDetl.getMaktx());
        manPakOut.setSpecs(manLocDetl.getSpecs());
        manPakOut.setUnit(manLocDetl.getUnit());
        manPakOut.setBarcode(manLocDetl.getBarcode());
        manPakOut.setDocNum(OrderNo);
        manPakOut.setStatus(0);
        manPakOut.setCreateTime(new Date());
        if (!Cools.isEmpty(manLocDetl.getBatch())){
            manPakOut.setBatch(manLocDetl.getBatch());
            manPakOut.setUpdateTime(new Date());
        }else {
            manPakOut.setUpdateTime(manLocDetl.getModiTime());//用于识别货物
        }
        manPakOut.setMemo(manLocDetl.getMemo());
        if (Cools.isEmpty(pakoutService.selectOne(new EntityWrapper<Pakout>().eq("doc_num",OrderNo)))){
            manPakOut.setName(manLocDetl.getMaktx());
        }
        try{
            if (!pakoutService.insert(manPakOut)){
                return R.error("添加拣货明细失败,请联系管理员");
            }
        }catch (Exception e){
            return R.error("添加拣货明细失败,请联系管理员");
        }
        return R.ok();
    }
    @RequestMapping(value = "/pakout/update/auth")
    @ManagerAuth
    public R update(Pakout pakout){
        if (Cools.isEmpty(pakout) || null==pakout.getMatnr()){
src/main/java/com/zy/asrs/entity/param/MatnrDto.java
@@ -12,4 +12,8 @@
    private Double count;
    private String orderNo;
}
src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -21,4 +21,7 @@
    Integer checkDetlWorkQtyLess0(@Param("orderNo") String orderNo);
    void updateSettleTo1(@Param("orderNo")String orderNo);
    List<Order> selectInOrOutOrders(@Param("flag") Integer flag);
}
src/main/java/com/zy/asrs/service/OrderService.java
@@ -28,4 +28,7 @@
    void BackToInit(String orderNo);
    List<Order> selectInOrOutOrders(boolean inOrders);
    void checkSettleUpdate(Long orderId);
}
src/main/java/com/zy/asrs/service/impl/NodeServiceImpl.java
@@ -9,14 +9,13 @@
import com.zy.asrs.entity.ManLocDetl;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.Node;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.InitPakoutParam;
import com.zy.asrs.entity.param.MatnrDto;
import com.zy.asrs.entity.param.PakinParam;
import com.zy.asrs.entity.result.Pakin;
import com.zy.asrs.mapper.NodeMapper;
import com.zy.asrs.service.ManLocDetlService;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.NodeService;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.SaasUtils;
import com.zy.asrs.utils.VersionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +36,10 @@
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private ManLocDetlService manLocDetlService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private OrderService orderService;
    @Override
    public Node getTop() {
        Node top = this.selectOne(new EntityWrapper<Node>().eq("type", 0).eq("level", 0));
@@ -123,8 +126,14 @@
                        .eq("loc_no", node.getUuid())
                        .eq("matnr", dto.getMatnr()));
            }
            if (!Cools.isEmpty(dto.getOrderNo())) {
                OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>()
                        .eq("order_no", dto.getOrderNo())
                        .eq("matnr", dto.getMatnr()));
                orderDetl.setQty(orderDetl.getQty() + dto.getCount());
                orderDetlService.updateById(orderDetl);
                orderService.checkSettleUpdate(orderDetl.getOrderId());
            }
        }
        return R.ok("入库成功");
    }
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@Slf4j
@Service("orderService")
@@ -167,4 +168,38 @@
        }
    }
    @Override
    public List<Order> selectInOrOutOrders(boolean inOrders) {
        if (inOrders) {
            return this.baseMapper.selectInOrOutOrders(1);
        }else {
            return this.baseMapper.selectInOrOutOrders(0);
        }
    }
    @Override
    public void checkSettleUpdate(Long orderId) {
        long settle = 1;
        Integer count = 0;
        List<OrderDetl> orderNo1 = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
                .eq("order_id", orderId));
        for (int i = 0; i < orderNo1.size(); i++) {
            OrderDetl orderDetl = orderNo1.get(i);
            if (orderDetl.getQty() > 0){
                settle = 2;
            }
            if (Objects.equals(orderDetl.getAnfme(), orderDetl.getQty())){
                count++;
            }
        }
        if (count == orderNo1.size()){
            settle = 4;
        }
        updateSettle(orderId,settle,1L);
    }
}
src/main/resources/mapper/OrderMapper.xml
@@ -67,6 +67,9 @@
        and status = 1
        order by create_time asc
    </select>
    <select id="selectInOrOutOrders" resultMap="BaseResultMap">
        SELECT * FROM man_order o left join man_doc_type d on o.doc_type = d.doc_id WHERE d.pakin = #{flag} and o.settle in (1,2)
    </select>
    <insert id="addToLogTable">
        INSERT INTO man_order_log SELECT * FROM man_order WHERE id = #{id}
src/main/webapp/static/js/ioWorks/stockIn.js
@@ -158,6 +158,7 @@
                        data: JSON.stringify({
                            nodeId: data.field.nodeSel,
                            mats: matCodeData
                        }),
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
src/main/webapp/static/js/ioWorks/stockInOrder.js
@@ -3,9 +3,16 @@
var matCodeData = [];
function getCol() {
    var cols = [
        {fixed: 'left', field: 'count', title: '数量(必填)', align: 'center', edit:'text', width: 120,  style:'color: blue;font-weight: bold'}
        {fixed: 'left', field: 'count', title: '数量(必填)', align: 'center', edit:'text', width: 120,  style:'color: blue;font-weight: bold'},
        {field: 'matnr', align: 'center', title: '商品编码'},
        {field: 'anfme', align: 'center', title: '数量'},
        {field: 'qty', align: 'center', title: '完成数量'},
        {field: 'orderNo', align: 'center', title: '单据编号'},
        {field: 'maktx', align: 'center', title: '商品名称'},
        {field: 'batch', align: 'center', title: '批号'},
        {field: 'specs', align: 'center', title: '规格'}
    ];
    cols.push.apply(cols, matCols);
    // cols.push.apply(cols, matCols);
    cols.push({fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:80})
    return cols;
}
@@ -158,6 +165,7 @@
                        data: JSON.stringify({
                            nodeId: data.field.nodeSel,
                            mats: matCodeData
                        }),
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
@@ -246,7 +254,7 @@
        maxmin: true,
        area: [top.detailWidth, top.detailHeight],
        shadeClose: true,
        content: 'matQuery.html',
        content: 'orderQuery.html',
        success: function(layero, index){
        }
    });
src/main/webapp/static/js/order/order.js
@@ -124,7 +124,7 @@
    }
    function addPakOut(expTpe) {
        $.ajax({
            url: baseUrl+"/ManPakOut/add/auth",
            url: baseUrl+"/pakout/add/auth",
            headers: {'token': localStorage.getItem('token')},
            data: JSON.stringify({
                docType: Number(20),
src/main/webapp/views/ioWorks/orderQuery.html
New file
@@ -0,0 +1,202 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
    <style>
        body {
            padding: 0 20px;
        }
        .layui-table-box {
            border-right: 1px solid #9F9F9F;
            border-left: 1px solid #9F9F9F;
        }
    </style>
</head>
<body>
<!-- 搜索栏 -->
<fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
    <legend>搜索栏</legend>
    <div id="search-box" class="layui-form layui-card-header">
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="matnr" placeholder="商品编码" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="maktx" placeholder="商品名称" autocomplete="off">
            </div>
        </div>
        <!-- 日期范围 -->
        <div class="layui-inline" style="width: 300px">
            <div class="layui-input-inline">
                <input class="layui-input layui-laydate-range" name="update_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
            </div>
        </div>
        <!-- 待添加 -->
        <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        </div>
    </div>
</fieldset>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">提取</button>
    </div>
</script>
<div class="layui-form">
    <table class="layui-hide" id="matCode" lay-filter="matCode"></table>
</div>
<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/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
</body>
<script>
    function getCol() {
        var cols = [
            {type: 'checkbox', fixed: 'left'}
        ];
        // cols.push.apply(cols, matCols);
        cols.push(
                {field: 'matnr', align: 'center', title: '商品编码'},
                {field: 'anfme', align: 'center', title: '数量'},
                {field: 'qty', align: 'center', title: '完成数量'},
                {field: 'orderNo', align: 'center', title: '单据编号'},
                {field: 'maktx', align: 'center', title: '商品名称'},
                {field: 'batch', align: 'center', title: '批号'},
                {field: 'specs', align: 'center', title: '规格'}
        )
        return cols;
    }
    var pageCurr;
    layui.use(['table','laydate', 'form'], function() {
        var table = layui.table;
        var $ = layui.jquery;
        var layer = layui.layer;
        var layDate = layui.laydate;
        var form = layui.form;
        // 物料查询数据表
        matQueryTable = table.render({
            elem: '#matCode',
            headers: {token: localStorage.getItem('token')},
            url: baseUrl + '/orderDetl/in/list',
            page: true,
            limit: 7,
            limits: [7, 10, 30,50,100],
            even: true,
            cellMinWidth: 50,
            toolbar: '#toolbar',
            cols: [getCol()],
            request: {
                pageName: 'curr',
                pageSize: 'limit'
            },
            parseData: function (res) {
                return {
                    'code': res.code,
                    'msg': res.msg,
                    'count': res.data.total,
                    'data': res.data.records
                }
            },
            response: {
                statusCode: 200
            },
            done: function (res, curr, count) {
                if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                }
            }
        });
        // 监听头工具栏事件
        table.on('toolbar(matCode)', function (obj) {
            var checkStatus = table.checkStatus(obj.config.id);
            var data = checkStatus.data;
            switch(obj.event) {
                case 'confirm':
                    if (data.length === 0){
                        layer.msg("请选择数据");
                        return;
                    }
                    parent.addTableData(data);
                    break;
            }
        });
        // 搜索栏搜索事件
        form.on('submit(search)', function (data) {
            pageCurr = 1;
            tableReload(false);
        });
        // 搜索栏重置事件
        form.on('submit(reset)', function (data) {
            pageCurr = 1;
            clearFormVal($('#search-box'));
            tableReload();
        });
        layDate.render({
            elem: '.layui-laydate-range'
            ,type: 'datetime'
            ,range: true
        });
    })
    function tableReload(child) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        matQueryTable.reload({
            where: searchData,
            page: {
                curr: pageCurr
            },
            done: function (res, curr, count) {
                if (res.code === 403) {
                    top.location.href = baseUrl+"/";
                }
                pageCurr=curr;
                if (res.data.length === 0 && count !== 0) {
                    tableIns.reload({
                        where: searchData,
                        page: {
                            curr: pageCurr-1
                        }
                    });
                    pageCurr -= 1;
                }
            }
        });
    }
    function clearFormVal(el) {
        $(':input', el)
            .val('')
            .removeAttr('checked')
            .removeAttr('selected');
    }
</script>
</html>