Headquarters.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741
  1. <?php
  2. namespace app\controller;
  3. use app\BaseController;
  4. use app\model\Account;
  5. use app\model\AccountCompany;
  6. use think\Exception;
  7. use think\facade\Db;
  8. use think\facade\Validate;
  9. //【公司汇总】
  10. class Headquarters extends BaseController
  11. {
  12. //列表
  13. public function getList()
  14. {
  15. $post = $this->request->only(['code' => '', 'name' => '', 'status' => '', 'page' => 1, 'size' => 10, 'level' => '', 'account_id' => ''], 'post');
  16. $condition = [['is_del', '=', 0]];
  17. if ($post['code'] != '') $condition[] = is_array($post['code']) ? ['code', 'in', $post['code']] : ['code', 'like', "%{$post['code']}%"];
  18. if ($post['name'] != '') $condition[] = ['name', 'like', "%{$post['name']}%"];
  19. if ($post['status'] != '') $condition[] = ['status', '=', $post['status']];
  20. if ($post['level'] != 1) {
  21. $companyCode = Db::name('account_company')
  22. ->where(['account_id' => $post['account_id'], 'is_del' => 0, 'status' => 1])
  23. ->column('companyCode');
  24. $condition[] = ['code', 'in', $companyCode];
  25. }
  26. //兼容原有各个接口的筛选
  27. $count = Db::name('headquarters')
  28. ->where($condition)
  29. ->count('id');
  30. $list = Db::name('headquarters')
  31. ->field('id,code,name,type,status,addtime')
  32. ->where($condition)
  33. ->page($post['page'], $post['size'])
  34. ->order(['addtime' => 'desc', 'id' => 'desc'])
  35. ->select()
  36. ->toArray();
  37. return json_show(0, '获取成功', ['list' => $list, 'count' => $count]);
  38. }
  39. //添加
  40. public function add()
  41. {
  42. $post = $this->request->filter('trim')->post();
  43. Db::startTrans();
  44. try {
  45. switch ($post['type']) {
  46. case 1:
  47. Db::name('business')->insert($post['data']);
  48. break;
  49. case 2:
  50. Db::name('company_info')->insert($post['data']);
  51. break;
  52. case 3:
  53. Db::name('supplier')->insert($post['data']);
  54. break;
  55. }
  56. Db::name('headquarters')
  57. ->insert([
  58. 'code' => $post['code'],
  59. 'name' => $post['name'],
  60. 'type' => $post['type'],
  61. 'invoice_title' => $post['invoice_title'],
  62. 'invoice_people' => $post['invoice_people'],
  63. 'invoice_addr' => $post['invoice_addr'],
  64. 'invoice_code' => $post['invoice_code'],
  65. 'invoice_bank' => $post['invoice_bank'],
  66. 'invoice_bankNo' => $post['invoice_bankNo'],
  67. 'invoice_img' => $post['invoice_img'],
  68. 'remark' => $post['remark'],
  69. 'status' => $post['status'],
  70. 'is_del' => 0,
  71. 'creater' => $post['creater'],
  72. 'createrid' => $post['createrid'],
  73. 'addtime' => date('Y-m-d H:i:s'),
  74. 'updater' => $post['updater'],
  75. 'updaterid' => $post['updaterid'],
  76. 'updater' => date('Y-m-d H:i:s'),
  77. ]);
  78. Db::commit();
  79. return json_show(0, '添加成功');
  80. } catch (Exception $e) {
  81. Db::rollback();
  82. return json_show(1002, '添加失败,' . $e->getMessage());
  83. }
  84. }
  85. //编辑
  86. public function update()
  87. {
  88. $post = $this->request->filter('trim')->post();
  89. Db::startTrans();
  90. try {
  91. switch ($post['type']) {
  92. case 1:
  93. Db::name('business')->where(['companyNo' => $post['data']['companyNo'], 'is_del' => 0])->update($post['data']);
  94. break;
  95. case 2:
  96. Db::name('company_info')->where(['companyNo' => $post['data']['companyNo'], 'is_del' => 0])->update($post['data']);
  97. break;
  98. case 3:
  99. Db::name('supplier')->where(['code' => $post['data']['code'], 'is_del' => 0])->update($post['data']);
  100. break;
  101. }
  102. Db::name('headquarters')
  103. ->where(['code' => $post['code'], 'is_del' => 0])
  104. ->update([
  105. 'code' => $post['code'],
  106. 'name' => $post['name'],
  107. 'type' => $post['type'],
  108. 'invoice_title' => $post['invoice_title'],
  109. 'invoice_people' => $post['invoice_people'],
  110. 'invoice_addr' => $post['invoice_addr'],
  111. 'invoice_code' => $post['invoice_code'],
  112. 'invoice_bank' => $post['invoice_bank'],
  113. 'invoice_bankNo' => $post['invoice_bankNo'],
  114. 'invoice_img' => $post['invoice_img'],
  115. 'remark' => $post['remark'],
  116. 'updater' => $post['updater'],
  117. 'updaterid' => $post['updaterid'],
  118. 'updater' => date('Y-m-d H:i:s'),
  119. ]);
  120. Db::commit();
  121. return json_show(0, '修改成功');
  122. } catch (Exception $e) {
  123. Db::rollback();
  124. return json_show(1002, '修改失败,' . $e->getMessage());
  125. }
  126. }
  127. //详情
  128. public function info()
  129. {
  130. $code = $this->request->post('code', '', 'trim');
  131. if ($code == '') return json_show(1003, "参数 code 不能为空");
  132. $res = Db::name('headquarters')
  133. ->field(true)
  134. ->where(['code' => $code, 'is_del' => 0])
  135. ->findOrEmpty();
  136. if (empty($res)) return json_show(1004, '未找到相关汇总信息');
  137. switch ($res['type']) {
  138. case 1:
  139. $child = Db::name('business')
  140. ->field(true)
  141. ->where(['companyNo' => $code, 'is_del' => 0])
  142. ->findOrEmpty();
  143. break;
  144. case 2:
  145. $child = Db::name('company_info')
  146. ->where(['companyNo' => $code, 'is_del' => 0])
  147. ->findOrEmpty();
  148. break;
  149. case 3:
  150. $child = Db::name('supplier')
  151. ->where(['code' => $code, 'is_del' => 0])
  152. ->findOrEmpty();
  153. break;
  154. }
  155. $res['child'] = $child;
  156. return json_show(0, '获取成功', $res);
  157. }
  158. //删除
  159. public function delete()
  160. {
  161. $param = $this->request->only(['ids', 'type', 'updater', 'updaterid'], 'post', 'trim');
  162. $val = Validate::rule([
  163. 'ids' => 'require|array|max:100',
  164. 'type|类别' => 'require|number|in:1,2,3',
  165. 'updater|操作人' => 'require|max:255',
  166. 'updaterid|操作人id' => 'require|number|gt:0',
  167. ]);
  168. if (!$val->check($param)) return json_show(1004, $val->getError());
  169. Db::startTrans();
  170. try {
  171. $date = date('Y-m-d H:i:s');
  172. $codes = [];
  173. switch ($param['type']) {
  174. case 1:
  175. $where = [['is_del', '=', 0], ['id', 'in', $param['ids']]];
  176. $codes = Db::name('business')->where($where)->column('companyNo');
  177. Db::name('business')->where($where)->update(['is_del' => 1, 'updatetime' => $date]);
  178. break;
  179. case 2:
  180. Db::name('company_info')
  181. ->where('is_del', 0)
  182. ->whereIn('companyNo', $param['codes'])
  183. ->update(['is_del' => 1, 'updatetime' => $date]);
  184. break;
  185. case 3:
  186. $where = [['is_del', '=', 0], ['id', 'in', $param['ids']]];
  187. $codes = Db::name('supplier')->where($where)->column('code');
  188. Db::name('supplier')->where($where)->update(['is_del' => 1, 'updatetime' => $date]);
  189. break;
  190. }
  191. Db::name('headquarters')
  192. ->where('is_del', 0)
  193. ->whereIn('code', $codes)
  194. ->update([
  195. 'is_del' => 1,
  196. 'updater' => $param['updater'],
  197. 'updaterid' => $param['updaterid'],
  198. 'updatetime' => date('Y-m-d H:i:s')
  199. ]);
  200. Db::commit();
  201. return json_show(0, '删除成功');
  202. } catch (Exception $exception) {
  203. Db::rollback();
  204. return json_show(1005, '删除失败,' . $exception->getMessage());
  205. }
  206. }
  207. //启禁用
  208. public function status()
  209. {
  210. $param = $this->request->only(['id', 'type', 'status', 'updater', 'updaterid'], 'post', 'trim');
  211. $val = Validate::rule([
  212. 'id' => 'require|number|gt:0',
  213. 'type|类别' => 'require|number|in:1,2,3',
  214. 'status|状态' => 'require|number|in:0,1',
  215. 'updater|操作人' => 'require|max:255',
  216. 'updaterid|操作人id' => 'require|number|gt:0',
  217. ]);
  218. if (!$val->check($param)) return json_show(1004, $val->getError());
  219. Db::startTrans();
  220. try {
  221. $date = date('Y-m-d H:i:s');
  222. $code = '';
  223. switch ($param['type']) {
  224. case 1:
  225. $tmp = Db::name('business')
  226. ->field('id,companyNo code,status')
  227. ->where(['id' => $param['id'], 'is_del' => 0])
  228. ->findOrEmpty();
  229. if (empty($tmp)) throw new Exception('未找到对应数据');
  230. if ($tmp['status'] == $param['status']) throw new Exception('操作重复');
  231. Db::name('business')
  232. ->where(['id' => $param['id'], 'is_del' => 0])
  233. ->where('status', '<>', $param['status'])
  234. ->update([
  235. 'status' => $param['status'],
  236. 'updatetime' => $date
  237. ]);
  238. break;
  239. case 2:
  240. Db::name('company_info')
  241. ->where(['companyNo' => $param['data']['companyNo'], 'is_del' => 0])
  242. ->where('status', '<>', $param['status'])
  243. ->update([
  244. 'status' => $param['status'],
  245. 'updatetime' => $date
  246. ]);
  247. break;
  248. case 3:
  249. $tmp = Db::name('supplier')
  250. ->where(['id' => $param['id'], 'is_del' => 0])
  251. ->field('id,code,status')
  252. ->findOrEmpty();
  253. if (empty($tmp)) throw new Exception('该供应商不存在');
  254. if ($tmp['status'] == $param['status']) throw new Exception('操作重复');
  255. Db::name('supplier')
  256. ->where(['id' => $param['id'], 'is_del' => 0])
  257. ->where('status', '<>', $param['status'])
  258. ->update([
  259. 'status' => $param['status'],
  260. 'updatetime' => $date
  261. ]);
  262. break;
  263. }
  264. Db::name('headquarters')
  265. ->where(['code' => $tmp['code'], 'is_del' => 0])
  266. ->where('status', '<>', $param['status'])
  267. ->update([
  268. 'status' => $param['status'],
  269. 'updater' => $param['updater'],
  270. 'updaterid' => $param['updaterid'],
  271. 'updatetime' => $date
  272. ]);
  273. Db::commit();
  274. return json_show(0, '操作成功');
  275. } catch (Exception $exception) {
  276. Db::rollback();
  277. return json_show(1005, '操作失败,' . $exception->getMessage());
  278. }
  279. }
  280. //获取指定编码和名称
  281. public function getCodeAndName()
  282. {
  283. $companyNo = $this->request->filter('trim')->post('code');
  284. $res = Db::name('headquarters')
  285. ->where('is_del', 0)
  286. ->whereIn('code', $companyNo)
  287. ->column('name', 'code');
  288. return json_show(0, '请求成功', $res);
  289. }
  290. //业务企业
  291. public function bGetList()
  292. {
  293. $param = $this->request->only([
  294. 'page' => 1,
  295. 'size' => 10,
  296. 'company' => '',
  297. 'status' => '',
  298. 'creater' => '',
  299. 'start' => '',
  300. 'end' => '',
  301. 'company_name' => '',
  302. ], 'post', 'trim');
  303. $where = [['a.is_del', "=", 0]];
  304. if ($param['company'] !== "") $where[] = ["a.company", "like", '%' . $param['company'] . '%'];
  305. if ($param['status'] !== "") $where[] = ["a.status", '=', $param['status']];
  306. if ($param['creater'] !== "") $where[] = ["a.creater", "like", '%' . $param['creater'] . '%'];
  307. if ($param['start'] !== "") $where[] = ["a.addtime", '>=', $param['start']];
  308. if ($param['end'] !== "") $where[] = ["a.addtime", '<=', $param['end'] . ' 23:59:59'];
  309. // if ($param['company_name'] !== "") $where[] = ["a.createrid", 'in', $param['company_name']];
  310. $count = Db::name('business')
  311. ->alias('a')
  312. // ->leftJoin("depart_user u", "u.uid=a.createrid AND u.is_del=0")
  313. ->where($where)
  314. ->count('a.id');
  315. $list = Db::name('business')
  316. ->alias('a')
  317. ->field(true)
  318. // ->field('a.*,u.itemid')
  319. // ->leftJoin("depart_user u", "u.uid=a.createrid AND u.is_del=0")
  320. ->where($where)
  321. ->page($param['page'], $param['size'])
  322. ->order(['addtime' => 'desc', 'id' => 'desc'])
  323. ->select()
  324. ->toArray();
  325. // $all_codes = Db::name('supplier_contact')
  326. // ->whereIn('code', array_column($list, 'code'))
  327. // ->column("id,contactor,mobile", 'code');
  328. //获取开通账号的供应商
  329. // $account = checkHasAccountBySupplierNos(array_column($list,'code'));
  330. foreach ($list as &$value) {
  331. $value['company_name'] = '';
  332. }
  333. return json_show("0", "获取成功", ['list' => $list, 'count' => $count]);
  334. }
  335. public function bCreate()
  336. {
  337. $param = $this->request->filter('trim')->post('');
  338. Db::startTrans();
  339. try {
  340. $tmp = Db::name('business')
  341. ->field('id')
  342. ->where(['company' => $param['company'], 'is_del' => 0])
  343. ->findOrEmpty();
  344. if (!empty($tmp)) throw new Exception('该公司名称已存在');
  345. Db::name('business')->insert($param);
  346. Db::name('headquarters')->insert([
  347. 'code' => $param['companyNo'],
  348. 'name' => $param['company'],
  349. 'type' => 1,
  350. 'invoice_title' => '',
  351. 'invoice_people' => '',
  352. 'invoice_addr' => $param['inv_addr'],
  353. 'invoice_mobile' => $param['mobile'],
  354. 'invoice_code' => $param['inv_code'],
  355. 'invoice_bank' => $param['inv_bank'],
  356. 'invoice_bankNo' => $param['inv_bankNo'],
  357. 'invoice_img' => $param['license_img'],
  358. 'remark' => '',
  359. 'status' => $param['status'],
  360. 'is_del' => $param['is_del'],
  361. 'creater' => $param['creater'],
  362. 'createrid' => $param['createrid'],
  363. 'addtime' => $param['addtime'],
  364. 'updater' => $param['creater'],
  365. 'updaterid' => $param['createrid'],
  366. 'updatetime' => $param['updatetime'],
  367. ]);
  368. Db::commit();
  369. return json_show(0, '添加成功');
  370. } catch (Exception $exception) {
  371. Db::rollback();
  372. return json_show(1003, $exception->getMessage());
  373. }
  374. }
  375. public function bInfo()
  376. {
  377. $companyNo = $this->request->post('companyNo', '', 'trim');
  378. if ($companyNo == "") return json_show(1004, "参数ompanyNo不能为空");
  379. $info = Db::name('business')
  380. ->alias('a')
  381. ->field('a.*,b.company_type')
  382. ->leftJoin('company_type b', 'b.id=a.type AND b.is_del=0')
  383. ->where(['a.companyNo' => $companyNo, 'a.is_del' => 0])
  384. ->findOrEmpty();
  385. if (empty($info)) return json_show(1002, "未找到数据");
  386. return json_show(0, '获取成功', $info);
  387. }
  388. public function bEdit()
  389. {
  390. $param = $this->request->filter('trim')->post('');
  391. Db::startTrans();
  392. try {
  393. $info = Db::name('business')
  394. ->field('id,companyNo')
  395. ->where(['id' => $param['id'], 'is_del' => 0])
  396. ->findOrEmpty();
  397. if (empty($info)) throw new Exception('未找到数据');
  398. $tmp = Db::name('business')
  399. ->field('id')
  400. ->where(['company' => $param['company'], 'is_del' => 0])
  401. ->where('id', '<>', $param['id'])
  402. ->findOrEmpty();
  403. if (!empty($tmp)) throw new Exception('该公司名称已存在');
  404. Db::name('business')
  405. ->where(['id' => $param['id'], 'is_del' => 0])
  406. ->update($param);
  407. Db::name('headquarters')
  408. ->where(['code' => $info['companyNo'], 'is_del' => 0])
  409. ->update([
  410. 'name' => $param['company'],
  411. 'type' => 1,
  412. 'invoice_title' => '',
  413. 'invoice_people' => '',
  414. 'invoice_addr' => $param['inv_addr'],
  415. 'invoice_mobile' => $param['mobile'],
  416. 'invoice_code' => $param['inv_code'],
  417. 'invoice_bank' => $param['inv_bank'],
  418. 'invoice_bankNo' => $param['inv_bankNo'],
  419. 'invoice_img' => $param['license_img'],
  420. 'remark' => '',
  421. 'status' => $param['status'],
  422. 'is_del' => $param['is_del'],
  423. 'updater' => $param['creater'],
  424. 'updaterid' => $param['createrid'],
  425. 'updatetime' => $param['updatetime'],
  426. ]);
  427. Db::commit();
  428. return json_show(0, '修改成功');
  429. } catch (Exception $exception) {
  430. Db::rollback();
  431. return json_show(1003, $exception->getMessage());
  432. }
  433. }
  434. public function bTitle()
  435. {
  436. $param = $this->request->only(['company_type' => '', 'status' => ''], 'post', 'trim');
  437. $rs = Db::name('company_type')->where('is_del', 0);
  438. if ($param['company_type'] != '') $rs->whereLike('company_type', '%' . $param['company_type'] . '%');
  439. if ($param['status'] != '') $rs->where('status', $param['status']);
  440. $list = $rs->select()->toArray();
  441. return json_show(0, '获取成功', $list);
  442. }
  443. //供应商
  444. public function sGetList()
  445. {
  446. $param = $this->request->only(['page' => 1, 'size' => 10, 'name' => '', 'code' => '', 'creater' => '', 'person' => '', 'status' => '', 'ocr_status' => '', 'start' => '', 'end' => '', 'company_name' => '', 'is_platform' => ''], 'post', 'trim');
  447. $where = [['s.is_del', "=", 0]];
  448. if ($param['name'] !== "") $where[] = ["s.name", "like", '%' . $param['name'] . '%'];
  449. if ($param['code'] !== "") $where[] = ["s.code", "like", '%' . $param['code'] . '%'];
  450. if ($param['creater'] !== "") $where[] = ["s.creater", "like", '%' . $param['creater'] . '%'];
  451. if ($param['person'] !== "") $where[] = ["s.person", "like", '%' . $param['person'] . '%'];
  452. if ($param['status'] !== "") $where[] = ["s.status", '=', $param['status']];
  453. if ($param['ocr_status'] !== "") $where[] = ["s.ocr_status", '=', $param['ocr_status']];
  454. if ($param['start'] !== "") $where[] = ["s.addtime", '>=', $param['start']];
  455. if ($param['end'] !== "") $where[] = ["s.addtime", '<=', $param['end'] . ' 23:59:59'];
  456. if ($param['is_platform'] !== "") $where[] = ["s.is_platform", '=', $param['is_platform']];
  457. // if ($param['company_name'] !== "") $where[] = ["s.createrid", 'in', $param['company_name']];
  458. $count = Db::name('supplier')
  459. ->alias('s')
  460. // ->leftJoin("depart_user u", "u.uid=s.createrid AND u.is_del=0")
  461. ->where($where)
  462. ->count('s.id');
  463. $list = Db::name('supplier')
  464. ->alias('s')
  465. ->field(true)
  466. // ->field('s.*,u.itemid')
  467. // ->leftJoin("depart_user u", "u.uid=s.createrid AND u.is_del=0")
  468. ->where($where)
  469. ->page($param['page'], $param['size'])
  470. ->order("addtime desc")
  471. ->select()
  472. ->toArray();
  473. // $all_codes = Db::name('supplier_contact')
  474. // ->whereIn('code', array_column($list, 'code'))
  475. // ->column("id,contactor,mobile", 'code');
  476. //获取开通账号的供应商
  477. // $account = checkHasAccountBySupplierNos(array_column($list,'code'));
  478. foreach ($list as &$value) {
  479. $value['company_name'] = '';
  480. }
  481. return json_show("0", "获取成功", ['list' => $list, 'count' => $count]);
  482. }
  483. public function sCreate()
  484. {
  485. $param = $this->request->only(['data', 'contact'], 'post', 'trim');
  486. $val = Validate::rule([
  487. 'data|供应商数据' => 'require|array',
  488. 'contact|联系人' => 'require|array',
  489. ]);
  490. if ($val->check($param) == false) return json_show(1004, $val->getError());
  491. Db::startTrans();
  492. try {
  493. $tmp = Db::name('supplier')
  494. ->field('id')
  495. ->where(['name' => $param['data']['name'], 'is_del' => 0])
  496. ->findOrEmpty();
  497. if (!empty($tmp)) throw new Exception('该供应商名称已存在');
  498. $id = Db::name('supplier')->insertGetId($param['data']);
  499. Db::name('supplier_contact')->insert($param['contact']);
  500. Db::name('headquarters')->insert([
  501. 'code' => $param['data']['code'],
  502. 'name' => $param['data']['name'],
  503. 'type' => 3,
  504. 'invoice_title' => '',
  505. 'invoice_people' => '',
  506. 'invoice_addr' => '',
  507. 'invoice_mobile' => $param['contact']['mobile'],
  508. 'invoice_code' => '',
  509. 'invoice_bank' => '',
  510. 'invoice_bankNo' => '',
  511. 'invoice_img' => $param['data']['license_img'],
  512. 'remark' => $param['data']['remark'],
  513. 'status' => $param['data']['status'],
  514. 'is_del' => $param['data']['is_del'],
  515. 'creater' => $param['data']['creater'],
  516. 'createrid' => $param['data']['createrid'],
  517. 'addtime' => $param['data']['addtime'],
  518. 'updater' => $param['data']['creater'],
  519. 'updaterid' => $param['data']['createrid'],
  520. 'updatetime' => $param['data']['updatetime'],
  521. ]);
  522. Db::commit();
  523. return json_show(0, '添加成功', ['id' => $id]);
  524. } catch (Exception $exception) {
  525. Db::rollback();
  526. return json_show(1003, $exception->getMessage());
  527. }
  528. }
  529. public function sInfo()
  530. {
  531. $code = $this->request->post('code', '', 'trim');
  532. if ($code == "") return json_show(1004, "参数code不能为空");
  533. $info = Db::name('supplier')
  534. ->alias('a')
  535. ->field('a.*,b.contactor,b.mobile,b.position,b.email,b.telephone')
  536. ->leftJoin('supplier_contact b', 'b.code=a.code AND b.is_del=0')
  537. ->where(['a.code' => $code, 'a.is_del' => 0])
  538. ->findOrEmpty();
  539. if (empty($info)) return json_show(1002, "未找到数据");
  540. return json_show(0, '获取成功', $info);
  541. }
  542. public function sEdit()
  543. {
  544. $param = $this->request->only(['data', 'contact'], 'post', 'trim');
  545. $val = Validate::rule([
  546. 'data|供应商数据' => 'require|array',
  547. 'contact|联系人' => 'require|array',
  548. ]);
  549. if ($val->check($param) == false) return json_show(1004, $val->getError());
  550. Db::startTrans();
  551. try {
  552. $tmp = Db::name('supplier')
  553. ->field('id')
  554. ->where(['name' => $param['data']['name'], 'is_del' => 0])
  555. ->where('id', '<>', $param['data']['id'])
  556. ->findOrEmpty();
  557. if (!empty($tmp)) throw new Exception('该供应商名称已存在');
  558. $id = Db::name('supplier')
  559. ->where(['id' => $param['data']['id'], 'is_del' => 0])
  560. ->update($param['data']);
  561. $tmp = Db::name('supplier_contact')
  562. ->field('id')
  563. ->where(['code' => $param['contact']['code'], 'is_del' => 0])
  564. ->findOrEmpty();
  565. if (empty($tmp)) Db::name('supplier_contact')->insert(array_merge($param['contact'], ['addtime' => $param['contact']['updatetime']]));
  566. else Db::name('supplier_contact')->where(['id' => $tmp['id'], 'is_del' => 0])->update($param['contact']);
  567. Db::name('headquarters')
  568. ->where(['code' => $param['data']['code'], 'is_del' => 0])
  569. ->update([
  570. 'name' => $param['data']['name'],
  571. 'type' => 3,
  572. 'invoice_title' => '',
  573. 'invoice_people' => '',
  574. 'invoice_addr' => '',
  575. 'invoice_mobile' => $param['contact']['mobile'],
  576. 'invoice_code' => '',
  577. 'invoice_bank' => '',
  578. 'invoice_bankNo' => '',
  579. 'invoice_img' => $param['data']['license_img'],
  580. 'remark' => $param['data']['remark'],
  581. 'is_del' => $param['data']['is_del'],
  582. 'updater' => $param['data']['creater'],
  583. 'updaterid' => $param['data']['createrid'],
  584. 'updatetime' => $param['data']['updatetime'],
  585. ]);
  586. Db::commit();
  587. return json_show(0, '修改成功', ['id' => $id]);
  588. } catch (Exception $exception) {
  589. Db::rollback();
  590. return json_show(1003, $exception->getMessage());
  591. }
  592. }
  593. public function cTitle()
  594. {
  595. $param = $this->request->only([
  596. 'page' => 1,
  597. 'size' => 10,
  598. 'companyNo' => '',
  599. 'companyName' => '',
  600. 'itemid' => '',
  601. ], 'post', 'trim');
  602. $where [] = ['is_del', "=", 0];
  603. if ($param['companyNo'] != '') $where[] = ['companyNo', 'like', '%' . $param['companyNo'] . '%'];
  604. if ($param['companyName'] != '') $where[] = ['companyName', 'like', '%' . $param['companyName'] . '%'];
  605. if ($param['itemid'] != '') $where[] = ['itemid', '=', $param['itemid']];
  606. $count = Db::name('customer_info')
  607. ->where($where)
  608. ->count('id');
  609. $item = Db::name('customer_info')
  610. ->where($where)
  611. ->field("id,companyNo,companyName,LENGTH(companyName) as weight")
  612. ->order(['weight' => 'asc', 'id' => 'desc'])
  613. ->page($param['page'], $param['size'])
  614. ->select()
  615. ->toArray();
  616. return json_show(0, "获取成功", ['item' => $item, 'count' => $count]);
  617. }
  618. }