diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java index 1bfa314..c98d188 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskCycleService.java @@ -91,4 +91,8 @@ public interface ISysTaskCycleService { */ @ApiOperation(value = "根据任务周期id查询相关任务计划信息",notes = "根据任务周期id查询相关任务计划信息") List findRefTaskCyclePlanByCycleId(Long cycleId); + + @ApiOperation(value = "按条件查询任务周期",notes = "按条件查询任务周期") + List findSysTaskCycleByCondition(SysTaskCycle sysTaskCycle); + } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java index e3faba8..b423925 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskPlanService.java @@ -98,4 +98,13 @@ public interface ISysTaskPlanService { @AnnoIgnoreLog @ApiOperation(value = "修改任务计划信息",notes = "修改任务计划信息,不会更新quartz数据库") void updateSysTaskPlan(SysTaskPlan sysTaskPlan); + + @ApiOperation(value = "根据id查找任务计划",notes = "根据id查找任务计划") + List findSysTaskPlanByIds(Long[] ids); + + @ApiOperation(value = "检查任务计划是否为空",notes = "检查任务计划是否为空") + boolean checkSysTaskPlanOnly(SysTaskPlan sysTaskPlan); + + @ApiOperation(value = "按条件查询定时任务信息",notes = "按条件查询定时任务信息") + List findSysTaskPlanByCondition(SysTaskPlan sysTaskPlan); } diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java index 239fbcb..ee0dc43 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysTaskService.java @@ -100,4 +100,7 @@ public interface ISysTaskService { */ @ApiOperation(value = "定时任务唯一校验",notes = "定时任务唯一校验") boolean checkSysTaskOnly(SysTask sysTask); + + @ApiOperation(value = "按条件查询任务",notes = "按条件查询任务") + List findSysTaskByCondition(SysTask sysTask); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index 56f34d9..9d90f64 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -271,8 +271,16 @@ public class SysRoleController extends CrudBaseController { ValidatorBean.checkNotNull(roleId, "角色roleId 不能为空"); ValidatorBean.checkNotNull(softType, "产品类型 不能为空"); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) - .setResultList(sysRoleService.findSysRefRoleMenuByRoleId(roleId,softType)); + List sysRefRoleMenuList; + if (CommonEnumUtil.USER_TYPE.ADMIN.getCode().equals(AuthUtil.getSessionUser().getUserType())) { + sysRefRoleMenuList = sysRoleService.findSysRefRoleMenuByRoleId(-1L, softType); + }else{ + sysRefRoleMenuList = sysRoleService.findSysRefRoleMenuByRoleId(roleId, softType); + } + + return ResultBean.success("操作成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(sysRefRoleMenuList); } catch(ImppBusiException busExcep){ return ResultBean.fail(busExcep); }catch(Exception e){ diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java index 3a2a5b0..48648c1 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskController.java @@ -14,15 +14,12 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.platform.common.tool.FileTool; import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; -import cn.estsh.i3plus.pojo.base.bean.ImppFile; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.bean.SysTask; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.base.service.CommonServiceImpl; @@ -43,11 +40,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.persistence.EntityManager; -import java.io.File; -import java.io.FileInputStream; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Date; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; import java.util.List; import java.util.Map; @@ -351,66 +346,57 @@ public class SysTaskController extends CoreBaseController { @GetMapping(value = "/export") @ApiOperation(value = "导出数据") - public ResultBean exportExcel(SysTask bean, boolean needSendMessage) { - ListPager listPager; - List result = new ArrayList<>(); - File zipFile = null; - File excelDir = null; - File excelFile; - ExcelTool excelTool; + public void exportExcel(SysTask bean,HttpServletResponse response) { + File excelFile = null; try { - Pager pager = new Pager(0); - // 判断是否超过excel最大导出数量设定值 - pager.setPageSize(RedisCacheTool.getSysConfigIntVal(PlatformConstWords.EXCEL_EXPORT_MAX_ROW, 20000)); - - // 数据校验 Map colMap = ExcelTool.getColName(SysTask.class); String[] colName = new String[colMap.size()]; - int i = 0; + int j = 0; for (String key : colMap.keySet()) { - colName[i++] = key; + colName[j++] = key; } - excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); - excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime()); - excelDir.mkdir(); - do { - listPager = sysTaskService.querySysTaskByPager(bean, pager); - pager = listPager.getObjectPager(); - - // 将excel导出至临时文件夹 - excelFile = new File(MessageFormat.format("{0}{1}{2}{3}.xls", excelDir, File.separator, SysTask.class.getSimpleName(), - pager.getCurrentPage())); - excelFile.createNewFile(); - excelTool.exportData(excelFile, listPager.getObjectList(), SysTask.class, colName); - - pager.setCurrentPage(pager.getCurrentPage() + 1); - } while (pager.getCurrentPage() <= pager.getTotalPages()); - - // 将所有excel文件打包上传 - zipFile = ZipTool.zipFile(null, excelDir); - SysFile sysFile = fileService.upload(new FileInputStream(zipFile), zipFile.getName(), - StringTool.getStringFileSuffix(zipFile.getName(), true), CommonEnumUtil.SOFT_TYPE.CORE.getValue()); - - result.add(sysFileService.insertSysFile(sysFile)); - - // 是否发送站内信 - if (needSendMessage) { - sysMessageService.insertSysMessage(ExcelTool.sendStationLetter(result, getSessionUser().getUser().getId())); + ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); + // 将excel导出至临时文件夹 + excelFile = new File(System.getProperty("java.io.tmpdir") + File.separator + AuthUtil.getSessionUser().getUserName() + + "SysTask.xls"); + excelFile.createNewFile(); + excelTool.exportData(excelFile, sysTaskService.findSysTaskByCondition(bean), SysTask.class, colName); + + + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;fileName=" + URLEncoder.encode(excelFile.getName(), "UTF-8")); + response.flushBuffer(); + + BufferedInputStream bis = null; + try { + bis = new BufferedInputStream(new FileInputStream(excelFile)); + OutputStream os = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int i = bis.read(buffer); + while (i != -1) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (bis != null) { + try { + bis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } - - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + LOGGER.error("下载异常",e); + throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build(); } finally { - // 清理临时文件文件 - if (zipFile != null) { - FileTool.deleteFile(zipFile.getPath()); - } - if (excelDir != null) { - FileTool.deleteFile(excelDir.getPath()); + if (excelFile != null) { + FileTool.deleteFile(excelFile.getPath()); } } } @@ -448,27 +434,22 @@ public class SysTaskController extends CoreBaseController { @GetMapping(value = "/down-template") @ApiOperation(value = "下载导入模板") - public ResultBean downExcelTemplate() { + public void downExcelTemplate(HttpServletResponse response) { try { ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); String importTemplateCode = "SysTaskImportTemplate"; - // 查询服务器中是否存在模板文件 - ImppFile fastDFSFile = new ImppFile("SysTaskImportTemplate.xls", - excelTool.importTemplate(SysTask.class), ".xls"); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;fileName=" + URLEncoder.encode(importTemplateCode + ".xls", "UTF-8")); + response.flushBuffer(); - SysFile sysFile = sysFileService.getSysFileByFileCode(importTemplateCode); - if (sysFile == null) { - sysFile = fileService.upload(fastDFSFile, CommonEnumUtil.SOFT_TYPE.CORE.getValue()); - sysFile.setFileCode(importTemplateCode); - sysFile = sysFileService.insertSysFile(sysFile); - } - - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); + response.getOutputStream().write(excelTool.importTemplate(SysTask.class)); + response.getOutputStream().flush(); } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + LOGGER.error("下载异常",e); + throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build(); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java index e35722e..2f692bf 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskCycleController.java @@ -10,15 +10,16 @@ import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.ExcelTool; import cn.estsh.i3plus.platform.common.tool.FileTool; import cn.estsh.i3plus.platform.common.tool.StringTool; -import cn.estsh.i3plus.platform.common.tool.ZipTool; import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; -import cn.estsh.i3plus.pojo.base.bean.ImppFile; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.*; +import cn.estsh.i3plus.pojo.platform.bean.SysRefTaskCyclePlan; +import cn.estsh.i3plus.pojo.platform.bean.SysTask; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; +import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; @@ -39,12 +40,10 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.persistence.EntityManager; -import java.io.File; -import java.io.FileInputStream; -import java.text.MessageFormat; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; import java.text.ParseException; -import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Map; @@ -353,67 +352,58 @@ public class SysTaskCycleController extends CoreBaseController { @GetMapping(value = "/export") @ApiOperation(value = "导出数据") - public ResultBean exportExcel(SysTaskCycle bean, boolean needSendMessage) { - ListPager listPager; - List result = new ArrayList<>(); - File zipFile = null; - File excelDir = null; - File excelFile; - ExcelTool excelTool; + public void exportExcel(SysTaskCycle bean, HttpServletResponse response) { + File excelFile = null; try { - Pager pager = new Pager(0); - // 判断是否超过excel最大导出数量设定值 - pager.setPageSize(RedisCacheTool.getSysConfigIntVal(PlatformConstWords.EXCEL_EXPORT_MAX_ROW, 20000)); - - // 数据校验 Map colMap = ExcelTool.getColName(SysTaskCycle.class); String[] colName = new String[colMap.size()]; - int i = 0; + int j = 0; for (String key : colMap.keySet()) { - colName[i++] = key; + colName[j++] = key; } - excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); - excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime()); - excelDir.mkdir(); - do { - listPager = sysTaskCycleService.querySysTaskCycleByPager(bean, pager); - pager = listPager.getObjectPager(); - - // 将excel导出至临时文件夹 - excelFile = new File(MessageFormat.format("{0}{1}{2}{3}.xls", excelDir, File.separator, - SysTaskCycle.class.getSimpleName(), - pager.getCurrentPage())); - excelFile.createNewFile(); - excelTool.exportData(excelFile, listPager.getObjectList(), SysTaskCycle.class, colName); - - pager.setCurrentPage(pager.getCurrentPage() + 1); - } while (pager.getCurrentPage() <= pager.getTotalPages()); - - // 将所有excel文件打包上传 - zipFile = ZipTool.zipFile(null, excelDir); - SysFile sysFile = fileService.upload(new FileInputStream(zipFile), zipFile.getName(), - StringTool.getStringFileSuffix(zipFile.getName(), true), CommonEnumUtil.SOFT_TYPE.CORE.getValue()); - - result.add(sysFileService.insertSysFile(sysFile)); - - // 是否发送站内信 - if (needSendMessage) { - sysMessageService.insertSysMessage(ExcelTool.sendStationLetter(result, getSessionUser().getUser().getId())); + ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); + // 将excel导出至临时文件夹 + excelFile = new File(System.getProperty("java.io.tmpdir") + File.separator + AuthUtil.getSessionUser().getUserName() + + "SysTaskCycle.xls"); + excelFile.createNewFile(); + excelTool.exportData(excelFile, sysTaskCycleService.findSysTaskCycleByCondition(bean), SysTaskCycle.class, colName); + + + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;fileName=" + URLEncoder.encode(excelFile.getName(), "UTF-8")); + response.flushBuffer(); + + BufferedInputStream bis = null; + try { + bis = new BufferedInputStream(new FileInputStream(excelFile)); + OutputStream os = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int i = bis.read(buffer); + while (i != -1) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (bis != null) { + try { + bis.close(); + excelFile.delete(); + } catch (IOException e) { + e.printStackTrace(); + } + } } - - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + LOGGER.error("下载异常",e); + throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build(); } finally { - // 清理临时文件文件 - if (zipFile != null) { - FileTool.deleteFile(zipFile.getPath()); - } - if (excelDir != null) { - FileTool.deleteFile(excelDir.getPath()); + if (excelFile != null) { + FileTool.deleteFile(excelFile.getPath()); } } } @@ -427,19 +417,10 @@ public class SysTaskCycleController extends CoreBaseController { //校验导入数据并初始化 for (SysTaskCycle taskCycle : beanList) { -// if (!sysTaskService.checkSysTaskOnly(sysTask)) { -// throw ImppExceptionBuilder.newInstance() -// .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) -// .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) -// .setErrorDetail("任务名称【%s】必须唯一", sysTask.getName()) -// .setErrorSolution("请重新输入") -// .build(); -// } - ConvertBean.modelInitialize(taskCycle, AuthUtil.getSessionUser()); } -// sysTaskCycleService.insertSysTaskCycle(beanList); + sysTaskCycleService.insertBatchSysTaskCycle(beanList); return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { @@ -451,27 +432,21 @@ public class SysTaskCycleController extends CoreBaseController { @GetMapping(value = "/down-template") @ApiOperation(value = "下载导入模板") - public ResultBean downExcelTemplate() { + public void downExcelTemplate(HttpServletResponse response) { try { ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); String importTemplateCode = "SysTaskCycleImportTemplate"; - // 查询服务器中是否存在模板文件 - ImppFile fastDFSFile = new ImppFile("SysTaskCycleImportTemplate.xls", - excelTool.importTemplate(SysTaskCycle.class), ".xls"); - - SysFile sysFile = sysFileService.getSysFileByFileCode(importTemplateCode); - if (sysFile == null) { - sysFile = fileService.upload(fastDFSFile, CommonEnumUtil.SOFT_TYPE.CORE.getValue()); - sysFile.setFileCode(importTemplateCode); - sysFile = sysFileService.insertSysFile(sysFile); - } + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;fileName=" + URLEncoder.encode(importTemplateCode + ".xls", "UTF-8")); - return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); + response.getOutputStream().write(excelTool.importTemplate(SysTaskCycle.class)); + response.getOutputStream().flush(); } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + LOGGER.error("下载异常",e); + throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build(); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java index c7ebf98..5867a17 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysTaskPlanController.java @@ -19,7 +19,6 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysFile; import cn.estsh.i3plus.pojo.platform.bean.SysTask; import cn.estsh.i3plus.pojo.platform.bean.SysTaskCycle; import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan; @@ -34,6 +33,7 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -41,10 +41,13 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.persistence.EntityManager; -import java.io.File; -import java.util.ArrayList; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; /** * @Description : 任务计划管理服务 @@ -138,6 +141,7 @@ public class SysTaskPlanController extends CoreBaseController { @PostMapping(value = "/insert") @ApiOperation(value = "新增任务计划", notes = "任务计划") public ResultBean insertSysTaskTime(@RequestBody SysTaskPlan sysTaskPlan, Integer isExecute) { + boolean isMakeUpOperate = false; try { startMultiService(); @@ -166,14 +170,14 @@ public class SysTaskPlanController extends CoreBaseController { sysTaskPlan.setTaskPlanStatus(CommonEnumUtil.DATA_STATUS.ENABLE.getValue()); // 唯一检查 - LOGGER.info("定时任务唯一校验 Name:{0},GroupName:{1}", sysTaskPlan.getName(), sysTaskPlan.getGroupName()); + LOGGER.info("定时任务唯一校验 Name:{},GroupName:{}", sysTaskPlan.getName(), sysTaskPlan.getGroupName()); BaseResultBean baseResultBean = getJobService(sysTaskPlan.getTaskSoftTypeRdd()) .checkJobExists(sysTaskPlan.getName(), sysTaskPlan.getGroupName()); if (baseResultBean.isSuccess() && baseResultBean.getResultObject() != null && (boolean) baseResultBean.getResultObject()) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail("定时任务已存在 %s" , baseResultBean.getErrorMsg()) + .setErrorDetail("定时任务已存在 %s", baseResultBean.getErrorMsg()) .build(); } @@ -182,7 +186,6 @@ public class SysTaskPlanController extends CoreBaseController { sysTask.getTaskClass(), sysTaskPlan.getName(), sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); if (!baseResultBean.isSuccess()) { - getJobService(sysTaskPlan.getTaskSoftTypeRdd()).deleteTask(sysTaskPlan.getName(),sysTaskPlan.getGroupName()); throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) @@ -210,9 +213,17 @@ public class SysTaskPlanController extends CoreBaseController { return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysTaskPlan); } catch (ImppBusiException busExcep) { + isMakeUpOperate = true; return ResultBean.fail(busExcep); } catch (Exception e) { + isMakeUpOperate = true; return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } finally { + // 如果失败进行补偿删除,避免添加垃圾数据 + if (isMakeUpOperate && sysTaskPlan.getTaskSoftTypeRdd() != null + && StringUtils.isNotBlank(sysTaskPlan.getName()) && StringUtils.isNotBlank(sysTaskPlan.getGroupName())) { + getJobService(sysTaskPlan.getTaskSoftTypeRdd()).deleteTask(sysTaskPlan.getName(), sysTaskPlan.getGroupName()); + } } } @@ -274,7 +285,11 @@ public class SysTaskPlanController extends CoreBaseController { baseResultBean = getJobService(sysTaskPlan.getTaskSoftTypeRdd()) .editTask(sysTask.getTaskPackage(), sysTask.getTaskClass(), sysTaskPlan.getName(), sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); + // 判断是否失败如果失败进行补偿新增,避免出现勿删的情况 if (!baseResultBean.isSuccess()) { + getJobService(sysTaskPlan.getTaskSoftTypeRdd()) + .addTask(sysTask.getTaskPackage(), sysTask.getTaskClass(), sysTaskPlan.getName() + , sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); resultBean = ResultBean.fail(baseResultBean.getErrorMsg()); } @@ -404,7 +419,7 @@ public class SysTaskPlanController extends CoreBaseController { * 任务计划复杂查询,分页,排序 * * @param sysTaskPlan 查询条件 - * @param pager 分页信息 + * @param pager 分页信息 * @return 处理结果 */ @GetMapping("/query") @@ -450,48 +465,77 @@ public class SysTaskPlanController extends CoreBaseController { } /** - * 全部刷新 + * 全部重载 * * @return 处理结果 */ - @GetMapping(value = "/refresh/{id}") - @ApiOperation(value = "全部刷新", notes = "全部刷新") - public ResultBean refreshTaskPlan(boolean isSkipDisablePlan) { + @GetMapping(value = "/reload-all") + @ApiOperation(value = "全部重载", notes = "全部重载") + public ResultBean refreshAllTaskPlan(boolean isSkipDisablePlan) { try { List sysTaskPlanList = sysTaskPlanService.listSysTaskPlan(); - ResultBean resultBean = ResultBean.success("操作成功"); SysTask sysTask; SysTaskCycle sysTaskCycle; for (SysTaskPlan sysTaskPlan : sysTaskPlanList) { - if(isSkipDisablePlan && sysTaskPlan.getTaskPlanStatusVal() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()){ + if (isSkipDisablePlan && sysTaskPlan.getTaskPlanStatusVal() == CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()) { continue; } sysTask = sysTaskService.getSysTaskById(sysTaskPlan.getTaskId()); sysTaskCycle = sysTaskCycleService.getSysTaskCycleById(sysTaskPlan.getTaskCycleId()); - // 调用对应微服务的检查接口 - LOGGER.info("微服定时任务数据校验:name:{}, groupName:{}", sysTaskPlan.getName(), sysTaskPlan.getGroupName()); + + // 修改对应微服务的定时任务 + LOGGER.info("微服修改定时任务数据:taskPlan", sysTaskPlan.toString()); BaseResultBean baseResultBean = getJobService(sysTaskPlan.getTaskSoftTypeRdd()) - .checkJobExists(sysTaskPlan.getName(), sysTaskPlan.getGroupName()); - if (baseResultBean.isSuccess() && baseResultBean.getResultObject() != null && !(boolean) baseResultBean.getResultObject()) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) - .setErrorDetail("定时任务不存在") - .build(); - } else if (!baseResultBean.isSuccess()) { - resultBean = ResultBean.fail(baseResultBean.getErrorMsg()); + .editTask(sysTask.getTaskPackage(), sysTask.getTaskClass(), sysTaskPlan.getName(), + sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); + // 判断是否失败如果失败进行补偿新增,避免出现勿删的情况 + if (!baseResultBean.isSuccess()) { + getJobService(sysTaskPlan.getTaskSoftTypeRdd()) + .addTask(sysTask.getTaskPackage(), sysTask.getTaskClass(), sysTaskPlan.getName() + , sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); } + } + return ResultBean.success("操作成功"); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + /** + * 全部刷新 + * + * @return 处理结果 + */ + @PutMapping(value = "/reload-ids") + @ApiOperation(value = "按id重载计划", notes = "按id重载计划") + public ResultBean reloadTaskPlanById(@RequestBody Long[] ids) { + try { + List sysTaskPlanList = sysTaskPlanService.findSysTaskPlanByIds(ids); + SysTask sysTask; + SysTaskCycle sysTaskCycle; + for (SysTaskPlan sysTaskPlan : sysTaskPlanList) { + sysTask = sysTaskService.getSysTaskById(sysTaskPlan.getTaskId()); + sysTaskCycle = sysTaskCycleService.getSysTaskCycleById(sysTaskPlan.getTaskCycleId()); // 修改对应微服务的定时任务 LOGGER.info("微服修改定时任务数据:taskPlan", sysTaskPlan.toString()); - baseResultBean = getJobService(sysTaskPlan.getTaskSoftTypeRdd()) + BaseResultBean baseResultBean = getJobService(sysTaskPlan.getTaskSoftTypeRdd()) .editTask(sysTask.getTaskPackage(), sysTask.getTaskClass(), sysTaskPlan.getName(), sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); + + // 判断是否失败如果失败进行补偿新增,避免出现勿删的情况 if (!baseResultBean.isSuccess()) { - resultBean = ResultBean.fail(baseResultBean.getErrorMsg()); + LOGGER.error("重载任务计划name:{} group:{} 失败: {}",sysTaskPlan.getName() + ,sysTaskPlan.getGroupName(),baseResultBean.getErrorMsg()); + + getJobService(sysTaskPlan.getTaskSoftTypeRdd()) + .addTask(sysTask.getTaskPackage(), sysTask.getTaskClass(), sysTaskPlan.getName() + , sysTaskPlan.getGroupName(), sysTaskCycle.getTaskCycleExps(), sysTaskPlan.getTaskPlanParam()); } } - return resultBean; + return ResultBean.success("操作成功"); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { @@ -503,67 +547,57 @@ public class SysTaskPlanController extends CoreBaseController { @GetMapping(value = "/export") @ApiOperation(value = "导出数据") - public ResultBean exportExcel(SysTask bean, boolean needSendMessage) { - ListPager listPager; - List result = new ArrayList<>(); - File zipFile = null; - File excelDir = null; - File excelFile; - ExcelTool excelTool; + public void exportExcel(SysTaskPlan sysTaskPlan,HttpServletResponse response) { + File excelFile = null; try { - Pager pager = new Pager(0); - // 判断是否超过excel最大导出数量设定值 - pager.setPageSize(RedisCacheTool.getSysConfigIntVal(PlatformConstWords.EXCEL_EXPORT_MAX_ROW, 20000)); - - // 数据校验 - Map colMap = ExcelTool.getColName(SysTaskCycle.class); + Map colMap = ExcelTool.getColName(SysTaskPlan.class); String[] colName = new String[colMap.size()]; - int i = 0; + int j = 0; for (String key : colMap.keySet()) { - colName[i++] = key; + colName[j++] = key; } -// excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); -// excelDir = new File(System.getProperty("java.io.tmpdir") + File.separator + new Date().getTime()); -// excelDir.mkdir(); -// do { -// listPager = sysTaskService.querySysTaskByPager(bean, pager); -// pager = listPager.getObjectPager(); -// -// // 将excel导出至临时文件夹 -// excelFile = new File(MessageFormat.format("{0}{1}{2}{3}.xls", excelDir, File.separator, -// SysTaskCycle.class.getSimpleName(), -// pager.getCurrentPage())); -// excelFile.createNewFile(); -// excelTool.exportData(excelFile, listPager.getObjectList(), SysTaskCycle.class, colName); -// -// pager.setCurrentPage(pager.getCurrentPage() + 1); -// } while (pager.getCurrentPage() <= pager.getTotalPages()); -// -// // 将所有excel文件打包上传 -// zipFile = ZipTool.zipFile(null, excelDir); -// SysFile sysFile = fileService.upload(new FileInputStream(zipFile), zipFile.getName(), -// StringTool.getStringFileSuffix(zipFile.getName(), true), CommonEnumUtil.SOFT_TYPE.CORE.getValue()); -// -// result.add(sysFileService.insertSysFile(sysFile)); -// -// // 是否发送站内信 -// if (needSendMessage) { -// sysMessageService.insertSysMessage(ExcelTool.sendStationLetter(result, getSessionUser().getUser().getId())); -// } - - return ResultBean.success("导出成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultList(result); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } finally { - // 清理临时文件文件 - if (zipFile != null) { - FileTool.deleteFile(zipFile.getPath()); + ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); + // 将excel导出至临时文件夹 + excelFile = new File(System.getProperty("java.io.tmpdir") + File.separator + AuthUtil.getSessionUser().getUserName() + + "SysTaskPlan.xls"); + excelFile.createNewFile(); + excelTool.exportData(excelFile, sysTaskPlanService.findSysTaskPlanByCondition(sysTaskPlan), SysTaskPlan.class, colName); + + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;fileName=" + URLEncoder.encode(excelFile.getName(), "UTF-8")); + response.flushBuffer(); + + BufferedInputStream bis = null; + try { + bis = new BufferedInputStream(new FileInputStream(excelFile)); + OutputStream os = response.getOutputStream(); + byte[] buffer = new byte[1024]; + int i = bis.read(buffer); + while (i != -1) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (bis != null) { + try { + bis.close(); + excelFile.delete(); + } catch (IOException e) { + e.printStackTrace(); + } + } } - if (excelDir != null) { - FileTool.deleteFile(excelDir.getPath()); + } catch (Exception e) { + LOGGER.error("下载异常",e); + throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build(); + } finally { + if (excelFile != null) { + FileTool.deleteFile(excelFile.getPath()); } } } @@ -573,23 +607,30 @@ public class SysTaskPlanController extends CoreBaseController { public ResultBean importExcel(@RequestParam("file") MultipartFile file) { try { ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); - List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), SysTask.class); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), SysTaskPlan.class); + Set keySet = new HashSet<>(); + String key; // 校验导入数据并初始化 - for (SysTask sysTask : beanList) { - if (!sysTaskService.checkSysTaskOnly(sysTask)) { + for (SysTaskPlan sysTaskPlan : beanList) { + key = sysTaskPlan.getName() + sysTaskPlan.getGroupName(); + if (keySet.contains(key) || !sysTaskPlanService.checkSysTaskPlanOnly(sysTaskPlan)) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("任务名称【%s】必须唯一", sysTask.getName()) + .setErrorDetail("任务名称【%s】必须唯一", sysTaskPlan.getName()) .setErrorSolution("请重新输入") .build(); } + keySet.add(key); - ConvertBean.modelInitialize(sysTask, AuthUtil.getSessionUser()); - } + ConvertBean.modelInitialize(sysTaskPlan, AuthUtil.getSessionUser()); - sysTaskService.insertBatchSysTask(beanList); + ResultBean resultBean = insertSysTaskTime(sysTaskPlan,CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + if (!resultBean.isSuccess()) { + return resultBean; + } + } return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { @@ -601,28 +642,22 @@ public class SysTaskPlanController extends CoreBaseController { @GetMapping(value = "/down-template") @ApiOperation(value = "下载导入模板") - public ResultBean downExcelTemplate() { + public void downExcelTemplate(HttpServletResponse response) { try { -// ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); -// String importTemplateCode = "SysTaskCycleImportTemplate"; -// -// // 查询服务器中是否存在模板文件 -// ImppFile fastDFSFile = new ImppFile("SysTaskCycleImportTemplate.xls", -// excelTool.importTemplate(SysTaskCycle.class), ".xls"); -// -// SysFile sysFile = sysFileService.getSysFileByFileCode(importTemplateCode); -// if (sysFile == null) { -// sysFile = fileService.upload(fastDFSFile, CommonEnumUtil.SOFT_TYPE.CORE.getValue()); -// sysFile.setFileCode(importTemplateCode); -// sysFile = sysFileService.insertSysFile(sysFile); -// } - -// return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(sysFile); - return null; - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); + ExcelTool excelTool = new ExcelTool(entityManager, RedisCacheTool.getImppRedis()); + String importTemplateCode = "SysTaskPlanImportTemplate"; + + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;fileName=" + URLEncoder.encode(importTemplateCode + ".xls", "UTF-8")); + response.flushBuffer(); + + response.getOutputStream().write(excelTool.importTemplate(SysTaskPlan.class)); + response.getOutputStream().flush(); } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + LOGGER.error("下载异常",e); + throw ImppExceptionBuilder.newInstance().setErrorDetail(e.getMessage()).build(); } } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java index acfb2c9..9bb0d2f 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysRoleService.java @@ -2,19 +2,19 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.IPersonnelService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMenuService; -import cn.estsh.i3plus.core.api.iservice.busi.ISysPositionService; import cn.estsh.i3plus.core.api.iservice.busi.ISysRoleService; import cn.estsh.i3plus.core.apiservice.dao.IUserPermissionDao; import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.tool.HqlPack; import cn.estsh.i3plus.pojo.platform.bean.*; -import cn.estsh.i3plus.pojo.platform.repository.SysMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefRoleMenuRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRefUserRoleRepository; import cn.estsh.i3plus.pojo.platform.repository.SysRoleRepository; @@ -22,12 +22,10 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.base.service.CacheCrudService; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections4.ListUtils; -import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -226,11 +224,12 @@ public class SysRoleService extends CacheCrudService implements ISysRol @Override public List findSysRefRoleMenuByRoleId(Long roleId, Integer softType) { LOGGER.info("系统角色权限关系 RefRoleMenu find By RoleId"); - return refRoleMenuRDao.findByProperty( - new String[]{"roleId","softType","isValid"}, - new Object[]{roleId,softType, - CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()} - ); + DdlPackBean ddlPackBean = new DdlPackBean(); + DdlPreparedPack.getNumEqualPack(roleId,"roleId",ddlPackBean); + DdlPreparedPack.getNumEqualPack(softType,"softType",ddlPackBean); + DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(),"isValid",ddlPackBean); + + return refRoleMenuRDao.findByHqlWhere(ddlPackBean); } @Override diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java index 3edeadc..37c4bd8 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskCycleService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.busi; import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskCycleService; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; @@ -101,9 +102,9 @@ public class SysTaskCycleService implements ISysTaskCycleService { pager = PagerHelper.getPager(pager, sysTaskCycleRDao.listCount()); return new ListPager(sysTaskCycleRDao.listPager(pager),pager); }else { - String hqlPack = CoreHqlPack.packHqlSysTaskCycle(sysTaskCycle); + DdlPackBean hqlPack = CoreHqlPack.packHqlSysTaskCycle(sysTaskCycle); pager = PagerHelper.getPager(pager, sysTaskCycleRDao.findByHqlWhereCount(hqlPack)); - return new ListPager(sysTaskCycleRDao.findByHqlWherePage(hqlPack + sysTaskCycle.orderBy(),pager),pager); + return new ListPager(sysTaskCycleRDao.findByHqlWherePage(hqlPack, pager), pager); } } @@ -129,4 +130,10 @@ public class SysTaskCycleService implements ISysTaskCycleService { public List findRefTaskCyclePlanByCycleId(Long cycleId) { return sysRefTaskCyclePlanRDao.findByProperty("taskCycleId",cycleId); } + + @Override + public List findSysTaskCycleByCondition(SysTaskCycle sysTaskCycle) { + return sysTaskCycleRDao.findByHqlWhere(CoreHqlPack.packHqlSysTaskCycle(sysTaskCycle)); + } + } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java index d16ffcd..0333416 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskPlanService.java @@ -24,6 +24,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; /** @@ -111,6 +112,21 @@ public class SysTaskPlanService implements ISysTaskPlanService { } @Override + public List findSysTaskPlanByIds(Long[] ids) { + return sysTaskPlanRDao.findAllById(Arrays.asList(ids)); + } + + @Override + public boolean checkSysTaskPlanOnly(SysTaskPlan sysTaskPlan) { + return !sysTaskPlanRDao.isExitByHql(CoreHqlPack.packHqlSysTaskPlanOnly(sysTaskPlan)); + } + + @Override + public List findSysTaskPlanByCondition(SysTaskPlan sysTaskPlan) { + return sysTaskPlanRDao.findByHqlWhere(CoreHqlPack.packHqlSysTaskPlan(sysTaskPlan)); + } + + @Override @ApiOperation(value = "修改任务计划状态", notes = "修改任务计划状态") public void updateSysTaskPlanStatus(Long id, int status, SessionUser user) { LOGGER.info("定时任务 SYS_MENU id:{} status:{} user:{}", id, status, user); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java index e614eac..c821d49 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysTaskService.java @@ -133,4 +133,9 @@ public class SysTaskService implements ISysTaskService { public boolean checkSysTaskOnly(SysTask sysTask) { return !sysTaskRDao.isExitByHql(CoreHqlPack.packHqlCheckSysTaskOnly(sysTask)); } + + @Override + public List findSysTaskByCondition(SysTask sysTask) { + return sysTaskRDao.findByHqlWhere(CoreHqlPack.packHqlSysTask(sysTask)); + } }