瀏覽代碼

投料bug调整

tincey 3 年之前
父節點
當前提交
25ce28e743
共有 2 個文件被更改,包括 52 次插入17 次删除
  1. 7 4
      application/admin/controller/Feeding.php
  2. 45 13
      public/assets/js/backend/feeding.js

+ 7 - 4
application/admin/controller/Feeding.php

@@ -99,6 +99,7 @@ class Feeding extends Backend
             $result['inspector'] = $row[0]['inspector'];
             $result['operator'] = $row[0]['operator'];
         }else{
+            Session::delete('process');
             $result['inspector'] = '';
             $result['operator'] = '';
         }
@@ -114,22 +115,23 @@ class Feeding extends Backend
         if($num){//如果有,批次号重复,需精确查找
             $res = Db::name('task')->alias('t')
                 ->join('formula_detail f','f.pid=t.fid','left')
-                ->field('f.material,f.percentage,f.gy_name,f.gy_num,t.number')
+                ->field('f.material,f.percentage,f.gy_name,f.gy_num,t.number,t.id')
                 ->where('t.bach',$bach)->where('t.number',$num)->select();
         }else{//如果没有,,批次号未重复,直接差出数据
             $res = Db::name('task')->alias('t')
                 ->join('formula_detail f','t.fid = f.pid','left')
-                ->field('f.material,f.percentage,f.gy_name,f.gy_num,t.number')
+                ->field('f.material,f.percentage,f.gy_name,f.gy_num,t.number,t.id')
                 ->where('t.bach',$bach)->select();
         }
-//        halt($res);
+        $pro = 0;
         //按照百分比计算出应投重量
         foreach($res as &$v){
             if($process){//已有工序,接上一次工序
                 foreach ($process as $val){
 
-                    if($val['material']==$v['material'] || in_array($val['material'],explode('/',$v['material']))){
+                    if(($val['material']==$v['material'] || in_array($val['material'],explode('/',$v['material']))) && $val['t_id']==$v['id']){
                         $v['weight']=$val['weight'];
+                        $pro = $val['gy_num'];
                     }
                 }
             }
@@ -141,6 +143,7 @@ class Feeding extends Backend
         }
         $row['total']=$num;
         $row['data'] = $res;
+        $row['process'] = $pro+1;
         return json($row);
     }
     //查找替代料

+ 45 - 13
public/assets/js/backend/feeding.js

