# 運維
# EQL CLI
通過通用查詢語言管理單據,可以查詢索引,單據字段,卡片字段等
查詢語句實例
select dynamics.idNumber_keyword from doc where docType='RAD1';
select data.customer.idNumber from doc where docType='RAD1'
1
2
2
更新語句示例
update doc set data.customer.idCardAdress='哈哈我該地址了' where docId='8d3f96ef-402883b1-018d-3fab8afc-000e'
1
2
2
TIP
執行更新語句需要十分謹慎。該更新記錄會被記錄在單據變更歷史中
# 測試方法調用
該菜單可以執行代碼中的方法
執行示例
nkTestImpl.detail("8d454aaa-ff808081-018d-5983fc97-11bb")
1
nkTestImpl 是類 NkTestImpl的組件名稱,該類繼承了NkAbstractTest抽象類
如果有自定義的實現方法,都要繼承NkAbstractTest抽象類
該類的方法可以將所有的日志信息顯示在結果中
代碼示例
@Component("nkTestImpl")
public class NkTestImpl extends NkAbstractTest {
@Autowired
@SuppressWarnings("all")
protected NkDocEngine docEngine;
public List<String> detail(String docId) {
LogRunResult<Object> sb = MemoryLogRunner.run(() -> {
docEngine.detail(docId);
log.info("顯示日志");
return null;
});
return sb.getLogs();
}
public List<String> 詳情(String docId) {
LogRunResult<Object> sb = MemoryLogRunner.run(() -> {
docEngine.detail(docId);
log.info("顯示日志");
return null;
});
return sb.getLogs();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 計劃任務
計劃任務菜單是對定時任務的管理,所有的定時任務都要繼承NkAbstractQuartzJob類
# 添加計劃
配置name字段和cron字段可以為該定時任務增加執行計劃,添加之后,可以在執行計劃顯示欄中看到下一次的執行時間
option字段是對定時任務入參的配置,若沒有參數,則填寫{},添加之后可以單次執行該任務
# 執行計劃
點擊詳情可查看該執行計劃近100次執行情況的描述
若某一次的執行記錄的狀態為FAILED,點擊可以看到錯誤的詳情日志
代碼示例
@Component
@NkScheduled(cron = "0 45 15 * * ?")
@NkNote("任務測試")
@Slf4j
public class NkJobChangeDocTest extends NkAbstractQuartzJob {
@Autowired
private NkDocEngine docEngine;
@Autowired
private NkSecurityRunner runner;
@Autowired
private DocHMapper docHMapper;
@Override
public void doExecute(JobExecutionContext jobExecutionContext, StatusManager function) throws JobExecutionException {
List<DocH> docIds1 = docHMapper.selectByExample(new DocHExample());
List<String> docIds = docIds1.stream().map(DocH::getDocId).collect(Collectors.toList());
if(docIds!=null){
runner.returnAsUser("admin",()->{
docIds.forEach(docId->{
// 逐條執行
try{
docEngine.doUpdate(docId,"",(docHV)->{
System.out.println(1/0);
}
);
function.update(
NkJobTriggerStatus.create((docIds.indexOf(docId)+1) * 100 / docIds.size())
);
}catch(Exception e){
log.error(String.format("JOB[%s]發生錯誤:%s","任務測試",e.getMessage()),e);
function.update(
NkJobTriggerStatus.create(
(docIds.indexOf(docId)+1) * 100 / docIds.size(),
String.format("修改單據 %s 失敗",docId),
e
)
);
}
});
return null;
});
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 配置郵箱
任務執行失敗可以通過郵箱通知相關人員
nk:
scheduled:
email:
#發送方的郵箱,可以增加昵稱: 昵稱<XX@qq.com>
from: XX@qq.com
#接收方的郵箱,可以配置多個
to:
- AAA@qq.com
- BBB@qq.com
spring:
mail:
#郵箱服務,這里是釘釘企業郵箱,也可以用其他服務:smtp.163.com:163郵箱,smtp.126.com:126郵箱,smtp.qq.com:qq郵箱
host: smtp.qiye.aliyun.com
#發送方的郵箱,與上面的配置一致
username: yangfan@newcore.net.cn
# 設置密碼,該處的密碼是發送方郵箱開啟SMTP的授權碼而非密碼,釘釘企業郵箱設置版辦法,設置-賬戶安全-開啟三方客戶端安全密碼-生成密碼
password: xxxxx
default-encoding: UTF-8
properties:
mail:
smtp:
ssl:
enable: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25