unknown 7 месяцев назад
Родитель
Сommit
993a124f1f
1 измененных файлов с 98 добавлено и 12 удалено
  1. 98 12
      application/api/controller/PrintingPlate.php

+ 98 - 12
application/api/controller/PrintingPlate.php

@@ -90,9 +90,85 @@ class PrintingPlate extends Api
      * @throws \think\db\exception\ModelNotFoundException
      * @throws \think\exception\DbException
      */
+//    public function MaterailCodeList()
+//    {
+//
+//        if (!$this->request->isGet()) {
+//            $this->error('请求错误');
+//        }
+//        $params = $this->request->param();
+//        if (empty($params)) {
+//            $this->error('参数错误');
+//        }
+//
+//        $page = intval($params['page']);
+//        $limit = intval($params['limit']);
+//        $where = [];
+//        if (!empty($params['code'])) {
+//            $code = preg_match('/[a-zA-Z]/', $params['code'])
+//                ? substr($params['code'], 0, 7)
+//                : substr($params['code'], 0, 6);
+//            $where['a.存货编码'] = ['like', $code . '%'];
+//        }
+//        if (!empty($params['key']) && isset($params['key'])) {
+//            $where['a.报废日期'] = '1900-01-01 00:00:00';
+//        }
+//        if (!empty($params['search'])) {
+//            $where['b.物料名称|c.Yb_工单编号'] = ['like', '%' . $params['search'] . '%'];
+//            $where['c.Yb_退还日期'] = null;
+//        }
+//        //总数
+//        $total = db('产品_印版库')
+//        ->alias('a')
+//        ->join('物料_存货编码 b', 'a.存货编码 = b.物料代码')
+//        ->join('工单_印版领用记录 c',
+//            'a.存货编码 = c.Yb_存货编码 AND a.供方批号 = c.Yb_供方批号',
+//            'LEFT')
+//        ->where($where)
+//        ->group('a.存货编码, a.供方批号')
+//        ->count();
+//
+//        $list = db('产品_印版库')
+//            ->alias('a')
+//            ->join('物料_存货编码 b', 'a.存货编码 = b.物料代码')
+//            ->join('工单_印版领用记录 c',
+//                'a.存货编码 = c.Yb_存货编码 AND a.供方批号 = c.Yb_供方批号',
+//                'LEFT')
+//            ->where($where)
+//            ->group('a.存货编码, a.供方批号')
+//            ->order('报废日期, a.存货编码')
+//            ->field([
+//                'rtrim(a.存货编码) as 存货编码',
+//                'rtrim(b.物料名称) as 物料名称',
+//                'rtrim(a.印版名称) as 印版名称',
+//                'rtrim(a.供方批号) as 供方批号',
+//                'DATE(a.制造日期) as 制造日期',
+//                "CASE
+//                WHEN a.报废日期 = '1900-01-01 00:00:00' THEN NULL
+//                ELSE DATE(a.报废日期)
+//            END as 报废日期",
+//                'a.原始印数',
+//                'a.考核印数',
+//                'a.UniqID',
+//                'CASE WHEN c.Yb_退还日期 IS NULL THEN c.UniqID ELSE NULL END as GDUID',
+//                'rtrim(a.Sys_id) as 创建用户',
+//                'a.Sys_rq as 创建日期',
+//                'a.Mod_rq as 修改时间',
+//                'SUM(c.Yb_印数) as 累计印数',
+//                "MAX(CASE WHEN c.Yb_领用日期 IS NOT NULL AND c.Yb_退还日期 IS NULL THEN c.Yb_工单编号 END) as 工单编号"
+//            ])
+//            ->limit(($page - 1) * $limit, $limit)
+//            ->select();
+//        if (empty($list)) {
+//            $this->error('未找到相关记录');
+//        }
+//        $this->success('查询成功', [
+//            'data' => $list,
+//            'total' => $total,
+//        ]);
+//    }
     public function MaterailCodeList()
     {
-
         if (!$this->request->isGet()) {
             $this->error('请求错误');
         }
@@ -117,17 +193,19 @@ class PrintingPlate extends Api
             $where['b.物料名称|c.Yb_工单编号'] = ['like', '%' . $params['search'] . '%'];
             $where['c.Yb_退还日期'] = null;
         }
-        //总数
+
+        // 总数查询
         $total = db('产品_印版库')
-        ->alias('a')
-        ->join('物料_存货编码 b', 'a.存货编码 = b.物料代码')
-        ->join('工单_印版领用记录 c',
-            'a.存货编码 = c.Yb_存货编码 AND a.供方批号 = c.Yb_供方批号',
-            'LEFT')
-        ->where($where)
-        ->group('a.存货编码, a.供方批号')
-        ->count();
+            ->alias('a')
+            ->join('物料_存货编码 b', 'a.存货编码 = b.物料代码')
+            ->join('工单_印版领用记录 c',
+                'a.存货编码 = c.Yb_存货编码 AND a.供方批号 = c.Yb_供方批号',
+                'LEFT')
+            ->where($where)
+            ->group('a.存货编码, a.供方批号')
+            ->count();
 
+        // 数据列表查询
         $list = db('产品_印版库')
             ->alias('a')
             ->join('物料_存货编码 b', 'a.存货编码 = b.物料代码')
@@ -150,15 +228,23 @@ class PrintingPlate extends Api
                 'a.原始印数',
                 'a.考核印数',
                 'a.UniqID',
-                'c.UniqID as GDUID',
+                "MAX(CASE 
+                WHEN c.Yb_退还日期 IS NULL 
+                THEN c.UniqID 
+                ELSE NULL 
+            END) as GDUID",
                 'rtrim(a.Sys_id) as 创建用户',
                 'a.Sys_rq as 创建日期',
                 'a.Mod_rq as 修改时间',
                 'SUM(c.Yb_印数) as 累计印数',
-                "MAX(CASE WHEN c.Yb_领用日期 IS NOT NULL AND c.Yb_退还日期 IS NULL THEN c.Yb_工单编号 END) as 工单编号"
+                "MAX(CASE 
+                WHEN c.Yb_领用日期 IS NOT NULL AND c.Yb_退还日期 IS NULL 
+                THEN c.Yb_工单编号 
+                END) as 工单编号"
             ])
             ->limit(($page - 1) * $limit, $limit)
             ->select();
+
         if (empty($list)) {
             $this->error('未找到相关记录');
         }