gworkermodel.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  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) {
  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']) && !empty($where['qu_active'])) {
  195. $qu_active = $where['qu_active'];
  196. $usewhere[] = "qu_active='" . $qu_active . "'";
  197. }
  198. if (isset($where['qu_isanswer']) && !empty($where['qu_isanswer'])) {
  199. $qu_isanswer = $where['qu_isanswer'];
  200. $usewhere[] = "qu_isanswer='" . $qu_isanswer . "'";
  201. }
  202. if (!empty($where)) {
  203. $where_str = implode(" and ", $usewhere);
  204. $strsql .= " where " . $where_str;
  205. }
  206. $ordre = "id,cprojectid";
  207. $strsql .= " order by " . $ordre;
  208. $rlist = $this->query($strsql);
  209. $rlist = collection($rlist)->toArray();
  210. return $rlist;
  211. }
  212. /*
  213. * 20210416
  214. * 获取生日是今天的员工
  215. */
  216. public function selworklistbybirthday($birthday) {
  217. if ($birthday != '0301') {
  218. $strsql = "select * from t_workerinfo where SUBSTR(shengfengid FROM 11 FOR 4)='" . $birthday . "'";
  219. } else {
  220. $strsql = "select * from t_workerinfo where SUBSTR(shengfengid FROM 11 FOR 4)='" . $birthday . "' or SUBSTR(shengfengid FROM 11 FOR 4)='0209'";
  221. }
  222. $rlist = $this->query($strsql);
  223. $rlist = collection($rlist)->toArray();
  224. return $rlist;
  225. }
  226. /*
  227. * 20210416
  228. * 更新工人年龄
  229. */
  230. public function updwagebyid($id, $wage) {
  231. $where_arr['id'] = $id;
  232. $upd_arr['wage'] = $wage;
  233. $this->where($where_arr)->update($upd_arr);
  234. }
  235. /*
  236. * 20210427
  237. * 更新工人信息(电话、工种)
  238. */
  239. public function updinfobyid($id, $arr) {
  240. $where_arr['id'] = $id;
  241. $count = $this->where($where_arr)->update($arr);
  242. return $count;
  243. }
  244. /*
  245. * 20210725
  246. * 获取每个工地的人数统计
  247. */
  248. public function selwcountbyprj() {
  249. $strsql = 'select cprojectid, count(*) as pwcount ';
  250. $strsql = $strsql . ' from t_workerinfo ';
  251. $strsql = $strsql . " where cprojectid>3";
  252. $strsql = $strsql . " group by cprojectid";
  253. $rlist = $this->query($strsql);
  254. $rlist = collection($rlist)->toArray();
  255. return $rlist;
  256. }
  257. /*
  258. * 20210807
  259. * 获取所有cprojectid>3的用户
  260. */
  261. public function selinfolistwithprjid() {
  262. $strsql = 'select * from t_workerinfo where cprojectid>3';
  263. $rlist = $this->query($strsql);
  264. $rlist = collection($rlist)->toArray();
  265. return $rlist;
  266. }
  267. }