# HtScheduledTask 定时任务说明
ScheduledTask
定时任务案例;
Author
wangdongyang@expservice.com.cn
# 前端示例
Copy
# 后端示例
- JcsjJobController
/**
* @remark: 定时任务调用
* @param
* @return: void
* @author: wangdongyang
* @date: 2023/5/31 16:02
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* -----------------------------------------------------------
* 2023/5/31 wangdongyang v1.0.1 init
*/
@PostMapping(value = "/scheduledSync")
public void scheduledSync()
{
ScheduledSync scheduledSync = new ScheduledSync();
// 注:类ScheduledSync 必须写在job目录下
scheduledSync.scheduledJob();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- Job
/**
* @version v1.0.1
* @copyright: Copyright (c)
* @remark: 定时任务
* @author:wangdongyang
* @date:2023/5/31 11:25
*/
@Service
public class ScheduledSync
{
@Autowired
private PlatformTransactionManager txManager;
@Resource
private CsOemMapper csOemMapper;
// 注:Transactional有错误信息回滚sql
@Transactional(rollbackFor = Exception.class)
public void scheduledJob()
{
txManager = (PlatformTransactionManager) SpringContextUtils.getBean("txManager");
// 注:实例本地service
csOemMapper = SpringContextUtils.getBean(CsOemMapper.class);
// 注:DefaultTransactionDefinition声明事务
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
// 注:发生错误时回退
TransactionStatus status = txManager.getTransaction(def);
Connection conn = null;
try
{
// 注:加载驱动程序
Class.forName(DbConfig.DBDRIVER);
// 注:连接数据库 WmsURL数据库地址 WmsUSER数据库登录用户名 WmsPASSWORD数据库用户密码
conn = DriverManager.getConnection(DbConfig.WmsURL, DbConfig.WmsUSER, DbConfig.WmsPASSWORD);
// 注:实例化Statement对象
Statement stmt = conn.createStatement();
String sql = "select * from wms.V2_Gif_StockStat";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next())
{
Map<String, Object> map = csOemMapper.searchMaterialId(rs.getString("material_id"));
if (StringUtils.isEmpty(map))
{
CsOemPO csOemPO = new CsOemPO();
csOemPO.setMaterialCode(rs.getString("material_id"));
csOemPO.setMaterialName(rs.getString("material_name"));
csOemPO.setMaterialType(Integer.valueOf(DicConstant.WLLX_02));
csOemMapper.save(csOemPO);
}
}
stmt.close();
txManager.commit(status);
} catch (Exception e)
{
{
txManager.rollback(status);
try
{
e.printStackTrace();
} catch (Exception exception)
{
}
} finally
{
try
{
if (conn != null)
conn.close();
} catch (Exception e)
{
}
}
}
}
}
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 版本
- v1.0.0