소스 검색

Merge remote-tracking branch 'origin/dev' into dev

Crazy 7 달 전
부모
커밋
e52b8e6255

+ 70 - 34
app/admin/controller/project/Cost.php

@@ -83,8 +83,6 @@ class Cost extends BaseController
             }
 
 
-            
-            
             //项目可见的权限
             $field = $this->Field->get_field_rules_new($this->uid);//获取当前登录的id
             //1全部-可查看可编辑,2全部-可查看,0与我有关
@@ -98,7 +96,7 @@ class Cost extends BaseController
                 $where2[] = ["entrust_approver", "=", $this->uid];
                 $where2[] = ["project_status", ">", 1];//大于立项
             }
-            
+
             $where3 =[];
             if (!empty($param['project_status'])) {
                 $where3[] = ['project_status', '=', $param['project_status']];
@@ -131,10 +129,10 @@ class Cost extends BaseController
             if (!empty($param['sent_review_unit_name'])) {
                 $where3[] = ['sent_review_unit_name', 'like', '%' . $param['sent_review_unit_name']. '%'];
             }
-            
+
             $where3[] = ["entrust_unit", "=", get_login_admin('unit_name')];
-            
-           
+
+
             $this->see_auth = $see_auth;
             $list = $this->model
                 ->where($where3)->where(function ($query) use ($where,$where2) {
@@ -160,13 +158,13 @@ class Cost extends BaseController
                         if (($item->province && $item->city && $item->area)) {
                             $item->project_region = $item->province . '-' . $item->city . '-' . $item->area;
                         }
-    
+
                         $item->creator = Db::name("admin")->where("id",$item->creator)->value("nickname");
-    
+
                         $item->self_id = $this->see_auth;
-    
+
                         //作业人
-    
+
                         $operate_team_names = null;
                         $operate_team_names_ids = explode(",", $item->operate_team);
                         for ($i = 0; $i < count($operate_team_names_ids); $i++) {
@@ -177,7 +175,7 @@ class Cost extends BaseController
                             $operate_team_names = $operate_team_names . $name;
                         }
                         $item->operate_team_names = $operate_team_names;
-    
+
                     });
 
 
@@ -319,16 +317,14 @@ class Cost extends BaseController
                 $param["entrust_second_approver_name"] = get_admin($param["entrust_second_approver"])["nickname"];
             }
             $param["entrust_approver_name"] = get_admin($param["entrust_approver"])["nickname"];
-            //送审
-            if(($param["sent_review_head"])&&!empty($param["sent_review_head"])){
-                $param["sent_review_head_name"] = get_admin($param["sent_review_head"])["nickname"];
-                $param["sent_review_unit"]=get_admin($param["sent_review_head"])["unit_name"];
-                $param["sent_review_unit_name"]=Db::name("department")->where("id",$param["sent_review_unit"])->value("title");
-                $param["sent_review_phone"] = get_admin($param["sent_review_head"])["mobile"];
-
-            }
-
 
+            //送审
+//            if(isset($param["sent_review_unit"]) && $param["sent_review_unit"] !== ""){
+//                $sent_review_unit =  Db::name("department")->where("id",$param["sent_review_unit"])->find();
+//                $sent_review_head =  Db::name("admin")->where("id",$sent_review_unit['leader_id'])->find();
+//                $param["sent_review_head_name"] = $sent_review_head["nickname"];
+//                $param["sent_review_phone"] = $sent_review_head["mobile"];
+//            }
 
             $param["project_status"] = 1;
             $param["maker_type"] = 1;
@@ -422,8 +418,7 @@ class Cost extends BaseController
 
             $handle = $this->Pushmessage->handleParam($param);//将财务,公司的信息与他分开
             $param = $handle['param'];//是项目的信息
