From f82ba31e05fffb1f528a46d3f98ba9a6508cd4bc Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 25 七月 2022 15:13:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderController.java      |   87 +++++++++++-
 src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java            |    5 
 src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java |   11 +
 src/main/java/com/zy/asrs/entity/WrkMast.java                  |    7 -
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java          |    3 
 src/main/java/com/zy/asrs/entity/WrkMastLog.java               |    2 
 src/main/webapp/views/order/order.html                         |  109 +++++++++++++++
 src/main/resources/mapper/WrkDetlMapper.xml                    |   25 +++
 src/main/java/com/zy/asrs/entity/result/WrkTraceVo.java        |   33 ++++
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java   |    4 
 src/main/webapp/static/js/order/order.js                       |   69 +++++++++
 src/main/java/com/zy/asrs/entity/ViewWorkInBean.java           |    4 
 src/main/java/com/zy/asrs/service/WrkDetlService.java          |    4 
 13 files changed, 340 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index d79943c..de1f495 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -7,15 +7,13 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.OrderDomainParam;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderDetlService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.entity.result.WrkTraceVo;
+import com.zy.asrs.service.*;
 import com.zy.common.model.DetlDto;
 import com.zy.common.web.BaseController;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -33,6 +31,14 @@
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
     private DocTypeService docTypeService;
+    @Autowired
+    private WrkDetlService wrkDetlService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private LocDetlService locDetlService;
 
     @RequestMapping(value = "/order/nav/list/auth")
     @ManagerAuth
@@ -214,8 +220,73 @@
     }
 
 
-
-
+    @PostMapping(value = "/order/wrk/trace/auth")
+    @ManagerAuth
+    public R orderWrkTrace(@RequestParam("orderId") Long orderId) {
+        Order order = orderService.selectById(orderId);
+        if (null == order) {
+            return R.error("鍗曟嵁涓嶅瓨鍦�");
+        }
+        // 鏁伴噺缁熻
+        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(orderId);
+        double totalQty = 0;
+        double wrkQty = 0;
+        double lackQty = 0;
+        for (OrderDetl orderDetl : orderDetls) {
+            totalQty = totalQty + orderDetl.getAnfme();
+            wrkQty = wrkQty + orderDetl.getQty();
+            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
+            if (issued > 0.0) {
+                List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null);
+                for (LocDetl locDetl : locDetls) {
+                    if (issued > 0) {
+                        issued = issued - locDetl.getAnfme();
+                    } else {
+                        break;
+                    }
+                }
+            }
+            if (issued > 0.0) {
+                lackQty = lackQty + issued;
+            }
+        }
+        // 浠诲姟杩芥函
+        List<WrkTraceVo> wrkTraceVos = new ArrayList<>();
+        List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNoGroupByMatnrOfSum(order.getOrderNo());
+        for (WrkDetl wrkDetl : wrkDetls) {
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()));
+            if (wrkMast == null) {
+                WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()));
+                if (wrkMastLog != null) {
+                    wrkMast = new WrkMast();
+                    BeanUtils.copyProperties(wrkMastLog, wrkMast);
+                } else {
+                    continue;
+                }
+            }
+            boolean exist = false;
+            for (WrkTraceVo vo : wrkTraceVos) {
+                if (vo.getWrkNo().equals(wrkMast.getWrkNo()) && vo.getIoTimeStr().equals(DateUtils.convert(wrkMast.getIoTime()))) {
+                    vo.getWrkDetls().add(wrkDetl);
+                    exist = true;
+                }
+            }
+            if (!exist) {
+                WrkTraceVo vo = new WrkTraceVo(wrkMast.getWrkNo(), DateUtils.convert(wrkMast.getIoTime()), wrkMast, wrkDetl);
+                wrkTraceVos.add(vo);
+            }
+        }
+        if (!Cools.isEmpty(wrkTraceVos) && wrkTraceVos.size() > 1) {
+            wrkTraceVos.sort((o1, o2) -> (int) (o2.getWrkMast().getIoTime().getTime() - o1.getWrkMast().getIoTime().getTime()));
+        }
+        return R.ok().add(Cools
+                .add("list", wrkTraceVos)
+                .add("orderNo", order.getOrderNo())
+                .add("totalQty", totalQty)
+                .add("wrkQty", wrkQty)
+                .add("lackQty", lackQty)
+        );
+    }
 
 
     // ------------------------------------------------------------------------------------------------
