'1', 'checking' => '2', 'checked' => '3', 'checkno' => '4'); private $fileTypeArray = array('台帐附件'); public function __construct() { $this->data['rootUrl'] = Doo::conf()->APP_URL; $this->client = new client(); $this->auth = new Auth(); $this->att = new attachment(); $this->attfile = new attFile(); // $this->zip = new ZipArchive(); $this->actmeasure = new actMeasure(); $this->contractact = new Contractact(); $this->project = new Project(); $this->profile = new Profile(); $this->numofperact = new NumofperAct(); $this->measureauditact = new MeasureauditAct(); $this->users = new Users(); $this->itemfile = new ItemFile(); $this->modelconfig = new AConfig(); $this->itemMeasureNum = new ItemMeasureNumpofper(); $this->aconfig = new AConfig(); $this->sms = new Sms(Doo::conf()->SMS_URL, Doo::conf()->SMS_AUTHKEY); $this->__hashids = new Hashids\Hashids('jlzfuserid', 8); } public function ServerLogin() { if(isset($_POST['sname']) && !empty($_POST['sname'])){ $allserver = array($_SERVER['HTTP_HOST']); if(in_array(trim($_POST['sname']), $allserver)){ echo json_encode(array('status' => TRUE, 'msg' => ''), JSON_UNESCAPED_UNICODE); die; }else{ echo json_encode(array('status' => FALSE, 'msg' => '服务器不存在。'), JSON_UNESCAPED_UNICODE); die; } }else{ echo json_encode(array('status' => FALSE, 'msg' => '请输入服务器名称。'), JSON_UNESCAPED_UNICODE); die; } } public function AppSignin() { if(!isset($_POST['username']) || empty($_POST['username'])){ echo json_encode(array('status' => FALSE, 'msg' => '请输入邮箱'), JSON_UNESCAPED_UNICODE); die; } if(!isset($_POST['userpwd']) || empty($_POST['userpwd'])){ echo json_encode(array('status' => FALSE, 'msg' => '请输入密码'), JSON_UNESCAPED_UNICODE); die; } if ($this->auth->login($_POST['username'], $_POST['userpwd'])) { $uinfo = $this->auth->getUinfo(); if (isset($uinfo['isstop']) && $uinfo['isstop'] > 0) { echo json_encode(array('status' => FALSE, 'msg' => '邮箱不存在或者密码错误'), JSON_UNESCAPED_UNICODE); die; } if (isset($uinfo['uid'])) { $userArray = $this->profile->getProWithUid($uinfo['uid']); $avatarStr = $userArray['avatar']; if (isset($userArray['userid'])) { // $this->auth->setUid($uinfo['uid']); $msgArray = array('uid' => $uinfo['uid'], 'name' => $userArray['name'], 'email' => $uinfo['uemail'], 'ucompany' => $userArray['company'], 'jobtitle' => $userArray['jobs'], 'avatar' => Doo::conf()->APP_URL . $avatarStr); echo json_encode(array('status' => TRUE, 'msg' => '', 'userinfo' => $msgArray), JSON_UNESCAPED_UNICODE); die; } } } else { echo json_encode(array('status' => FALSE, 'msg' => '邮箱不存在或者密码错误'), JSON_UNESCAPED_UNICODE); die; } } // 获取待审批标段名 public function UnSectionList(){ if(isset($_POST['uid']) && !empty($_POST['uid']) && is_numeric($_POST['uid'])){ $unsectionlist = $this->measureauditact->getCheckedRowbyUID6($_POST['uid']); $unslist = array(); if(!empty($unsectionlist)){ foreach($unsectionlist as $k => $v){ $unslist[$k]['pname'] = $this->project->getRowByPid($v['pid'])['pname']; $unslist[$k]['sectionlist'] = array(); $sectionlist = $this->measureauditact->getCheckedRowbyUID7($_POST['uid'],$v['pid']); if(!empty($sectionlist)){ foreach($sectionlist as $sk => $sv){ $name = $this->actmeasure->getRowByPmid($sv['pmid']); $unslist[$k]['sectionlist'][$sk]['pmname'] = !empty($name) ? $name['pmname'] : ''; $countNum = $this->numofperact->getLastNew2($sv['pmid'])['numpname']; $unslist[$k]['sectionlist'][$sk]['countNum'] = !empty($countNum) ? $countNum : 0; $unslist[$k]['sectionlist'][$sk]['audittime'] = !empty($sv['audittime']) ? date('Y-m-d',$sv['audittime']) : ''; $unslist[$k]['sectionlist'][$sk]['url'] = '/app/rproject/' . $sv['pid'] . '/section/' . $sv['pmid'] . '/detail'; $stname = $this->contractact->getRowByStid($sv['stid']); $unslist[$k]['sectionlist'][$sk]['stname'] = !empty($stname) ? $stname['stname'] : ''; } } } } echo json_encode(array('status' => TRUE, 'msg' => '', 'unsectionlist' => $unslist), JSON_UNESCAPED_UNICODE); die(); }else{ $status = array('status' => FALSE, 'msg' => '获取待审批标段列表出错'); echo json_encode($status, JSON_UNESCAPED_UNICODE); die(); } } //获取已审核项目名 public function ItemCkeckedList(){ if(isset($_POST['uid']) && !empty($_POST['uid']) && is_numeric($_POST['uid'])){ $Itemlist = $this->measureauditact->getCheckedRowbyUID3($_POST['uid']); $Itemcheckedlist = array(); if(!empty($Itemlist)){ foreach($Itemlist as $k => $v){ $name = $this->project->getRowByPid($v['pid']); $Itemcheckedlist[$k]['pid'] = $v['pid']; $Itemcheckedlist[$k]['pname'] = $name['pname']; } } echo json_encode(array('status' => TRUE, 'msg' => '', 'Itemlist' => $Itemcheckedlist), JSON_UNESCAPED_UNICODE); die(); }else{ $status = array('status' => FALSE, 'msg' => '获取已审核项目列表出错'); echo json_encode($status, JSON_UNESCAPED_UNICODE); die(); } } //获取已审核项目中已审核标段的信息 public function SectionCheckedList(){ if(isset($_POST['uid']) && is_numeric($_POST['uid']) && isset($this->params['pid']) && is_numeric($this->params['pid'])){ //先获取标段类型列表 $stlist = $this->measureauditact->getCheckedRowbyUID4($_POST['uid'], $this->params['pid']); $sectioncheckedlist = array(); if(!empty($stlist)){ $i = 0; foreach($stlist as $k => $v){ //再获取标段名信息 $sectionlist = $this->measureauditact->getCheckedRowbyUID5($_POST['uid'], $this->params['pid'],$v['stid']); $sectioncheckedlistarray = array(); if(!empty($sectionlist)){ $j = 0; foreach($sectionlist as $key => $value){ $numStatusArray = $this->numofperact->getLastStatus3($this->params['pid'], $value['pmid']); if (!isset($numStatusArray['currstatus'])) { $numStatusArray['currstatus'] = 'uncheck'; } $datatmp = $this->measureauditact->getMyAuditStatus2($numStatusArray['pmid'], $numStatusArray['numpname'], $numStatusArray['times'], $_POST['uid']); if ($datatmp && ($datatmp['mastatus'] == 'checked' || $datatmp['mastatus'] == 'checkno') ) { $pmname = $this->actmeasure->getRowByPmid($value['pmid']); $sectioncheckedlistarray[$j]['pmname'] = !empty($pmname) ? $pmname['pmname'] : ''; $sectioncheckedlistarray[$j]['countNum'] = !empty($datatmp['numpname']) ? $datatmp['numpname'] : 0; $sectioncheckedlistarray[$j]['audittime'] = !empty($datatmp['audittime']) ? date('Y-m-d',$datatmp['audittime']) : ''; $sectioncheckedlistarray[$j]['url'] = '/app/rproject/' . $this->params['pid'] . '/section/' . $value['pmid'] . '/detail'; $j++; } } } if(!empty($sectioncheckedlistarray)){ $stname = $this->contractact->getRowByStid($v['stid']); $sectioncheckedlist[$i]['stname'] = !empty($stname['stname']) ? $stname['stname'] : ''; $sectioncheckedlist[$i]['stlist'] = $sectioncheckedlistarray; } $i++; } } echo json_encode(array('status' => TRUE, 'msg' => '', 'sectionlist' => $sectioncheckedlist), JSON_UNESCAPED_UNICODE); die(); }else{ $status = array('status' => FALSE, 'msg' => '获取已审核标段列表出错'); echo json_encode($status, JSON_UNESCAPED_UNICODE); die(); } } //内嵌app页 public function proDetail() { if(isset($_GET['uid']) && is_numeric($_GET['uid'])) { if(isset($_GET['approval'])){ $this->data['approval'] = 1; } $numStatusArray = $this->numofperact->getLastStatus3($this->params['pid'], $this->params['pmid']); if (!isset($numStatusArray['currstatus'])) { $numStatusArray['currstatus'] = 'uncheck'; } // 项目名称 $mpidArray = $this->measureauditact->getAuditProject2($_GET['uid']); foreach ($mpidArray as $k1 => $v1) { if ($v1['pid'] != $this->params['pid']) $this->data['allproArray'][] = $this->project->getRowByPid($v1['pid']); } $this->data['currproArray'] = $this->project->getRowByPid($this->params['pid']); $this->data['MeasureArray'] = $this->numofperact->getGroupByLastOne($this->params['pmid']); $this->data['MeasureArray3'] = array_reverse($this->data['MeasureArray']); $measureArray = $this->actmeasure->getRowByPmid($this->params['pmid']); foreach ($this->data['MeasureArray'] as $key => $value) { if ($measureArray['contracttotal'] > $value['currdone'] && $value['currdone'] > 0) { $this->data['MeasureArray'][$key]['lessTotal'] = round(($value['currdone'] / $measureArray['contracttotal']) * 100); } else { $this->data['MeasureArray'][$key]['lessTotal'] = 0; } } // 期数列表 $tmpArray = $this->numofperact->getGroupByLastOne2($this->params['pmid']); foreach ($tmpArray as $k => $v) { $intTime = $this->numofperact->getMaxTimes($v['pmid'], $v['numpname'])['times']; $nfArray[] = $this->numofperact->getRow($v['pmid'], $v['numpname'], $intTime); } foreach ($nfArray as $k => $v) { if ($v['mpid'] == $numStatusArray['mpid']) { $this->data['mpid'] = $v['mpid']; $this->data['MeasureArray2'][] = $v; $this->data['currnum'] = $v['numpname']; } else { $this->data['numArray'][] = $v; } } $measureArray = $this->actmeasure->getRowByPmid($this->params['pmid']); foreach ($this->data['MeasureArray2'] as $key => $value) { if ($value['mpid'] == $numStatusArray['mpid']) { $this->data['MeasureArray2'][$key]['currstatus'] = $this->statusArray[$value['currstatus']]; if ($measureArray['contracttotal'] > $value['currdone'] && $value['currdone'] > 0) { $this->data['MeasureArray2'][$key]['lessTotal'] = round(($value['currdone'] / $measureArray['contracttotal']) * 100); } else { $this->data['MeasureArray2'][$key]['lessTotal'] = 0; } } } $lastRowArray = $this->numofperact->getLastNew2($this->params['pmid']); $maxTimes = $this->numofperact->getMaxTimes($lastRowArray['pmid'], $lastRowArray['numpname']); // $auditUserArray = $this->measureauditact->getAllAudit($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times']); // $maxtimez = $this->measureauditact->getRowGroupByTimes($numStatusArray['mpid']); $maxtimez = $this->numofperact->getRowByMpid($numStatusArray['mpid']); $auditUserArray = $this->measureauditact->getRowByMpidTimes($numStatusArray['mpid'], $maxtimez['numpname'], $maxtimez['times']); $auditArray = $this->measureauditact->getLastNewRowInfo($lastRowArray['pmid'], $lastRowArray['numpname'], $_GET['uid']); if (isset($_POST['act'])) { $auditStatusArray = array('checkno', 'checked'); $myAuditStatus = $this->measureauditact->getMyAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times'], $_GET['uid']); if (in_array($myAuditStatus['mastatus'], $auditStatusArray)) { echo json_encode(array('status' => 1), JSON_UNESCAPED_UNICODE); die(); } } if ($_POST['act'] == 'p') { if ($this->measureauditact->setMyAuditPass($auditArray['maid'], $_POST['content'], 1, $_GET['uid'])) { $countAudit = count($auditUserArray); $this->attfile->updateHash($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times']); if ($auditArray['last'] == 1) { $this->numofperact->updateAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], 'checked', $maxTimes['times']); // SMS Start $TenderArray = $this->actmeasure->getRowByPmid($lastRowArray['pmid']); $userProArray = $this->profile->getProWithUid($TenderArray['uid']); if (isset($userProArray) && ($userProArray['mobile'])) { $retval = $this->__auditNotice($userProArray['mobile'], Doo::conf()->SMS_TIPS_PRE . '您好,' . $TenderArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR3"]); } // SMS End echo json_encode(array('status' => 1), JSON_UNESCAPED_UNICODE); die(); } else { if (($countAudit == 2) && ($auditUserArray[1]['last'] == 1) && ($auditUserArray[0]['maid'] == $auditArray['maid'])) { $this->measureauditact->updateMastatus($auditUserArray[1]['maid']); $this->numofperact->updateAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], 'checking', $maxTimes['times']); // SMS Start $verifyUserArray = $this->profile->getVerifiedMobile($auditUserArray[1]['auditoruid']); $pmnameArray = $this->actmeasure->getRowByPmid($lastRowArray['pmid']); if (isset($verifyUserArray) && ($verifyUserArray['mobile'])) {// XXXX(标段名),陈特,已审批通过。请您继续审批。 $this->__auditNotice($verifyUserArray['mobile'], Doo::conf()->SMS_TIPS_PRE . '您好,' . $pmnameArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR2"]); } // SMS End echo json_encode(array('status' => 1), JSON_UNESCAPED_UNICODE); die(); } if (($countAudit > 2)) { foreach ($auditUserArray as $k => $v) { if ($v['maid'] == $auditArray['maid']) { if ($k == ($countAudit - 1)) {//如果是最后一个 $this->measureauditact->updateMastatus($auditUserArray[0]['maid']); // SMS Start $verifyUserArray = $this->profile->getVerifiedMobile($auditUserArray[0]['auditoruid']); // var_dump($verifyUserArray); $pmnameArray = $this->actmeasure->getRowByPmid($auditUserArray[0]['pmid']); // var_dump($pmnameArray); // SMS End } else { $this->measureauditact->updateMastatus($auditUserArray[$k + 1]['maid']); // SMS Start $verifyUserArray = $this->profile->getVerifiedMobile($auditUserArray[$k + 1]['auditoruid']); // var_dump($verifyUserArray); $pmnameArray = $this->actmeasure->getRowByPmid($auditUserArray[$k + 1]['pmid']); // var_dump($pmnameArray); // SMS End } // SMS Start if (isset($verifyUserArray) && ($verifyUserArray['mobile'])) {// XXXX(标段名),陈特,已审批通过。请您继续审批。 // $retval = $this->__auditNotice($verifyUserArray['mobile'], Doo::conf()->SMS_TIPS_PRE . $pmnameArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR2"]); $this->__auditNotice($verifyUserArray['mobile'], Doo::conf()->SMS_TIPS_PRE . '您好,' . $pmnameArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR2"]); // var_dump($pmnameArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR2"]); // var_dump($retval); // var_dump($this->sms->getErrors()); } // SMS End $this->numofperact->updateAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], 'checking', $maxTimes['times']); echo json_encode(array('status' => 1), JSON_UNESCAPED_UNICODE); die(); } } } } } } if ($_POST['act'] == 'np') { $this->measureauditact->setCheckno($auditArray['maid'], $_POST['content'], 1); $this->numofperact->updateAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], 'checkno', $maxTimes['times']); $this->attfile->updateHash($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times']); // SMS Start $TenderArray = $this->actmeasure->getRowByPmid($lastRowArray['pmid']); $userProArray = $this->profile->getProWithUid($TenderArray['uid']); if (isset($userProArray) && ($userProArray['mobile'])) {// // XXXX(标段名),陈特,已审批通过。请您继续审批。 $retval = $this->__auditNotice($userProArray['mobile'], Doo::conf()->SMS_TIPS_PRE . '您好,' . $TenderArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR4"]); // var_dump($retval); // var_dump($this->sms->getErrors()); // $this->__auditNotice($userProArray['mobile'], Doo::conf()->SMS_TIPS_PRE . '您好,' . $TenderArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR4"]); } // SMS End echo json_encode(array('status' => 1), JSON_UNESCAPED_UNICODE); die(); } if($_POST['act'] == 'back') { $measureauditact = new MeasureauditAct(); $measureauditact->setUncheck($auditArray['maid']); $this->numofperact->updateAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], 'checking', $maxTimes['times']); //获取并改变上一个审批人为审批中状态 $lastmeasureauditact = $this->measureauditact->getMyAuditStatus($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times'], $_POST['last']); $this->measureauditact->updateMastatus2($lastmeasureauditact['maid']); //退回必须删除上一个上报人的文件数据并更改前一个文件为最新2 $this->attfile->delMyAttFile($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times'], $_POST['last']); $lastaid = $this->attfile->getLastFileAid($lastRowArray['pmid'], $lastRowArray['numpname'], $maxTimes['times']); if(!empty($lastaid)){ $this->attfile->updateIsNew2($lastaid); } // SMS Start $TenderArray = $this->actmeasure->getRowByPmid($lastRowArray['pmid']); $userProArray = $this->profile->getProWithUid($_POST['last']); if (isset($userProArray) && ($userProArray['mobile'])) {// // XXXX(标段名),陈特,已审批通过。请您继续审批。 $retval = $this->__auditNotice($userProArray['mobile'], Doo::conf()->SMS_TIPS_PRE . $TenderArray["pmname"] . Doo::conf()->SMS_TIPS["AUDIT_NOTICE_AUDITOR8"]); } // SMS End echo json_encode(array('status' => 1), JSON_UNESCAPED_UNICODE); die(); } $this->data['pmid'] = $lastRowArray['pmid']; $this->data['numpname'] = $lastRowArray['numpname']; $this->data['times'] = $lastRowArray['times']; $firstUser = 0; foreach ($auditUserArray as $key => $value) { $strAvatar = $this->auth->getAvatar($value['auditoruid']); if ($value['auditoruid'] == $_GET['uid']) { $this->data['mastatus'] = $value['mastatus']; $this->data['maid'] = $value['maid']; $name = $this->profile->getProWithUid($value['auditoruid'])['name'].'(我)'; if($key == 0){ $firstUser = 1; }else{ $this->data['lastUserID'] = $auditUserArray[$key-1]['auditoruid']; $this->data['lastUsername'] = $this->profile->getProWithUid($auditUserArray[$key-1]['auditoruid'])['name']; $this->data['lastUserCompany'] = $this->profile->getProWithUid($auditUserArray[$key-1]['auditoruid'])['company']; } }else{ $name = $this->profile->getProWithUid($value['auditoruid'])['name']; } if ($value['mastatus'] == 'uncheck') { $statushtml = '