-
-            // 检验完整性
+             // 检验完整性
             try {
                 validate(CostProjectValidate::class)->check($param);
             } catch (ValidateException $e) {
@@ -449,6 +444,13 @@ class Cost extends BaseController
                $param["entrust_second_approver_name"] = get_admin($param["entrust_second_approver"])["nickname"];
             }
 
+            //送审
+//            if(isset($param["sent_review_unit"]) && $param["sent_review_unit"] !== ""){
+//                $sent_review_unit =  Db::name("department")->where("id",$param["sent_review_unit"])->find();
+//                $sent_review_head =  Db::name("admin")->where("id",$sent_review_unit['leader_id'])->find();
+//                $param["sent_review_head_name"] = $sent_review_head["nickname"];
+//                $param["sent_review_phone"] = $sent_review_head["mobile"];
+//            }
 
             //提交后状态改变为2,待审批中
             $param["project_status"] = 2;
@@ -492,7 +494,7 @@ class Cost extends BaseController
 
                     "create_time" => time()
                 ];
-              //插入
+                //插入
                 ProjectAudit::create($auditData1);
                 $MsgData1 = [
                     "uid" => $auditData1["approver"],
@@ -515,9 +517,17 @@ class Cost extends BaseController
                     $handle['financial'] = array_merge($handle['financial'], $param['entrust_approver']);
                 }
                 if(empty($handle['proprietor'])){
-                    $handle['proprietor'] = (array)$param['sent_review_head'];
+                    if(isset($param['sent_review_head']) && $param['sent_review_head'] != ""){
+                        $handle['proprietor'] = (array)$param['sent_review_head'];
+                    }else{
+                        $handle['proprietor'] = (array)0;
+                    }
                 }else{
-                    $handle['proprietor'] = array_merge($handle['financial'], $param['sent_review_head']);
+                    if(isset($param['sent_review_head']) && $param['sent_review_head'] != ""){
+                        $handle['proprietor'] = array_merge($handle['financial'], $param['sent_review_head']);
+                    }else{
+                        $handle['proprietor'] = (array)0;
+                    }
                 }
                 // 发送消息,/项目id/发给的财务人员/公司人员都是int整数
                 $this->Pushmessage->pushMessage($insertGetId, $handle['financial'], $handle['company'],$handle["proprietor"]);
@@ -874,12 +884,13 @@ class Cost extends BaseController
 
 
             //财评送审
-            if(isset($detail["sent_review_head"])&&$detail.proprietor_status==0){
+            if(isset($detail["sent_review_head"]) && $detail.proprietor_status==0){
                 $param["sent_review_head_name"] = get_admin($param["sent_review_head"])["nickname"];
                 $param["sent_review_unit"]=get_admin($param["sent_review_head"])["unit_name"];
                 $param["sent_review_unit_name"]=Db::name("department")->where("id",$param["sent_review_unit"])->value("title");
                 $param["sent_review_phone"] = get_admin($param["sent_review_head"])["mobile"];//电话
             }
+
             //业主创建送审
             if(isset($detail["sent_review_head"])&&$detail.proprietor_status==3){
                 $param["sent_review_head_name"] = get_admin($detail["sent_review_head"])["nickname"];
@@ -1035,7 +1046,7 @@ class Cost extends BaseController
 
         return table_assign(0, '', $file_array);
     }
-    
+
 
     public function project_log($project_id)
     {
@@ -1056,7 +1067,7 @@ class Cost extends BaseController
                     ['unit_name', '=', $login_admin['unit_name']],
                 ];
             }
- 
+
         }
         // dump($where);
         $project_log = Db::name('ProjectLog')->where($where)
@@ -1075,7 +1086,7 @@ class Cost extends BaseController
                 }
             }
         }
-        
+
         $project_log = array_values($project_log);
         // dump($project_log);
         // View::assign('project_log', $project_log);
@@ -1197,11 +1208,11 @@ class Cost extends BaseController
                 $item->mobile = Db::name('admin')->where(['id' => $item->leader_id])->value('mobile');
             });
 