@@ -71,26 +71,28 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','jQuery.print','jquery
                                         $("#c-unit").val(res.data[$("#bach").val()].examine_name);
                                     });
                                     $("#btn").click(()=>{
+                                        //只读->已扫描过批次号
                                         if($("#c-bach").attr('readonly')==='readonly'){
                                             return false;
                                         }
-                                        $("#bach").css('cssText','display:none! important');
+                                        $("#bach").css('cssText','display:none! important');//隐藏按钮,下拉菜单
                                         $("#btn").css('display','none');
                                         $.ajax({
                                             method:"POST",
                                             url:"feeding/get_formula",
                                             data:{
                                                 bach:$("#c-bach").val(),
-                                                num:res.data[$("#bach").val()].number
+                                                num:res.data[$("#bach").val()].number// 选定批次号的生产量,精确查找
                                             },
                                             success(result){
-                                                var str = '';
-                                                var html = '';
+                                                var str = '';//页面table
+                                                var html = '';// html:需打印的表格
                                                 for(var i=0;i<result.data.length;i++){
                                                     str += "<tr class='tablestr"+i+" tablestr'><td><input class='form-control material' type='text' name='row[material][]' readonly value='"+result.data[i].material+"'></td>";
                                                     str += "<td><input class='form-control' type='text' name='row[nweight][]' readonly value='"+result.data[i].nweight+"'></td>";
                                                     str += "<td><input class='form-control' type='number' name='row[weight][]' value='";
                                                     if (result.data[i].weight) {
+                                                        //已操作的工序变为只读,附带实加重量
                                                         str += parseFloat(result.data[i].weight) + "' readonly ";
                                                     }
                                                     str += "'></td>";
@@ -113,23 +115,39 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','jQuery.print','jquery
                                                         </tr>`;//${res.data.number}
                                                 $("#print_gy").append(html);
                                                 $("#table").append(str);
-                                                $("#c-bach").attr('readonly','readonly');
+                                                $("#c-bach").attr('readonly','readonly');//批次号输入框变为只读
                                                 $("#wuliao").keydown((e)=>{
                                                     let key = e.which;
                                                     var error = 0;
                                                     if(key === 13){
                                                         var wuliao = $("#wuliao").val();
+                                                        console.log(result)
                                                         for(var i=0;i<result.data.length;i++) {
-                                                            if(result.data[i].material===wuliao){
+                                                            //扫描的物料=table中的物料,,,变红,否则语音提示
+                                                            if(result.data[i].material===wuliao && result.data[i].gy_num == result.process){
+                                                                console.log(result.data[i].gy_num);
                                                                 $(".material")[i].setAttribute('style','color:red');
                                                                 error++;
+                                                            }else if(result.data[i].material===wuliao){
+                                                                Layer.confirm("此物料不在当前工序,请确认!");
+                                                                //语音播报
+                                                                var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!");
+                                                                window.speechSynthesis.speak(msg);
+                                                                error++;
                                                             }
+                                                            //替代料变扫描的物料
                                                             if(result.data[i].material.indexOf('/')!==-1){
                                                                 var arr = result.data[i].material.split('/');
-                                                                if(arr.indexOf($("#wuliao").val()) !== -1){
+                                                                if(arr.indexOf($("#wuliao").val()) !== -1 && result.data[i].gy_num == result.process){
                                                                     $(".material")[i].value = wuliao;
                                                                     $(".material")[i].setAttribute('style','color:red');
                                                                     error++;
+                                                                }else if(arr.indexOf($("#wuliao").val()) !== -1 ){
+                                                                    Layer.confirm("此物料不在当前工序,请确认!");
+                                                                    //语音播报
+                                                                    var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!");
+                                                                    window.speechSynthesis.speak(msg);
+                                                                    error++;
                                                                 }
                                                             }
                                                         }
@@ -145,7 +163,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','jQuery.print','jquery
                                         });
                                     });
                                 }else{//批次号不重复直接赋值
-                                    // $("#bach").css('cssText','display:none! important');
                                     $("#btn").css('display','none');
                                     $("#c-name").val(res.data[0].name);
                                     $("#c-specifications").val(res.data[0].drawer_name);
@@ -160,14 +177,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','jQuery.print','jquery
                                             num:''
                                         },
                                         success(result) {
-                                            var str = '';
-                                            var html = '';
+                                            var str = '';//页面table
+                                            var html = '';//打印的table
                                             for(var i=0;i<result.data.length;i++){
                                                 str += "<tr class='tablestr"+i+" tablestr'><td><input class='form-control material' type='text' name='row[material][]' readonly value='"+result.data[i].material+"'></td>";
                                                 str += "<td><input class='form-control' type='text' name='row[nweight][]' readonly value='"+result.data[i].nweight+"'></td>";
                                                 str += "<input class='form-control' type='hidden' name='row[gy_num][]' value='"+result.data[i].gy_num+"'>";
                                                 str += "<td><input class='form-control' type='number' name='row[weight][]' value='";
                                                 if (result.data[i].weight) {
+                                                    //已操作的工序变为只读,附带实加重量
                                                     str += parseFloat(result.data[i].weight) + "' readonly ";
                                                 }
                                                 str += "'></td>";
@@ -188,23 +206,37 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','jQuery.print','jquery
                                                         </tr>`;//${res.data[0].number}
                                             $("#print_gy").append(html);
                                             $("#table").append(str);
-                                            $("#c-bach").attr('readonly','readonly');
+                                            $("#c-bach").attr('readonly','readonly');//批次号输入框变为只读
                                             $("#wuliao").keydown((e)=>{
                                                 let key = e.which;
                                                 var error = 0;
                                                 if(key === 13){
                                                     var wuliao = $("#wuliao").val();
                                                     for(var i=0;i<result.data.length;i++) {
-                                                        if(result.data[i].material===wuliao){
+                                                        //扫描的物料=table中的物料,,,变红,否则语音提示
+                                                        if(result.data[i].material===wuliao && result.data[i].gy_num == result.process){
                                                             $(".material")[i].setAttribute('style','color:red');
                                                             error++;
+                                                        }else if(result.data[i].material===wuliao){
+                                                            Layer.confirm("此物料不在当前工序,请确认!");
+                                                            //语音播报
+                                                            var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!");
+                                                            window.speechSynthesis.speak(msg);
+                                                            error++;
                                                         }
+                                                        //替代料变扫描的物料
                                                         if(result.data[i].material.indexOf('/')!==-1){
                                                             var arr = result.data[i].material.split('/');
-                                                            if(arr.indexOf($("#wuliao").val()) !== -1){
+                                                            if(arr.indexOf($("#wuliao").val()) !== -1 && result.data[i].gy_num == result.process){
                                                                 $(".material")[i].value = wuliao;
                                                                 $(".material")[i].setAttribute('style','color:red');
                                                                 error++;
+                                                            }else if(arr.indexOf($("#wuliao").val()) !== -1 ){
+                                                                Layer.confirm("此物料不在当前工序,请确认!");
+                                                                //语音播报
+                                                                var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!");
+                                                                window.speechSynthesis.speak(msg);
+                                                                error++;
                                                             }
                                                         }
                                                     }