Blame view

service-job/src/main/java/com/java110/job/quartz/TaskSystemQuartz.java 4.69 KB
88e030b7   王彪总   init project
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
  package com.java110.job.quartz;
  
  import com.java110.core.factory.GenerateCodeFactory;
  import com.java110.dto.community.CommunityDto;
  import com.java110.dto.log.LogSystemErrorDto;
  import com.java110.dto.store.StoreDto;
  import com.java110.dto.task.TaskDto;
  import com.java110.dto.task.TaskAttrDto;
  import com.java110.intf.community.ICommunityInnerServiceSMO;
  import com.java110.intf.store.IStoreInnerServiceSMO;
  import com.java110.job.dao.ITaskServiceDao;
  import com.java110.po.log.LogSystemErrorPo;
  import com.java110.service.smo.ISaveSystemErrorSMO;
  import com.java110.utils.util.ExceptionUtil;
  import org.slf4j.Logger;
  import com.java110.core.log.LoggerFactory;
  import org.springframework.beans.factory.annotation.Autowired;
  
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  /**
   * @author
   */
  public abstract class TaskSystemQuartz {
  
      protected static final Logger logger = LoggerFactory.getLogger(TaskSystemQuartz.class);
  
      @Autowired
      private ITaskServiceDao taskServiceDaoImpl;
  
      @Autowired
      private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
  
      @Autowired
      private IStoreInnerServiceSMO storeInnerServiceSMOImpl;
  
      @Autowired
      private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
  
  
      public void initTask() {
  
      }
  
      /**
       * 启动任务
       *
       * @param taskDto
       */
      public void startTask(TaskDto taskDto) throws Exception {
          try {
              Map info = new HashMap();
              info.put("taskId", taskDto.getTaskId());
              List<Map> taskInfos = taskServiceDaoImpl.getTaskInfo(info);
              if (taskInfos == null || taskInfos.size() < 1) {
                  return;
              }
  
              // 这么做是为了,单线程调用,防止多线程导致数据重复处理
              if (!"002".equals(taskInfos.get(0).get("state"))) {
                  return;
              }
  
              String taskId = taskDto.getTaskId();
  
              if (logger.isDebugEnabled()) {
                  logger.debug("---【TaskSystemQuartz.startFtpTask】:任务【" + taskId + "】开始运行!", taskId);
              }
  
  
              // 1.0空方法,让子类去实现
              prepare(taskDto);
  
              // 3.0核心业务处理逻辑,需要子类去实现
              process(taskDto);
  
              // 5.0空方法,让子类去实现
              after(taskDto);
          } catch (Exception ex) {
              LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
              logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
              logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
              logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(ex));
              saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
              // 接续向外抛出去
              logger.error("处理出现问题:", ex);
              return;
          }
  
      }
  
  
      /**
       * 主要业务处理(上传下载),让子类去实现
       *
       * @param taskDto
       */
      protected abstract void process(TaskDto taskDto) throws Exception;
  
      /**
       * 空方法,如果在事前过程处理前,还需要做一定的处理,需要子类重写这个方法,实现业务逻辑
       *
       * @param taskDto
       */
      protected void prepare(TaskDto taskDto) {
  
      }
  
      /**
       * 空方法,如果在事后过程处理完后,还需要做一定的处理,需要子类重写这个方法,实现业务逻辑
       *
       * @param taskDto
       */
      protected void after(TaskDto taskDto) {
  
      }
  
      /**
9750b443   王彪总   fix(config): 更新配置...
121
       * 查询项目信息
88e030b7   王彪总   init project
122
123
124
125
126
       *
       * @return
       */
      protected List<CommunityDto> getAllCommunity() {
          CommunityDto communityDto = new CommunityDto();
9750b443   王彪总   fix(config): 更新配置...
127
          communityDto.setState("1100"); //审核过的项目
88e030b7   王彪总   init project
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
          List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
          return communityDtos;
      }
  
      /**
       * 查询商户信息
       *
       * @return
       */
      protected List<StoreDto> getAllStore(String storeTypeCd) {
          StoreDto storeDto = new StoreDto();
          storeDto.setStoreTypeCd(storeTypeCd);
          List<StoreDto> storeDtos = storeInnerServiceSMOImpl.getStores(storeDto);
          return storeDtos;
      }
  
      /**
       * 获取当前属性
       *
       * @param taskDto
       * @param specCd
       * @return
       */
      protected TaskAttrDto getCurTaskAttr(TaskDto taskDto, String specCd) {
          List<TaskAttrDto> taskAttrDtos = taskDto.getTaskAttr();
          if (taskAttrDtos == null) {
              return null;
          }
          for (TaskAttrDto taskAttrDto : taskAttrDtos) {
              if (specCd.equals(taskAttrDto.getSpecCd())) {
                  return taskAttrDto;
              }
          }
  
          return null;
      }
  }