瀏覽代碼

first commit

liuhairui 7 月之前
父節點
當前提交
04314e616c

+ 10 - 3
application/api/controller/Facility.php

@@ -133,11 +133,17 @@ class Facility extends Api{
         $fabricArr = []; // 存储拼接后的数据
         foreach ($getarr as $value) {
             $materialName = $value['BOM_物料名称'];
-            $bomDesc = !empty($value['物料分类']) ? $value['物料分类'] : ''; // 防止null
-            // 拼接字符串,并去除可能的前后空格
-            $combinedData = trim($bomDesc . ' - ' . $materialName, ' -');
+            // 如果物料分类为空,就用'-'代替
+            $bomDesc = !empty($value['物料分类']) ? $value['物料分类'] : '';
+            // 拼接字符串,并去除多余空格
+            $combinedData = trim($bomDesc . ' - ' . $materialName);
             // 存入数组
             $fabricArr[] = $combinedData;
+//            $bomDesc = !empty($value['物料分类']) ? $value['物料分类'] : ''; // 防止null
+//            // 拼接字符串,并去除可能的前后空格
+//            $combinedData = trim($bomDesc . ' - ' . $materialName, ' -');
+//            // 存入数组
+//            $fabricArr[] = $combinedData;
         }
 
 
@@ -486,6 +492,7 @@ class Facility extends Api{
         $res = \db('设备_质量汇总')
             ->where($where)
             ->limit(($params['page'] - 1) * $params['limit'], $params['limit'])
+            ->order('sczl_rq','desc')
             ->select();
         $this->success('获取成功', ['data' => $res, 'total' => count($res)]);
     }

+ 49 - 17
application/api/controller/WorkOrder.php

@@ -1265,6 +1265,7 @@ class WorkOrder extends Api
                 ->field('子订单编号,cm1,cm2,cm3,cm4,cm5,cm6,cm7,cm8,cm9,cm10')
                 ->where('子订单编号', 'like', '%' . $num . '%')
                 ->where('船样', '=', 0)
+                ->whereNull('Mod_rq')
                 ->order('子订单编号', 'desc')
                 ->find();
 
@@ -1277,6 +1278,7 @@ class WorkOrder extends Api
                     $data = \db('工单_印件资料')
                         ->where('订单编号',$param['order'])
                         ->where('船样',0)
+                        ->whereNull('Mod_rq')
                         ->order('子订单编号 desc')
                         ->find();
                     if(empty($data)){
@@ -1301,7 +1303,7 @@ class WorkOrder extends Api
                             $incrementedNumber = (int)$number + 1;
                             // 将数字部分补充为两位数,例如 1 -> 01,2 -> 02
                             $order = $prefix . str_pad($incrementedNumber, 2, '0', STR_PAD_LEFT);
-                            $exists = \db('工单_印件资料')->where('子订单编号', '=', $order)->find();
+                            $exists = \db('工单_印件资料')->whereNull('Mod_rq')->where('子订单编号', '=', $order)->find();
                             $number = $incrementedNumber; // 更新 number 用于下一次循环
                         } while ($exists); // 如果存在相同编号则继续循环递增
                     } else {
@@ -2263,24 +2265,44 @@ class WorkOrder extends Api
      */
     public function fabricListmonth()
     {
-        $list = \db('物料_库存')
-            ->group("DATE_FORMAT(sys_rq, '%Y-%m')")
-            ->orderRaw("DATE_FORMAT(sys_rq, '%Y-%m') desc")
-            ->column("DATE_FORMAT(sys_rq, '%Y-%m') as date");
+//        $list = \db('物料_库存')
+//            ->group("DATE_FORMAT(sys_rq, '%Y-%m')")
+//            ->orderRaw("DATE_FORMAT(sys_rq, '%Y-%m') desc")
+//            ->column("DATE_FORMAT(sys_rq, '%Y-%m') as date");
+//
+//        $result = [];
+//        foreach ($list as $item) {
+//            $result[$item] = \db('物料_库存')
+//                ->whereRaw("DATE_FORMAT(sys_rq, '%Y-%m') = ?", [$item])
+//                ->order('sys_rq desc')
+//                ->distinct('sys_rq')
+//                ->column("DATE_FORMAT(sys_rq, '%Y-%m-%d') as date");
+//        }
+//        if (!empty($result)) {
+//            $this->success('成功', $result);
+//        } else {
+//            $this->success('没有找到相关数据', []);
+//        }
 
-        $result = [];
-        foreach ($list as $item) {
-            $result[$item] = \db('物料_库存')
-                ->whereRaw("DATE_FORMAT(sys_rq, '%Y-%m') = ?", [$item])
-                ->order('sys_rq desc')
-                ->distinct('sys_rq')
-                ->column("DATE_FORMAT(sys_rq, '%Y-%m-%d') as date");
+        $data = \db('设备_报工日志')
+            ->whereNull('Mod_rq')
+            ->field('DISTINCT DATE_FORMAT(rq, "%Y-%m") as month, DATE_FORMAT(rq, "%Y-%m-%d") as date')
+            ->whereNull('Mod_rq')
+            ->order('rq desc')
+            ->select();
+
+        // 按月份分组数据
+        $groupedData = [];
+        foreach ($data as $entry) {
+            $groupedData[$entry['month']][] = $entry['date'];
         }
-        if (!empty($result)) {
-            $this->success('成功', $result);
-        } else {
-            $this->success('没有找到相关数据', []);
+
+        // 去重处理,防止重复
+        foreach ($groupedData as $month => $dates) {
+            $groupedData[$month] = array_values(array_unique($dates));
         }
+
+        $this->success('成功', $groupedData);
     }
 
     /**
@@ -2517,6 +2539,8 @@ class WorkOrder extends Api
             $item['款式'] = implode(',', array_unique(explode(',', $item['款式'])));
             $item['物料编码'] = implode(',', array_unique(explode(',', $item['物料编码'])));
             $item['物料名称'] = implode(',', array_unique(explode(',', $item['物料名称'])));
+            // 格式化总数
+            $item['总数'] = round($item['总数'], 2); // 保留2位小数,防止长尾
         }
         unset($item); // 避免引用问题
 
@@ -2578,6 +2602,7 @@ class WorkOrder extends Api
         $lastNumber = \db('设备_报工日志')
             ->where('receipt_number','like',$param['number'].'%')
             ->order('receipt_number desc')
+            ->whereNull('Mod_rq')
             ->limit(1)
             ->column('receipt_number as 单号');
         if (empty($lastNumber)){
@@ -2598,6 +2623,7 @@ class WorkOrder extends Api
             ->where('name','出库')
             ->order('recipient desc')
             ->group('recipient')
+            ->whereNull('Mod_rq')
             ->limit(1)
             ->value('recipient as 人员');
         $data = [
@@ -2643,10 +2669,13 @@ class WorkOrder extends Api
         ';
         $list = \db('物料_库存')
             ->alias('a')
+//            ->join('设备_报工日志 d','a.批次号 = d.批次号')
             ->join('工单_面料资料 b','a.物料编号 = b.BOM_物料编码')
             ->join('工单关联表 c','a.关联号 = c.关联编号')
             ->field($field)
-            ->where('a.sys_rq','like',$param['date'].'%')
+            ->whereNull('d.Mod_rq')
+            ->where('d.rq','like',$param['date'].'%')
+//            ->where('a.sys_rq','like',$param['date'].'%')
             ->group('a.批次号')
             ->select();
         if (empty($list)){
@@ -2690,6 +2719,7 @@ class WorkOrder extends Api
             $record = \db('设备_报工日志')
                 ->field('id, 批次号, number, type')
                 ->where('name', $name)
+                ->whereNull('Mod_rq')
                 ->where('id', $id)
                 ->find();
 
@@ -2706,6 +2736,7 @@ class WorkOrder extends Api
                 $updateSql = \db('设备_报工日志')
                     ->where('id', $id)
                     ->where('name', $name)
+                    ->whereNull('Mod_rq')
                     ->fetchSql(true)
                     ->update(['number' => $newQty]);
 
@@ -2729,6 +2760,7 @@ class WorkOrder extends Api
             $sameBatchList = \db('设备_报工日志')
                 ->field('number')
                 ->where('name', $name)
+                ->whereNull('Mod_rq')
                 ->where('批次号', $batchNo)
                 ->select();
 

+ 158 - 72
application/api/controller/WorkOrderSpotCheck.php

@@ -2586,8 +2586,8 @@ class WorkOrderSpotCheck extends Api{
                 '关联号'   => $item['关联编号'],
                 '物料编号' => $item['物料编码'],
                 '物料名称' => $item['物料名称'],
-                '领用数量' => intval($Inventory['领用数量']) + intval($item['number']),
-                '库存数量' => intval($Inventory['库存数量']) - intval($item['number']),
+                '领用数量' => $Inventory['领用数量'] + $item['number'],
+                '库存数量' => $Inventory['库存数量'] - $item['number'],
                 '实际门幅' => $item['实际门幅'],
                 '单位'     => $item['单位'],
                 '状态'     => 1,
@@ -2663,90 +2663,174 @@ class WorkOrderSpotCheck extends Api{
         if (!$this->request->isPost()) {
             $this->error('请求错误');
         }
+
         $param = Request::instance()->post();
         if (empty($param)) {
             $this->error('参数错误');
         }
-            foreach ($param as $item) {
-                // 查询是否已存在批次号
-                $BatchNumber = \db('物料_库存')
-                    ->where('物料编号', $item['物料编码'])
-                    ->where('关联号', $item['关联编号'])
-                    ->value('批次号');
-
-                // 生成批次号
-                if (empty($BatchNumber)) {
-                    $LastNumber = \db('物料_库存')->order('批次号 DESC')->value('批次号');
-                    $BatchNumber = !empty($LastNumber) ? 'PCH' . ((int)substr($LastNumber, 3) + 1) : 'PCH1';
-
-                    // 物料_库存
-                    $InventoryData = [
-                        '批次号'   => $BatchNumber,
-                        '关联号'   => $item['关联编号'],
-                        '物料编号' => $item['物料编码'],
-                        '物料名称' => $item['物料名称'],
-                        '入仓总量' => $item['number'],
-                        '库存数量' => $item['number'],
-                        '单位'     => $item['单位'],
-                        '实际门幅' => $item['实际门幅'],
-                        '状态'     => 1,
-                        'departname'        => $item['departname'],
-                        'remark' => isset($item['remark']) ? $item['remark'] : '',
-                        'sys_id'   => $item['sys_id'],
-                        'sys_rq'   => date('Y-m-d H:i:s'),
-                    ];
-                    $sql = \db('物料_库存')->fetchSql(true)->insert($InventoryData);
-                    \db()->query($sql);
-                } else {
-                    // 更新库存数据
-                    $Inventory = \db('物料_库存')
-                        ->where('批次号', $BatchNumber)
-                        ->field('入仓总量,库存数量')
-                        ->find();
-                    $InventoryData = [
-                        '批次号'   =>  $item['批次号'],
-                        '关联号'   => $item['关联编号'],
-                        '物料编号' => $item['物料编码'],
-                        '物料名称' => $item['物料名称'],
-                        '入仓总量' => $Inventory['入仓总量'] + $item['number'],
-                        '库存数量' => $Inventory['库存数量'] + $item['number'],
-                        '实际门幅' => $item['实际门幅'],
-                        '单位'     => $item['单位'],
-                        '状态'     => 1,
-                        'departname'        => $item['departname'],
-                        'remark' => isset($item['remark']) ? $item['remark'] : '',
-                        'sys_id'   => $item['sys_id'],
-                        'sys_rq'   => date('Y-m-d H:i:s'),
-                    ];
-                    $sql = \db('物料_库存')->fetchSql(true)->where('批次号',$BatchNumber)->update($InventoryData);
-                    \db()->query($sql);
-                }
 
-                // 记录入库报工日志
-                $ReportData = [
+        // 获取当前最大批次号
+        $lastBatch = \db('物料_库存')
+            ->field("批次号")
+            ->orderRaw("CAST(SUBSTRING(批次号, 4) AS UNSIGNED) DESC")
+            ->limit(1)
+            ->value('批次号');
+
+        $currentNumber = 0;
+        if (!empty($lastBatch) && preg_match('/^PCH(\d+)$/i', $lastBatch, $match)) {
+            $currentNumber = intval($match[1]);
+        }
+
+        foreach ($param as $item) {
+            // 查找是否已有相同物料编号 + 关联号的库存记录
+            $existingBatch = \db('物料_库存')
+                ->where('物料编号', $item['物料编码'])
+                ->whereNull('Mod_rq')
+                ->where('关联号', $item['关联编号'])
+                ->value('批次号');
+
+            if ($existingBatch) {
+                $BatchNumber = $existingBatch; // 已入库,使用原批次号
+            } else {
+                // 生成新批次号
+                $currentNumber++;
+                $BatchNumber = 'PCH' . $currentNumber;
+
+                // 插入库存表
+                $InventoryData = [
                     '批次号'       => $BatchNumber,
-                    'order_id'     => $item['order_id'],
-                    '款号'     => $item['款号'],
-                    '物料编码'     => $item['物料编码'],
+                    '关联号'       => $item['关联编号'],
+                    '物料编号'     => $item['物料编码'],
                     '物料名称'     => $item['物料名称'],
+                    '入仓总量'     => $item['number'],
                     '库存数量'     => $item['number'],
-                    'number'       => $item['number'],
-                    'rq'          => $item['rq'],
-                    'name'         => $item['name'],
+                    '单位'         => $item['单位'],
+                    '实际门幅'     => $item['实际门幅'],
+                    '状态'         => 1,
+                    'departname'   => $item['departname'],
+                    'remark'       => isset($item['remark']) ? $item['remark'] : '',
                     'sys_id'       => $item['sys_id'],
-                    'receipt_number' => $item['receipt_number'],
-                    'departname'        => $item['departname'],
-                    'remark' => isset($item['remark']) ? $item['remark'] : '',
-                    '客户编号'     => $item['客户编号'],
-                    '款式'        => $item['款式'],
-                    'sys_rq'      => date('Y-m-d H:i:s'),
+                    'sys_rq'       => date('Y-m-d H:i:s'),
                 ];
-                $sql = \db('设备_报工日志')->fetchSql(true)->insert($ReportData);
+                $sql = \db('物料_库存')->fetchSql(true)->insert($InventoryData);
                 \db()->query($sql);
             }
-            $this->success('成功');
+
+            // 每条都写一条报工日志
+            $ReportData = [
+                '批次号'         => $BatchNumber,
+                'order_id'       => $item['order_id'],
+                '款号'           => $item['款号'],
+                '物料编码'       => $item['物料编码'],
+                '物料名称'       => $item['物料名称'],
+                '库存数量'       => $item['number'],
+                'number'         => $item['number'],
+                'rq'             => $item['rq'],
+                'name'           => $item['name'],
+                'sys_id'         => $item['sys_id'],
+                'receipt_number' => $item['receipt_number'],
+                'departname'     => $item['departname'],
+                'remark'         => isset($item['remark']) ? $item['remark'] : '',
+                '客户编号'       => $item['客户编号'],
+                '款式'           => $item['款式'],
+                'sys_rq'         => date('Y-m-d H:i:s'),
+            ];
+            $sql = \db('设备_报工日志')->fetchSql(true)->insert($ReportData);
+            \db()->query($sql);
+        }
+
+        $this->success('成功');
     }
 
+//    public function inputStash()
+//    {
+//        if (!$this->request->isPost()) {
+//            $this->error('请求错误');
+//        }
+//        $param = Request::instance()->post();
+//        if (empty($param)) {
+//            $this->error('参数错误');
+//        }
+//            foreach ($param as $item) {
+//                // 查询是否已存在批次号
+//                $BatchNumber = \db('物料_库存')
+//                    ->where('物料编号', $item['物料编码'])
+//                    ->where('关联号', $item['关联编号'])
+//                    ->value('批次号');
+//
+//                // 生成批次号
+//                if (empty($BatchNumber)) {
+//                    $LastNumber = \db('物料_库存')->order('批次号 DESC')->value('批次号');
+//                    $BatchNumber = !empty($LastNumber) ? 'PCH' . ((int)substr($LastNumber, 3) + 1) : 'PCH1';
+//
+//                    // 物料_库存
+//                    $InventoryData = [
+//                        '批次号'   => $BatchNumber,
+//                        '关联号'   => $item['关联编号'],
+//                        '物料编号' => $item['物料编码'],
+//                        '物料名称' => $item['物料名称'],
+//                        '入仓总量' => $item['number'],
+//                        '库存数量' => $item['number'],
+//                        '单位'     => $item['单位'],
+//                        '实际门幅' => $item['实际门幅'],
+//                        '状态'     => 1,
+//                        'departname'        => $item['departname'],
+//                        'remark' => isset($item['remark']) ? $item['remark'] : '',
+//                        'sys_id'   => $item['sys_id'],
+//                        'sys_rq'   => date('Y-m-d H:i:s'),
+//                    ];
+//                    $sql = \db('物料_库存')->fetchSql(true)->insert($InventoryData);
+//                    \db()->query($sql);
+//                } else {
+//                    // 更新库存数据
+//                    $Inventory = \db('物料_库存')
+//                        ->where('批次号', $BatchNumber)
+//                        ->field('入仓总量,库存数量')
+//                        ->find();
+//                    $InventoryData = [
+//                        '批次号'   =>  $item['批次号'],
+//                        '关联号'   => $item['关联编号'],
+//                        '物料编号' => $item['物料编码'],
+//                        '物料名称' => $item['物料名称'],
+//                        '入仓总量' => $Inventory['入仓总量'] + $item['number'],
+//                        '库存数量' => $Inventory['库存数量'] + $item['number'],
+//                        '实际门幅' => $item['实际门幅'],
+//                        '单位'     => $item['单位'],
+//                        '状态'     => 1,
+//                        'departname'        => $item['departname'],
+//                        'remark' => isset($item['remark']) ? $item['remark'] : '',
+//                        'sys_id'   => $item['sys_id'],
+//                        'sys_rq'   => date('Y-m-d H:i:s'),
+//                    ];
+//                    $sql = \db('物料_库存')->fetchSql(true)->where('批次号',$BatchNumber)->update($InventoryData);
+//                    \db()->query($sql);
+//                }
+//
+//                // 记录入库报工日志
+//                $ReportData = [
+//                    '批次号'       => $BatchNumber,
+//                    'order_id'     => $item['order_id'],
+//                    '款号'     => $item['款号'],
+//                    '物料编码'     => $item['物料编码'],
+//                    '物料名称'     => $item['物料名称'],
+//                    '库存数量'     => $item['number'],
+//                    'number'       => $item['number'],
+//                    'rq'          => $item['rq'],
+//                    'name'         => $item['name'],
+//                    'sys_id'       => $item['sys_id'],
+//                    'receipt_number' => $item['receipt_number'],
+//                    'departname'        => $item['departname'],
+//                    'remark' => isset($item['remark']) ? $item['remark'] : '',
+//                    '客户编号'     => $item['客户编号'],
+//                    '款式'        => $item['款式'],
+//                    'sys_rq'      => date('Y-m-d H:i:s'),
+//                ];
+//                $sql = \db('设备_报工日志')->fetchSql(true)->insert($ReportData);
+//                \db()->query($sql);
+//            }
+//            $this->success('成功');
+//    }
+
 
     /**
      * 出库订单信息查询
@@ -2833,6 +2917,7 @@ class WorkOrderSpotCheck extends Api{
                 ->where('批次号', $item['批次号'])
                 ->where('关联号', $item['关联编号'])
                 ->where('物料编号', $item['物料编码'])
+                ->whereNull('Mod_rq')
                 ->field('库存数量, 退还数量')
                 ->find();
 
@@ -2869,6 +2954,7 @@ class WorkOrderSpotCheck extends Api{
                 ->where('批次号',$item['批次号'])
                 ->where('关联号',$item['关联编号'])
                 ->where('物料编号',$item['物料编码'])
+                ->whereNull('Mod_rq')
                 ->fetchSql(true)
                 ->update($inventoryData);
             \db()->query($InventorySql);