__change = new Change(); $this->__changeatt = new ChangeAtt(); $this->__changeaudit = new ChangeAudit(); $this->__changeauditlist = new ChangeAuditList(); $this->__changelist = new ChangeList(); $this->__changecompany = new ChangeCompany(); } //change public function insertChangeMsg($pmArr,$uid,$cmsg) { $this->__change->pid = $pmArr['pid']; $this->__change->stid = $pmArr['stid']; $this->__change->pmid = $pmArr['pmid']; $this->__change->uid = $uid; $this->__change->pnum = $cmsg['pnum']; $this->__change->pname = $cmsg['pname']; $this->__change->mnum = $cmsg['mnum']; $this->__change->odname = $cmsg['odname']; $this->__change->onum = $cmsg['onum']; $this->__change->cdname = $cmsg['cdname']; $this->__change->cnum = $cmsg['cnum']; $this->__change->description = $cmsg['description']; $this->__change->basis = $cmsg['basis']; $this->__change->remarks = $cmsg['remarks']; $this->__change->ctype = !empty($cmsg['ctype']) ? implode(',', $cmsg['ctype']) : ''; $this->__change->category = $cmsg['category']; $this->__change->cnature = $cmsg['cnature']; $this->__change->companyid = $cmsg['companyid']; $this->__change->bear = $cmsg['bear']; $this->__change->decimalnum = $cmsg['changedecimalnum']; $this->__change->status = isset($cmsg['uncheck']) ? 'uncheck' : 'checking'; $this->__change->intime = time(); $this->__change->cintime = time(); return $this->__change->insert(); } public function updateChangeMsg($cid,$cmsg,$times,$status = '') { $this->__change->cid = $cid; $this->__change->pnum = $cmsg['pnum']; $this->__change->pname = $cmsg['pname']; $this->__change->mnum = $cmsg['mnum']; $this->__change->odname = $cmsg['odname']; $this->__change->onum = $cmsg['onum']; $this->__change->cdname = $cmsg['cdname']; $this->__change->cnum = $cmsg['cnum']; $this->__change->description = $cmsg['description']; $this->__change->basis = $cmsg['basis']; $this->__change->remarks = $cmsg['remarks']; $this->__change->ctype = !empty($cmsg['ctype']) ? implode(',', $cmsg['ctype']) : ''; $this->__change->category = $cmsg['category']; $this->__change->cnature = $cmsg['cnature']; $this->__change->companyid = $cmsg['companyid']; $this->__change->bear = $cmsg['bear']; $this->__change->decimalnum = $cmsg['changedecimalnum']; $this->__change->times = $times; if($status != ''){ $this->__change->status = $status; } $this->__change->cintime = time(); return $this->__change->update(); } public function getListbyMydetail($pmid='',$uid,$limit) { if(empty($pmid)){ return $this->__change->find(array('where' => '(status="checking" or status="back" or status="uncheck") and cid in(select `jl_change_audit`.cid from `jl_change_audit` where `jl_change_audit`.uid=? and `jl_change_audit`.status="checking")', 'param' => array($uid), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE)); }else{ return $this->__change->find(array('where' => 'pmid=? and (status="checking" or status="back" or status="uncheck") and cid in(select `jl_change_audit`.cid from `jl_change_audit` where `jl_change_audit`.uid=? and `jl_change_audit`.status="checking")', 'param' => array($pmid,$uid), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE)); } } public function getNumbystatus($pmid='',$status,$status2 = '',$sql = '') { if(!empty($status2)){ if(empty($pmid)){ return $this->__change->count(array('where' => '(status=? or status=?)'.$sql, 'param' => array($status,$status2), 'asArray' => TRUE)); }else{ return $this->__change->count(array('where' => 'pmid=? and (status=? or status=?)'.$sql, 'param' => array($pmid,$status,$status2), 'asArray' => TRUE)); } }else{ if(empty($pmid)){ return $this->__change->count(array('where' => 'status=?'.$sql, 'param' => array($status), 'asArray' => TRUE)); }else{ return $this->__change->count(array('where' => 'pmid=? and status=?'.$sql, 'param' => array($pmid,$status), 'asArray' => TRUE)); } } } public function getListbyStatus($pmid='',$status,$limit,$status2 = '',$sql = '') { if(!empty($status2)){ if(empty($pmid)){ return $this->__change->find(array('where' => '(status=? or status=?)'.$sql, 'param' => array($status,$status2), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE)); }else{ return $this->__change->find(array('where' => 'pmid=? and (status=? or status=?)'.$sql, 'param' => array($pmid,$status,$status2), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE)); } }else{ if(empty($pmid)){ return $this->__change->find(array('where' => 'status=?'.$sql, 'param' => array($status), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE)); }else{ return $this->__change->find(array('where' => 'pmid=? and status=?'.$sql, 'param' => array($pmid,$status), 'desc' => 'cid', 'limit' => $limit, 'asArray' => TRUE)); } } } public function updateChangeTotalamount($cid,$total) { $this->__change->cid = $cid; $this->__change->totalamount = $total; $this->__change->update(); } public function getChangebyid($cid) { return $this->__change->getOne(array('where' => 'cid=?', 'param' => array($cid), 'asArray' => TRUE)); } public function getNeedChangeAllList($uid) { return $this->__change->find(array('select' => 'cid,pid,stid,pmid', 'where' => 'cid in (select `cid` from `jl_change_audit` where uid=? and status="checking")', 'param' => array($uid), 'asArray' => TRUE)); } public function getPassChangeListID($pmid) { return $this->__change->find(array('select' =>'cid','where' => 'pmid=? and status="checked"', 'param' => array($pmid), 'asArray' => TRUE)); } public function getLastChangePnum($pmid) { return $this->__change->getOne(array('select' => 'pnum', 'where' => 'pmid=?', 'param' => array($pmid), 'desc' => 'cid','asArray' => TRUE)); } //搜索该标段有无相同申请编号的变更令 public function getChangebyPnumPmid($pnum,$pmid,$cid = '') { if($cid != ''){ return $this->__change->getOne(array('where' => 'pnum=? and pmid=? and cid!=?', 'param' => array($pnum,$pmid,$cid), 'asArray' => TRUE)); }else{ return $this->__change->getOne(array('where' => 'pnum=? and pmid=?', 'param' => array($pnum,$pmid), 'asArray' => TRUE)); } } public function delChangebyCid($cid) { return $this->__change->delete(array('where' => 'cid=?', 'param' => array($cid), 'asArray' => TRUE)); } public function updateChangeDecimalNum($cid,$dnum) { $this->__change->cid = $cid; $this->__change->decimalnum = $dnum; return $this->__change->update(); } //changeatt public function insertChangeAtt($files) { $this->__changeatt->pid = $files['pid']; $this->__changeatt->stid = $files['stid']; $this->__changeatt->pmid = $files['pmid']; $this->__changeatt->cid = $files['cid']; $this->__changeatt->uid = $files['uid']; $this->__changeatt->filename = $files['filename']; $this->__changeatt->fileext = $files['fileext']; $this->__changeatt->filesize = $files['filesize']; $this->__changeatt->filepath = $files['filepath']; $this->__changeatt->intime = $files['intime']; return $this->__changeatt->insert(); } public function getChangeAttbyFid($id) { return $this->__changeatt->getOne(array('where' => 'id=?', 'param' => array($id), 'asArray' => TRUE)); } public function getChangeAttListbycid($cid) { return $this->__changeatt->find(array('where' => 'cid=?', 'asc' => 'intime', 'param' => array($cid), 'asArray' => TRUE)); } public function delChangeAttbyFid($fid) { return $this->__changeatt->delete(array('where' => 'id=?', 'param' => array($fid), 'asArray' => TRUE)); } //changeaudit public function getNeedChangeNumbyUid($uid) { return $this->__changeaudit->count(array('where' => 'uid=? and status="checking"', 'param' => array($uid), 'asArray' => TRUE)); } public function getPmidGroup($uid) { return $this->__changeaudit->find(array('where' => 'uid=? and cid in (SELECT `jl_change`.`cid` FROM `jl_change` WHERE `jl_change`.status!="uncheck")', 'param' => array($uid), 'groupby' => 'pmid', 'asArray' => TRUE)); } public function getNumbyMydetail($pmid='',$uid) { if(empty($pmid)){ return $this->__changeaudit->count(array('where' => 'uid=? and status="checking"', 'param' => array($uid), 'asArray' => TRUE)); }else{ return $this->__changeaudit->count(array('where' => 'pmid=? and uid=? and status="checking"', 'param' => array($pmid,$uid), 'asArray' => TRUE)); } } public function getOneAuditbystatus($cid,$status) { return $this->__changeaudit->getOne(array('where' => 'cid=? and status=? and usite!=0', 'param' => array($cid,$status), 'asArray' => TRUE)); } public function getChangeAuditsbycid($cid) { return $this->__changeaudit->find(array('where' => 'cid=?', 'asc' => 'id', 'param' => array($cid), 'asArray' => TRUE)); } public function getChangeAuditsbySort($cid,$notime = '') { if($notime != ''){ return $this->__changeaudit->find(array('where' => 'cid=? and times!=?', 'asc' => 'usort', 'param' => array($cid,$notime), 'asArray' => TRUE)); }else{ return $this->__changeaudit->find(array('where' => 'cid=?', 'asc' => 'usort', 'param' => array($cid), 'asArray' => TRUE)); } } public function getChangeAuditsbycidtime($cid,$times) { return $this->__changeaudit->find(array('where' => 'cid=? and times=? and usite!=0', 'groupby' => 'usite', 'asc' => 'usort', 'param' => array($cid,$times), 'asArray' => TRUE)); } public function getChangeAuditbylastlist($cid,$times) { $sql = 'SELECT * FROM (SELECT MAX(usort) as ust FROM `jl_change_audit` WHERE cid='.$cid.' and times='.$times.' and usite!=0 GROUP BY usite ) as b JOIN `jl_change_audit` as a ON a.usort = b.ust WHERE cid='.$cid.' and times='.$times.' and usite!=0 ORDER BY usite'; $query = Doo::db ()->query ( $sql ); $result = $query->fetchAll (); return $result; } public function getOneChangeAudit($uid,$cid,$times) { return $this->__changeaudit->getOne(array('where' => 'cid=? and uid=? and times=? and usite!=0', 'desc' => 'usort', 'param' => array($cid,$uid,$times), 'asArray' => TRUE)); } public function updateChangeAudit($uid,$cid,$times,$status,$desc,$time,$list = '') { $oneaudit = $this->getOneChangeAudit($uid,$cid,$times); $this->__changeaudit->id = $oneaudit['id']; $this->__changeaudit->status = $status; $this->__changeaudit->sdesc = $desc; $this->__changeaudit->sintime = $time; $this->__changeaudit->list_json = $list; $this->__changeaudit->update(); } //默认取最后一个审批人,site取0则取最后一个创建人 public function getChangeAuditLastUser($cid,$site = 1) { $sql = $site == 0 ? ' and usite=0' : ''; return $this->__changeaudit->getOne(array('where' => 'cid=?'.$sql, 'desc' => 'usort', 'param' => array($cid), 'asArray' => TRUE)); } public function delChangeAuditbyCid($cid) { return $this->__changeaudit->delete(array('where' => 'cid=?', 'param' => array($cid), 'asArray' => TRUE)); } public function getChangeAuditsMaxUsite($cid,$times) { return $this->__changeaudit->getOne(array('select' => 'MAX(usite) as maxsite', 'where' => 'cid=? and times=?', 'groupby' => 'times', 'param' => array($cid,$times) , 'asArray' => TRUE)); } //changeauditlist public function getChangeAuditListbycid($cid) { return $this->__changeauditlist->find(array('where' => 'cid=?', 'asc' => 'convert(lnum using gbk)', 'param' => array($cid), 'asArray' => TRUE)); } public function getOneChangeAuditList($lid) { return $this->__changeauditlist->getOne(array('where' => 'id=?', 'param' => array($lid), 'asArray' => TRUE)); } public function delChangeAuditListbyCid($cid) { return $this->__changeauditlist->delete(array('where' => 'cid=?', 'param' => array($cid))); } //changelist public function insertChangelist($pmArray,$listArray) { $this->__changelist->pid = $pmArray['pid']; $this->__changelist->stid = $pmArray['stid']; $this->__changelist->pmid = $pmArray['pmid']; $this->__changelist->lnum = trim($listArray['lnum']); $this->__changelist->lname = trim($listArray['lname']); $this->__changelist->unit = trim($listArray['unit']); $this->__changelist->unitprice = $listArray['unitprice']; $this->__changelist->amount = $listArray['amount']; $this->__changelist->insert(); } public function getChangeListbyPmid($pmid = '',$sql = '') { if(empty($pmid)){ return $this->__changelist->find(array('where' => $sql, 'asc' => 'convert(lnum using gbk)', 'asArray' => TRUE)); }else{ return $this->__changelist->find(array('where' => 'pmid=?', 'param' => array($pmid), 'asc' => 'convert(lnum using gbk)', 'asArray' => TRUE)); } } public function getChangeListbyid($id) { return $this->__changelist->getOne(array('where' => 'id=?', 'param' => array($id), 'asArray' => TRUE)); } public function getChangeListbylname($lname) { return $this->__changelist->getOne(array('where' => 'lname=?', 'param' => array(trim($lname)), 'asArray' => TRUE)); } public function delChangeListbyPmid($pmid) { return $this->__changelist->delete(array('where' => 'pmid=?', 'param' => array($pmid))); } //changecompany public function getCompanyList($pmid = '') { if($pmid != ''){ return $this->__changecompany->find(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); }else{ return $this->__changecompany->find(array('asArray' => TRUE)); } } public function getCompanybyid($id) { return $this->__changecompany->getOne(array('where' => 'id=?', 'param' => array($id), 'asArray' => TRUE)); } public function delAllChangebyPmid($pmid) { // TODO: 根据pmid删除所有相关联的变更令内容 // TODO: 项目管理和前台删除标段中使用 $changeattlist = $this->__changeatt->find(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); if(!empty($changeattlist)){ include (DOO::conf()->SITE_PATH . 'protected/plugin/io.han.php'); foreach($changeattlist as $k => $v){ $this->IoHandler = new IoHandler(); $path = DOO::conf()->SITE_PATH.$v['filepath']; $this->IoHandler->DeleteFile($path); $this->delChangeAttbyFid($v['id']); } } $this->__changelist->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); $this->__changeaudit->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); $this->__changeauditlist->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); $this->__changecompany->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); $this->__change->delete(array('where' => 'pmid=?', 'param' => array($pmid), 'asArray' => TRUE)); } }