-//        halt($list);
         table_assign(0, '', $list);
     }
 
 
+
     //获取客户列表
     public function addConstructionPeople()
     {
@@ -1221,7 +1232,7 @@ class Cost extends BaseController
             } else {
                 $this->model->addConstructionPeople($param['data']);
             }
-            
+
             add_project_log('添加施工单位人员', $param['data']['id'], '添加施工单位人员');
         } else {
             $param = get_params();
@@ -1233,6 +1244,31 @@ class Cost extends BaseController
         }
     }
 
+    //获取业主列表
+    public function get_proprietor_list()
+    {
+        $param = get_params();
+        $where = array();
+        if (!empty($param['keywords'])) {
+            $where[] = ['id|title', 'like', '%' . $param['keywords'] . '%'];
+        }
+        $where = [
+            ["delete_time", "=", 0],
+            ["pid", "=", 0],
+            ["type", "=", 1],
+            ["entrust_unit", "=", get_admin($this->uid)['unit_name']]
+        ];
+
+        $rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
+        $list = $this->department->field('id,title,address,leader_id')->order('id asc')->where($where)->paginate($rows, false)
+            ->each(function ($item) {
+                $item->nickname = Db::name('admin')->where(['id' => $item->leader_id])->value('nickname');
+                $item->mobile = Db::name('admin')->where(['id' => $item->leader_id])->value('mobile');
+            });
+
+//        halt($list);
+        table_assign(0, '', $list);
+    }
 
     public function add_sent_review_unit()
     {
@@ -1253,7 +1289,7 @@ class Cost extends BaseController
                 add_project_log('移除送审单位成员', $param['data']['id'],  $param['data']["sent_review_head_name"], 5);
                 $this->model->addConstructionPeople($param['data']);
             }
-            
+
              add_project_log('新增送审单位成员', $param['data']['id'], '新增送审单位成员');
         } else {
             $param = get_params();
@@ -1265,7 +1301,7 @@ class Cost extends BaseController
         }
     }
 
-    
+
     //添加送审单位
     // public function add_sent_review_unit()
     // {
@@ -1425,7 +1461,7 @@ class Cost extends BaseController
             "construction_phone" => null
         ];
         $this->model->where("id", $p["project_id"])->update($data);
-        
+
         add_project_log('删除施工方人员', $p["project_id"], '删除施工方人员');
         return to_assign(0, "操作成功");
 

+ 80 - 25
app/admin/controller/project/CostCompany.php