diff --git a/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java b/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
index 15a23ed..0089da5 100644
--- a/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
+++ b/src/main/java/com/zy/asrs/entity/ViewWorkInBean.java
@@ -1,6 +1,5 @@
 package com.zy.asrs.entity;
 
-import com.baomidou.mybatisplus.annotations.TableField;
 import com.core.common.Cools;
 import com.core.common.SpringUtils;
 import com.zy.system.entity.User;
@@ -59,8 +58,7 @@
 	private String batch;
 
 	@ApiModelProperty(value= "鍗曟嵁缂栧彿")
-	@TableField("order_no")
-	private String orderNo;
+	private String order_no;
 
 	@ApiModelProperty(value= "瑙勬牸")
 	private String specs;
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index 668b6b8..69a19c4 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -495,13 +495,6 @@
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
     }
 
-    public void setErrorMemo(String errorMemo) {
-        if (errorMemo.length() > 255) {
-            errorMemo = errorMemo.substring(0, 150);
-        }
-        this.errorMemo = errorMemo;
-    }
-
     public String getLogErrTime$(){
         if (Cools.isEmpty(this.logErrTime)){
             return "";
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastLog.java b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
index 35d2d77..bee870a 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -55,7 +55,7 @@
      */
     @ApiModelProperty(value= "宸ヤ綔鐘舵��")
     @TableField("wrk_sts")
-    private Integer wrkSts;
+    private Long wrkSts;
 
     /**
      * 鍏ュ嚭搴撶被鍨�
diff --git a/src/main/java/com/zy/asrs/entity/result/WrkTraceVo.java b/src/main/java/com/zy/asrs/entity/result/WrkTraceVo.java
new file mode 100644
index 0000000..a435599
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/WrkTraceVo.java
@@ -0,0 +1,33 @@
+package com.zy.asrs.entity.result;
+
+import com.zy.asrs.entity.WrkDetl;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.common.model.DetlDto;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2022/7/22
+ */
+@Data
+public class WrkTraceVo {
+
+    private Integer wrkNo;
+
+    private String ioTimeStr;
+
+    private WrkMast wrkMast;
+
+    private List<WrkDetl> wrkDetls = new ArrayList<>();
+
+    private List<DetlDto> detlDtos = new ArrayList<>();
+
+    public WrkTraceVo(Integer wrkNo, String ioTimeStr, WrkMast wrkMast, WrkDetl wrkDetl) {
+        this.wrkNo = wrkNo;
+        this.ioTimeStr = ioTimeStr;
+        this.wrkMast = wrkMast;
+        this.wrkDetls.add(wrkDetl);
+    }
+}
diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
index 97d48d8..e74b6f5 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -20,7 +20,12 @@
 
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
 
+    List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
+
     int updateInspect( @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
 
     List<WrkDetl> selectPakoutQuery(@Param("staNo")Integer staNo, @Param("matnr")String matnr);
+
+    int updateOrderNo(@Param("orderNo")String orderNo, @Param("wrkNo")Integer wrkNo, @Param("matnr")String matnr, @Param("batch")String batch);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java
index 5e0de95..7018d0f 100644
--- a/src/main/java/com/zy/asrs/service/WrkDetlService.java
+++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -16,8 +16,12 @@
 
     List<WrkDetl> selectAndLogByOrderNo(String orderNo);
 
+    List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo);
+
     boolean updateInspect(Integer wrkNo, String matnr, String batch);
 
     List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr);
 
+    boolean updateOrderNo(String orderNo, Integer wrkNo, String matnr, String batch);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 97779cc..a32f666 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -141,6 +141,10 @@
                     throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
                 }
             }
