zhanglinxin 1 year ago
parent
commit
9494aa4b6c

+ 16 - 1
application/api/controller/Approve.php

@@ -53,6 +53,21 @@ class Approve extends Base
      *     @Apidoc\Returned("userid", type="string", desc="用户userid"),
      *     @Apidoc\Returned("name", type="string", desc="用户姓名"),
      * )
+     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
+     *     @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
+     *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
+     *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
+     * )
+     * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
+     *     @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
+     *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
+     *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
+     * )
+     * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
+     *     @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
+     *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
+     *     @Apidoc\Returned("name", type="string", desc="姓名"),
+     * )
      */
     public function get_list()
     {
@@ -113,7 +128,7 @@ class Approve extends Base
     {
         $id = input('approve_id');
         $status = input('status');
-        $remark = input('remark');
+        $remark = input('remark','');
         $params = compact("id", "status", "remark");
         $user = $this->user;
         ApproveService::make($id, $params, $user, 'audit');

+ 18 - 3
application/api/controller/Approveinfo.php

@@ -169,11 +169,16 @@ class Approveinfo extends Base
      *          @Apidoc\Returned("name", type="string", desc="用户姓名"),
      *      ),
      * )
-     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1",
+     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
      *     @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
      *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
      *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
      * )
+     * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
+     *     @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
+     *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
+     *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
+     * )
      * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
      *     @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
      *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
@@ -254,12 +259,17 @@ class Approveinfo extends Base
      *     @Apidoc\Returned("dept_id", type="string", desc="部门ID"),
      *     @Apidoc\Returned("name", type="string", desc="部门名称"),
      * )
-     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1",
+     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
      *     @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
      *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
      *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
      *     @Apidoc\Returned("total_amount", type="string", desc="总金额"),
      * )
+     * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
+     *     @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
+     *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
+     *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
+     * )
      * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
      *     @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
      *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
@@ -300,12 +310,17 @@ class Approveinfo extends Base
      *     @Apidoc\Returned("document_text", type="array", desc="附件列表"),
      *     @Apidoc\Returned("images_text", type="array", desc="图片列表"),
      * )
-     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1",
+     * @Apidoc\Returned("apply_goods", type="array", desc="申购商品列表 module=1 && type=1",
      *     @Apidoc\Returned("id", type="integer", desc="申购商品ID"),
      *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
      *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
      *     @Apidoc\Returned("total_amount", type="string", desc="总金额"),
      * )
+     * @Apidoc\Returned("stock_goods", type="array", desc="入库商品列表 module=3",
+     *     @Apidoc\Returned("id", type="integer", desc="入库商品ID"),
+     *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),
+     *     @Apidoc\Returned("goods_name", type="string", desc="商品名称"),
+     * )
      * @Apidoc\Returned("peer_user", type="array", desc="同行人员列表 module=5",
      *     @Apidoc\Returned("id", type="integer", desc="同行人员ID"),
      *     @Apidoc\Returned("info_id", type="integer", desc="申请ID"),

+ 6 - 0
application/common/model/ApproveInfo.php

@@ -54,6 +54,12 @@ class ApproveInfo extends Model
         return $this->hasMany(ApplyGoods::class, 'info_id', 'id');
     }
 
+    // 关联入库商品 (我的申请记录 详情/信息)
+    public function stockGoods()
+    {
+        return $this->hasMany(StockGoods::class, 'info_id', 'id');
+    }
+
     // 关联出差同行人员 (我的申请记录 详情/信息)
     public function peerUser()
     {

+ 57 - 2
application/common/service/ApproveInfoService.php

@@ -349,7 +349,7 @@ class ApproveInfoService
                         'goods_name' => $goods_info['goods_name'],
                         'goods_brand' => $goods_info['goods_brand'],
                         'total_price' => $total_price,
-                        'goods_data' => json_encode($goods_stock_data, JSON_UNESCAPED_UNICODE),
+                        'goods_stock' => json_encode($goods_stock_data, JSON_UNESCAPED_UNICODE),
                     ];
                     $total_amount = bcadd($total_amount,$total_price,2);
                 } else {
@@ -416,8 +416,9 @@ class ApproveInfoService
                     ];
                 }
                 $goods_data['info_id'] = $info_id;
+                $goods_data['goods_id'] = $goods_id;
                 $goods_data['total_price'] = $total_price;
-                $goods_data['goods_data'] = json_encode($goods_stock_data, JSON_UNESCAPED_UNICODE);
+                $goods_data['goods_stock'] = json_encode($goods_stock_data, JSON_UNESCAPED_UNICODE);
                 $apply_goods_data[] = $goods_data;
                 $total_amount = bcadd($total_amount,$total_price,2);
             }
