measureauditact.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <?php
  2. Doo::loadModel('measureaudit');
  3. /**
  4. * Description of Users
  5. *
  6. * @author zongheng
  7. */
  8. class MeasureauditAct {
  9. private $__measureaudit;
  10. function __construct() {
  11. $this->__measureaudit = new MeasureAudit();
  12. }
  13. public function insertMeasureAudit($pid, $creatoruid, $auditoruid, $mpid, $pmid, $stid, $numpname, $status = 'uncheck', $last = 2, $times = 0) {
  14. if (!isset($pid))
  15. return FALSE;
  16. $this->__measureaudit->pid = filter_var($pid, FILTER_VALIDATE_INT);
  17. $this->__measureaudit->creatoruid = filter_var($creatoruid, FILTER_VALIDATE_INT);
  18. $this->__measureaudit->auditoruid = filter_var($auditoruid, FILTER_VALIDATE_INT);
  19. $this->__measureaudit->mpid = filter_var($mpid, FILTER_VALIDATE_INT);
  20. $this->__measureaudit->pmid = filter_var($pmid, FILTER_VALIDATE_INT);
  21. $this->__measureaudit->stid = filter_var($stid, FILTER_VALIDATE_INT);
  22. $this->__measureaudit->numpname = filter_var($numpname, FILTER_VALIDATE_INT);
  23. if ($times > 0)
  24. $this->__measureaudit->times = filter_var($times, FILTER_VALIDATE_INT);
  25. $this->__measureaudit->mastatus = $status;
  26. $this->__measureaudit->last = $last;
  27. $this->__measureaudit->audittime = time();
  28. return $this->__measureaudit->insert();
  29. }
  30. public function getUncheckRow($uid, $status) {
  31. return $this->__measureaudit->find(array('where' => 'auditoruid=? and mastatus=?', 'param' => array($uid, $status), 'asArray' => TRUE));
  32. }
  33. public function getAllRow($uid) {
  34. return $this->__measureaudit->find(array('where' => 'auditoruid=?', 'param' => array($uid), 'asArray' => TRUE));
  35. }
  36. public function getAuditProject($uid) {
  37. return $this->__measureaudit->find(array('where' => 'auditoruid=? and last=2', 'groupby' => 'pid', 'param' => array($uid), 'asArray' => TRUE));
  38. }
  39. public function getProject($uid) {
  40. return $this->__measureaudit->find(array('where' => 'auditoruid=?', 'groupby' => 'pmid,numpname', 'param' => array($uid), 'asArray' => TRUE));
  41. }
  42. public function getUncheckMaxMpid($uid, $pid, $status) {
  43. return $this->__measureaudit->getOne(array('select' => 'max(mpid) as mpid', 'where' => 'auditoruid=? and pid=? and mastatus=?', 'param' => array($uid, $pid, $status), 'asArray' => TRUE));
  44. }
  45. public function setStatusTrue($mpid) {
  46. $this->__measureaudit->mastatus = 'checked';
  47. return $this->__measureaudit->update(array('where' => 'mpid=?', 'param' => array($mpid)));
  48. }
  49. public function setStatusFalse($mpid) {
  50. $this->__measureaudit->mastatus = 'checkno';
  51. return $this->__measureaudit->update(array('where' => 'mpid=?', 'param' => array($mpid)));
  52. }
  53. public function getStatusByMpid($mpid) {
  54. return $this->__measureaudit->getOne(array('select' => 'mastatus', 'where' => 'mpid=?', 'param' => array($mpid), 'asArray' => TRUE));
  55. }
  56. public function getRowByMpid($mpid) {
  57. return $this->__measureaudit->find(array('where' => 'mpid=?', 'param' => array($mpid), 'asArray' => TRUE));
  58. }
  59. // for api
  60. public function getAlluserMeasureAudit($bid, $num) {
  61. $maxtimesArray = $this->getMaxTimes($bid, $num);
  62. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=? and times=? order by last desc,maid asc', 'param' => array($bid, $num, $maxtimesArray['maxtimes']), 'asArray' => TRUE));
  63. }
  64. // for api
  65. public function getAllAudit($bid, $num, $times) {
  66. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=? and times=? order by last desc,maid asc', 'param' => array($bid, $num, $times), 'asArray' => TRUE));
  67. }
  68. public function getUserAudit($bid, $num, $times = 0) {
  69. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=? and times=? order by maid asc', 'param' => array($bid, $num, $times), 'asArray' => TRUE));
  70. }
  71. public function getUserAuditLast($bid, $num) {
  72. $maxtimesArray = $this->getMaxTimes($bid, $num);
  73. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=? and times=? order by maid asc', 'param' => array($bid, $num, $maxtimesArray['maxtimes']), 'asArray' => TRUE));
  74. }
  75. public function getRowbyUID($audituid) {
  76. return $this->__measureaudit->find(array('where' => 'auditoruid=?', 'param' => array($audituid), 'asArray' => TRUE));
  77. }
  78. public function getCheckedRowbyUID($audituid) {
  79. return $this->__measureaudit->find(array('where' => 'auditoruid=? and ((mastatus=\'uncheck\' or mastatus=\'checking\') or (mastatus=\'checked\' and DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= audittime))', 'param' => array($audituid), 'asArray' => TRUE));
  80. }
  81. public function getCheckedRowbyUID2($audituid) {
  82. return $this->__measureaudit->find(array('where' => '(mastatus=\'checking\') and auditoruid=?', 'groupby' => 'pmid,numpname', 'param' => array($audituid), 'asArray' => TRUE));
  83. }
  84. public function getMyRecord($audituid) {
  85. Doo::db()->connect();
  86. $reArray = Doo::db()->fetchAll('select a.* from jl_measure_audit a inner join (select pmid ,numpname, max(times) times from jl_measure_audit group by pmid,numpname) b on a.pmid = b.pmid and a.numpname = b.numpname and a.times = b.times and (mastatus=\'uncheck\' or mastatus=\'checking\') and auditoruid=? order by a.pmid', array($audituid));
  87. Doo::db()->disconnect();
  88. return $reArray;
  89. }
  90. public function getMyRecord2($audituid) {
  91. $resArray = Doo::db()->fetchAll('select a.* from jl_measure_audit a inner join (select pmid ,numpname, max(times) times from jl_measure_audit group by pmid,numpname) b on a.pmid = b.pmid and a.numpname = b.numpname and a.times = b.times and auditoruid=? order by a.pmid', array($audituid));
  92. Doo::db()->disconnect();
  93. return $resArray;
  94. }
  95. public function getMyAllRecord($audituid) {
  96. return Doo::db()->query('select a.* from jl_measure_audit a inner join (select pmid ,numpname, max(times) times from jl_measure_audit group by pmid,numpname) b on a.pmid = b.pmid and a.numpname = b.numpname and a.times = b.times and auditoruid=? order by a.pmid', array($audituid));
  97. }
  98. public function getUpUIDStatus($pmid, $numpname, $creatoruid) {
  99. return $this->__measureaudit->getOne(array('where' => 'pmid=? AND numpname=? AND auditoruid=?', 'param' => array($pmid, $numpname, $creatoruid), 'asArray' => TRUE));
  100. }
  101. public function getFirstAuditor($pmid, $numpname, $times = 0) {
  102. return $this->__measureaudit->getOne(array('where' => 'maid =(select min(maid) from jl_measure_audit where `pmid`=? and `numpname` =? and times=? and last=2)', 'param' => array($pmid, $numpname, $times), 'asArray' => TRUE));
  103. }
  104. public function updateMastatus($maid) {
  105. $this->__measureaudit->mastatus = 'checking';
  106. $this->__measureaudit->auditcontent = '';
  107. $this->__measureaudit->audittime = '';
  108. return $this->__measureaudit->update(array('where' => 'maid=?', 'param' => array($maid)));
  109. }
  110. // for api
  111. public function updateAuditorMPID($mpid, $tenderid, $phaseno, $times = 0) {
  112. $this->__measureaudit->mpid = $mpid;
  113. return $this->__measureaudit->update(array('where' => 'pmid=? and numpname=? and times=?', 'param' => array($tenderid, $phaseno, $times)));
  114. }
  115. public function setCheckno($maid, $auditcontent = NULL) {
  116. $this->__measureaudit->mastatus = 'checkno';
  117. $this->__measureaudit->audittime = time();
  118. if (isset($auditcontent) && $auditcontent)
  119. $this->__measureaudit->auditcontent = $auditcontent;
  120. return $this->__measureaudit->update(array('where' => 'maid=?', 'param' => array($maid)));
  121. }
  122. public function setStatusTo($maid, $status = 3, $auditcontent = '') {
  123. if ($status == 3) {
  124. $this->__measureaudit->mastatus = 'checked';
  125. }
  126. if ($status == 4) {
  127. $this->__measureaudit->mastatus = 'checkno';
  128. }
  129. if (isset($auditcontent) && $auditcontent) {
  130. $this->__measureaudit->auditcontent = $auditcontent;
  131. }
  132. $this->__measureaudit->audittime = time();
  133. return $this->__measureaudit->update(array('where' => 'maid=?', 'param' => array($maid)));
  134. }
  135. public function getRowInfo($pmid, $numpname, $auditoruid) {
  136. return $this->__measureaudit->getOne(array('where' => 'pmid=? and numpname=? and auditoruid=?', 'desc' => 'times', 'param' => array($pmid, $numpname, $auditoruid), 'asArray' => TRUE));
  137. }
  138. // for api
  139. public function getLastNewRowInfo($pmid, $numpname, $auditoruid) {
  140. $maxtimesArray = $this->getMaxTimes($pmid, $numpname);
  141. return $this->__measureaudit->getOne(array('where' => 'pmid=? and numpname=? and auditoruid=? and times=?', 'param' => array($pmid, $numpname, $auditoruid, $maxtimesArray['maxtimes']), 'asArray' => TRUE));
  142. }
  143. public function getStatusTender($pmid, $numpname) {
  144. return $this->__measureaudit->getOne(array('where' => 'pmid=? and numpname=? and last=1', 'param' => array($pmid, $numpname), 'asArray' => TRUE));
  145. }
  146. public function getStatusTen($pmid, $numpname) {
  147. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=?', 'param' => array($pmid, $numpname), 'asArray' => TRUE));
  148. }
  149. public function getAuditUser($bid, $num) {
  150. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=? order by last desc,maid asc', 'param' => array($bid, $num), 'asArray' => TRUE));
  151. }
  152. // 去重复
  153. public function getAuditUserRedo($bid, $num) {
  154. $maxtimesArray = $this->getMaxTimes($bid, $num);
  155. return $this->__measureaudit->find(array('where' => 'pmid=? and numpname=? and times=? order by last desc,maid asc', 'param' => array($bid, $num, $maxtimesArray['maxtimes']), 'asArray' => TRUE));
  156. }
  157. // 去重复
  158. public function getMaxTimes($bid, $num) {
  159. return $this->__measureaudit->getOne(array('select' => 'max(times) as maxtimes', 'where' => 'pmid=? and numpname=?', 'param' => array($bid, $num), 'asArray' => TRUE));
  160. }
  161. public function getMaxTimesInt($bid, $num) {
  162. return $this->__measureaudit->getOne(array('select' => 'max(times) as maxtimes', 'where' => 'pmid=? and numpname=?', 'param' => array($bid, $num), 'asArray' => TRUE))['maxtimes'];
  163. }
  164. public function delAuditUser($tenderid, $phaseno, $uid) {
  165. return $this->__measureaudit->delete(array('where' => 'pmid=? and numpname=? and auditoruid=?', 'param' => array($tenderid, $phaseno, $uid), 'asArray' => TRUE));
  166. }
  167. public function delAuditUserTimes($tenderid, $phaseno, $uid, $times = 0) {
  168. return $this->__measureaudit->delete(array('where' => 'pmid=? and numpname=? and auditoruid=? and times=?', 'param' => array($tenderid, $phaseno, $uid, $times), 'asArray' => TRUE));
  169. }
  170. public function getCurrUserAllProject($audituid) {
  171. return $this->__measureaudit->find(array('where' => 'auditoruid=?', 'param' => array($audituid), 'desc' => 'numpname,times', 'groupby' => 'pmid', 'asArray' => TRUE));
  172. }
  173. // for API 获取用户参与PMID组
  174. public function getPmidGroup($audituid) {
  175. return $this->__measureaudit->find(array('where' => 'auditoruid=?', 'param' => array($audituid), 'groupby' => 'pmid', 'asArray' => TRUE));
  176. }
  177. // for API 根据pmid,审核人id 获取最新一期最新一次记录
  178. public function getLastNumTimes($pmid, $audituid) {
  179. return $this->__measureaudit->getOne(array('where' => 'auditoruid=? and pmid=?', 'desc' => 'maid', 'param' => array($audituid, $pmid), 'asArray' => TRUE));
  180. }
  181. public function getUserPmid($audituid) {
  182. return $this->__measureaudit->find(array('select' => 'pmid', 'where' => 'auditoruid=?', 'param' => array($audituid), 'groupby' => 'pmid', 'asArray' => TRUE));
  183. }
  184. /**
  185. *
  186. * @param type $tenderid
  187. * @param type $phaseno
  188. * @return type
  189. * 最新一次的
  190. */
  191. public function getAuditOpinion($tenderid, $phaseno) {
  192. $maxtimesArray = $this->getMaxTimes($tenderid, $phaseno);
  193. return $this->__measureaudit->find(array('select' => 'auditoruid,auditcontent', 'where' => 'pmid=? and numpname=? and times=?', 'param' => array($tenderid, $phaseno, $maxtimesArray['maxtimes']), 'asArray' => TRUE));
  194. }
  195. }