+            // 宸ヤ綔妗f槑缁嗘洿鏂板崟鎹紪鍙�
+            for (WrkDetl wrkDetl : wrkDetls) {
+                wrkDetlService.updateOrderNo(orderNo, wrkDetl.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+            }
         } catch (Exception e) {
             log.error("", e);
             return false;
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
index a911107..47bede0 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java
@@ -72,6 +72,11 @@
     }
 
     @Override
+    public List<WrkDetl> selectAndLogByOrderNoGroupByMatnrOfSum(String orderNo) {
+        return this.baseMapper.selectAndLogByOrderNoGroupByMatnrOfSum(orderNo);
+    }
+
+    @Override
     public boolean updateInspect(Integer wrkNo, String matnr, String batch) {
         return this.baseMapper.updateInspect(wrkNo, matnr, batch) > 0;
     }
@@ -80,4 +85,10 @@
     public List<WrkDetl> selectPakoutQuery(Integer staNo, String matnr) {
         return this.baseMapper.selectPakoutQuery(staNo, matnr);
     }
+
+    @Override
+    public boolean updateOrderNo(String orderNo, Integer wrkNo, String matnr, String batch) {
+        return baseMapper.updateOrderNo(orderNo, wrkNo, matnr, batch) > 0;
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 10bffd4..34be800 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -36,6 +36,9 @@
             ReturnT<String> returnT = workMastHandler.start(wrkMast);
             if (!returnT.isSuccess()) {
                 wrkMast.setUpdMk("X");
+                if (returnT.getMsg().length() > 255) {
+                    returnT.setMsg(returnT.getMsg().substring(0, 150));
+                }
                 wrkMast.setErrorMemo(returnT.getMsg());
                 wrkMast.setErrorTime(new Date());
                 if (!wrkMastService.updateById(wrkMast)) {
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml
index 03ec74f..a9a84f2 100644
--- a/src/main/resources/mapper/WrkDetlMapper.xml
+++ b/src/main/resources/mapper/WrkDetlMapper.xml
@@ -94,6 +94,21 @@
         and (awml.manu_type is null or awml.manu_type != '鎵嬪姩鍙栨秷')
     </select>
 
+    <select id="selectAndLogByOrderNoGroupByMatnrOfSum" resultMap="BaseResultMap">
+        select awd.wrk_no, awd.io_time, awd.matnr, sum(awd.anfme) as anfme
+        from asr_wrk_detl awd
+        left join asr_wrk_mast awm on awd.wrk_no = awm.wrk_no and awd.io_time = awm.io_time
+        where order_no = #{orderNo}
+        group by awd.wrk_no, awd.io_time, awd.matnr
+        union
+        select distinct awdl.wrk_no, awdl.io_time, awdl.matnr, sum(awdl.anfme) as anfme
+        from asr_wrk_detl_log awdl
+        left join asr_wrk_mast_log awml on awdl.wrk_no = awml.wrk_no and awdl.io_time = awml.io_time
+        where awdl.order_no = #{orderNo}
+        and (awml.manu_type is null or awml.manu_type != '鎵嬪姩鍙栨秷')
+        group by awdl.wrk_no, awdl.io_time, awdl.matnr
+    </select>
+
     <update id="updateInspect">
         update asr_wrk_detl
         set inspect = 1
@@ -115,4 +130,14 @@
         and awd.matnr + '-' + awd.batch = #{matnr}
     </select>
 
+    <update id="updateOrderNo">
+        update asr_wrk_detl
+        set order_no = #{orderNo}
+        , modi_time = getdate()
+        where 1=1
+        and wrk_no = #{wrkNo}
+        and matnr = #{matnr}
+        <include refid="batchSeq"></include>
+    </update>
+
 </mapper>
diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js
index cde142a..cc58f12 100644
--- a/src/main/webapp/static/js/order/order.js
+++ b/src/main/webapp/static/js/order/order.js
@@ -10,6 +10,7 @@
     var admin = layui.admin;
     var xmSelect = layui.xmSelect;
     var layDate = layui.laydate;
+    var laytpl = layui.laytpl;
 
     // 娓叉煋鎼滅储妯℃澘
     $.ajax({
@@ -41,7 +42,7 @@
         cellMinWidth: 100,
         cols: [[
             {type: 'numbers'},
-            {field: 'orderNo', title: '鍗曟嵁缂栧彿'},
+            {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'},
             {field: 'docType$', align: 'center', title: '绫诲瀷',  minWidth: 160, width: 160},
             {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160},
             {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200},
@@ -89,6 +90,8 @@
         var layEvent = obj.event;
         if (layEvent === 'edit') {
             showEditModel(data);
+        } else if (layEvent === 'wrkTrace') {
+            showWrkTrace(data.id);
         } else if (layEvent === 'del') {
             doDel(data.id);
         } else if (layEvent === 'complete') {
@@ -454,6 +457,70 @@
         });
     }
 
+    // 浠诲姟杩芥函
+    function showWrkTrace(orderId) {
+        let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+        $.ajax({
+            url: baseUrl+"/order/wrk/trace/auth",
+            headers: {'token': localStorage.getItem('token')},
+            data: {
+                orderId: orderId
+            },
+            method: 'POST',
+            success: function (res) {
+                layer.close(loadIndex);
+                if (res.code === 200){
+                    laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) {
+                        admin.open({
+                            type: 1,
+                            title: '浠诲姟杩芥函',
+                            area: ['800px', '450px'],
+                            shadeClose: true,
+                            content: html,
+                            success: function (layero, dIndex) {
+                                $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                                /** 缁熻鍥捐〃 */
+                                var traceCharts = echarts.init(document.getElementById('wrkTraceCharts'));
+                                var traceOptions = {
+                                    title: {
+                                        text: '浣滀笟/鎬婚噺', x: 'center', y: '38%',
+                                        textStyle: {fontSize: 18, color: '#262626', fontWeight: 'normal'},
+                                        subtextStyle: {fontSize: 36, color: '#10B4E8'},
+                                        itemGap: 20
+                                    },
+                                    color: ['#10B4E8', '#E0E0E0', '#FF0000'],
+                                    tooltip: {trigger: 'item'},
+                                    series: [{name: '鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}]
+                                };
+                                traceCharts.setOption(traceOptions);
+                                // 璧嬪��
+                                traceCharts.setOption({
+                                    title: {
+                                        subtext: res.data.wrkQty+"/"+res.data.totalQty
+                                    },
+                                    series: [
+                                        {
+                                            data: [
+                                                {name: '宸蹭綔涓�', value: res.data.wrkQty},
+                                                {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.lackQty},
+                                                {name: '搴撳瓨涓嶈冻', value: res.data.lackQty},
+                                            ]
+                                        }
+                                    ]
+                                });
+                            }
+                        });
+                    });
+                } else if (res.code === 403){
+                    top.location.href = baseUrl+"/";
+                }else {
+                    layer.msg(res.msg, {icon: 2});
+                }
+            }
+        })
+    }
+
+
     layDate.render({
         elem: '.layui-laydate-range'
         ,type: 'datetime'
diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html
index d89f0c4..0c4cb7f 100644
--- a/src/main/webapp/views/order/order.html
+++ b/src/main/webapp/views/order/order.html
@@ -15,6 +15,17 @@
     <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
     <![endif]-->
     <style>
+        .wrk-trace {
+            color: green;
+            cursor: pointer;
+            margin-left: 6px;
+            font-size: 18px;
+        }
+
+        .layui-timeline:first-child .layui-timeline-item {
+            margin-top: 30px;
+        }
+
         .btn-add {
             display: none;
         }
@@ -102,9 +113,13 @@
         </a>
     </span>
 </script>
-<!--<script type="text/html" id="settleTpl">-->
-<!--    <span name="settle" class="layui-badge layui-badge-gray">{{d.settle$}}</span>-->
-<!--</script>-->
+<script type="text/html" id="orderNoTpl">
+    {{d.orderNo}}
+    {{# if(d.settle > 1 && d.settle !== 3){ }}
+
+    {{# } }}
+    <i class="layui-icon layui-icon-about wrk-trace" lay-tips="鏌ョ湅浠诲姟杩芥函" lay-direction="2" lay-offset="-10px,0px" lay-event="wrkTrace"></i>
+</script>
 <script type="text/html" id="settleTpl">
     <span name="settle"
           {{# if( d.settle === 1){ }}
@@ -183,9 +198,97 @@
     </form>
 </script>
 
+<!-- 璁㈠崟浠诲姟杩芥函 -->
+<script id="wrkTraceDialog" type="text/html" style="position: relative">
+    <div style="position: absolute; top: 0; left: 0;">
+        <div class="layui-card" style="overflow: hidden;">
+            <div class="layui-card-header" style="text-align: center;width: 80%;font-weight: inherit;font-size: 18px">{{ d.orderNo }}</div>
+            <div class="layui-card-body">
+                <div id="wrkTraceCharts" style="height: 300px;width: 400px;transform: translateX(-10%);"></div>
+            </div>
+        </div>
+    </div>
+    <div class="layui-row" >
+        <div class="layui-col-md5">
+            <h1 style="opacity: 0;">Hello World</h1>
+        </div>
+        <div  class="layui-col-md7" style="">
+            {{#  if(d.list.length > 0){ }}
+            <ul class="layui-timeline" style="height: 400px; overflow: scroll;">
+                {{#  layui.each(d.list, function(index, item){ }}
+                <li class="layui-timeline-item">
+                    <i class="layui-icon layui-timeline-axis">&#xe63f;</i>
+                    <div class="layui-timeline-content layui-text">
+                        <div class="layui-timeline-title">
+                            <h3 class="inline-block">
+                                {{ item.wrkNo }}&nbsp;
+
+                                {{#  if(item.wrkMast.ioType < 100){ }}
+                                <span class="layui-badge layui-bg-blue" style="line-height: 20px;">
+                                 {{ item.wrkMast.ioType$ }}&nbsp;
+                                </span>
+                                {{#  } }}
+
+                                {{#  if(item.wrkMast.ioType > 100){ }}
+                                <span class="layui-badge layui-bg-orange" style="line-height: 20px;">
+                                  {{ item.wrkMast.ioType$ }}&nbsp;
+                                </span>
+                                {{#  } }}
+
+
+                                {{#  if(item.wrkMast.wrkSts < 14){ }}
+                                <span class="layui-badge layui-bg-red" style="line-height: 20px;">
+                                    {{ item.wrkMast.wrkSts$ }}&nbsp;
+                                </span>
+                                {{#  } }}
+
+                                {{#  if(item.wrkMast.wrkSts >= 14){ }}
+                                <span class="layui-badge layui-bg-green" style="line-height: 20px;">
+                                    {{ item.wrkMast.wrkSts$ }}&nbsp;
+                                </span>
+                                {{#  } }}
+
+                            </h3>&emsp;
+                            {{ item.wrkMast.ioTime$ }}
+                        </div>
+
+                        <table class="layui-table" lay-skin="nob" style="width: 80%">
+                            <thead>
+                            <tr style="background: none">
+                                <td>No.</td>
+                                <td>鍟嗗搧缂栧彿</td>
+                                <td>鏁伴噺</td>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            {{#  layui.each(item.wrkDetls, function(idx, wrkDetl){ }}
+                            <tr>
+                                <td><span class="layui-badge layui-bg-cyan">{{ idx+1 }}</span></td>
+                                <td>{{ wrkDetl.matnr }}</td>
+                                <td style="font-weight: bold">{{ wrkDetl.anfme }}</td>
+                            </tr>
+                            {{#  }); }}
+                            </tbody>
+                        </table>
+
+                        <hr class="layui-border-cyan" style="width: 90%; opacity: .6;">
+                    </div>
+                </li>
+                {{#  }); }}
+            </ul>
+            {{#  } else { }}
+            <div style="height: 350px;display: flex;justify-content: center;align-items: center;">
+                <h2 style="font-weight: bold;letter-spacing: 2px">鏆傛棤浠诲姟</h2>
+            </div>
+            {{#  } }}
+        </div>
+    </div>
+</script>
+
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
 <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/echarts/echarts.min.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/order/order.js" charset="utf-8"></script>

--
Gitblit v1.9.1