Commit 9fccaddada3039a6196eef08552c4a8e5879295b
1 parent
e17db05b
新增部门更新接口
Showing
2 changed files
with
121 additions
and
3 deletions
src/Api/Department.php
0 → 100644
1 | +<?php | |
2 | +/** | |
3 | + * Department.php | |
4 | + * 部门接口 | |
5 | + * @author Deepseath | |
6 | + * @version $Id$ | |
7 | + */ | |
8 | +namespace deepseath\hris\Api; | |
9 | + | |
10 | +class Department | |
11 | +{ | |
12 | + /** | |
13 | + * 基类服务对象 | |
14 | + * @var \deepseath\hris\Hris | |
15 | + */ | |
16 | + protected $service = null; | |
17 | + | |
18 | + /** | |
19 | + * 畅移本地顶级部门(智慧零售部)的 id | |
20 | + * md5('2022-04-27 17:00:01') —— 该值没具体意义主要就是一个在hris识别“智慧零售事业部”的标识<br> | |
21 | + * 该值的来源是,首次导给 hris 全量部门数据时,以当时时间md5做顶级部门标识,方便 hris 导入处理 | |
22 | + * @var string | |
23 | + */ | |
24 | + const CY_TOP_ID = '6e691aaf7d16f7b5199cce086e781368'; | |
25 | + | |
26 | + public function __construct(\deepseath\hris\Hris $service) | |
27 | + { | |
28 | + $this->service = $service; | |
29 | + } | |
30 | + | |
31 | + /** | |
32 | + * 获取部门信息 | |
33 | + * @desc 查询HRIS中的部门基础信息 | |
34 | + * @param array $params | |
35 | + * <pre> | |
36 | + * orgUnitZH String 一级部门(中文) | |
37 | + * buFunctionZH String 二级部门(中文) | |
38 | + * departmentZH String 三级部门(中文) | |
39 | + * teamZH String 四级部门(中文) | |
40 | + * </pre> | |
41 | + * @return array | |
42 | + * <strong>map</strong> | |
43 | + * <pre> | |
44 | + * orgUnitId string 一级部门id | |
45 | + * orgUnitZH string 一级部门名称中文 | |
46 | + * orgUnitEN string 一级部门名称英文 | |
47 | + * buFunctionId string 二级部门id | |
48 | + * buFunctionZH string 二级部门名称中文 | |
49 | + * buFunctionEN string 二级部门名称英文 | |
50 | + * departmentId string 三级部门id | |
51 | + * departmentZH string 三级部门名称中文 | |
52 | + * departmentEN string 三级部门名称英文 | |
53 | + * teamId string 四级部门id | |
54 | + * teamZH string 四级部门名称中文 | |
55 | + * teamEN string 四级部门名称英文 | |
56 | + * </pre> | |
57 | + */ | |
58 | + public function branchList(array $params) : array | |
59 | + { | |
60 | + $params = array_merge([ | |
61 | + 'orgUnitZH' => '', | |
62 | + 'buFunctionZH' => '', | |
63 | + 'departmentZH' => '', | |
64 | + 'teamZH' => '' | |
65 | + ], $params); | |
66 | + | |
67 | + $result = $this->service->apiRequest('get', 'branchList', $params); | |
68 | + return isset($result['branchList']) ? $result['branchList'] : (isset($result['data']) ? $result['data'] : []); | |
69 | + } | |
70 | + | |
71 | + /** | |
72 | + * 新增OR更新部门 | |
73 | + * @desc 新增OR更新HRIS中的部门 | |
74 | + * @param array $params | |
75 | + * <pre> | |
76 | + * branchNo String 畅移部门ID | |
77 | + * parentBranchNo String 畅移上级部门ID | |
78 | + * nameZH String 部门名称(中文) | |
79 | + * nameEN String 部门名称(英文) | |
80 | + * </pre> | |
81 | + * @return array | |
82 | + * <pre> | |
83 | + * affectRow string 受影响的行数 | |
84 | + * branchId string hris中的部门ID | |
85 | + * </pre> | |
86 | + */ | |
87 | + public function branchAddOrUpdate(array $params) : array | |
88 | + { | |
89 | + $params = array_merge([ | |
90 | + 'branchNo' => '', | |
91 | + 'parentBranchNo' => '', | |
92 | + 'nameZH' => '', | |
93 | + 'nameEN' => '' | |
94 | + ], $params); | |
95 | + if ($params['parentBranchNo'] === '') { | |
96 | + // 如果父级部门 id 不存在,则认为更新的是畅移的一级部门(在 hris 是属于“智慧零售事业部”下的二级部门) | |
97 | + // 使用虚拟的“智慧零售部” id 做为父级 id | |
98 | + $params['parentBranchNo'] = self::CY_TOP_ID; | |
99 | + } | |
100 | + | |
101 | + $result = $this->service->apiRequest('post', 'branchAddOrUpdate', $params); | |
102 | + | |
103 | + return $result; | |
104 | + } | |
105 | +} | |
... | ... |
src/Hris.php
... | ... | @@ -208,9 +208,22 @@ class Hris |
208 | 208 | return $this->apiRequest($method, $path, $data, true); |
209 | 209 | } |
210 | 210 | if (isset($result['msg']) && isset($result['code'])) { |
211 | - throw new \Exception('hris SDK Error: ' . $result['msg'] . ':' . $result['code'] . '='. print_r($result, true), $result['code']); | |
211 | + throw new \Exception(json_encode([ | |
212 | + 'url' => $url, | |
213 | + 'title' => 'hris SDK request error', | |
214 | + 'msg' => $result['msg'], | |
215 | + 'code' => $result['code'], | |
216 | + 'request' => $data, | |
217 | + 'result' => $result, | |
218 | + ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), $result['code']); | |
212 | 219 | } else { |
213 | - throw new \Exception('hris SDK Error: Result NULL.' .var_export($result, true) . var_export($body, true), 90001); | |
220 | + throw new \Exception(json_encode([ | |
221 | + 'url' => $url, | |
222 | + 'title' => 'hris SDK response error', | |
223 | + 'msg' => $result, | |
224 | + 'result' => $result, | |
225 | + 'response' => $body, | |
226 | + ], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), 90001); | |
214 | 227 | } |
215 | 228 | } |
216 | 229 | |
... | ... | @@ -222,7 +235,7 @@ class Hris |
222 | 235 | * 打印调试日志 |
223 | 236 | * @param mixed $info |
224 | 237 | */ |
225 | - public function log($info, $title = '', $level = 'info') | |
238 | + public function log($info, $title = '', $level = 'hris') | |
226 | 239 | { |
227 | 240 | if ($this->_debug) { |
228 | 241 | $info = is_scalar($info) ? $info : json_encode($info, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); |
... | ... |