浏览代码

first commit

liuhairui 9 月之前
父节点
当前提交
11bbcb767e
共有 1 个文件被更改,包括 31 次插入30 次删除
  1. 31 30
      application/api/controller/WorkOrderSpotCheck.php

+ 31 - 30
application/api/controller/WorkOrderSpotCheck.php

@@ -2736,43 +2736,44 @@ class WorkOrderSpotCheck extends Api{
             $this->error('参数错误');
         }
         foreach ($param as $key=>$value){
-            if ($value['number'] != '' || $value['number'] == 0 ){
+            // 确保 value['number'] 是数字类型--将 number 转换为浮动类型
+            $number = floatval($value['number']);
+
+            // 判断 number 是否有效
+            if ($number !== 0 && !empty($value['number'])){
                 $lastNumber = \db('工单_bom资料')
                     ->where('BOM_工单编号',$value['order_id'])
                     ->where('BOM_物料名称',$value['物料名称'])
                     ->field('BOM_库存总量,BOM_面料结余,Bom_领用数量,BOM_退还数量')
                     ->find();
+
+                // 确保 BOM_面料结余 是数字类型
+                $lastNumber['BOM_面料结余'] = floatval($lastNumber['BOM_面料结余']);
+
                 if ($value['name'] === '出库'){
-                    $lastNumber['BOM_面料结余'] -= $value['number'];
-                    $lastNumber['Bom_领用数量'] += $value['number'];
-                }elseif ($value['name'] === '退还'){
-                    $lastNumber['BOM_面料结余'] += $value['number'];
-                    $lastNumber['BOM_退还数量'] += $value['number'];
-                }else{
-                    $lastNumber['BOM_库存总量'] += $value['number'];
-                    $lastNumber['BOM_面料结余'] += $value['number'];
-                }
-                Db::startTrans();
-                try {
-                    //更新工单BOM表数据
-                    $BomSql = \db('工单_bom资料')
-                        ->where('BOM_工单编号',$value['order_id'])
-                        ->where('BOM_物料名称',$value['物料名称'])
-                        ->fetchSql(true)
-                        ->update($lastNumber);
-                    $res = \db()->query($BomSql);
-                    //添加出库、退还历史记录
-                    $reportSql = \db('设备_报工日志')
-                        ->fetchSql(true)
-                        ->insert($value);
-                    $reportRes = \db()->query($reportSql);
-
-                    //提交事务
-                    Db::commit();
-                }catch (\Exception $e){
-                    //回滚事务
-                    Db::rollback();
+                    $lastNumber['BOM_面料结余'] -= $number;  // 减去出库数量
+                    $lastNumber['Bom_领用数量'] += $number;   // 增加领用数量
+                } elseif ($value['name'] === '退还'){
+                    $lastNumber['BOM_面料结余'] += $number;  // 增加面料结余
+                    $lastNumber['BOM_退还数量'] += $number;   // 增加退还数量
+                } else {
+                    $lastNumber['BOM_库存总量'] += $number;   // 增加库存总量
+                    $lastNumber['BOM_面料结余'] += $number;  // 增加面料结余
                 }
+
+                // 更新工单BOM表数据
+                $BomSql = \db('工单_bom资料')
+                    ->where('BOM_工单编号',$value['order_id'])
+                    ->where('BOM_物料名称',$value['物料名称'])
+                    ->fetchSql(true)
+                    ->update($lastNumber);
+                $res = \db()->query($BomSql);
+
+                // 添加出库、退还历史记录
+                $reportSql = \db('设备_报工日志')
+                    ->fetchSql(true)
+                    ->insert($value);
+                $reportRes = \db()->query($reportSql);
             }
         }
         $this->success('成功');