Browse Source

给pc的打印维保订单

lizhen_gitee 2 weeks ago
parent
commit
01f2b6647b

+ 3 - 1
application/common/controller/Apic.php

@@ -15,11 +15,12 @@ use think\Route;
 use think\Validate;
 use Redis;
 use app\utils\LogUtil;
+use think\Controller;
 
 /**
  * API控制器基类
  */
-class Apic
+class Apic extends Controller
 {
 
     /**
@@ -78,6 +79,7 @@ class Apic
      */
     public function __construct(Request $request = null)
     {
+        parent::__construct();//有了这一句,才有了模板
         $this->request = is_null($request) ? Request::instance() : $request;
 
         if(config('site.apisite_switch') == 0){

+ 99 - 2
application/company/controller/Maintain.php

@@ -280,6 +280,96 @@ class Maintain extends Apic
         $this->success(1,$rs);
     }
 
+    /**
+     * 查看导出
+     */
+    public function showinfo(){
+        $id = input('id',0);
+
+        $info = Db::name('maintain')->alias('mt')
+            ->join('user_company uc','mt.uc_id = uc.id','LEFT')
+            ->join('user','mt.user_id = user.id','LEFT')
+            ->join('worker','mt.worker_id = worker.id','LEFT')
+            ->join('company','mt.company_id = company.id','LEFT')
+            ->field('mt.*,uc.projectname,uc.header,uc.header_mobile,uc.projectaddress,user.nickname as user_nickname,user.mobile as user_mobile,worker.truename as worker_truename,worker.mobile as worker_mobile,company.companyname')
+            ->where('mt.id',$id)
+            ->find();
+
+        if(empty($info)){
+            echo '没找到订单';
+            exit;
+        }
+
+        if($info['company_id'] != $this->auth->company_id){
+            echo '没找到订单';
+            exit;
+        }
+
+        $maintain_model = new Maintainmodel();
+        $info['status_text'] = $maintain_model->status_data($info['status']);
+
+        //pc用户,已流转订单,直接显示流转中
+        if($info['company_id'] != 1 && in_array($info['status'],[0,20,22,30,40]) && $info['liuzhuan_status'] == 1){
+            $info['status_text'] = '流转中';
+        }
+
+        $info['status_colorType'] = $maintain_model->status_colorType($info['status']);
+
+        //假状态
+        $info['fake_status']      = $this->fake_status($info['status']);
+        $info['fake_status_text'] = $this->fake_status_data($info['status']);
+
+        $info['filedata'] = json_decode($info['filedata'],true);
+
+        //追加报价历史
+        $baojia = Db::name('maintain_baojia')->alias('bj')
+            ->field('bj.*,admin.nickname as baojia_nickname,audit.nickname as baojia_audit_nickname')
+            ->join('pc_admin admin','bj.baojia_staffid = admin.id','LEFT')
+            ->join('pc_admin audit','bj.baojia_audit_staffid = audit.id','LEFT')
+            ->where('order_id',$id)->order('id desc')->select();
+        if(!empty($baojia)){
+            foreach($baojia as $key => $val){
+                $baojia[$key]['status_text'] = $maintain_model->baojia_status_data($val['status']);
+            }
+        }
+        $info['baojia_list'] = $baojia;
+
+        //追加材料列表
+        $info['cailiao_list'] = Db::name('maintain_cailiao')->field('id,name,number,danwei,images')->where('order_id',$id)->order('id desc')->select();
+
+        //追加多次维修+对应进度历史
+        $last_jindulist = [];
+        $new_jindulist = [];
+        $jindu_list = Db::name('maintain_jindu')->alias('jd')
+            ->join('worker','jd.worker_id = worker.id','LEFT')
+            ->field('jd.id,jd.worker_id,jd.weixiu_times,jd.title,jd.images,jd.createtime,worker.avatar,worker.truename')
+            ->where('jd.order_id',$id)
+            ->order('jd.id desc')->select();
+        if(!empty($jindu_list)){
+            for($i=$jindu_list[0]['weixiu_times'];$i>=1;$i--){
+                foreach($jindu_list as $key => $val){
+                    if($i == $val['weixiu_times']){
+                        $new_jindulist[$i][] = $val;
+                    }
+                }
+            }
+            foreach($new_jindulist as $key => $val){
+                $last_jindulist[] = [
+                    'title' => '第'.$val[0]['weixiu_times'].'次',
+                    'child' => $val
+                ];
+            }
+        }
+        $info['jindu'] = $last_jindulist;
+
+        $this->assign('info', $info);
+//        dump($info);exit;
+        return $this->fetch();
+
+//        $this->view->assign('info','ffff');
+//        return $this->view->fetch();
+    }
+
     //整合过的状态
     private function fake_status_data($status){
         $data = [
@@ -342,6 +432,10 @@ class Maintain extends Apic
             ->where('mt.id',$id)
             ->find();
 
+        if($info['company_id'] != $this->auth->company_id){
+            $this->error('没找到订单');
+        }
+
         $maintain_model = new Maintainmodel();
         $info['status_text'] = $maintain_model->status_data($info['status']);
 
@@ -487,7 +581,10 @@ class Maintain extends Apic
             Db::rollback();
             $this->error('没找到该信息,请刷新重试');
         }
-
+        if($info['company_id'] != $this->auth->company_id){
+            Db::rollback();
+            $this->error('没找到该信息,请刷新重试');
+        }
         if($baojia_info['status'] != 20){
             Db::rollback();
             $this->error('状态错误不能审核,请刷新重试');
@@ -649,7 +746,7 @@ class Maintain extends Apic
             'price'  => $price,
             'updatetime' => time(),
         ];
-        $rs_update = Db::name($this->table)->where('id',$id)->update($update);
+        $rs_update = Db::name($this->table)->where('id',$id)->where('company_id',$this->auth->company_id)->update($update);
 
         $this->success();
     }

+ 175 - 0
application/company/view/maintain/showinfo.html

@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>维保订单</title>
+    {include file="common/meta" /}
+</head>
+<style>
+    /* 默认情况下,屏幕上显示 */
+    .dayin {
+        display: block;
+        text-align: right;
+        margin-bottom: 20px;
+        padding-top: 20px;
+    }
+
+    .table-bordered {
+        border: 1px solid #ddd;
+    }
+    .panel-heading {
+        padding: 10px 0px;
+    }
+
+    .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td {
+        border: 1px solid #ddd;
+    }
+
+    /* 打印时隐藏 */
+    @media print {
+        .hide-on-print {
+            display: none;
+        }
+    }
+</style>
+
+<body  style="width: 760px;margin: 0 auto">
+
+<div class="hide-on-print dayin">
+    <button type="button" onclick="printPage()" class="btn btn-primary dropdown-toggle">打印</button>
+</div>
+
+<table class="table table-striped table-bordered table-hover table-nowrap">
+
+    <tr>
+        <th colspan="4">报修信息</th>
+    </tr>
+    <tr>
+        <td>订单编号</td><td>{$info.orderno}</td>
+        <td>项目名称</td><td>{$info.projectname}</td>
+    </tr>
+    <tr>
+        <td>公司名</td><td>{$info.companyname}</td>
+        <td>项目负责人</td><td>{$info.header}</td>
+    </tr>
+    <tr>
+        <td>订单状态</td><td>{$info.status_text}</td>
+        <td>项目地址</td><td>{$info.projectaddress}</td>
+    </tr>
+    <tr>
+        <td>维修人员</td><td>{$info.worker_truename}<?php if($info['liuzhuan_status'] == 1){ ?> (流转)<?php } ?></td>
+        <td>维修人电话</td><td>{$info.worker_mobile}</td>
+    </tr>
+    <tr>
+        <td>完成时间</td><td>{$info.finishtime|date="Y-m-d H:i:s",###}</td>
+        <td>报价金额</td><td>{$info.price}</td>
+    </tr>
+    <tr>
+        <td>报修人员</td><td>{$info.user_nickname}</td>
+        <td>报修人电话</td><td>{$info.user_mobile}</td>
+    </tr>
+    <tr>
+        <td>报修时间</td><td>{$info.createtime|date="Y-m-d H:i:s",###}</td>
+        <td>联系地址</td><td>{$info.address}</td>
+    </tr>
+    <tr>
+        <td>评价</td><td>{$info.eva_info}</td>
+        <td>评价分</td><td>{$info.eva_score}</td>
+    </tr>
+    <tr>
+        <td>报修内容</td><td colspan="3">{$info.info}</td>
+    </tr>
+
+    <tr>
+        <td>报修图片/视频</td>
+        <td colspan="3">
+            {volist name="$info['filedata']" id="vo"}
+                <?php if($vo['type'] == 'img') { ?>
+                    <div><img src="{$vo['url']}" width="100" height="100" /></div>
+                <?php }else{ ?>
+                    <div><video  poster="{$vo['images_thumb']}" width="100" height="100" controls><source src="{$vo['url']}" type="video/ogg"></video></div>
+            <?php } ?>
+            {/volist}
+        </td>
+    </tr>
+
+</table>
+{volist name="$info['baojia_list']" id="baojia"}
+<table class="table table-striped table-bordered table-hover table-nowrap">
+    <tr>
+        <th colspan="4">评估报价 第<?php echo count($info['baojia_list']) - $key; ?>次</th>
+    </tr>
+    <tr>
+        <td>报价人</td><td>{$baojia.baojia_nickname}</td>
+        <td>报价时间</td><td>{$baojia.baojia_time|date="Y-m-d H:i:s",###}</td>
+    </tr>
+    <tr>
+        <td>报价文件</td>
+        <td colspan="3">
+            <?php if(!empty($baojia['baojia_file'])) { ?>
+                {$baojia.baojia_filename}<a class="hide-on-print" href="{$baojia.baojia_file}">下载</a>
+            <?php } ?>
+        </td>
+    </tr>
+    <tr>
+        <td>审核人</td><td>{$baojia.baojia_audit_nickname}</td>
+        <td>审核时间</td><td>{$baojia.baojia_audit_time}</td>
+    </tr>
+    <tr>
+        <td>审核原因</td><td>{$baojia.baojia_audit_reason}</td>
+        <td>报价状态</td><td>{$baojia.status_text}</td>
+    </tr>
+</table>
+{/volist}
+<table class="table table-striped table-bordered table-hover table-nowrap">
+    <tr>
+        <th colspan="8">领取材料</th>
+    </tr>
+    {volist name="$info['cailiao_list']" id='cailiao'}
+    <tr>
+        <td>材料</td><td>{$cailiao.name}</td>
+        <td>数量</td><td>{$cailiao.number}</td>
+        <td>单位</td><td>{$cailiao.danwei}</td>
+        <td>图片</td>
+        <td>
+            <?php
+            if(!empty($cailiao['images'])){
+                $cailiao['images'] = explode(',',$cailiao['images']);
+                foreach($cailiao['images'] as $cik => $civ){
+            ?>
+            <img href="{$civ}" src="{$civ}" height="50" width="50">
+            <?php }} ?>
+        </td>
+    </tr>
+    {/volist}
+</table>
+{volist name="$info['jindu']" id="jd"}
+<table class="table table-striped table-bordered table-hover table-nowrap">
+    <tr>
+        <th colspan="3">维修进度 {$jd.title}</th>
+    </tr>
+    {volist name="$jd['child']" id="child"}
+    <tr>
+        <td><img src="{$child.avatar}" height="50" width="50"> {$child.truename} {$child.createtime|date="Y-m-d H:i:s",###}</td>
+        <td>
+            {$child.title}
+        </td>
+
+        <td>
+            <?php
+            if(!empty($child['images'])){
+                $child['images'] = explode(',',$child['images']);
+                foreach($child['images'] as $cik => $civ){
+            ?>
+            <img href="{$civ}" src="{$civ}" height="50" width="50">
+            <?php }} ?>
+        </td>
+    </tr>
+    {/volist}
+</table>
+{/volist}
+
+
+{include file="common/script" /}
+
+</body>
+</html>