sign.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?php
  2. Doo::loadModel('sign');
  3. Doo::loadModel('signatt');
  4. Doo::loadModel('signaudit');
  5. Doo::loadModel('signauditatt');
  6. class Signn
  7. {
  8. private $_sign,$_signatt,$_signaudit,$_signauditatt;
  9. function __construct()
  10. {
  11. $this->_sign = new Sign();
  12. $this->_signatt = new SignAtt();
  13. $this->_signaudit = new SignAudit();
  14. $this->_signauditatt = new SignAuditAtt();
  15. }
  16. public function getNeedSignNumbyUid($uid){
  17. return $this->_signaudit->count(array('where' => 'audituid=? and status="checking"', 'param' => array($uid), 'asArray' => TRUE));
  18. }
  19. public function getMySignNumbyUid($uid,$sql =' 1'){
  20. return $this->_sign->count(array('where' => $sql.' and audituid=?', 'param' => array($uid), 'asArray' => TRUE));
  21. }
  22. public function getUnSignNum($sql,$uid){
  23. return $this->_sign->count(array('where' => $sql.' and status="uncheck" AND (`isinter`=0 OR `isinter`=3) AND (`ownuid`='.$uid.' OR tender IN (SELECT pmid FROM jl_measure_audit WHERE auditoruid='.$uid.' GROUP BY auditoruid) OR project IN (SELECT pid FROM jl_project_measure WHERE uid='.$uid.'))', 'asArray' => TRUE));
  24. }
  25. public function getDoingSignNumbyUid($uid, $sql = ' 1'){
  26. return $this->_sign->count(array('where' => $sql.' and (status="checking" or status="back") and sid in(select `jl_sign_audit`.sid from `jl_sign_audit` where `jl_sign_audit`.audituid=?)', 'param' => array($uid), 'asArray' => TRUE));
  27. }
  28. public function getDoneSignNumbyUid($uid, $sql = ' 1'){
  29. return $this->_sign->count(array('where' => $sql.' and status="checked" and sid in(select `jl_sign_audit`.sid from `jl_sign_audit` where `jl_sign_audit`.audituid=?)', 'param' => array($uid), 'asArray' => TRUE));
  30. }
  31. // public function getSignNum($sql,$uid){
  32. // return $this->_sign->count(array('where' => $sql.' and (`audituid`='.$uid.' OR sid IN (SELECT sid FROM jl_sign_audit WHERE jl_sign_audit.audituid='.$uid.'))','asArray' => TRUE));
  33. // }
  34. public function getSignNum($sql){
  35. return $this->_sign->count(array('where' => $sql,'asArray' => TRUE));
  36. }
  37. public function getNeedSignbyUid($uid){
  38. return $this->_signaudit->find(array('where' => 'audituid=? and status="checking"', 'param' => array($uid), 'desc' => 'satid', 'asArray' => TRUE));
  39. }
  40. public function getOneSignbysid($sid){
  41. return $this->_sign->getOne(array('where' => 'sid=?', 'param' => array($sid), 'asArray' => TRUE));
  42. }
  43. public function getSignAuditList($sid){
  44. return $this->_signaudit->find(array('where' => 'sid=?', 'param' => array($sid), 'asArray' => TRUE));
  45. }
  46. public function getisSignbySidUid($sid,$uid){
  47. return $this->_signaudit->getOne(array('where' => 'sid=? and audituid=? and status="checking"', 'param' => array($sid,$uid), 'asArray' => TRUE));
  48. }
  49. public function getSignAttList($sid){
  50. return $this->_signatt->find(array('where' => 'sid=?', 'param' => array($sid), 'asArray' => TRUE));
  51. }
  52. public function getSignAuditAttList($said){
  53. return $this->_signauditatt->find(array('where' => 'said=?', 'param' => array($said), 'asArray' => TRUE));
  54. }
  55. public function getOneSignAudit($sid,$uid){
  56. return $this->_signaudit->getOne(array('where' => 'sid=? and audituid=?', 'param' => array($sid,$uid), 'asArray' => TRUE));
  57. }
  58. public function updateSignAudit($satid,$status,$time = 0){
  59. $this->_signaudit->satid = $satid;
  60. $this->_signaudit->status = $status;
  61. if($status == 'checked'){
  62. $this->_signaudit->intime = time();
  63. }else{
  64. $this->_signaudit->intime = $time;
  65. }
  66. return $this->_signaudit->update();
  67. }
  68. public function insertSignAuditAtt($uid,$said,$path,$position){
  69. $this->_signauditatt->audituid = filter_var($uid, FILTER_VALIDATE_INT);
  70. $this->_signauditatt->said = filter_var($said, FILTER_VALIDATE_INT);
  71. $this->_signauditatt->picpath = filter_var($path, FILTER_SANITIZE_STRING);
  72. $this->_signauditatt->position = filter_var($position, FILTER_SANITIZE_STRING);
  73. return $this->_signauditatt->insert();
  74. }
  75. public function updateSignStatus($sid){
  76. $this->_sign->sid = $sid;
  77. $this->_sign->status = 'checked';
  78. $this->_sign->sintime = time();
  79. return $this->_sign->update();
  80. }
  81. public function updateSignMsg($sid,$uid){
  82. $this->_sign->sid = $sid;
  83. $this->_sign->status = 'checking';
  84. $this->_sign->audituid = $uid;
  85. $this->_sign->aintime = time();
  86. return $this->_sign->update();
  87. }
  88. public function getDoneSignListbyUid($uid, $sql = ' 1', $limit){
  89. return $this->_sign->find(array('where' => $sql.' and status="checked" and sid in(select `jl_sign_audit`.sid from `jl_sign_audit` where `jl_sign_audit`.audituid=?)', 'param' => array($uid), 'desc' => 'sid', 'limit' => $limit, 'asArray' => TRUE));
  90. }
  91. public function getDoingSignListbyUid($uid,$sql = ' 1', $limit){
  92. return $this->_sign->find(array('where' => $sql.' and (status="checking" or status="back") and sid in(select `jl_sign_audit`.sid from `jl_sign_audit` where `jl_sign_audit`.audituid=?)', 'param' => array($uid), 'desc' => 'sid', 'limit' => $limit, 'asArray' => TRUE));
  93. }
  94. public function getMySignListbyUid($uid,$sql = ' 1',$limit){
  95. return $this->_sign->find(array('where' => $sql.' and audituid=?', 'param' => array($uid), 'desc' => 'sid', 'limit' => $limit, 'asArray' => TRUE));
  96. }
  97. public function updateSignShareStatus($status,$sid){
  98. $this->_sign->sid = $sid;
  99. $this->_sign->ishare = $status;
  100. return $this->_sign->update();
  101. }
  102. public function getUnSignList($sql, $uid, $limit){
  103. return $this->_sign->find(array('where' => $sql.' and status="uncheck" AND (`isinter`=0 OR `isinter`=3) AND (`ownuid`='.$uid.' OR tender IN (SELECT pmid FROM jl_measure_audit WHERE auditoruid='.$uid.' GROUP BY auditoruid) OR project IN (SELECT pid FROM jl_project_measure WHERE uid='.$uid.'))', 'desc' => 'sid', 'limit' => $limit, 'asArray' => TRUE));
  104. }
  105. public function getSignList($sql, $limit){
  106. return $this->_sign->find(array('where' => $sql, 'desc' => 'sid', 'limit' => $limit, 'asArray' => TRUE));
  107. }
  108. public function insertSign($pid, $tid, $phaseno, $name, $ownuid,$intime,$widhei,$isinter = 0, $internum = 0){
  109. $this->_sign->project = $pid;
  110. $this->_sign->tender = $tid;
  111. $this->_sign->phaseno = $phaseno;
  112. $this->_sign->name = $name;
  113. $this->_sign->ownuid = $ownuid;
  114. $this->_sign->intime = $intime;
  115. $this->_sign->widhei = $widhei;
  116. $this->_sign->isinter = $isinter;
  117. $this->_sign->internum = $internum;
  118. return $this->_sign->insert();
  119. }
  120. public function insertSignAtt($sid, $num, $path){
  121. $this->_signatt->sid = $sid;
  122. $this->_signatt->curnum = $num;
  123. $this->_signatt->filepath = $path;
  124. return $this->_signatt->insert();
  125. }
  126. public function updateSignPageNum($sid, $pagenum){
  127. $this->_sign->sid = $sid;
  128. $this->_sign->pagenum = $pagenum;
  129. return $this->_sign->update();
  130. }
  131. public function insertSignAudit($sid,$status,$uid,$name){
  132. $this->_signaudit->sid = $sid;
  133. $this->_signaudit->status = $status;
  134. $this->_signaudit->audituid = $uid;
  135. $this->_signaudit->aname = $name;
  136. return $this->_signaudit->insert();
  137. }
  138. public function getSignListbyClient($sql){
  139. return $this->_sign->find(array('where' => $sql, 'asArray' => TRUE));
  140. }
  141. public function getSignbyName($tender,$phaseno,$name){
  142. return $this->_sign->getOne(array('where' => 'tender=? and phaseno=? and name=?', 'param' => array($tender,$phaseno,$name), 'asArray' => TRUE));
  143. }
  144. public function getSignGroupByProject($sql = '1'){
  145. return $this->_sign->find(array('select' => 'project', 'where' => $sql, 'groupby' => 'project', 'asArray' => TRUE));
  146. }
  147. public function getSignGroupByTender($pid,$sql = ' 1'){
  148. return $this->_sign->find(array('select' => 'tender', 'where' => $sql.' and project=?', 'param' => array($pid), 'groupby' => 'tender', 'asArray' => TRUE));
  149. }
  150. public function getSignGroupByPhaseno($pmid,$sql = ' 1'){
  151. return $this->_sign->find(array('select' => 'phaseno', 'where' => $sql.' and tender=?', 'param' => array($pmid), 'groupby' => 'phaseno', 'asArray' => TRUE));
  152. }
  153. public function delSignbysid($sid,$status){
  154. if($status == 'checking' || $status == 'checked'){
  155. $this->_signaudit->sid = $sid;
  156. $this->_signaudit->delete();
  157. $attlist = $this->getSignAttList($sid);
  158. if(!empty($attlist)){
  159. foreach ($attlist as $key => $value) {
  160. $this->_signauditatt->said = $value['said'];
  161. $this->_signauditatt->delete();
  162. }
  163. }
  164. }
  165. $this->_sign->sid = $sid;
  166. $this->_sign->delete();
  167. $this->_signatt->sid = $sid;
  168. $this->_signatt->delete();
  169. }
  170. public function updateInterMediateStatus($sid,$status){
  171. $this->_sign->sid= $sid;
  172. $this->_sign->isinter = $status;
  173. return $this->_sign->update();
  174. }
  175. public function getOneSignAtt($sid,$num){
  176. return $this->_signatt->getOne(array('where' => 'sid=? and curnum=?', 'param' => array($sid,$num), 'asArray' => TRUE));
  177. }
  178. public function updateSignAtt($sid,$curnum,$path){
  179. $signattmsg = $this->_signatt->getOne(array('where' => 'sid=? and curnum=?', 'param' => array($sid,$curnum), 'asArray' => TRUE));
  180. if(!empty($signattmsg)){
  181. $this->_signatt->said = $signattmsg['said'];
  182. $this->_signatt->filepath = $path;
  183. return $this->_signatt->update();
  184. }else{
  185. return false;
  186. }
  187. }
  188. public function updateSignStatusAndTime($sid,$status,$time = ''){
  189. $this->_sign->sid = $sid;
  190. $this->_sign->status = $status;
  191. $this->_sign->sintime = $time;
  192. return $this->_sign->update();
  193. }
  194. public function updateSignStatusbyPmid($pmid){
  195. // $this->_sign->tender = $pmid;
  196. $this->_sign->status = 'del';
  197. return $this->_sign->update(array('where' => 'tender=?', 'param' => array($pmid)));
  198. }
  199. public function delSignbyTenderAndPhaseno($tender,$phaseno = ''){
  200. $phasenolist = !empty($phaseno) && is_numeric($phaseno) ? ' and phaseno='. $phaseno : '';
  201. $signlist = $this->_sign->find(array('where' => 'tender=?'.$phasenolist, 'param' => array($tender), 'asArray' => TRUE));
  202. if(!empty($signlist)){
  203. include (DOO::conf()->SITE_PATH . 'protected/plugin/io.han.php');
  204. foreach($signlist as $k => $v){
  205. $this->delSignbysid($v['sid'],'checking');
  206. $this->IoHandler = new IoHandler();
  207. $path = DOO::conf()->SITE_PATH."signs/".$v['sid'];
  208. $this->IoHandler->RemoveDir($path);
  209. }
  210. }
  211. }
  212. }