From 1d1a9472606e6c1ed52be701c3ffc98aeb360cfd Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期二, 24 六月 2025 18:16:57 +0800 Subject: [PATCH] 钉钉根据人员动态推送 --- README.md | 380 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 379 insertions(+), 1 deletions(-) diff --git a/README.md b/README.md index e1d63f9..c892473 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ 4. 閫�璐х鐞� 5. 渚涘簲鍟嗙鐞� 6. ERP涓嶴RM绯荤粺鏁版嵁姣斿 +7. 閽夐拤娑堟伅閫氱煡 ## 鏍稿績鏁版嵁瀹炰綋 @@ -40,6 +41,98 @@ - API璋冪敤棰戠巼涓嶄綆浜�2灏忔椂 - 璇锋眰鏃堕棿鑼冨洿涓嶅ぇ浜�24灏忔椂 - 鏁版嵁绫诲瀷杞崲闇�娉ㄦ剰锛欵RP绯荤粺(Long)涓嶴RM绯荤粺(Integer) + +## REST API鎺ュ彛 + +### 閽夐拤娑堟伅鍙戦�佹帴鍙� + +#### 鎺ュ彛淇℃伅 + +- **URL**: `POST /api/dingtalk/sendMessage` +- **鍔熻兘**: 鍙戦�侀拤閽夋秷鎭�氱煡 +- **鎻忚堪**: 鏍规嵁妫�楠屽崟鍙峰彂閫佷笉鍚堟牸妫�楠屽崟鐨勯拤閽夐�氱煡娑堟伅 + +#### 璇锋眰鍙傛暟 + +```json +{ + "releaseNo": "妫�楠屽崟鍙�" +} +``` + +**鍙傛暟璇存槑**: + +- `releaseNo` (String, 蹇呭~): 妫�楠屽崟鍙凤紝鐢ㄤ簬鏌ヨ瀵瑰簲鐨勯拤閽夋秷鎭唴瀹� + +#### 鍝嶅簲缁撴灉 + +```json +{ + "code": 200, + "message": null, + "successful": 0, + "data": "鎺ユ敹鎴愬姛" +} +``` + +**鍝嶅簲瀛楁璇存槑**: + +- `code` (Integer): 鍝嶅簲鐘舵�佺爜锛�200琛ㄧず鎴愬姛锛�500琛ㄧず澶辫触 +- `message` (String): 閿欒淇℃伅锛屾垚鍔熸椂涓簄ull +- `successful` (Integer): 鎴愬姛鏍囪瘑锛�0琛ㄧず鎴愬姛锛�1琛ㄧず澶辫触 +- `data` (String): 鍝嶅簲鏁版嵁锛屾垚鍔熸椂涓�"鎺ユ敹鎴愬姛"锛屽け璐ユ椂涓�"鎺ユ敹澶辫触" + +#### 浣跨敤绀轰緥 + +**璇锋眰绀轰緥**: + +```bash +curl -X POST http://localhost:9095/api/dingtalk/sendMessage \ + -H "Content-Type: application/json" \ + -d '{"releaseNo": "IQC202501270001"}' +``` + +**鎴愬姛鍝嶅簲绀轰緥**: + +```json +{ + "code": 200, + "message": null, + "successful": 0, + "data": "鎺ユ敹鎴愬姛" +} +``` + +**澶辫触鍝嶅簲绀轰緥**: + +```json +{ + "code": 500, + "message": "妫�楠屽崟鍙蜂笉鑳戒负绌�", + "successful": 1, + "data": "鎺ユ敹澶辫触" +} +``` + +#### 閿欒澶勭悊 + +鎺ュ彛浼氬鐞嗕互涓嬮敊璇儏鍐碉細 + +1. **鍙傛暟涓虹┖**: 妫�楠屽崟鍙蜂负绌烘垨null鏃惰繑鍥為敊璇俊鎭� +2. **鏁版嵁涓嶅瓨鍦�**: 妫�楠屽崟鍙峰搴旂殑閽夐拤娑堟伅鍐呭涓嶅瓨鍦ㄦ椂杩斿洖澶辫触 +3. **鍙戦�佸け璐�**: 閽夐拤API璋冪敤澶辫触鏃惰繑鍥炲け璐ヤ俊鎭� +4. **绯荤粺寮傚父**: 鍏朵粬绯荤粺寮傚父鏃惰繑鍥炲紓甯镐俊鎭� + +#### 娉ㄦ剰浜嬮」 + +1. 纭繚妫�楠屽崟鍙峰湪`DINGTALK_MSG`琛ㄤ腑鏈夊搴旂殑璁板綍 +2. 纭繚閽夐拤搴旂敤閰嶇疆姝g‘涓旀湁鍙戦�佹潈闄� +3. 鎺ュ彛璋冪敤棰戠巼寤鸿涓嶈秴杩囨瘡鍒嗛挓1娆� +4. 寤鸿鍦ㄧ敓浜х幆澧冧腑娣诲姞鎺ュ彛璁块棶鏉冮檺鎺у埗 + +#### 璇︾粏鏂囨。 + +鏇村璇︾粏鐨凙PI浣跨敤璇存槑銆侀敊璇鐞嗐�佹渶浣冲疄璺电瓑鍐呭锛岃鍙傝�� [API_DOCUMENTATION.md](./API_DOCUMENTATION.md) 鏂囦欢銆� ## 鏁版嵁搴撹〃缁撴瀯 @@ -154,4 +247,289 @@ 1. 淇敼瀹炰綋绫绘枃浠朵腑鐨勫瓧娈靛畾涔� 2. 淇敼瀵瑰簲鐨凷QL鏂囦欢涓殑琛ㄧ粨鏋勫畾涔� -3. 鎵цSQL璇彞鏇存柊鏁版嵁搴撹〃缁撴瀯 \ No newline at end of file +3. 鎵цSQL璇彞鏇存柊鏁版嵁搴撹〃缁撴瀯 + +## 鎬ц兘浼樺寲 + +绯荤粺鍦ㄥ鐞嗗ぇ閲忔暟鎹椂鍙兘浼氶亣鍒板唴瀛樺崰鐢ㄨ繃楂樼殑闂锛岀壒鍒槸鍦ㄦ墽琛屼互涓嬫搷浣滄椂锛� + +1. 閲囪喘璁㈠崟鏁版嵁鍚屾(`syncPurchaseOrderDetails`鏂规硶) +2. 閫佽揣鍗曟暟鎹鐞� + +### 宸插疄鏂界殑浼樺寲鎺柦 + +1. **鍒嗘壒澶勭悊鏁版嵁**锛氬皢澶ч噺鏁版嵁鍒嗘垚灏忔壒娆¤繘琛屽鐞嗭紝鍑忓皯涓�娆℃�у唴瀛樺崰鐢� +2. **鍙婃椂閲婃斁瀵硅薄寮曠敤**锛氬鐞嗗畬姣曞悗灏嗕笉鍐嶄娇鐢ㄧ殑瀵硅薄寮曠敤璁句负null锛屽府鍔〨C鍥炴敹鍐呭瓨 +3. **浼樺寲SQL鏌ヨ**锛氶伩鍏嶄竴娆℃�у姞杞藉ぇ閲忔暟鎹埌鍐呭瓨 + +### JVM璋冧紭寤鸿 + +鍦ㄥ惎鍔ㄥ簲鐢ㄦ椂锛屽彲浠ラ�氳繃浠ヤ笅JVM鍙傛暟浼樺寲鍐呭瓨浣跨敤锛� + +```bash +java -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar XkyCollection.jar +``` + +鍙傛暟璇存槑锛� + +- `-Xms512m`锛氬垵濮嬪爢鍐呭瓨澶у皬涓�512MB +- `-Xmx1024m`锛氭渶澶у爢鍐呭瓨澶у皬涓�1024MB锛堟牴鎹湇鍔″櫒瀹為檯鍙敤鍐呭瓨璋冩暣锛� +- `-XX:MetaspaceSize=128m`锛氬垵濮嬪厓绌洪棿澶у皬涓�128MB +- `-XX:MaxMetaspaceSize=256m`锛氭渶澶у厓绌洪棿澶у皬涓�256MB +- `-XX:+UseG1GC`锛氫娇鐢℅1鍨冨溇鏀堕泦鍣紝閫傚悎澶у唴瀛樺簲鐢� +- `-XX:MaxGCPauseMillis=200`锛氭渶澶C鏆傚仠鏃堕棿鐩爣涓�200姣 + +### 鐩戞帶寤鸿 + +1. 浣跨敤JConsole鎴朧isualVM绛夊伐鍏风洃鎺у簲鐢ㄥ唴瀛樹娇鐢ㄦ儏鍐� +2. 鍏虫敞GC鏃ュ織锛屽垎鏋愬唴瀛樹娇鐢ㄦā寮� +3. 鍦ㄧ敓浜х幆澧冧腑锛屽彲浠ユ坊鍔犱互涓嬪弬鏁板紑鍚疓C鏃ュ織锛� + ``` + -Xloggc:/path/to/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps + ``` + +## 甯歌闂鎺掓煡 + +### 鍐呭瓨婧㈠嚭锛圤utOfMemoryError锛� + +濡傛灉閬囧埌鍐呭瓨婧㈠嚭闂锛� + +1. 妫�鏌ユ槸鍚︽湁澶ч噺鏁版嵁涓�娆℃�у姞杞藉埌鍐呭瓨 +2. 纭鏄惁鏈夊唴瀛樻硠婕忥紙瀵硅薄鍒涘缓鍚庢湭琚噴鏀撅級 +3. 澧炲姞JVM鍫嗗唴瀛樺ぇ灏� +4. 鑰冭檻浣跨敤鍒嗛〉鏌ヨ鎴栨祦寮忓鐞嗗ぇ鏁版嵁閲� + +### 鏈嶅姟鍗¢】 + +濡傛灉鏈嶅姟鍑虹幇鍗¢】锛� + +1. 妫�鏌ユ槸鍚︽湁闀挎椂闂磋繍琛岀殑浜嬪姟 +2. 纭鏁版嵁搴撹繛鎺ユ槸鍚︽甯搁噴鏀� +3. 鏌ョ湅GC鏃ュ織锛岀‘璁ゆ槸鍚﹂绻佸彂鐢烣ull GC +4. 浼樺寲鏁版嵁搴撴煡璇紝娣诲姞閫傚綋鐨勭储寮� + +## 鏈�浣冲疄璺� + +1. 閬垮厤鍦ㄩ珮宄版湡鎵ц澶ч噺鏁版嵁鍚屾鎿嶄綔 +2. 瀵逛簬瀹氭椂浠诲姟锛岄�夋嫨鍦ㄧ郴缁熻礋杞借緝浣庣殑鏃舵鎵ц +3. 浣跨敤閫傚綋鐨勬壒澶勭悊澶у皬锛堝缓璁�100-500鏉¤褰曪級 +4. 瀹氭湡娓呯悊涓嶅啀闇�瑕佺殑鍘嗗彶鏁版嵁 + +## 寮傛浠诲姟澶勭悊 + +绯荤粺浣跨敤寮傛浠诲姟澶勭悊鏈哄埗鏉ユ墽琛岃�楁椂鎿嶄綔锛岄伩鍏嶉樆濉炰富绾跨▼鍜屽畾鏃朵换鍔¤皟搴︾嚎绋嬨�備富瑕佸寘鎷互涓嬪嚑涓儴鍒嗭細 + +### 绾跨▼姹犻厤缃� + +绯荤粺閰嶇疆浜嗕袱涓笓鐢ㄧ嚎绋嬫睜锛� + +1. **閲囪喘璁㈠崟鍚屾绾跨▼姹� (purchaseTaskExecutor)** + - 鏍稿績绾跨▼鏁帮細1锛堢‘淇濆悓涓�鏃堕棿鍙湁涓�涓噰璐悓姝ヤ换鍔″湪鎵ц锛� + - 鏈�澶х嚎绋嬫暟锛�2 + - 闃熷垪瀹归噺锛�5 + - 鎷掔粷绛栫暐锛欳allerRunsPolicy锛堣皟鐢ㄨ�呯嚎绋嬫墽琛岋級 + +2. **閫氱敤寮傛浠诲姟绾跨▼姹� (taskExecutor)** + - 鏍稿績绾跨▼鏁帮細5 + - 鏈�澶х嚎绋嬫暟锛�10 + - 闃熷垪瀹归噺锛�25 + - 鎷掔粷绛栫暐锛欳allerRunsPolicy锛堣皟鐢ㄨ�呯嚎绋嬫墽琛岋級 + +### 瀹氭椂浠诲姟浼樺寲 + +鎵�鏈夊畾鏃朵换鍔¢兘浣跨敤寮傛鎵ц鏂瑰紡锛岄槻姝簰鐩搁樆濉烇細 + +1. **閲囪喘璁㈠崟鍚屾浠诲姟**锛氭瘡澶�12:05鎵ц涓�娆★紝浣跨敤涓撶敤绾跨▼姹� +2. **璁惧瀹炴椂鏁版嵁鑾峰彇**锛氭瘡5鍒嗛挓鎵ц涓�娆★紝浣跨敤閫氱敤绾跨▼姹� +3. **琛ュ伩閫昏緫**锛氭瘡5鍒嗛挓鎵ц澶氭锛屼娇鐢ㄩ�氱敤绾跨▼姹� +4. **閽夐拤鏁版嵁鍚屾**锛氭瘡53鍒嗛挓鎵ц涓�娆★紝浣跨敤閫氱敤绾跨▼姹� + +### 浠诲姟鎵ц鐘舵�佺鐞� + +浣跨敤 AtomicBoolean 鏍囪浠诲姟鎵ц鐘舵�侊紝閬垮厤鍚屼竴浠诲姟閲嶅鎵ц锛� + +```java +private final AtomicBoolean isRunning = new AtomicBoolean(false); + +// 浠诲姟寮�濮嬪墠妫�鏌� +if(!isRunning. + +compareAndSet(false,true)){ + log. + +info("涓婁竴娆′换鍔¤繕鍦ㄦ墽琛屼腑锛岃烦杩囨湰娆℃墽琛�"); + return; + } + +// 浠诲姟缁撴潫鍚庨噸缃姸鎬� + finally{ + isRunning. + +set(false); +} +``` + +### 寮傛浠诲姟鎵ц娴佺▼ + +1. 瀹氭椂鍣ㄨЕ鍙戜换鍔� +2. 妫�鏌ヤ换鍔℃槸鍚﹀凡鍦ㄨ繍琛岋紝濡傚凡杩愯鍒欒烦杩� +3. 灏嗕换鍔℃彁浜ゅ埌鐩稿簲鐨勭嚎绋嬫睜寮傛鎵ц +4. 瀹氭椂鍣ㄧ珛鍗宠繑鍥烇紝涓嶇瓑寰呬换鍔″畬鎴� +5. 浠诲姟鍦ㄧ嚎绋嬫睜涓墽琛屽畬姣曞悗閲嶇疆鐘舵�佹爣璁� + +杩欑鏈哄埗纭繚浜嗗嵆浣挎煇涓换鍔℃墽琛屾椂闂磋緝闀匡紝涔熶笉浼氬奖鍝嶅叾浠栧畾鏃朵换鍔$殑姝e父鎵ц銆� + +## 鏈�鏂颁紭鍖栨洿鏂� + +鍦ㄦ渶杩戠殑浼樺寲涓紝鎴戜滑杩涗竴姝ユ敼杩涗簡绯荤粺鎬ц兘鍜岀ǔ瀹氭�э細 + +1. **閫佽揣鍗曟暟鎹鐞嗕紭鍖�** + - 瀹炵幇浜� XkyService.GetSaveDetail() 鏂规硶鐨勫垎鎵瑰鐞� + - 姣忔壒澶勭悊10鏉¢�佽揣鍗曟暟鎹紝鍑忓皯鍐呭瓨鍗犵敤 + - 澧炲己浜嗗紓甯稿鐞嗭紝鍗曟潯鏁版嵁寮傚父涓嶄細褰卞搷鏁存壒澶勭悊 + +2. **寮傛浠诲姟澶勭悊澧炲己** + - 涓� DeliveryNoticeService 娣诲姞浜� @Async 娉ㄨВ鐨勫紓姝ュ鐞嗘柟娉� + - 瀹炵幇浜� processAsyncBatch 鏂规硶锛屾敮鎸佸苟琛屽鐞嗗鎵规暟鎹� + - 浼樺寲浜嗘棩蹇楄褰曪紝渚夸簬闂鎺掓煡 + +3. **閿欒澶勭悊鏀硅繘** + - 鎵�鏈夊叧閿柟娉曢兘娣诲姞浜嗚缁嗙殑鏃ュ織璁板綍 + - 瀹炵幇浜嗘洿缁嗙矑搴︾殑寮傚父鎹曡幏鍜屽鐞� + - 闃叉鍗曚釜浠诲姟澶辫触瀵艰嚧鏁翠釜娴佺▼涓柇 + +### 寮傛鎵ц娴佺▼绀轰緥 + +浠ヤ笅鏄竴涓吀鍨嬬殑寮傛鎵ц娴佺▼锛� + +``` +涓荤嚎绋�: 寮�濮嬪鐞�100鏉℃暟鎹� +涓荤嚎绋�: 灏嗘暟鎹垎涓�5鎵癸紝姣忔壒20鏉� +涓荤嚎绋�: 鎻愪氦鎵规1鍒板紓姝ョ嚎绋嬫睜 +涓荤嚎绋�: 鎻愪氦鎵规2鍒板紓姝ョ嚎绋嬫睜 +涓荤嚎绋�: 鎻愪氦鎵规3鍒板紓姝ョ嚎绋嬫睜 +涓荤嚎绋�: 鎻愪氦鎵规4鍒板紓姝ョ嚎绋嬫睜 +涓荤嚎绋�: 鎻愪氦鎵规5鍒板紓姝ョ嚎绋嬫睜 +涓荤嚎绋�: 鍏ㄩ儴鏁版嵁澶勭悊鎻愪氦瀹屾垚 +寮傛绾跨▼1: 寮�濮嬪鐞嗘壒娆�1 +寮傛绾跨▼2: 寮�濮嬪鐞嗘壒娆�2 +寮傛绾跨▼3: 寮�濮嬪鐞嗘壒娆�3 +寮傛绾跨▼1: 鎵规1澶勭悊瀹屾垚 +寮傛绾跨▼1: 寮�濮嬪鐞嗘壒娆�4 +寮傛绾跨▼2: 鎵规2澶勭悊瀹屾垚 +寮傛绾跨▼2: 寮�濮嬪鐞嗘壒娆�5 +寮傛绾跨▼3: 鎵规3澶勭悊瀹屾垚 +寮傛绾跨▼1: 鎵规4澶勭悊瀹屾垚 +寮傛绾跨▼2: 鎵规5澶勭悊瀹屾垚 +``` + +杩欑鏂瑰紡纭繚浜嗕富绾跨▼涓嶄細琚暱鏃堕棿闃诲锛屽悓鏃跺厖鍒嗗埄鐢ㄤ簡绯荤粺璧勬簮杩涜骞惰澶勭悊銆� + +## 閽夐拤娑堟伅閫氱煡鍔熻兘 + +绯荤粺闆嗘垚浜嗛拤閽夋秷鎭�氱煡鍔熻兘锛岀敤浜庡湪閲嶈浜嬩欢鍙戠敓鏃跺悜鎸囧畾鐢ㄦ埛鍙戦�侀�氱煡銆備富瑕佸寘鎷互涓嬪嚑涓儴鍒嗭細 + +### 鍔熻兘姒傝堪 + +1. **閫氱煡鍦烘櫙**锛� + - 閲囪喘璁㈠崟鏁版嵁姣斿瀹屾垚鍚庯紝閫氱煡鐩稿叧浜哄憳鏌ョ湅缁撴灉 + - 鏁版嵁寮傚父鏃剁殑棰勮閫氱煡 + - 绯荤粺閲嶈鎿嶄綔鐨勭‘璁ら�氱煡 + - 涓嶅悎鏍兼楠屽崟瀹℃壒鎯呭喌閫氱煡 + +2. **閫氱煡鏂瑰紡**锛� + - 涓汉宸ヤ綔閫氱煡锛氱洿鎺ュ彂閫佺粰鎸囧畾鐢ㄦ埛 + - 缇ゆ満鍣ㄤ汉閫氱煡锛氬彂閫佸埌鎸囧畾鐨勯拤閽夌兢 + +### 鏁版嵁缁撴瀯 + +閽夐拤鐢ㄦ埛淇℃伅瀛樺偍鍦� `DINGTALK_INFO` 琛ㄤ腑锛岃〃缁撴瀯濡備笅锛� + +| 瀛楁鍚� | 绫诲瀷 | 璇存槑 | +|------------------|---------|--------------------| +| id | Long | 涓婚敭 | +| sid | Long | 鑱屽伐ID | +| phone | String | 鐢佃瘽鍙风爜 | +| dingtalk_id | String | 閽夐拤鐢ㄦ埛ID | +| is_send_dingtalk | Integer | 鏄惁鍙戦�侀拤閽夐�氱煡(1:鏄�, 0:鍚�) | + +涓嶅悎鏍兼楠屽崟淇℃伅瀛樺偍鍦� `DINGTALK_MSG` 琛ㄤ腑锛岃〃缁撴瀯濡備笅锛� + +| 瀛楁鍚� | 绫诲瀷 | 璇存槑 | +|---------------|--------|-------| +| release_no | String | 妫�楠屽崟鍙� | +| supp_name | String | 渚涘簲鍟嗗悕绉� | +| create_date | Date | 鏉ユ枡鏃ユ湡 | +| project_codes | String | 椤圭洰浠g爜 | +| item_no | String | 鏂欏彿 | +| fname | String | 瀹℃牳浜� | +| fng_handle | String | 澶勭悊鏂瑰紡 | + +### 娑堟伅鍙戦�佹祦绋� + +1. **鑾峰彇閫氱煡鐢ㄦ埛**锛� + - 浠� `DINGTALK_INFO` 琛ㄤ腑绛涢�� `is_send_dingtalk` 涓�1鐨勭敤鎴� + - 濡傛灉鐢ㄦ埛鐨勯拤閽塈D涓虹┖锛屽垯閫氳繃閽夐拤API鏍规嵁鎵嬫満鍙疯幏鍙栭拤閽塈D + - 鏇存柊鏁版嵁搴撲腑鐨勯拤閽塈D + +2. **鍙戦�侀�氱煡**锛� + - 姹囨�绘墍鏈夋湁鏁堢殑閽夐拤鐢ㄦ埛ID + - 鏍规嵁妫�楠屽崟鍙锋煡璇� `DINGTALK_MSG` 琛ㄨ幏鍙栨秷鎭唴瀹� + - 璋冪敤閽夐拤寮�鏀続PI鍙戦�佸伐浣滈�氱煡 + +### 閰嶇疆璇存槑 + +閽夐拤搴旂敤閰嶇疆淇℃伅瀛樺偍鍦� `DataAcquisitionConfiguration` 涓細 + +```java +// 閽夐拤搴旂敤Key +public static final String TALK_APP_KEY = "your_app_key"; +// 閽夐拤搴旂敤Secret +public static final String TALK_APP_SECRET = "your_app_secret"; +// 閽夐拤鑷畾涔夋満鍣ㄤ汉Token +public static final String CUSTOM_ROBOT_TOKEN = "your_robot_token"; +``` + +### 浣跨敤鏂规硶 + +瑕佸彂閫侀拤閽夐�氱煡锛屽彲浠ヨ皟鐢� `DingtalkInfoService` 鐨� `sendMessage` 鏂规硶锛� + +```java + +@Autowired +private DingtalkInfoService dingtalkInfoService; + +// 鍙戦�佷笉鍚堟牸妫�楠屽崟閫氱煡 +boolean result = dingtalkInfoService.sendMessage("妫�楠屽崟鍙�"); +``` + +### 瀹氭椂浠诲姟 + +绯荤粺閰嶇疆浜嗗畾鏃朵换鍔¤嚜鍔ㄥ彂閫佷笉鍚堟牸妫�楠屽崟閫氱煡锛� + +```java +/** + * 瀹氭椂鍙戦�佷笉鍚堟牸妫�楠屽崟閽夐拤閫氱煡 + * 姣忓皬鏃舵鏌ヤ竴娆℃槸鍚︽湁鏂扮殑涓嶅悎鏍兼楠屽崟 + */ +@Scheduled(cron = "0 0 */1 * * ?") +public void sendInspectionNotification() { + // 浠诲姟瀹炵幇... +} +``` + +### 娑堟伅鏍煎紡 + +涓嶅悎鏍兼楠屽崟閫氱煡鐨勬牸寮忓涓嬶細 + +``` +渚涘簲鍟哰xxx] 鏉ユ枡鏃ユ湡[yyyy-MM-dd] 椤圭洰[xxx] 鏂欏彿[xxx]鐨勪笉鍚堟牸妫�楠屽崟琚玔xxx]瀹℃壒涓篬xxx]锛岃鏌ユ敹! +``` + +### 娉ㄦ剰浜嬮」 + +1. 閽夐拤娑堟伅鍙戦�侀鐜囨湁闄愬埗锛岃鍕胯繃浜庨绻佸彂閫� +2. 纭繚搴旂敤鏈夊彂閫佸伐浣滈�氱煡鐨勬潈闄� +3. 鐢ㄦ埛鎵嬫満鍙峰繀椤讳笌閽夐拤娉ㄥ唽鎵嬫満鍙蜂竴鑷� +4. 寤鸿灏嗛噸瑕侀�氱煡鍚屾椂閫氳繃澶氱娓犻亾鍙戦�侊紙濡傞偖浠躲�佺煭淇$瓑锛� +5. 妫�楠屽崟閫氱煡鍦╜DINGTALK_MSG`琛ㄤ腑蹇呴』鏈夊搴旂殑璁板綍 \ No newline at end of file -- Gitblit v1.9.3