1
2024-01-24 67fb3bd7367fdf8a5b2186d4ff1c0f4d572c6d91
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.itstyle.quartz.service.impl;
 
import com.itstyle.quartz.dynamicquery.DynamicQuery;
import com.itstyle.quartz.entity.PageBean;
import com.itstyle.quartz.entity.QuartzEntity;
import com.itstyle.quartz.entity.Result;
import com.itstyle.quartz.entity.SysConfigEntity;
import com.itstyle.quartz.service.DistrbutionService;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
 
import java.util.List;
 
/**
 * 异构系统分发实现类
 */
@Service("distrbutionService")
public class DistrbutionServiceImpl implements DistrbutionService {
    @Autowired
    private DynamicQuery dynamicQuery;
 
    /**
     * 获取异构系统分发列表
     * @param sysConfig
     * @param pageNo
     * @param pageSize
     * @return
     * @throws SchedulerException
     */
    @Override
    public Result list(SysConfigEntity sysConfig, Integer pageNo, Integer pageSize) throws SchedulerException {
        String countSql = "SELECT COUNT(*) FROM sys_config AS sys ";
        if(!StringUtils.isEmpty(sysConfig.getSysName())){
            countSql+=" WHERE sys.SYS_NAME = "+sysConfig.getSysName();
        }
        Long totalCount = dynamicQuery.nativeQueryCount(countSql);
        PageBean<QuartzEntity> data = new PageBean<>();
        if(totalCount>0){
            StringBuffer nativeSql = new StringBuffer();
            nativeSql.append("SELECT sys.ID as id,sys.SYSNAME as sysName,sys.ADDRESS as address,sys.DESCRIPTION as description,sys.association as association,sys.ISENABLE as isEnable,");
            nativeSql.append("sys.CRONEXPRESSION as cronExpression ");
            nativeSql.append("FROM sys_config AS sys ");
            Object[] params = new  Object[]{};
            if(!StringUtils.isEmpty(sysConfig.getSysName())){
                nativeSql.append(" AND sys.SYS_NAME = ?");
                params = new Object[]{sysConfig.getSysName()};
            }
            Pageable pageable = PageRequest.of(pageNo-1,pageSize);
            List<SysConfigEntity> list = dynamicQuery.nativeQueryPagingList(SysConfigEntity.class,pageable, nativeSql.toString(), params);
            data = new PageBean(list, totalCount);
        }
        return Result.ok(data);
    }
 
    /**
     * 新增异构系统分发配置
     * @param sysConfig
     * @throws Exception
     */
    @Override
    @Transactional
    public void save(SysConfigEntity sysConfig){
        if(!StringUtils.isEmpty(sysConfig.getId())){
            dynamicQuery.update(sysConfig);
        }else {
            String countSql = "SELECT COUNT(*) FROM sys_config AS sys ";
            Long totalCount = dynamicQuery.nativeQueryCount(countSql);
            sysConfig.setId(Integer.valueOf(Math.toIntExact(totalCount)) + 1);
            dynamicQuery.save(sysConfig);
        }
    }
 
    /**
     * 启用异构系统分发配置
     * @param sysConfig
     */
    @Override
    @Transactional
    public void enable(SysConfigEntity sysConfig) {
        sysConfig.setIsEnable("启用");
        dynamicQuery.update(sysConfig);
    }
 
    /**
     * 废弃异构系统分发配置
     * @param sysConfig
     */
    @Override
    @Transactional
    public void remove(SysConfigEntity sysConfig) {
        sysConfig.setIsEnable("不启用");
        dynamicQuery.update(sysConfig);
    }
}