liuhairui 9 hónapja
szülő
commit
b40ab60068
1 módosított fájl, 69 hozzáadás és 17 törlés
  1. 69 17
      application/api/controller/WorkOrder.php

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

@@ -2436,7 +2436,35 @@ class WorkOrder extends Api
 
 
     /**
-     * 面料库存
+     * 面料库存月份查询
+     */
+    public function fabricListmonth()
+    {
+        // 使用DATE_FORMAT函数提取年月部分,格式为 "YYYY-MM"
+        $list = \db('工单_bom资料')
+            ->alias('a')
+            ->join('工单_基本资料 b', 'b.订单编号 = a.BOM_工单编号')
+            ->field('DATE_FORMAT(a.Sys_rq, "%Y-%m") as date')  // 提取年月,格式化为 "YYYY-MM"
+            ->group('date')  // 对年月字段去重
+            ->select();
+
+        // 格式化返回的数据,生成期望的结构
+        $result = [];
+        foreach ($list as $item) {
+            $result[] = ['date' => $item['date']];  // 返回格式为 {"date": "YYYY-MM"}
+        }
+
+        if (!empty($result)) {
+            $this->success('成功', $result);  // 返回查询到的结果
+        } else {
+            $this->success('没有找到相关数据', []);  // 如果没有数据,返回空数组
+        }
+    }
+
+
+
+    /**
+     * 面料库存列表
      * @return void
      * @throws \think\db\exception\DataNotFoundException
      * @throws \think\db\exception\ModelNotFoundException
@@ -2444,32 +2472,56 @@ class WorkOrder extends Api
      */
     public function fabricList()
     {
-        if ($this->request->isGet() === false){
+        if ($this->request->isGet() === false) {
             $this->error('请求错误');
         }
+
         $param = $this->request->param();
         $where = [];
-        if (isset($param['order'])){
-            $where = ['a.BOM_工单编号'=>$param['order']];
+
+        // 根据传入的参数构造查询条件
+        if (isset($param['order'])) {
+            $where['a.BOM_工单编号'] = $param['order'];
         }
-        if (isset($param['mouth'])){
-            $where = ['a.Sys_rq'=>['like',$param['mouth'].'%']];
+
+        if (isset($param['mouth'])) {
+            $where['a.Sys_rq'] = ['like', $param['mouth'] . '%'];
         }
-        $list = \db('工单_bom资料')
+
+        // 分页参数,防止未传递时出错
+        $page = isset($param['page']) ? (int)$param['page'] : 1;
+        $limit = isset($param['limit']) ? (int)$param['limit'] : 20;  // 默认每页20条数据
+
+        // 获取数据
+        $data = \db('工单_bom资料')
             ->alias('a')
-            ->join('工单_基本资料 b','b.订单编号 = a.BOM_工单编号')
-//            ->field('a.BOM_工单编号 as 订单编号,b.生产款号 as 生产款号,b.客户编号 as 客户编号,b.款式 as 款式,
-//            a.BOM_物料名称 as 物料名称,a.BOM_投料单位 as 投料单位,a.BOM_库存总量 as 库存总量,a.BOM_面料结余 as 面料结余,
-//            a.UNIQID')
-            ->field('a.BOM_工单编号 as 订单编号,b.生产款号 as 生产款号,b.客户编号 as 客户编号,b.款式 as 款式,
-            a.BOM_物料名称 as 物料名称,a.BOM_投料单位 as 投料单位,a.BOM_计划用量 as 计划用料,a.BOM_标准用量 as 定额用料,
-            a.BOM_实际用量 as 裁床实际用料,a.BOM_领用数量 as 裁床领用面料,a.BOM_退还数量 as 裁床退回仓库面料,
-            a.BOM_desc as 备注,a.UNIQID,a.BOM_库存总量 as 入库总量,a.BOM_门封 as 门封,a.BOM_面料结余 as 面料结余,a.Sys_ID as ID,a.Sys_rq as 日期')
+            ->join('工单_基本资料 b', 'b.订单编号 = a.BOM_工单编号')
+            ->field('a.BOM_工单编号 as 订单编号, b.生产款号 as 生产款号, b.客户编号 as 客户编号, b.款式 as 款式,
+            a.BOM_物料名称 as 物料名称, a.BOM_投料单位 as 投料单位, a.BOM_计划用量 as 计划用料, a.BOM_标准用量 as 定额用料,
+            a.BOM_实际用量 as 裁床实际用料, a.BOM_领用数量 as 裁床领用面料, a.BOM_退还数量 as 裁床退回仓库面料,
+            a.BOM_desc as 备注, a.UNIQID, a.BOM_库存总量 as 入库总量, a.BOM_门封 as 门封, a.BOM_面料结余 as 面料结余, a.Sys_ID as ID, a.Sys_rq as 日期')
             ->where($where)
+            ->limit(($page - 1) * $limit, $limit)
             ->select();
-        if (!empty($list)){
-            $this->success('成功',$list);
+
+        // 获取数据总数
+        $count = \db('工单_bom资料')
+            ->alias('a')
+            ->join('工单_基本资料 b', 'b.订单编号 = a.BOM_工单编号')
+            ->where($where)
+            ->count();
+
+        // 如果查询到数据
+        if (!empty($data)) {
+            // 构建返回数据
+            $list = [
+                'total' => $count,  // 总数
+                'table' => $data    // 数据内容
+            ];
+            // 返回成功响应
+            $this->success('成功', $list);
         } else {
+            // 没有查询到数据
             $this->success('没有找到相关数据', []);
         }
     }