【调度系统】广东民航医疗快线调度系统源代码
wzp
2024-12-06 0df39a8c5a45c6ff25411eace15d40a606f9769c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<?php require '/inc/odbc.php';?>
<?php require '/inc/function.php';?>
<?php
require_once("PHPExcel/PHPExcel.php");
$name=$_FILES['userfile']['name'];//名字
$suffixName=explode('.', $name)[1];//后缀名
//$filePath='upload/'.$_FILES["userfile"]["name"];//文件存储路径
$filePath='upload/'.time().'.'.$suffixName;
if($suffixName=="xls" || $suffixName=="xlsx"){
    if (is_uploaded_file($_FILES["userfile"]["tmp_name"])) {
        echo "已经上传到临时文件夹";echo "<hr>";
        if (!move_uploaded_file($_FILES["userfile"]["tmp_name"],$filePath)) {
            echo "移动失败";
        }else{
            echo "移动到".$filePath."成功";echo "<hr>";
            //调用解析方法 返回数组
            $ExcleArr=analysisExcel($filePath);
            echo "<pre>";
            //print_r($ExcleArr);
            echo "</pre>";
            delFile($filePath);
            header("Location: /CarRepair.gds?SystemMessageType=3&SMT=7");exit;
        }
    } else {
        echo "上传临时文件失败";
    }
}else{
    echo "<a href='/CarRepair.gds'>文件上传格式不正确,请重新上传</a>";exit;
}
function analysisExcel($filePath){
    global $adminID;
    global $conn;
    $file_type=explode('.',$filePath)[1];
    $objReader='';
    //根据上传类型做不同处理
    if ($file_type == 'xls') {
        $objReader = \PHPExcel_IOFactory::createReader('Excel5');//创建读取实例
    }
    if ($file_type == 'xlsx') {
        $objReader = new \PHPExcel_Reader_Excel2007();
    }
    $objPHPExcel = $objReader->load($filePath,$encode='utf-8');//加载文件
    $sheet = $objPHPExcel->getSheet(0);//取得sheet(0)表
    $highestRow = $sheet->getHighestRow(); // 取得总行数
    $highestColumn = $sheet->getHighestColumn(); // 取得总列数
    ++$highestColumn;
    $data=[];
    $columnInt=12;
 
    if ($highestRow>1){
        echo $highestColumn;
        for ($column = 'A'; $column != $highestColumn; $column++) {
            $columnData = $sheet->getCell($column . 1)->getValue();
            switch ($columnData)
            {
            case "维修厂家":
              $MaintenancePlace_column = $column;
              $columnInt=$columnInt-1;
              break;  
            case "车牌号":
              $RepairCarLicense_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "车架号":
              $RepairCarFrame_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "发动机号":
              $RepairCarVIN_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "进场时间":
              $RepairDate_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "进场公里数":
              $RepairMileage_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "工时项目":
              $MaintenanceItem_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "机修配件":
              $ReplacementParts_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "单价":
              $UnitPrice_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "数量":
              $UnitInt_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "单位":
              $UnitName_column = $column;
              $columnInt=$columnInt-1;
              break;
            case "金额":
              $MaterialMoney_column = $column;
              $columnInt=$columnInt-1;
              break;
            }
        }
    }
    if ($columnInt==0){
        for($i=2;$i<=$highestRow;$i++)
        {
            $RepairCarID        = 0;
            $MaintenancePlace    = $sheet->getCell($MaintenancePlace_column . $i)->getValue();
            $RepairCarLicense    = $sheet->getCell($RepairCarLicense_column . $i)->getValue();
            $RepairCarFrame        = $sheet->getCell($RepairCarFrame_column . $i)->getValue();
            $RepairCarVIN        = $sheet->getCell($RepairCarVIN_column . $i)->getValue();
            $cell                = $sheet->getCell($RepairDate_column . $i);
            $cvalue                = $cell->getValue();
            if($cell->getDataType()==\PHPExcel_Cell_DataType::TYPE_NUMERIC){
                $cellstyleformat = $cell->getStyle($cell->getCoordinate())->getNumberFormat();
                $formatcode = $cellstyleformat->getFormatCode();
                if (preg_match('/^(\[\$[A-Z]*-[0-9A-F]*\])*[hmsdy]/i', $formatcode)) {
                    $RepairDate = gmdate("Y-m-d H:i:s", \PHPExcel_Shared_Date::ExcelToPHP($cvalue));
                }else{
                    $RepairDate=\PHPExcel_Style_NumberFormat::toFormattedString($cvalue,$formatcode);
                }
                if (is_numeric($RepairDate)){$RepairDate = gmdate("Y-m-d H:i:s", \PHPExcel_Shared_Date::ExcelToPHP($cvalue));}
            }
            $RepairMileage        = $sheet->getCell($RepairMileage_column . $i)->getValue();
            $MaintenanceItem    = $sheet->getCell($MaintenanceItem_column . $i)->getValue();
            $ReplacementParts    = $sheet->getCell($ReplacementParts_column . $i)->getValue();
            $UnitPrice            = $sheet->getCell($UnitPrice_column . $i)->getValue();
            $UnitInt            = $sheet->getCell($UnitInt_column . $i)->getValue();
            $UnitName            = $sheet->getCell($UnitName_column . $i)->getValue();
            $MaterialMoney        = $sheet->getCell($MaterialMoney_column . $i)->getValue();
 
            $MaintenancePlace    = trim(str_replace('?', '', $MaintenancePlace));
            $RepairCarLicense    = trim(str_replace('?', '', $RepairCarLicense));
            $RepairCarFrame        = trim(str_replace('?', '', $RepairCarFrame));
            $RepairCarVIN        = trim(str_replace('?', '', $RepairCarVIN));
            $RepairMileage        = trim(str_replace('?', '', $RepairMileage));
            $MaintenanceItem    = trim(str_replace('?', '', $MaintenanceItem));
            $ReplacementParts    = trim(str_replace('?', '', $ReplacementParts));
            $UnitPrice            = trim(str_replace('?', '', $UnitPrice));
            $UnitInt            = trim(str_replace('?', '', $UnitInt));
            $UnitName            = trim(str_replace('?', '', $UnitName));
            $MaterialMoney        = trim(str_replace('?', '', $MaterialMoney));
            if (empty($MaterialMoney)) {$MaterialMoney=0;}
//echo $RepairCarLicense." ".$RepairDate." ".$MaterialMoney." (".$MaintenanceItem." ".$ReplacementParts.")<br>";
//exit;
            if (!empty($RepairCarLicense) and !empty($RepairDate) and (!empty($MaintenanceItem) or !empty($ReplacementParts))) {
                $sql="select top 1 CarID from CarData where CarLicense='".$RepairCarLicense."' or CarLicense='".$RepairCarLicense."(奔驰)'";
                //echo $sql;exit;
                $sqldata = sqlsrv_query($conn,$sql);
                if($sqldata == true){
                    if (sqlsrv_rows_affected($sqldata)!=0) {
                        while($rs = sqlsrv_fetch_array( $sqldata, SQLSRV_FETCH_ASSOC) ) {
                            $RepairCarID=$rs['CarID'];
                        }
                    }
                }
                $sql="insert into CarRepair (RepairCarID,MaintenancePlace,RepairCarLicense,RepairCarFrame,RepairCarVIN,RepairDate,RepairMileage,MaintenanceItem,ReplacementParts,UnitPrice,UnitInt,UnitName,MaterialMoney,OAID) values (".$RepairCarID.",'".$MaintenancePlace."','".$RepairCarLicense."','".$RepairCarFrame."','".$RepairCarVIN."','".$RepairDate."','".$RepairMileage."','".$MaintenanceItem."','".$ReplacementParts."',".$UnitPrice.",".$UnitInt.",'".$UnitName."',".$MaterialMoney.",".$adminID.")";
                //echo $sql."<br>";
                $sqldata = sqlsrv_query($conn,$sql);
            }
        }
    }else{
        echo "<a href='/CarRepair.gds'>".$columnInt."文件内容不正确,请重新上传</a>";exit;
    }
    
    //return $data;
}
 
function delFile($path)
    {
        $url = iconv('utf-8', 'gbk', $path);
        if (PATH_SEPARATOR == ':') { //linux
            unlink($path);
        } else {  //Windows
            unlink($url);
        }
    }
?>