@@ -622,6 +623,7 @@ class ApproveInfoService
         $field = 'id,info_id,status,approve_user';
         switch ($module) {
             case CommonConstant::MODULE_1:
+                // 申领商品列表
                 if (in_array($status, [CommonConstant::STATUS_2, CommonConstant::STATUS_4])) {
                     // 审批中或审批驳回 才关联 审批人信息
                     $list = $list->with([
@@ -647,8 +649,49 @@ class ApproveInfoService
                 }
                 break;
             case CommonConstant::MODULE_2:
+                if (in_array($status, [CommonConstant::STATUS_2, CommonConstant::STATUS_4])) {
+                    // 审批中或审批驳回 才关联 审批人信息
+                    $list = $list->with([
+                        'approveOne' => function ($query) use ($status, $field) {
+                            $query->field($field)
+                                ->where('status', $status)
+                                ->with([
+                                    'user' => function ($query) {
+                                        $query->field('userid,name');
+                                    }
+                                ]);
+                        }
+                    ]);
+                }
+                break;
             case CommonConstant::MODULE_3:
+                // 入库商品列表
+                if (in_array($status, [CommonConstant::STATUS_2, CommonConstant::STATUS_4])) {
+                    // 审批中或审批驳回 才关联 审批人信息
+                    $list = $list->with([
+                        'approveOne' => function ($query) use ($status, $field) {
+                            $query->field($field)
+                                ->where('status', $status)
+                                ->with([
+                                    'user' => function ($query) {
+                                        $query->field('userid,name');
+                                    }
+                                ]);
+                        },
+                        'stockGoods' => function ($query) {
+                            $query->field('id,info_id,goods_name');
+                        },
+                    ]);
+                } else {
+                    $list = $list->with([
+                        'stockGoods' => function ($query) {
+                            $query->field('id,info_id,goods_name');
+                        },
+                    ]);
+                }
+            break;
             case CommonConstant::MODULE_4:
+                // 领用商品列表
                 if (in_array($status, [CommonConstant::STATUS_2, CommonConstant::STATUS_4])) {
                     // 审批中或审批驳回 才关联 审批人信息
                     $list = $list->with([
@@ -662,9 +705,12 @@ class ApproveInfoService
                                 ]);
                         }
                     ]);
+                }  else {
+
                 }
                 break;
             case CommonConstant::MODULE_5:
+                // 出差同行人员列表
                 if (in_array($status, [CommonConstant::STATUS_2, CommonConstant::STATUS_4])) {
                     // 审批中或审批驳回 才关联 审批人信息
                     $list = $list->with([
@@ -729,6 +775,15 @@ class ApproveInfoService
                     $info->apply_goods;
                 }
                 break;
+            case CommonConstant::MODULE_3:
+                if ($type == 'detail') {
+                    $info['stock_goods'] = $info->stockGoods()->field('id,info_id,goods_name,goods_data')->select();
+                } else {
+                    $info->stock_goods;
+                }
+                break;
+            case CommonConstant::MODULE_4:
+                break;
             case CommonConstant::MODULE_5:
                 if ($type == 'detail') {
                     $info['peer_user'] = $info->peerUser()->field('id,info_id,name')->select();

+ 25 - 0
application/common/service/ApproveService.php

@@ -155,8 +155,10 @@ class ApproveService
     public static function get_array($list)
     {
         $apply_goods_info_ids = [];
+        $stock_goods_info_ids = [];
         $peer_user_info_ids = [];
         $apply_goods_list = [];
+        $stock_goods_list = [];
         $peer_user_list = [];
         foreach ($list as $value) {
             $module = $value['module'];
@@ -166,6 +168,9 @@ class ApproveService
                         $apply_goods_info_ids[] = $value['info_id'];
                     }
                     break;
+                case CommonConstant::MODULE_3:
+                    $stock_goods_info_ids[] = $value['info_id'];
+                    break;
                 case CommonConstant::MODULE_5:
                     $peer_user_info_ids[] = $value['info_id'];
                     break;
@@ -177,6 +182,12 @@ class ApproveService
                 ->select()
                 ->toArray();
         }
+        if ($stock_goods_info_ids) {
+            $stock_goods_list = ApplyGoods::field('id,info_id,goods_name')
+                ->where('info_id', 'in', $stock_goods_info_ids)
+                ->select()
+                ->toArray();
+        }
         if ($peer_user_info_ids) {
             $peer_user_list = ApproveEvectionPeerUser::field('id,info_id,name')
                 ->where('info_id', 'in', $peer_user_info_ids)
@@ -186,6 +197,7 @@ class ApproveService
         foreach ($list as $value) {
             $module = $value['module'];
             $apply_goods = [];
+            $stock_goods = [];
             $peer_user = [];
             switch ($module) {
                 case CommonConstant::MODULE_1:
@@ -197,6 +209,13 @@ class ApproveService
                         }
                     }
                     break;
+                case CommonConstant::MODULE_3:
+                    foreach ($stock_goods_list as $val) {
+                        if ($value['info_id'] == $val['info_id']) {
+                            $stock_goods[] = $val;
+                        }
+                    }
+                    break;
                 case CommonConstant::MODULE_5:
                     foreach ($peer_user_list as $val) {
                         if ($value['info_id'] == $val['info_id']) {
@@ -206,6 +225,7 @@ class ApproveService
                     break;
             }
             $value['apply_goods'] = $apply_goods;
+            $value['stock_goods'] = $stock_goods;
             $value['peer_user'] = $peer_user;
         }
         return $list;
@@ -291,6 +311,11 @@ class ApproveService
             except('非待处理状态无法操作!');
         }
 
+        if($approve_info->module == CommonConstant::MODULE_3){
+            // TODO 入库商品列表
+            $approve_info->stock_goods;
+        }
+
         Db::startTrans();
         try {
             switch ($type) {