|
@ -1,90 +1,119 @@
|
|
package com.yihu.wlyy.web.quota;
|
|
package com.yihu.wlyy.web.quota;
|
|
|
|
|
|
import com.yihu.wlyy.job.*;
|
|
|
|
|
|
import com.yihu.wlyy.job.QuartzHelper;
|
|
|
|
import com.yihu.wlyy.job.consult.ConsultCleanerJob;
|
|
|
|
import com.yihu.wlyy.job.consult.FamousConsultTimesJob;
|
|
|
|
import com.yihu.wlyy.service.app.disease.PatientDiseaseService;
|
|
|
|
import com.yihu.wlyy.service.app.scheduling.DoctorWorkTimeService;
|
|
|
|
import com.yihu.wlyy.service.app.statistics.StatisticsService;
|
|
import com.yihu.wlyy.service.quota.JobService;
|
|
import com.yihu.wlyy.service.quota.JobService;
|
|
import com.yihu.wlyy.web.BaseController;
|
|
import com.yihu.wlyy.web.BaseController;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Controller;
|
|
|
|
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
import static com.yihu.wlyy.job.consult.ConsultCleanerJob.ConsultTerminatorJobKey;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Created by Administrator on 2016/8/15.
|
|
|
|
* 任务启动
|
|
* 任务启动
|
|
|
|
*
|
|
|
|
* @author chenweida
|
|
*/
|
|
*/
|
|
@Controller
|
|
|
|
|
|
@RestController
|
|
@RequestMapping("/job")
|
|
@RequestMapping("/job")
|
|
@Api(description = "后台-任务控制")
|
|
|
|
|
|
@Api(description = "后台-任务控制", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
|
|
public class JobController extends BaseController {
|
|
public class JobController extends BaseController {
|
|
|
|
private final JobService jobService;
|
|
|
|
private final PatientDiseaseService diseaseService;
|
|
|
|
private final StringRedisTemplate redisTemplate;
|
|
|
|
private final QuartzHelper quartzHelper;
|
|
|
|
private final DoctorWorkTimeService workTimeService;
|
|
|
|
private final StatisticsService statisticsService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private JobService jobService;
|
|
|
|
|
|
public JobController(StatisticsService statisticsService, JobService jobService, StringRedisTemplate redisTemplate, DoctorWorkTimeService workTimeService, PatientDiseaseService diseaseService, QuartzHelper quartzHelper) {
|
|
|
|
this.statisticsService = statisticsService;
|
|
|
|
this.jobService = jobService;
|
|
|
|
this.redisTemplate = redisTemplate;
|
|
|
|
this.workTimeService = workTimeService;
|
|
|
|
this.diseaseService = diseaseService;
|
|
|
|
this.quartzHelper = quartzHelper;
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 启动任务
|
|
* 启动任务
|
|
*
|
|
*
|
|
* @param id id
|
|
* @param id id
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "startNowById")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "startNowById", method = RequestMethod.GET)
|
|
public String startNowById(String id) {
|
|
public String startNowById(String id) {
|
|
try {
|
|
try {
|
|
jobService.startNowById(id);
|
|
jobService.startNowById(id);
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 生成过去几天的数据
|
|
* 生成过去几天的数据
|
|
|
|
*
|
|
* @param day
|
|
* @param day
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "productDataByDay")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "productDataByDay", method = RequestMethod.GET)
|
|
public String productDataByDay(Integer day) {
|
|
public String productDataByDay(Integer day) {
|
|
try {
|
|
try {
|
|
jobService.productDataByDay(day);
|
|
jobService.productDataByDay(day);
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 生成过去某一天的全部的数据
|
|
* 生成过去某一天的全部的数据
|
|
|
|
*
|
|
* @param day
|
|
* @param day
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "productDataByOneDay")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "productDataByOneDay", method = RequestMethod.GET)
|
|
public String productDataByOneDay(String day) {
|
|
public String productDataByOneDay(String day) {
|
|
try {
|
|
try {
|
|
jobService.productDataByOneDay(day);
|
|
jobService.productDataByOneDay(day);
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 生成过去某一天的某一个指标的数据
|
|
* 生成过去某一天的某一个指标的数据
|
|
|
|
*
|
|
* @param day
|
|
* @param day
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "productDataByOneDayWithId")
|
|
|
|
@ResponseBody
|
|
|
|
public String productDataByOneDayWithId(String day,String id) {
|
|
|
|
|
|
@RequestMapping(value = "productDataByOneDayWithId", method = RequestMethod.GET)
|
|
|
|
public String productDataByOneDayWithId(String day, String id) {
|
|
try {
|
|
try {
|
|
jobService.productDataByOneDayWithId(day,id);
|
|
|
|
|
|
jobService.productDataByOneDayWithId(day, id);
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@ -94,8 +123,7 @@ public class JobController extends BaseController {
|
|
* @param id id
|
|
* @param id id
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "startById")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "startById", method = RequestMethod.GET)
|
|
public String startById(String id) {
|
|
public String startById(String id) {
|
|
try {
|
|
try {
|
|
|
|
|
|
@ -103,24 +131,24 @@ public class JobController extends BaseController {
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 停止任务
|
|
* 停止任务
|
|
*
|
|
*
|
|
* @param id id
|
|
* @param id id
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "stopById")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "stopById", method = RequestMethod.GET)
|
|
public String stopById(String id) {
|
|
public String stopById(String id) {
|
|
try {
|
|
try {
|
|
jobService.stopById(id);
|
|
jobService.stopById(id);
|
|
return success("停止成功!");
|
|
return success("停止成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@ -129,15 +157,14 @@ public class JobController extends BaseController {
|
|
*
|
|
*
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "stopAll")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "stopAll", method = RequestMethod.GET)
|
|
public String stopAll() {
|
|
public String stopAll() {
|
|
try {
|
|
try {
|
|
jobService.stopAll();
|
|
jobService.stopAll();
|
|
return success("停止成功!");
|
|
return success("停止成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@ -146,27 +173,138 @@ public class JobController extends BaseController {
|
|
*
|
|
*
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
@RequestMapping(value = "startAll")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "startAll", method = RequestMethod.GET)
|
|
public String startAll() {
|
|
public String startAll() {
|
|
try {
|
|
try {
|
|
jobService.startAll();
|
|
jobService.startAll();
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "startaaaa")
|
|
|
|
@ResponseBody
|
|
|
|
|
|
@RequestMapping(value = "startaaaa", method = RequestMethod.GET)
|
|
public String startaaaa() {
|
|
public String startaaaa() {
|
|
try {
|
|
try {
|
|
jobService.startaaaa();
|
|
jobService.startaaaa();
|
|
return success("启动成功!");
|
|
return success("启动成功!");
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
error(e);
|
|
error(e);
|
|
return invalidUserException(e, -1, "启动失败:"+e.getMessage());
|
|
|
|
|
|
return invalidUserException(e, -1, "启动失败:" + e.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 将患者疾病推送到redis
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/disease/to_redis", method = RequestMethod.GET)
|
|
|
|
public String updateToRedid() {
|
|
|
|
try {
|
|
|
|
diseaseService.updateToRedis();
|
|
|
|
return write(200, "更新成功");
|
|
|
|
} catch (Exception e) {
|
|
|
|
return error(-1, "更新失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 将患者疾病到数据库
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/disease/to_disease", method = RequestMethod.GET)
|
|
|
|
public String updateToDisease() {
|
|
|
|
try {
|
|
|
|
diseaseService.updateToDisease();
|
|
|
|
return write(200, "更新成功");
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
return error(-1, "更新失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 从Redis查询患者疾病
|
|
|
|
*
|
|
|
|
* @param patient
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/disease/patient", method = RequestMethod.GET)
|
|
|
|
public String getDiseaseFromRedis(String patient) {
|
|
|
|
try {
|
|
|
|
return write(200, "查询成功", "data", redisTemplate.opsForValue().get("disease:" + patient));
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
return error(-1, "查询失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 开始名医咨询剩余次数统计任务
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/famous_doctor/start_job", method = RequestMethod.GET)
|
|
|
|
public String startConsultTimesJob() {
|
|
|
|
try {
|
|
|
|
if (!quartzHelper.isExistJob("famous-doctor-times")) {
|
|
|
|
quartzHelper.addJob(FamousConsultTimesJob.class, "0 0 0 * * ?", "famous-doctor-times", new HashMap<String, Object>());
|
|
|
|
return write(200, "启动成功");
|
|
|
|
} else {
|
|
|
|
return write(200, "任务已存在");
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "启动失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 名医咨询剩余次数手动更新
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/famous_doctor/times_update", method = RequestMethod.GET)
|
|
|
|
public String famousConsultTimeUpdate() {
|
|
|
|
try {
|
|
|
|
workTimeService.consultTimesRemain(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
|
|
|
|
return write(200, "更新成功");
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "更新失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 更新人口数据到redis
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public String peopleNumToRedis() {
|
|
|
|
try {
|
|
|
|
statisticsService.peopleNumToRedis();
|
|
|
|
return write(200, "更新成功");
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, "更新失败");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 添加患者咨询超时未响应关闭任务。
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/consult_auto_termination", method = RequestMethod.POST)
|
|
|
|
@ApiOperation("添加超时咨询自动关闭任务")
|
|
|
|
public String addConsultJob() {
|
|
|
|
try {
|
|
|
|
quartzHelper.startNow(ConsultCleanerJob.class, ConsultTerminatorJobKey, null);
|
|
|
|
return write(200, "");
|
|
|
|
} catch (Exception e) {
|
|
|
|
error(e);
|
|
|
|
return error(-1, e.getMessage());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|