gworkermodel.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: sicilon_IT
  5. * Date: 2020/1/12
  6. * Time: 21:59
  7. */
  8. namespace app\index\model;
  9. use think\Model;
  10. use think\Log;
  11. class gworkermodel extends Model {
  12. protected $table = 't_workerinfo';
  13. public function getidbytel($tel) {
  14. $recordlist = $this->where('telno', $tel)->find();
  15. if ($recordlist) {
  16. return $recordlist['id'];
  17. } else {
  18. return 0;
  19. }
  20. }
  21. //获取所有工人信息,并带项目名称
  22. public function getallworker($start, $rlen) {
  23. $strsql = "select a.*,c.pname,c.is_worker ";
  24. $strsql = $strsql . "from t_workerinfo a left join t_p2wrelation b on a.id=b.wid and b.checkstatus=1 left join t_pinfo c on b.pid=c.id";
  25. $strsql = $strsql . " limit " . $start . "," . $rlen;
  26. $workerlist = $this->query($strsql);
  27. return $workerlist;
  28. }
  29. /*
  30. * 20230214
  31. * 获取一个企业的项目的所有工人
  32. */
  33. public function getallworkerbycid($start, $rlen, $cid) {
  34. $strsql = "select a.*,c.pname,c.is_worker,IFNULL(tab.quactive,0) qu_active,IFNULL(tab.quisanswer,0) qu_isanswer";
  35. // $strsql = $strsql . "from t_workerinfo a left join t_p2wrelation b on a.id=b.wid and b.checkstatus=1 left join t_pinfo c on b.pid=c.id";
  36. $strsql = $strsql . " from t_workerinfo a
  37. left join t_p2wrelation b on a.id=b.wid and b.checkstatus=1
  38. left join t_pinfo c on b.pid=c.id
  39. left join (select id,user_id,is_active as quactive,is_answer as quisanswer from t_question_user where is_active=1) as tab on tab.user_id=a.id";
  40. $strsql = $strsql . " where c.companyid=" . $cid;
  41. $strsql = $strsql . " order by a.dayprice,create_date desc";
  42. $strsql = $strsql . " limit " . $start . "," . $rlen;
  43. $workerlist = $this->query($strsql);
  44. return $workerlist;
  45. }
  46. /**
  47. *
  48. *
  49. * @param [type] $start
  50. * @param [type] $rlen
  51. * @param [type] $cid
  52. * @return void
  53. * @author wj
  54. * @date 2025-02-17
  55. */
  56. public function getnotinprojectuserlist($start, $rlen) {
  57. $strsql = "select a.*,c.pname,c.is_worker ";
  58. $strsql = $strsql . "from t_workerinfo a left join t_p2wrelation b on a.id=b.wid and b.checkstatus=1 left join t_pinfo c on b.pid=c.id";
  59. $strsql = $strsql . " where a.isactive=1 and a.cprojectid=3";
  60. $strsql = $strsql . " order by a.dayprice,create_date desc";
  61. $strsql = $strsql . " limit " . $start . "," . $rlen;
  62. $workerlist = $this->query($strsql);
  63. return $workerlist;
  64. }
  65. /*
  66. * steelxu
  67. * 20200212
  68. * 获取指定项目员工
  69. */
  70. public function getprjworker($start, $rlen, $pid) {
  71. $strsql = "select * ";
  72. $strsql = $strsql . "from t_workerinfo ";
  73. $strsql = $strsql . " where cprojectid=" . $pid;
  74. $strsql = $strsql . " order by wname";
  75. $strsql = $strsql . " limit " . $start . "," . $rlen;
  76. $workerlist = $this->query($strsql);
  77. return $workerlist;
  78. }
  79. /*
  80. * 20200303
  81. * 预检查是否有索引字段重复
  82. */
  83. private function precheckindex($info) {
  84. $where_arr['telno'] = $info['telno'];
  85. $rec = $this->where($where_arr)->find();
  86. if ($rec) {
  87. return false;
  88. } else {
  89. return true;
  90. }
  91. }
  92. /*
  93. * 20200303
  94. * edit
  95. * 有索引表,增加预检 *
  96. */
  97. public function saveworkerinfo($worker) {
  98. //预检
  99. $ishave = $this->precheckindex($worker);
  100. Log::info($ishave);
  101. if (!$ishave) {
  102. return -1;
  103. }
  104. Log::info($worker);
  105. $sid = $this->allowField(true)->isUpdate(false)->setAttr('id', null)->save($worker);
  106. if ($sid == 1) {
  107. return $this->id;
  108. } else {
  109. return $sid;
  110. }
  111. }
  112. /*
  113. * 20200204
  114. * steelxu
  115. * 更新工人的cprojectid,
  116. * 实现工人指量设置,换项目的功能
  117. * */
  118. public function updateprj($pid, $wid) {
  119. $where_arr['id'] = $wid;
  120. $update_arr['cprojectid'] = $pid;
  121. $res = $this->where($where_arr)->update($update_arr);
  122. return $res;
  123. }
  124. /*
  125. * steelxu
  126. * 20200211
  127. * 根据工人ID获取信息
  128. */
  129. public function getinfobyid($wid) {
  130. $where_arr['id'] = $wid;
  131. $rec = $this->where($where_arr)->find();
  132. return $rec;
  133. }
  134. /*
  135. * 20200325
  136. * 获取所有工人的id和身份证
  137. */
  138. public function selshengfengzhenglist() {
  139. $strsql = "select id,shengfengid ";
  140. $strsql = $strsql . " from t_workerinfo";
  141. $wlist = $this->query($strsql);
  142. return $wlist;
  143. }
  144. /*
  145. * 2030215
  146. * 只返回公司的员工id和身份证
  147. */
  148. public function selcompanyshengfengzhenglist($cid) {
  149. $strsql = "select a.id,a.shengfengid ";
  150. $strsql = $strsql . " from t_workerinfo a left join t_pinfo b on a.cprojectid=b.id";
  151. $strsql = $strsql . " where b.companyid=" . $cid;
  152. $wlist = $this->query($strsql);
  153. return $wlist;
  154. }
  155. /*
  156. * 20200417
  157. * 根据电话获取用户信息
  158. *
  159. */
  160. public function seluinfobytel($tel) {
  161. $where_arr['telno'] = $tel;
  162. $rec = $this->where($where_arr)->find();
  163. return $rec;
  164. }
  165. /*
  166. * 20200515
  167. * 根据身份证获取数据
  168. */
  169. public function selinfobysfz($sfzid) {
  170. $where_arr['shengfengid'] = $sfzid;
  171. $rec = $this->where($where_arr)->find();
  172. return $rec;
  173. }
  174. /*
  175. * 20210311
  176. * 根据姓名获取数据
  177. */
  178. public function selinfobyname($name) {
  179. $strsql = "select * from t_workerinfo where wname like '%" . $name . "%' order by id,cprojectid";
  180. $rlist = $this->query($strsql);
  181. $rlist = collection($rlist)->toArray();
  182. return $rlist;
  183. }
  184. public function selinfobywhere($where, $page = 1, $size = 10) {
  185. $field = "w.*,IFNULL(tab.quactive,0) qu_active,IFNULL(tab.quisanswer,0) qu_isanswer";
  186. $strsql = "select " . $field . " from t_workerinfo as w
  187. left join (select id,user_id,is_active as quactive,is_answer as quisanswer from t_question_user where is_active=1) as tab on tab.user_id=w.id";
  188. $strsql = "select * from (" . $strsql . ") as tab1";
  189. $usewhere = [];
  190. if (isset($where['wname']) && !empty($where['wname'])) {
  191. $name = $where['wname'];
  192. $usewhere[] = "wname like '%" . $name . "%'";
  193. }
  194. if (isset($where['qu_active']) && in_array($where['qu_active'], [0, 1]) && "" != $where['qu_active']) {
  195. $qu_active = $where['qu_active'];
  196. $usewhere[] = "qu_active='" . $qu_active . "'";
  197. }
  198. if (isset($where['qu_isanswer']) && in_array($where['qu_isanswer'], [0, 1]) && "" != $where['qu_isanswer']) {
  199. $qu_isanswer = $where['qu_isanswer'];
  200. $usewhere[] = "qu_isanswer='" . $qu_isanswer . "'";
  201. }
  202. if (!empty($usewhere)) {
  203. $where_str = implode(" and ", $usewhere);
  204. $strsql .= " where " . $where_str;
  205. }
  206. $ordre = "id,cprojectid";
  207. $strsql .= " order by " . $ordre;
  208. $index = ($page - 1) * $size;
  209. $strsql .= " limit " . $index . "," . $size;
  210. $rlist = $this->query($strsql);
  211. $rlist = collection($rlist)->toArray();
  212. return $rlist;
  213. }
  214. /*
  215. * 20210416
  216. * 获取生日是今天的员工
  217. */
  218. public function selworklistbybirthday($birthday) {
  219. if ($birthday != '0301') {
  220. $strsql = "select * from t_workerinfo where SUBSTR(shengfengid FROM 11 FOR 4)='" . $birthday . "'";
  221. } else {
  222. $strsql = "select * from t_workerinfo where SUBSTR(shengfengid FROM 11 FOR 4)='" . $birthday . "' or SUBSTR(shengfengid FROM 11 FOR 4)='0209'";
  223. }
  224. $rlist = $this->query($strsql);
  225. $rlist = collection($rlist)->toArray();
  226. return $rlist;
  227. }
  228. /*
  229. * 20210416
  230. * 更新工人年龄
  231. */
  232. public function updwagebyid($id, $wage) {
  233. $where_arr['id'] = $id;
  234. $upd_arr['wage'] = $wage;
  235. $this->where($where_arr)->update($upd_arr);
  236. }
  237. /*
  238. * 20210427
  239. * 更新工人信息(电话、工种)
  240. */
  241. public function updinfobyid($id, $arr) {
  242. $where_arr['id'] = $id;
  243. $count = $this->where($where_arr)->update($arr);
  244. return $count;
  245. }
  246. /*
  247. * 20210725
  248. * 获取每个工地的人数统计
  249. */
  250. public function selwcountbyprj() {
  251. $strsql = 'select cprojectid, count(*) as pwcount ';
  252. $strsql = $strsql . ' from t_workerinfo ';
  253. $strsql = $strsql . " where cprojectid>3";
  254. $strsql = $strsql . " group by cprojectid";
  255. $rlist = $this->query($strsql);
  256. $rlist = collection($rlist)->toArray();
  257. return $rlist;
  258. }
  259. /*
  260. * 20210807
  261. * 获取所有cprojectid>3的用户
  262. */
  263. public function selinfolistwithprjid() {
  264. $strsql = 'select * from t_workerinfo where cprojectid>3';
  265. $rlist = $this->query($strsql);
  266. $rlist = collection($rlist)->toArray();
  267. return $rlist;
  268. }
  269. }