@@ -1244,7 +1244,6 @@ class CostCompany extends BaseController
     public function add_user_company_type2()
     {
 
-
         $param = get_params();
         $handle = $this->Pushmessage->handleParam($param);
         $param = $handle['param'];
@@ -1317,6 +1316,11 @@ class CostCompany extends BaseController
 
 
     public function add_entrust_people(){
+
+        $param = get_params();
+        $handle = $this->Pushmessage->handleParam($param);
+        $param = $handle['param'];
+
         if (request()->isAjax()) {
             $param = get_params();
             $id = isset($param["id"])?$param["id"]:0;
@@ -1341,23 +1345,40 @@ class CostCompany extends BaseController
 
     public function add_sent_review_unit()
     {
+        $param = get_params();
+        $handle = $this->Pushmessage->handleParam($param);
+        $param = $handle['param'];
         if (request()->isAjax()) {
-            $param = get_params();
-            if ($param['type'] == '1') {
-                $data = $this->model->where('id', $param['data']['id'])->find();
-                if ($data["sent_review_unit_name"] !== null ||
-                    $data["sent_review_head_name"] !== null ||
-                    $data["sent_review_head_email"] !== null ||
-                    $data["sent_review_phone"] !== null
-                ) {
-                    return to_assign(0, "已存在,请移除后再添加");
-                } else {
-                    return to_assign(200, "请上传!!");
+
+                $a = $this->model->where("id", $param["project_id"])->find();
+
+                if($a["sent_review_head"]){
+                    return to_assign(1, '送审单位负责人已经存在,请移除后再添加');
                 }
-            } else {
-                add_project_log('移除送审单位成员', $param['data']['id'],  $param['data']["sent_review_head_name"], 5);
-                $this->model->addConstructionPeople($param['data']);
-            }
+
+                $user = Db::name("admin")->where("id",$param["id"])->find();
+                $department = Db::name("department")->where("id",$user["unit_name"])->find();
+                $this->model->where("id",
+                    $param["project_id"])
+                    ->update(
+                        [
+                            "sent_review_head" => $param["id"],
+                            "sent_review_head_name"=>$user['nickname'],
+                            "sent_review_phone"=> $user["mobile"],
+                            "sent_review_unit_name"=>$department["title"],
+                            "sent_review_unit"=> $department["id"]
+                        ]
+
+                    );
+
+                $content = get_login_admin("nickname") . "新增了送审单位负责人". $user['nickname'];
+
+                add_project_log("新增项目成员",$param["project_id"],$content,5);
+
+                add_user($param["id"],$param["project_id"]);
+
+                return to_assign(0, '操作成功');
+
         } else {
             $param = get_params();
 
@@ -1436,8 +1457,6 @@ class CostCompany extends BaseController
 
     public function get_department_tree()
     {
-
-
         $unit_id = get_unit(get_login_admin("unit_name"));
 
         $department = Db::name('Department')->where(['status' => 1])->select()->toArray();
@@ -1457,6 +1476,48 @@ class CostCompany extends BaseController
         return json($result);
     }
 
+    public function get_department_tree_proprietor($project_id)
+    {
+        $project = $this->model->where("id" , $project_id)->find();
+
+        $entrust_unit = $project["entrust_unit"];
+
+        $department = Db::name('Department')->where(['status' => 1 , "entrust_unit" => $entrust_unit])->select()->toArray();
+
+        $list = get_tree($department, 0, 2);
+        $data['trees'] = $list;
+        $result = null;
+
+        for ($i = 0; $i < count($data['trees']); $i++) {
+            $point = $data['trees'][$i];
+            $result['trees'][] = $point;
+        }
+        return json($result);
+    }
+
+    //获取子部门所有员工
+    public function get_employee_proprietor()
+    {
+        $did = get_params('did');
+
+        if ($did == 1) {
+            $department = $did;
+        } else {
+            $department = get_department_son($did);
+        }
+        // halt($department);
+        $employee = Db::name('admin')
+            ->field('a.id,a.did,a.position_id,a.mobile,a.nickname,a.status,a.thumb,a.username,d.title as department')
+            ->alias('a')
+            ->join('Department d', 'a.did = d.id')
+            ->where(['a.status' => 1])
+            ->where('a.id', ">", 1)
+            ->where('a.did', "in", $department)
+            ->select();
+        return to_assign(0, '', $employee);
+    }
+
+
     //获取子部门所有员工
     public function get_employee()
     {
@@ -1478,12 +1539,6 @@ class CostCompany extends BaseController
             ->where('a.did', "in", $department)
             ->select();
 
-
-//        $employee = $employee->map(function ($employee) {
-//            $employee['name'] = $employee["nickname"];
-//            return $employee;
-//        });
-
         return to_assign(0, '', $employee);
     }
 
@@ -1592,7 +1647,7 @@ class CostCompany extends BaseController
         return $rules_id;
     }
     
-        public function ceshi($id)
+    public function ceshi($id)
     {
         View::assign('detailId', $id);
         return view();

+ 0 - 5
app/admin/controller/project/CostProprietor.php

@@ -116,8 +116,6 @@ class CostProprietor extends BaseController
                 $where[] =["sent_review_unit", "=", get_login_admin("unit_name")];
             }
 
-
-
             $this->see_auth = $see_auth;
             $list = $this->model->where($where)->where($where3)->order($order)->paginate($rows, false, ['query' => $param])
                 ->each(function ($item) {
@@ -247,8 +245,6 @@ class CostProprietor extends BaseController
     }
 
 
-
-
     /**
      * 业主保存项目
      */
@@ -270,7 +266,6 @@ class CostProprietor extends BaseController
 
             $param["sent_review_phone"] = get_login_admin("mobile");
 
-
             $param["proprietor_status"] = 0;//业主创建项目时的状态  0立项,1审核,2待接收,3已接收
             $param["project_status"] = 0;//真实项目状态
             //1:财政局,3:业主,2:公司

+ 32 - 10
app/admin/view/project/cost/add.html

@@ -188,15 +188,23 @@
 <!--        添加送审业主-->
          <tr>
             <th class="form-title">送审业主 <font style="color: red !important;">*</font></th>
-            <th colspan="2">
-<!--                送审单位负责人-->
-                <select name="sent_review_head" lay-reqText="请选择送审业主">
-                    <option value="">请选择送审业主(暂时没设置成必选)</option>
-                    {volist name="$proprietor" id="v"}
-                    <option value="{$v.id}">{$v.nickname}</option>
-                    {/volist}
-                </select>
-            </th>
+             <th colspan="2">
+                 <input type="text" name="sent_review_unit_name" autocomplete="off"
+                         value="" lay-reqText="请输入送审单位" placeholder="请输入评审单位" class="layui-input proprietor_picker">
+                 <input type="hidden" name="sent_review_unit" value="">
+                 <input type="hidden" name="sent_review_head_phone" value="">
+                 <input type="hidden" name="sent_review_head" value="">
+                 <input type="hidden" name="sent_review_head_name" value="">
+             </th>
+
+<!--            <th colspan="2">-->
+<!--                 <select name="sent_review_head" lay-reqText="请选择送审业主">-->
+<!--                    <option value="">请选择送审业主(暂时没设置成必选)</option>-->
+<!--                    {volist name="$proprietor" id="v"}-->
+<!--                    <option value="{$v.id}">{$v.nickname}</option>-->
+<!--                    {/volist}-->
+<!--                </select>-->
+<!--            </th>-->
         </tr>
 
         <tr>
@@ -287,7 +295,8 @@
                 console.log(data);
                 $('[name="review_unit"]').val(data.id);
                 $('[name="review_unit_name"]').val(data.title);
-                $('[name="review_head_phone"]').val(data.mobile);
+                $('[name="review_unit_phone"]').val(data.mobile);
+
                 $.ajax({
                     url: '/admin/project.cost/getemployeelist',
                     type: 'post',
@@ -329,6 +338,19 @@
             return false;
         });
 
+        $('.proprietor_picker').on('click', function () {
+            let that = $(this);
+            let callback = function(data){
+                console.log(data);
+                $('[name="sent_review_unit"]').val(data.id);
+                $('[name="sent_review_unit_name"]').val(data.title);
+                $('[name="sent_review_head_phone"]').val(data.mobile);
+                $('[name="sent_review_head"]').val(data.leader_id);
+                $('[name="sent_review_head_name"]').val(data.nickname);
+            }
+            oaTool.proprietorPicker(callback);
+        });
+
         let f = 1;
 
         //监听提交

+ 28 - 10
app/admin/view/project/cost_company/edit_user.html

@@ -109,21 +109,39 @@
 
                             tool.post("/admin/project.cost_company/add_user_company_type2", {
                                 id: ids,
-                                project_id: project_id,
-                                type: 2
+                                project_id: project_id
                             }, callback);
                         }
                     })
                     break;
                 case "adc":
+                    employeepicker.init({
+                        type: 0,
+                        department_url: "/admin/project.cost_company/get_department_tree_proprietor?project_id=" + project_id,
+                        employee_url: "/admin/project.cost_company/get_employee_proprietor",
+                        callback: function (ids, names, dids, departments) {
+                            let callback = function (e) {
+                                console.log(e)
+                                layer.msg(e.msg);
+                                if (e.code == 0) {
+                                    parent.layui.userTable.reload();
+                                }
+                            }
 
-                    // getSentReview()
-                    let call = function () {
-                        layer.msg(e.msg);
-                        if (e.code == 0) {
-                            parent.layui.userTable.reload();
+                            tool.post("/admin/project.cost_company/add_sent_review_unit", {
+                                id: ids,
+                                project_id: project_id
+                            }, callback);
                         }
-                    }
+                    })
+                    break;
+                    // getSentReview()
+                    // let call = function () {
+                    //     layer.msg(e.msg);
+                    //     if (e.code == 0) {
+                    //         parent.layui.userTable.reload();
+                    //     }
+                    // }
                     // employeepicker.init({
                     //     type: 0,
                     //     department_url: "/admin/project.cost_company/get_department_tree",
@@ -141,8 +159,8 @@
                     //         }, callback);
                     //     }
                     // })
-                    parent.layui.tool.side('/admin/project.cost_company/add_sent_review_unit?project_id=' + project_id, call);
-                    break;
+                    // parent.layui.tool.side('/admin/project.cost_company/add_sent_review_unit?project_id=' + project_id, call);
+                    // break;
                 case "add_head":
                     employeepicker.init({
                         type: 0,

+ 6 - 5
public/nginx.htaccess

@@ -1,5 +1,6 @@
-   location / {
-        if (!-e $request_filename){
-        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
-        }
-    }
+location / {
+    if (!-e $request_filename) {
+        rewrite ^(.*)$ /index.php?s=$1 last;
+        break;
+    }
+}

+ 53 - 0
public/static/assets/gougu/module/oaTool.js

@@ -306,6 +306,59 @@ layui.define(['tool'], function (exports) {
                 }
             })
         },
+
+
+        //选择送审单位
+        proprietorPicker : function (callback) {
+            var proprietorTable;
+            layer.open({
+                title: '选择送审单位',
+                area: ['600px', '580px'],
+                type: 1,
+                content: '<div class="picker-table">\
+					<form class="layui-form pb-2">\
+						<div class="layui-input-inline" style="width:480px;">\
+						<input type="text" name="keywords"  placeholder="送审单位" class="layui-input" autocomplete="off" />\
+						</div>\
+						<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="search_customer">提交搜索</button>\
+				  	</form>\
+					<div id="customerTable"></div></div>',
+                success: function () {
+                    proprietorTable = table.render({
+                        elem: '#customerTable'
+                        , url: '/admin/project.cost/get_proprietor_list'
+                        , page: true //开启分页
+                        , limit: 10
+                        , cols: [[
+                            {type: 'radio', title: '选择'},
+                            {field: 'id', width: 80, title: '编号', align: 'center'},
+                            {field: 'title', title: '送审单位名称', align: 'center'},
+                            {field: 'nickname', title: '送审单位负责人', align: 'center'},
+                            {field: 'mobile', title: '送审单位负责人电话', align: 'center'},
+                            {field: 'address', title: '送审单位地址', align: 'center'}
+                        ]]
+                    });
+                    //客户搜索提交
+                    form.on('submit(search_customer)', function (data) {
+                        proprietorTable.reload({where: {keywords: data.field.keywords}, page: {curr: 1}});
+                        return false;
+                    });
+                },
+                btn: ['确定'],
+                btnAlign: 'c',
+                yes: function () {
+                    var checkStatus = table.checkStatus(proprietorTable.config.id);
+                    var data = checkStatus.data;
+                    if (data.length > 0) {
+                        callback(data[0]);
+                        layer.closeAll();
+                    } else {
+                        layer.msg('请先选择送审单位');
+                        return false;
+                    }
+                }
+            })
+        },
         //请款选择造价项目
         ProjectPicker: function (callback) {
             var projectTable;