liuhairui il y a 8 mois
Parent
commit
1712d166c0
1 fichiers modifiés avec 39 ajouts et 34 suppressions
  1. 39 34
      application/api/controller/Facility.php

+ 39 - 34
application/api/controller/Facility.php

@@ -9,10 +9,9 @@ use think\Request;
 class Facility extends Api{
     protected $noNeedLogin = ['*'];
     protected $noNeedRight = ['*'];
-
-
     /**
      * 1.0查询子订单编号
+     * 通过订单编号查询对应子订单编号
      */
     public function Apiorderids() {
         if ($this->request->isGet() === false) {
@@ -31,6 +30,7 @@ class Facility extends Api{
 
     /**
      * 1.1查询订单号或生产款号
+     * 查询对应订单编号或生产款号
      */
     public function Apiorder() {
         if ($this->request->isGet() === false) {
@@ -49,6 +49,7 @@ class Facility extends Api{
 
     /**
      * 1.2查询新增基本信息
+     * 新增查询信息
      */
     public function queryOrderSize() {
         // 检查请求类型是否为GET
@@ -58,7 +59,7 @@ class Facility extends Api{
         $param = $this->request->param();
 
         //问题分类
-        $fetchCategory = \db('db_问题分类')->field('问题类型, classification as 分类名称')->select();
+        $fetchCategory = \db('db_问题分类')->field('问题类型, classification as 分类名称,num')->order('num desc')->select();
         $groupedCategories = [];
         // 遍历数据,将相同分类名称的问题类型归类
         foreach ($fetchCategory as $item) {
@@ -225,6 +226,7 @@ class Facility extends Api{
 
     /**
      * 1.3新增次品或返工
+     * 新增到设备_质量汇总表
      */
     public function ApiAddDefective(){
         if (!$this->request->isPost()) {
@@ -235,25 +237,25 @@ class Facility extends Api{
             $this->error('参数错误');
         }
         $res = \db('设备_质量汇总')->where('mod_rq', null)->order('status_num desc')->find();
-        //记录每次新增次数排序
-        $status_num = $res['status_num'];
+        //记录每次新增次数排序,判断是否有返回值,没有则从1开始
+        $status_num = isset($res['status_num']) ? $res['status_num'] : 1;
 
         // 构建单条记录的函数,传递 $list_gd 作为参数
         function buildRecords($item,$status_num) {
             // 拆分物料名称(假设格式为 面料分类-面料名称)
             $materialParts = explode('-', $item['物料名称']);
-            $materialCategory = isset($materialParts[0]) ? $materialParts[0] : '';  // 面料分类
-            $materialName = isset($materialParts[1]) ? $materialParts[1] : '';  // 面料名称
-
+            // 面料分类
+            $materialCategory = isset($materialParts[0]) ? $materialParts[0] : '';
+            // 面料名称
+            $materialName = isset($materialParts[1]) ? $materialParts[1] : '';
             // 获取最新的单据编号
             $resd = \db('设备_质量汇总')
                 ->field('单据编号')
                 ->where('mod_rq', null)
                 ->order('单据编号 desc')
                 ->find();
-
             // 获取当前日期
-            $currentDate = date('Ymd');  // 获取当前日期,格式为:20250327
+            $currentDate = date('Ymd');
             // 如果查询到最新的单据编号
             if ($resd) {
                 // 提取最新单据编号的日期和流水号部分
@@ -306,6 +308,24 @@ class Facility extends Api{
             // 处理单条记录
             $list[] = buildRecords($params,$status_num);
         }
+        // 插入前统计问题分类的使用次数
+        foreach ($list as $item) {
+            $category = $item['问题分类'];
+            // 查询满足 问题类型 + classification 的记录
+            $record = \db('db_问题分类')
+                ->where('问题类型', $category)
+                // 可选,防止 null 报错
+                ->whereNotNull('classification')
+                ->find();
+            if ($record) {
+                $newNum = intval($record['num']) + 1;
+                // 使用 update 替代 setInc,手动加1
+                $updateSql = \db('db_问题分类')->fetchSql(true)
+                    ->where('id', $record['id']) // 建议用主键精确定位
+                    ->update(['num' => $newNum]);
+                \db()->query($updateSql);
+            }
+        }
         $result = \db('设备_质量汇总')->insertAll($list);
         if ($result) {
             $this->success('数据插入成功 : ' . date('H:i:s'));
@@ -331,7 +351,9 @@ class Facility extends Api{
             ->group('Sys_rq')
             ->select();
         if (empty($list)) {
-            $this->error('未查询到数据');
+            $this->success('成功', '');
+            return;
+            //$this->error('未查询到数据');
         }
         // 用于存储按年和月分类的数据
         $data = [];
@@ -373,7 +395,7 @@ class Facility extends Api{
             $where['状态'] = $params['code'];
         }
         if (!empty($params['search'])) {
-            $where['单据编号|订单编号|生产款号|面料名称|面料分类|颜色|问题分类|款式'] = ['like', '%' . $params['search'] . '%'];
+            $where['单据编号|订单编号|生产款号|面料名称|面料分类|颜色|问题分类|款式|组别'] = ['like', '%' . $params['search'] . '%'];
         }
         // 处理日期查询(支持按天和按月)
         if (!empty($params['Sys_rq'])) {
@@ -466,13 +488,9 @@ class Facility extends Api{
             ->limit(($params['page'] - 1) * $params['limit'], $params['limit'])
             ->select();
         $this->success('获取成功', ['data' => $res, 'total' => count($res)]);
-
     }
 
 
-
-
-
     /**
      * 查询获取问题分类
      */
@@ -480,21 +498,17 @@ class Facility extends Api{
         if (!$this->request->isGet()) {
             $this->error('请求错误');
         }
-
         $params = $this->request->param();
-        $where = ['mod_rq' => null]; // 仅查询未被删除的数据
-
+        // 仅查询未被删除的数据
+        $where = ['mod_rq' => null];
         // 允许通过问题类型进行搜索
         if (!empty($params['search'])) {
             $where['问题类型'] = ['like', '%' . $params['search'] . '%'];
         }
-
         $data = \db('db_问题分类')->where($where)->order('update_time desc')->select();
-
         if (!$data) {
             $this->error('未查询到数据');
         }
-
         $this->success('获取成功', ['data' => $data, 'total' => count($data)]);
     }
 
@@ -505,25 +519,20 @@ class Facility extends Api{
         if (!$this->request->isPost()) {
             $this->error('非法请求');
         }
-
         $params = $this->request->param();
-
         if (empty($params['问题类型'])) {
             $this->error('问题类型不能为空');
         }
-
         $insertData = [
             '问题类型' => $params['问题类型'],
             'sys_id' => $params['sys_id'],
             'classification' => $params['classification'],
             'Sys_rq' => date('Y-m-d H:i:s')
         ];
-
         $sql = \db('db_问题分类')
             ->fetchSql(true)
             ->insert($insertData);
         $res = \db()->query($sql);
-
         $this->success('添加成功');
     }
 
@@ -534,7 +543,6 @@ class Facility extends Api{
         if (!$this->request->isPost()) {
             $this->error('非法请求');
         }
-
         $params = $this->request->param();
         if (empty($params['id'])) {
             $this->error('ID 不能为空');
@@ -563,6 +571,7 @@ class Facility extends Api{
     }
 
     /**
+     * 设备_基本资料
      * 更新机台设备
      */
     public function updateMachineDeviceTypes() {
@@ -594,6 +603,7 @@ class Facility extends Api{
     }
 
     /**
+     * 新增设备_基本资料
      * 新增机台设备
      */
     public function addMachineDeviceTypes() {
@@ -601,7 +611,6 @@ class Facility extends Api{
             $this->error('非法请求');
         }
         $params = $this->request->param();
-
         // 生产工序与工序号的映射
         $processMapping = [
             '裁剪' => 2,
@@ -612,7 +621,6 @@ class Facility extends Api{
             '包装' => 7,
         ];
         $productionProcess = $params['生产工序'] ?? '';
-
         $UniqId = \db('设备_基本资料')
             ->field('UniqId')
             ->order('UniqId desc')
@@ -643,7 +651,6 @@ class Facility extends Api{
     /**
      * 订单状态更新
      */
-
     public function Apigdstatus() {
         if (!$this->request->isPost()) {
             $this->error('非法请求');
@@ -669,6 +676,7 @@ class Facility extends Api{
         }
         $this->success('订单状态更新成功');
     }
+
     /**
      * 产品BOM资料
      */
@@ -712,7 +720,6 @@ class Facility extends Api{
             ->where('a.Mod_rq',null)
             ->limit(($page - 1) * $limit, $limit)
             ->select();
-
         // 处理数据,去掉计划用料字段的小数点后多余的0
         foreach ($bomlist as &$item) {
             // 转换为浮点数,去掉无意义的 0
@@ -720,8 +727,6 @@ class Facility extends Api{
         }
         // 解除引用,防止意外修改
         unset($item);
-
-        //统计总数量
         $count = Db::name('工单_bom资料')
             ->where('Mod_rq',null)
             ->count();