From f1d366a3c68a017135d212960fc326c4911941c8 Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Sun, 9 Jun 2024 17:40:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/kc/jiaoshi/export/Export.java | 1 - .../wjxDjxx/controller/WjxDjxxController.java | 130 ++++++++++- .../kc/wjxDjxx/mapper/WjxDjxxMapper.java | 8 + .../kc/wjxDjxx/mapper/xml/WjxDjxxMapper.xml | 46 ++++ .../kc/wjxDjxx/service/IWjxDjxxService.java | 7 + .../service/impl/WjxDjxxServiceImpl.java | 16 +- .../wjxWjxx/controller/WjxWjxxController.java | 136 ++++++++++- .../kc/wjxWjxx/mapper/WjxWjxxMapper.java | 9 + .../kc/wjxWjxx/mapper/xml/WjxWjxxMapper.xml | 54 ++++- .../kc/wjxWjxx/service/IWjxWjxxService.java | 8 + .../service/impl/WjxWjxxServiceImpl.java | 33 ++- .../zyInfo/controller/ZyInfoController.java | 118 +++++++++- .../kc/zyInfo/mapper/ZyInfoMapper.java | 5 + .../kc/zyInfo/mapper/xml/ZyInfoMapper.xml | 33 +++ .../kc/zyInfo/service/IZyInfoService.java | 7 + .../service/impl/ZyInfoServiceImpl.java | 13 ++ .../controller/ZyInfoStudentController.java | 111 +++++++++ .../mapper/ZyInfoStudentMapper.java | 5 + .../mapper/xml/ZyInfoStudentMapper.xml | 48 ++++ .../service/IZyInfoStudentService.java | 5 + .../impl/ZyInfoStudentServiceImpl.java | 11 + .../zyJxdg/controller/ZyJxdgController.java | 216 ++++++++++++++++++ .../modules/kc/zyJxdg/entity/ZyJxdg.java | 2 + .../kc/zyJxdg/mapper/ZyJxdgMapper.java | 8 + .../kc/zyJxdg/mapper/xml/ZyJxdgMapper.xml | 33 +++ .../kc/zyJxdg/service/IZyJxdgService.java | 10 + .../service/impl/ZyJxdgServiceImpl.java | 15 ++ .../kc/zyTlq/controller/ZyTlqController.java | 59 +++++ .../modules/kc/zyTlq/mapper/ZyTlqMapper.java | 6 + .../kc/zyTlq/mapper/xml/ZyTlqMapper.xml | 23 ++ .../kc/zyTlq/service/IZyTlqService.java | 5 + .../zyTlq/service/impl/ZyTlqServiceImpl.java | 8 + .../officetemplates/exp1/teacher-tjfx.docx | Bin 0 -> 262256 bytes pom.xml | 10 + 34 files changed, 1186 insertions(+), 13 deletions(-) create mode 100644 jeecg-module-main/src/main/resources/officetemplates/exp1/teacher-tjfx.docx diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/export/Export.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/export/Export.java index 5b05a65f..f845c203 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/export/Export.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/jiaoshi/export/Export.java @@ -676,7 +676,6 @@ public class Export extends BaseExport { mainList.clear(); Map result2 = Maps.newHashMap(); - //result2.put("教学楼数", "0"); Map jxlMap = Maps.newHashMap(); for (String key: mainLogMap.keySet()) { KcZhihuijiaoshiMonitorLog o = mainLogMap.get(key); diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/controller/WjxDjxxController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/controller/WjxDjxxController.java index 7a5d68ed..e1db2fd2 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/controller/WjxDjxxController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/controller/WjxDjxxController.java @@ -9,15 +9,23 @@ import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; -import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; +import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; +import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService; +import org.jeecg.modules.kc.wjxDjxx.entity.StudentCyglSys; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmlbPage; import org.jeecg.modules.kc.wjxDjxx.service.IWjxDjxxService; -import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; -import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmlb; +import org.jeecg.modules.system.service.impl.SysBaseApiImpl; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.Date; @@ -37,6 +45,21 @@ public class WjxDjxxController extends JeecgController @Autowired private IWjxDjxxService wjxDjxxService; + + @Value("${jeecg.path.upload}") + private String upLoadPath; + + + @Value(value="${jeecg.uploadType}") + private String uploadType; + + @Autowired + private SysBaseApiImpl sysBaseApi; + @Autowired + private IKcExportConfigTpkwcqkjzglxService kcExportConfigTpkwcqkjzglxService; + @Autowired + private IKcSysConfigService kcSysConfigService; + @ApiOperation(value="答卷提交", notes="答卷提交") @PostMapping(value = "/djtj") public Result djtj(@RequestBody List list) { @@ -65,4 +88,105 @@ public class WjxDjxxController extends JeecgController return Result.OK(pageList); } + + + + + @ApiOperation(value="教学大纲-分页列表查询", notes="教学大纲-分页列表查询") + @GetMapping(value = "/sysList") + public Result> sysList(StudentCyglSys studentCyglSys, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + QueryWrapper queryWrapper = new QueryWrapper(); + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(studentCyglSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",studentCyglSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getKkdw()),"kkdw",studentCyglSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getKcmc()),"kcmc",studentCyglSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getKcbh()),"kcbh",studentCyglSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getSkjs()),"skjs",studentCyglSys.getSkjs()); + + + Page page = new Page(pageNo, pageSize); + IPage pageList = wjxDjxxService.sysList(page, queryWrapper,studentCyglSys); + return Result.OK(pageList); + } + + + @RequestMapping(value = "/exportSysXls") + public ModelAndView exportSysXls(HttpServletRequest request, StudentCyglSys studentCyglSys) { + String title = "学生作业管理"; + // Step.1 组装查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(studentCyglSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",studentCyglSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getKkdw()),"kkdw",studentCyglSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getKcmc()),"kcmc",studentCyglSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getKcbh()),"kcbh",studentCyglSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(studentCyglSys.getSkjs()),"skjs",studentCyglSys.getSkjs()); + + // Step.2 获取导出数据 + List exportList = service.exportSysXls(queryWrapper,studentCyglSys); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, StudentCyglSys.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/WjxDjxxMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/WjxDjxxMapper.java index 10c1c918..5506a860 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/WjxDjxxMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/WjxDjxxMapper.java @@ -1,8 +1,12 @@ package org.jeecg.modules.kc.wjxDjxx.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.kc.wjxDjxx.entity.StudentCyglSys; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxDj; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx; @@ -36,4 +40,8 @@ public interface WjxDjxxMapper extends BaseMapper { List findUnDjjgsDJPage(WjxDjxxDj params); List findAllDjjgsDjPage(WjxDjxxDj params); + + IPage sysList(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper, StudentCyglSys studentCyglSys); + + List exportSysXls(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, StudentCyglSys studentCyglSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/xml/WjxDjxxMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/xml/WjxDjxxMapper.xml index 98901fa2..a23f1f37 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/xml/WjxDjxxMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/mapper/xml/WjxDjxxMapper.xml @@ -228,4 +228,50 @@ order by b.total_score desc + + + + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/IWjxDjxxService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/IWjxDjxxService.java index bf0af88f..c9cb3823 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/IWjxDjxxService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/IWjxDjxxService.java @@ -1,6 +1,9 @@ package org.jeecg.modules.kc.wjxDjxx.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.kc.wjxDjxx.entity.StudentCyglSys; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxDj; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmlbPage; @@ -23,4 +26,8 @@ public interface IWjxDjxxService extends IService { List exportList(WjxDjxx wjxDjxx); List exportDjXls(WjxDjxxDj wjxDjxxdj); + + IPage sysList(Page page, QueryWrapper queryWrapper, StudentCyglSys studentCyglSys); + + List exportSysXls(QueryWrapper queryWrapper, StudentCyglSys studentCyglSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/impl/WjxDjxxServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/impl/WjxDjxxServiceImpl.java index 763042b4..2380b7ea 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/impl/WjxDjxxServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxDjxx/service/impl/WjxDjxxServiceImpl.java @@ -4,15 +4,13 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx; -import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxDj; -import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmlbPage; -import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx; +import org.jeecg.modules.kc.wjxDjxx.entity.*; import org.jeecg.modules.kc.wjxDjxx.mapper.WjxDjxxMapper; import org.jeecg.modules.kc.wjxDjxx.service.IWjxDjxxService; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; @@ -454,4 +452,14 @@ public class WjxDjxxServiceImpl extends ServiceImpl impl return list; } + @Override + public IPage sysList(Page page, QueryWrapper queryWrapper, StudentCyglSys studentCyglSys) { + return baseMapper.sysList(page, queryWrapper, studentCyglSys); + } + + @Override + public List exportSysXls(QueryWrapper queryWrapper, StudentCyglSys studentCyglSys) { + return baseMapper.exportSysXls(queryWrapper, studentCyglSys); + } + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/controller/WjxWjxxController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/controller/WjxWjxxController.java index 77c33ce3..04ab3d5b 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/controller/WjxWjxxController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/controller/WjxWjxxController.java @@ -12,8 +12,13 @@ import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; import org.jeecg.modules.kc.grab.imports.entity.Xxhbbks; import org.jeecg.modules.kc.grab.imports.service.IXxhbbksService; +import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; +import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService; +import org.jeecg.modules.kc.wjxWjxx.entity.KccyglSys; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import org.jeecg.modules.kc.wjxWjxx.service.IWjxWjxxService; @@ -24,10 +29,14 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx; import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService; -import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudent; +import org.jeecg.modules.system.service.impl.SysBaseApiImpl; import org.jeecg.modules.tools.WjxAuthService; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -57,6 +66,18 @@ public class WjxWjxxController extends JeecgController @Autowired private IZyDbtxService zyDbtxService; + + + + @Autowired + private SysBaseApiImpl sysBaseApi; + @Autowired + private IKcExportConfigTpkwcqkjzglxService kcExportConfigTpkwcqkjzglxService; + @Autowired + private IKcSysConfigService kcSysConfigService; + + @Value("${jeecg.path.upload}") + private String upLoadPath; /** * 分页列表查询 * @@ -78,10 +99,22 @@ public class WjxWjxxController extends JeecgController // queryWrapper.orderByAsc("start_time"); // Page page = new Page(pageNo, pageSize); // IPage pageList = wjxWjxxService.page(page, queryWrapper); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + wjxWjxx.setCreateBy(user.getUsername()); Page pageList = wjxWjxxService.findPage(wjxWjxx, new Page<>(pageNo, pageSize)); return Result.OK(pageList); } + + @ApiOperation(value="问卷信息-分页列表查询", notes="问卷信息-分页列表查询") + @GetMapping(value = "/newlist") + public Result> newlist(WjxWjxx wjxWjxx, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Page pageList = wjxWjxxService.findPage(wjxWjxx, new Page<>(pageNo, pageSize)); + return Result.OK(pageList); + } /** * 学生问卷分页列表查询 * @@ -274,4 +307,105 @@ public class WjxWjxxController extends JeecgController JSONObject res = wjxWjxxService.wjxxDownLoad(id); return Result.OK(res); } + + + + @ApiOperation(value="教学大纲-分页列表查询", notes="教学大纲-分页列表查询") + @GetMapping(value = "/sysList") + public Result> sysList(KccyglSys kccyglSys, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + QueryWrapper queryWrapper = new QueryWrapper(); + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(kccyglSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",kccyglSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(kccyglSys.getKkdw()),"kkdw",kccyglSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(kccyglSys.getKcmc()),"kcmc",kccyglSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(kccyglSys.getKcbh()),"kcbh",kccyglSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(kccyglSys.getSkjs()),"skjs",kccyglSys.getSkjs()); + + Page page = new Page(pageNo, pageSize); + IPage pageList = wjxWjxxService.sysList(page, queryWrapper,kccyglSys); + return Result.OK(pageList); + } + + + @RequestMapping(value = "/exportSysXls") + public ModelAndView exportSysXls(HttpServletRequest request, KccyglSys KccyglSys) { + String title = "课程测验"; + // Step.1 组装查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(KccyglSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",KccyglSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(KccyglSys.getKkdw()),"kkdw",KccyglSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(KccyglSys.getKcmc()),"kcmc",KccyglSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(KccyglSys.getKcbh()),"kcbh",KccyglSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(KccyglSys.getSkjs()),"skjs",KccyglSys.getSkjs()); + + // Step.2 获取导出数据 + List exportList = service.exportSysXls(queryWrapper,KccyglSys); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, KccyglSys.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } + + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/WjxWjxxMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/WjxWjxxMapper.java index bfee682d..8d89a257 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/WjxWjxxMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/WjxWjxxMapper.java @@ -1,7 +1,12 @@ package org.jeecg.modules.kc.wjxWjxx.mapper; import java.util.List; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.kc.wjxWjxx.entity.KccyglSys; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -17,4 +22,8 @@ public interface WjxWjxxMapper extends BaseMapper { List findStuPage(Page page,WjxWjxx param); WjxWjxx kcxx(@Param("rwbh")String rwbh,@Param("xqxn")String xqxn); void updateVid(@Param("id")String id,@Param("vid")String vid); + + IPage sysList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, KccyglSys kccyglSys); + + List exportSysXls(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, KccyglSys kccyglSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/xml/WjxWjxxMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/xml/WjxWjxxMapper.xml index e37031c6..edb3d0e4 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/xml/WjxWjxxMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/mapper/xml/WjxWjxxMapper.xml @@ -29,13 +29,18 @@ where rwbh = #{param.rwbh} and xqxn = #{param.xqxn} and atype = #{param.atype} - and create_by = #{param.createBy} + + and create_by = #{param.createBy} + and a.title like CONCAT('%', #{param.title}, '%') and a.qpublish = #{param.qpublish} + + and a.id = #{param.id} + order by end_time desc @@ -89,4 +94,51 @@ qpublish = '1' where id = #{id} + + + + + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/IWjxWjxxService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/IWjxWjxxService.java index 3639fb32..79c00e1d 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/IWjxWjxxService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/IWjxWjxxService.java @@ -1,10 +1,14 @@ package org.jeecg.modules.kc.wjxWjxx.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.jeecg.modules.kc.wjxWjxx.entity.KccyglSys; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import java.util.List; import java.util.Map; /** @@ -22,4 +26,8 @@ public interface IWjxWjxxService extends IService { JSONObject wjxxTjfx(String id); JSONObject wjxxDownLoad(String id); + + IPage sysList(Page page, QueryWrapper queryWrapper,KccyglSys kccyglSys); + + List exportSysXls(QueryWrapper queryWrapper,KccyglSys kccyglSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/impl/WjxWjxxServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/impl/WjxWjxxServiceImpl.java index 397ad0f9..4898a3d5 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/impl/WjxWjxxServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/wjxWjxx/service/impl/WjxWjxxServiceImpl.java @@ -2,13 +2,16 @@ package org.jeecg.modules.kc.wjxWjxx.service.impl; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.text.StringUtils; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxx; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx; +import org.jeecg.modules.kc.wjxWjxx.entity.KccyglSys; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import org.jeecg.modules.kc.wjxWjxx.mapper.WjxWjxxMapper; import org.jeecg.modules.kc.wjxWjxx.service.IWjxWjxxService; @@ -42,8 +45,6 @@ public class WjxWjxxServiceImpl extends ServiceImpl impl @Override public Page findPage(WjxWjxx wjxWjxx, Page page){ - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - wjxWjxx.setCreateBy(user.getUsername()); List list = baseMapper.findPage(page,wjxWjxx); page.setRecords(list); return page; @@ -319,8 +320,36 @@ public class WjxWjxxServiceImpl extends ServiceImpl impl //调用接口,提交 String result = wjxUtil.openapi(map,"1001004"); JSONObject jsonResult = JSONObject.parseObject(result); + System.out.println("1----------->"+jsonResult.toString()); + if(StringUtils.equals("true",jsonResult.getString("result"))){ + try { + Thread.sleep(2000L); + }catch (Exception e){ + e.printStackTrace(); + } + JSONObject data = jsonResult.getJSONObject("data"); + String taskid = data.getString("taskid"); + Map map2 = new HashMap<>(); + map2.put("vid",Integer.valueOf(vid)); + map2.put("suffix",2); + map2.put("taskid",taskid); +// map.put("suffix",2); + String result2 = wjxUtil.openapi(map2,"1001004"); + JSONObject jsonResult2 = JSONObject.parseObject(result2); + System.out.println("2----------->"+jsonResult2.toString()); + } return jsonResult; } + @Override + public IPage sysList(Page page, QueryWrapper queryWrapper,KccyglSys kccyglSys) { + return baseMapper.sysList(page,queryWrapper,kccyglSys); + } + + @Override + public List exportSysXls(QueryWrapper queryWrapper,KccyglSys kccyglSys) { + return baseMapper.exportSysXls(queryWrapper,kccyglSys); + } + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java index 5acdc9f6..e6303c9b 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/controller/ZyInfoController.java @@ -14,6 +14,8 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; import org.jeecg.modules.kc.grab.imports.entity.Xxhbbks; import org.jeecg.modules.kc.grab.imports.service.IXxhbbksService; import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; @@ -23,10 +25,16 @@ import org.jeecg.modules.kc.ktgl.service.IKcKechengbiaoService; import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx; import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; +import org.jeecg.modules.kc.zyInfo.entity.ZyInfoSys; import org.jeecg.modules.kc.zyInfo.service.IZyInfoService; import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudent; import org.jeecg.modules.kc.zyInfoStudent.service.IZyInfoStudentService; +import org.jeecg.modules.system.service.impl.SysBaseApiImpl; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -59,7 +67,17 @@ public class ZyInfoController extends JeecgController { @Autowired private IZyDbtxService zyDbtxService; - /** + + @Autowired + private SysBaseApiImpl sysBaseApi; + @Autowired + private IKcExportConfigTpkwcqkjzglxService kcExportConfigTpkwcqkjzglxService; + + @Value("${jeecg.path.upload}") + private String upLoadPath; + + + /** * 分页列表查询 * * @param zyInfo @@ -256,4 +274,102 @@ public class ZyInfoController extends JeecgController { return Result.OK(pageList); } + + + @ApiOperation(value="教学大纲-分页列表查询", notes="教学大纲-分页列表查询") + @GetMapping(value = "/sysList") + public Result> sysList(ZyInfoSys zyInfoSys, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + QueryWrapper queryWrapper = new QueryWrapper(); + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(zyInfoSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyInfoSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getKkdw()),"kkdw",zyInfoSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getKcmc()),"kcmc",zyInfoSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getKcbh()),"kcbh",zyInfoSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getSkjs()),"skjs",zyInfoSys.getSkjs()); + + Page page = new Page(pageNo, pageSize); + IPage pageList = zyInfoService.sysList(page, queryWrapper); + return Result.OK(pageList); + } + + + @RequestMapping(value = "/exportSysXls") + public ModelAndView exportSysXls(HttpServletRequest request, ZyInfoSys zyInfoSys) { + String title = "课程作业"; + // Step.1 组装查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(zyInfoSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyInfoSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getKkdw()),"kkdw",zyInfoSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getKcmc()),"kcmc",zyInfoSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getKcbh()),"kcbh",zyInfoSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoSys.getSkjs()),"skjs",zyInfoSys.getSkjs()); + + // Step.2 获取导出数据 + List exportList = service.exportSysXls(queryWrapper); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, ZyInfoSys.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/ZyInfoMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/ZyInfoMapper.java index 2ee598cb..8fa36281 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/ZyInfoMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/ZyInfoMapper.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.kc.zyInfo.entity.ZyInfoSys; /** * @Description: 作业发布 @@ -19,4 +20,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface ZyInfoMapper extends BaseMapper { IPage stuList(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + IPage sysList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List exportSysXls(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/xml/ZyInfoMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/xml/ZyInfoMapper.xml index 82b0f283..ffe6ab87 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/xml/ZyInfoMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/mapper/xml/ZyInfoMapper.xml @@ -23,4 +23,37 @@ ${ew.customSqlSegment} + + + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/IZyInfoService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/IZyInfoService.java index c3cb6ee9..5e8a5dc1 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/IZyInfoService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/IZyInfoService.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.kc.zyInfo.entity.ZyInfoSys; + +import java.util.List; /** * @Description: 作业发布 @@ -15,4 +18,8 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface IZyInfoService extends IService { IPage stuList(Page page, QueryWrapper queryWrapper); + + IPage sysList(Page page, QueryWrapper queryWrapper); + + List exportSysXls(QueryWrapper queryWrapper); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java index 5b68b51d..59db6a89 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfo/service/impl/ZyInfoServiceImpl.java @@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; +import org.jeecg.modules.kc.zyInfo.entity.ZyInfoSys; import org.jeecg.modules.kc.zyInfo.mapper.ZyInfoMapper; import org.jeecg.modules.kc.zyInfo.service.IZyInfoService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; + /** * @Description: 作业发布 * @Author: jeecg-boot @@ -23,4 +26,14 @@ public class ZyInfoServiceImpl extends ServiceImpl impleme public IPage stuList(Page page, QueryWrapper queryWrapper) { return baseMapper.stuList(page, queryWrapper); } + + @Override + public IPage sysList(Page page, QueryWrapper queryWrapper) { + return baseMapper.sysList(page, queryWrapper); + } + + @Override + public List exportSysXls(QueryWrapper queryWrapper) { + return baseMapper.exportSysXls(queryWrapper); + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/controller/ZyInfoStudentController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/controller/ZyInfoStudentController.java index a5672683..c9df2d49 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/controller/ZyInfoStudentController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/controller/ZyInfoStudentController.java @@ -22,12 +22,17 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.SpringContextHolder; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; +import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; +import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService; import org.jeecg.modules.kc.zyCcjg.service.IZyCcjgService; import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx; import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; import org.jeecg.modules.kc.zyInfo.service.IZyInfoService; import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudent; +import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudentSys; import org.jeecg.modules.kc.zyInfoStudent.service.IZyInfoStudentService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -35,6 +40,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.system.service.impl.SysBaseApiImpl; import org.jeecg.modules.tools.Global; import org.jeecg.modules.tools.pdf.PDFUtil; import org.jeecg.modules.zyk.entity.ZykInfo; @@ -91,6 +97,13 @@ public class ZyInfoStudentController extends JeecgController> sysList(ZyInfoStudentSys zyInfoStudentSys, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + QueryWrapper queryWrapper = new QueryWrapper(); + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(zyInfoStudentSys.getXnxq())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyInfoStudentSys.getXnxq()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getKkdw()),"kkdw",zyInfoStudentSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getKcmc()),"kcmc",zyInfoStudentSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getKcbh()),"kcbh",zyInfoStudentSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getSkjs()),"skjs",zyInfoStudentSys.getSkjs()); + + + Page page = new Page(pageNo, pageSize); + IPage pageList = zyInfoStudentService.sysList(page, queryWrapper,zyInfoStudentSys); + return Result.OK(pageList); + } + + + @RequestMapping(value = "/exportSysXls") + public ModelAndView exportSysXls(HttpServletRequest request, ZyInfoStudentSys zyInfoStudentSys) { + String title = "学生作业管理"; + // Step.1 组装查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(zyInfoStudentSys.getXnxq())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyInfoStudentSys.getXnxq()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getKkdw()),"kkdw",zyInfoStudentSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getKcmc()),"kcmc",zyInfoStudentSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getKcbh()),"kcbh",zyInfoStudentSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyInfoStudentSys.getSkjs()),"skjs",zyInfoStudentSys.getSkjs()); + + // Step.2 获取导出数据 + List exportList = service.exportSysXls(queryWrapper,zyInfoStudentSys); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, ZyInfoStudentSys.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/ZyInfoStudentMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/ZyInfoStudentMapper.java index 6de56443..b44caace 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/ZyInfoStudentMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/ZyInfoStudentMapper.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudent; +import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudentSys; import java.util.List; @@ -23,4 +24,8 @@ public interface ZyInfoStudentMapper extends BaseMapper { IPage cdxxlist(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); List getCcjg(ZyInfoStudent zyInfoStudent); + + IPage sysList(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper, ZyInfoStudentSys zyInfoStudentSys); + + List exportSysXls(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, ZyInfoStudentSys zyInfoStudentSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/xml/ZyInfoStudentMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/xml/ZyInfoStudentMapper.xml index 5647ebe9..3989dcd2 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/xml/ZyInfoStudentMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/mapper/xml/ZyInfoStudentMapper.xml @@ -34,4 +34,52 @@ and a.checkdate = t.checkdate and a.zy_stu_id = t.zy_stu_id + + + + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/IZyInfoStudentService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/IZyInfoStudentService.java index edebd2bf..71d5a96c 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/IZyInfoStudentService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/IZyInfoStudentService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudent; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudentSys; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -31,4 +32,8 @@ public interface IZyInfoStudentService extends IService { List getCcjg(ZyInfoStudent zyInfoStudent); void fabuBatch(List asList); + + IPage sysList(Page page, QueryWrapper queryWrapper, ZyInfoStudentSys zyInfoStudentSys); + + List exportSysXls(QueryWrapper queryWrapper, ZyInfoStudentSys zyInfoStudentSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/impl/ZyInfoStudentServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/impl/ZyInfoStudentServiceImpl.java index 94630f75..ad09397d 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/impl/ZyInfoStudentServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyInfoStudent/service/impl/ZyInfoStudentServiceImpl.java @@ -19,6 +19,7 @@ import org.jeecg.modules.kc.zyCcjg.mapper.ZyCcjgMapper; import org.jeecg.modules.kc.zyInfo.entity.ZyInfo; import org.jeecg.modules.kc.zyInfo.service.IZyInfoService; import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudent; +import org.jeecg.modules.kc.zyInfoStudent.entity.ZyInfoStudentSys; import org.jeecg.modules.kc.zyInfoStudent.mapper.ZyInfoStudentMapper; import org.jeecg.modules.kc.zyInfoStudent.service.IZyInfoStudentService; import org.springframework.beans.factory.annotation.Autowired; @@ -165,6 +166,16 @@ public class ZyInfoStudentServiceImpl extends ServiceImpl sysList(Page page, QueryWrapper queryWrapper, ZyInfoStudentSys zyInfoStudentSys) { + return baseMapper.sysList(page, queryWrapper, zyInfoStudentSys); + } + + @Override + public List exportSysXls(QueryWrapper queryWrapper, ZyInfoStudentSys zyInfoStudentSys) { + return baseMapper.exportSysXls(queryWrapper, zyInfoStudentSys); + } + //aigc提交 private void aigcSave(ZyInfoStudent zyInfoStudent,HttpServletResponse response) { String url = "https://vims.fanyu.com/tool/AIGCCheck/paperSubmit"; diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/controller/ZyJxdgController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/controller/ZyJxdgController.java index eae7433c..ef6de684 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/controller/ZyJxdgController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/controller/ZyJxdgController.java @@ -20,15 +20,25 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.SpringContextHolder; import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; +import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; +import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService; import org.jeecg.modules.kc.ktgl.entity.KcKechengbiao; import org.jeecg.modules.kc.ktgl.service.IKcKechengbiaoService; import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdg; +import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdgSys; import org.jeecg.modules.kc.zyJxdg.service.IZyJxdgService; +import org.jeecg.modules.system.service.impl.SysBaseApiImpl; import org.jeecg.modules.tools.Global; import org.jeecg.modules.tools.pdf.PDFUtil; import org.jeecg.modules.zyk.entity.ZykInfo; import org.jeecg.modules.zyk.service.IZykService; import org.jeecg.modules.zyk.utils.WjlxEnum; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; @@ -39,6 +49,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.Arrays; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -70,6 +81,15 @@ public class ZyJxdgController extends JeecgController { @Autowired private Global global; + + @Autowired + private SysBaseApiImpl sysBaseApi; + @Autowired + private IKcExportConfigTpkwcqkjzglxService kcExportConfigTpkwcqkjzglxService; + + @Autowired + private IKcSysConfigService kcSysConfigService; + /** * 分页列表查询 * @@ -461,4 +481,200 @@ public class ZyJxdgController extends JeecgController { return Result.OK(zyJxdg); } + + @ApiOperation(value="教学大纲-分页列表查询", notes="教学大纲-分页列表查询") + @GetMapping(value = "/sysList") + public Result> sysList(ZyJxdgSys zyJxdg, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + QueryWrapper queryWrapper = new QueryWrapper(); + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(StringUtils.isEmpty(zyJxdg.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyJxdg.getXqxn()); + } + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getKkdw()),"kkdw",zyJxdg.getKkdw()); + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getKcmc()),"kcmc",zyJxdg.getKcmc()); + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getKcbh()),"kcbh",zyJxdg.getKcbh()); + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getSkjs()),"skjs",zyJxdg.getSkjs()); + + Page page = new Page(pageNo, pageSize); + IPage pageList = zyJxdgService.sysList(page, queryWrapper); + return Result.OK(pageList); + } + + @AutoLog(value = "学院管理员修改教学内容") + @ApiOperation(value="学院管理员修改教学内容", notes="学院管理员修改教学内容") + @PostMapping(value = "/sysUpdateJxnr") + public Result sysUpdateJxnr(@RequestBody ZyJxdg zyJxdg) { + if(StringUtils.isEmpty(zyJxdg.getYwId())){ + zyJxdg.setCreateBy(zyJxdg.getTeano()); + zyJxdgService.save(zyJxdg); + return Result.OK(zyJxdg); + }else{ + UpdateWrapper zyJxdgUw = new UpdateWrapper<>(); + zyJxdgUw.set("file_path", zyJxdg.getFilePath()); + zyJxdgUw.set("jxrl_file_path", zyJxdg.getJxrlFilePath()); + zyJxdgUw.eq("id", zyJxdg.getYwId()); + zyJxdgService.update(zyJxdgUw); + zyJxdg = zyJxdgService.getById(zyJxdg.getYwId()); + return Result.OK(zyJxdg); + } + } + + @ApiOperation(value="管理员word转pdf", notes="管理员word转pdf") + @PostMapping(value = "/sysWordToPdf") + public void sysWordToPdf(@RequestBody ZyJxdg zyJxdg) { + if(StringUtils.isNotEmpty(zyJxdg.getJxrlFilePath())){ + String nameLast = zyJxdg.getJxrlFilePath().substring(zyJxdg.getJxrlFilePath().lastIndexOf(".")+1); + if(StringUtils.equals("pdf",nameLast)){ + zyJxdg.setJxrlPdfPath(zyJxdg.getJxrlFilePath()); + }else{ + if(StringUtils.equals("local",uploadType)) { + FileUtil.mkdir(global.getContractDickPath()); + String dd = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss"); + String docPath = upLoadPath + File.separator + zyJxdg.getJxrlFilePath(); + String namePath = dd + ".pdf"; + String pdfPath = global.getContractDickPath() + namePath; + PDFUtil.office2PDF(docPath, pdfPath); + zyJxdg.setJxrlPdfPath("contract/" + namePath); + }else if(StringUtils.equals("sftp",uploadType)){ + ZykInfo zykInfo = new ZykInfo(); + zykInfo.setBizId(zyJxdg.getId()); + zykInfo.setBizTable("zy_jxdg"); + zykInfo.setWjlx(WjlxEnum.JXRL.getType()); + zykInfo.setRwbh(zyJxdg.getRwbh()); + zykInfo.setFileName(zyJxdg.getJxrlFilePath()); + Map map = zykService.saveToZykJxdg(zykInfo); + String fileName = map.get("data"); + String pdfName = map.get("pdfData"); + zyJxdg.setJxrlFilePath(fileName); + zyJxdg.setJxrlPdfPath(pdfName); + zykService.disConnect(); + } + } + }else{ + zyJxdg.setJxrlFilePath(null); + zyJxdg.setJxrlPdfPath(null); + } + if(StringUtils.isNotEmpty(zyJxdg.getFilePath())){ + String nameLast = zyJxdg.getFilePath().substring(zyJxdg.getFilePath().lastIndexOf(".")+1); + if(StringUtils.equals("pdf",nameLast)){ + zyJxdg.setPdfPath(zyJxdg.getFilePath()); + }else{ + + if(StringUtils.equals("local",global.uploadType)) { + FileUtil.mkdir(global.getContractDickPath()); + String dd = DateUtils.formatDate(new Date(), "yyyyMMddHHmmss"); + String docPath = upLoadPath + File.separator + zyJxdg.getFilePath(); + String namePath = dd + ".pdf"; + String pdfPath = global.getContractDickPath() + namePath; + PDFUtil.office2PDF(docPath, pdfPath); + zyJxdg.setPdfPath("contract/" + namePath); + }else if(StringUtils.equals("sftp",global.uploadType)){ + ZykInfo zykInfo = new ZykInfo(); + zykInfo.setBizId(zyJxdg.getId()); + zykInfo.setBizTable("zy_jxdg"); + zykInfo.setWjlx(WjlxEnum.JXDG.getType()); + zykInfo.setRwbh(zyJxdg.getRwbh()); + zykInfo.setFileName(zyJxdg.getFilePath()); + Map map = zykService.saveToZykJxdg(zykInfo); + String fileName = map.get("data"); + String pdfName = map.get("pdfData"); + zyJxdg.setFilePath(fileName); + zyJxdg.setPdfPath(pdfName); + zykService.disConnect(); + } + } + }else{ + zyJxdg.setFilePath(null); + zyJxdg.setPdfPath(null); + } + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("file_path",zyJxdg.getFilePath()); + updateWrapper.set("pdf_path",zyJxdg.getPdfPath()); + updateWrapper.set("jxrl_file_path",zyJxdg.getJxrlFilePath()); + updateWrapper.set("jxrl_pdf_path",zyJxdg.getJxrlPdfPath()); + updateWrapper.eq("id",zyJxdg.getId()); + zyJxdgService.update(updateWrapper); + } + + + + @RequestMapping(value = "/exportSysXls") + public ModelAndView exportSysXls(HttpServletRequest request, ZyJxdgSys zyJxdg) { + String title = "教学内容"; + // Step.1 组装查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(StringUtils.isEmpty(zyJxdg.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyJxdg.getXqxn()); + } + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getKkdw()),"kkdw",zyJxdg.getKkdw()); + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getKcmc()),"kcmc",zyJxdg.getKcmc()); + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getKcbh()),"kcbh",zyJxdg.getKcbh()); + queryWrapper.like(StringUtils.isNotEmpty(zyJxdg.getSkjs()),"skjs",zyJxdg.getSkjs()); + + // Step.2 获取导出数据 + List exportList = service.exportSysXls(queryWrapper); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, ZyJxdgSys.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } + + } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/entity/ZyJxdg.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/entity/ZyJxdg.java index 9d5a9ad8..595754f3 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/entity/ZyJxdg.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/entity/ZyJxdg.java @@ -87,4 +87,6 @@ public class ZyJxdg implements Serializable { private java.lang.String jxrlPdfPath; @TableField(exist = false) private String teano; + @TableField(exist = false) + private String ywId; } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/ZyJxdgMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/ZyJxdgMapper.java index 48df6ccb..aa6d263e 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/ZyJxdgMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/ZyJxdgMapper.java @@ -2,9 +2,14 @@ package org.jeecg.modules.kc.zyJxdg.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdg; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdgSys; /** * @Description: 教学大纲 @@ -14,4 +19,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ZyJxdgMapper extends BaseMapper { + IPage sysList(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List exportSysXls(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/xml/ZyJxdgMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/xml/ZyJxdgMapper.xml index 2b182a6e..3f7a0fb5 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/xml/ZyJxdgMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/mapper/xml/ZyJxdgMapper.xml @@ -5,4 +5,37 @@ + + + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/IZyJxdgService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/IZyJxdgService.java index 3c0c1145..3a333e20 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/IZyJxdgService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/IZyJxdgService.java @@ -1,7 +1,13 @@ package org.jeecg.modules.kc.zyJxdg.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdg; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdgSys; + +import java.util.List; /** * @Description: 教学大纲 @@ -12,4 +18,8 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface IZyJxdgService extends IService { void editJxdgyy(ZyJxdg zyJxdg); + + IPage sysList(Page page, QueryWrapper queryWrapper); + + List exportSysXls(QueryWrapper queryWrapper); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/impl/ZyJxdgServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/impl/ZyJxdgServiceImpl.java index cbe6a581..3dff1630 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/impl/ZyJxdgServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyJxdg/service/impl/ZyJxdgServiceImpl.java @@ -1,16 +1,21 @@ package org.jeecg.modules.kc.zyJxdg.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdg; +import org.jeecg.modules.kc.zyJxdg.entity.ZyJxdgSys; import org.jeecg.modules.kc.zyJxdg.mapper.ZyJxdgMapper; import org.jeecg.modules.kc.zyJxdg.service.IZyJxdgService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; + /** * @Description: 教学大纲 * @Author: jeecg-boot @@ -39,4 +44,14 @@ public class ZyJxdgServiceImpl extends ServiceImpl impleme baseMapper.updateById(zyJxdgNew); } } + + @Override + public IPage sysList(Page page, QueryWrapper queryWrapper) { + return baseMapper.sysList(page, queryWrapper); + } + + @Override + public List exportSysXls(QueryWrapper queryWrapper) { + return baseMapper.exportSysXls(queryWrapper); + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/controller/ZyTlqController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/controller/ZyTlqController.java index f228af11..7eda7c37 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/controller/ZyTlqController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/controller/ZyTlqController.java @@ -16,12 +16,18 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; +import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; import org.jeecg.modules.kc.grab.imports.entity.Xxhbbks; import org.jeecg.modules.kc.grab.imports.service.IXxhbbksService; +import org.jeecg.modules.kc.kcSysConfig.entity.KcSysConfig; +import org.jeecg.modules.kc.kcSysConfig.service.IKcSysConfigService; +import org.jeecg.modules.kc.wjxDjxx.entity.StudentCyglSys; import org.jeecg.modules.kc.wjxWjxx.entity.WjxWjxx; import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx; import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService; import org.jeecg.modules.kc.zyTlq.entity.ZyTlq; +import org.jeecg.modules.kc.zyTlq.entity.ZyTlqSys; import org.jeecg.modules.kc.zyTlq.service.IZyTlqService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -29,6 +35,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.system.service.impl.SysBaseApiImpl; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -65,6 +72,13 @@ public class ZyTlqController extends JeecgController { @Autowired private IZyDbtxService zyDbtxService; + + @Autowired + private SysBaseApiImpl sysBaseApi; + @Autowired + private IKcExportConfigTpkwcqkjzglxService kcExportConfigTpkwcqkjzglxService; + @Autowired + private IKcSysConfigService kcSysConfigService; /** * 分页列表查询 @@ -220,4 +234,49 @@ public class ZyTlqController extends JeecgController { return Result.OK("编辑成功!"); } + + + + @ApiOperation(value="教学大纲-分页列表查询", notes="教学大纲-分页列表查询") + @GetMapping(value = "/sysList") + public Result> sysList(ZyTlqSys zyTlqSys, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + //-------------获取当前登陆人是否是管理员角色,如果不是都按照教务秘书处理--------------------------- + List roleList = sysBaseApi.getRolesByUsername(sysUser.getUsername()); + String adminRole = "1";//0 admin 1教务秘书 + for(String role :roleList){ + if(org.apache.commons.lang.StringUtils.equals("admin",role)){ + adminRole = "0"; + break; + } + } + QueryWrapper queryWrapper = new QueryWrapper(); + if(org.apache.commons.lang.StringUtils.equals("1",adminRole)){ + QueryWrapper queryWrapperCon = new QueryWrapper(); + queryWrapperCon.eq("gh",sysUser.getUsername()); + queryWrapperCon.orderByDesc("create_time"); + queryWrapperCon.last("limit 1"); + KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx = kcExportConfigTpkwcqkjzglxService.getOne(queryWrapperCon); + queryWrapper.eq("kkdw",kcExportConfigTpkwcqkjzglx.getDwmc()); + } + + if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(zyTlqSys.getXqxn())){ + KcSysConfig kcSysConfig = kcSysConfigService.getById("1"); + queryWrapper.eq("xqxn",kcSysConfig.getFlag1()); + }else{ + queryWrapper.eq("xqxn",zyTlqSys.getXqxn()); + } + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyTlqSys.getKkdw()),"kkdw",zyTlqSys.getKkdw()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyTlqSys.getKcmc()),"kcmc",zyTlqSys.getKcmc()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyTlqSys.getKcbh()),"kcbh",zyTlqSys.getKcbh()); + queryWrapper.like(com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotEmpty(zyTlqSys.getSkjs()),"skjs",zyTlqSys.getSkjs()); + + + Page page = new Page(pageNo, pageSize); + IPage pageList = service.sysList(page, queryWrapper,zyTlqSys); + return Result.OK(pageList); + } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/ZyTlqMapper.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/ZyTlqMapper.java index 65303e24..313fb334 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/ZyTlqMapper.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/ZyTlqMapper.java @@ -2,9 +2,14 @@ package org.jeecg.modules.kc.zyTlq.mapper; import java.util.List; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.kc.zyTlq.entity.ZyTlq; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.kc.zyTlq.entity.ZyTlqSys; /** * @Description: 讨论区 @@ -14,4 +19,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface ZyTlqMapper extends BaseMapper { + IPage sysList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, ZyTlqSys zyTlqSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/xml/ZyTlqMapper.xml b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/xml/ZyTlqMapper.xml index 0728cc3e..64485218 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/xml/ZyTlqMapper.xml +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/mapper/xml/ZyTlqMapper.xml @@ -2,4 +2,27 @@ + \ No newline at end of file diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/IZyTlqService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/IZyTlqService.java index 15eb2e9f..f08dbbd1 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/IZyTlqService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/IZyTlqService.java @@ -1,7 +1,11 @@ package org.jeecg.modules.kc.zyTlq.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.kc.zyTlq.entity.ZyTlq; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.kc.zyTlq.entity.ZyTlqSys; /** * @Description: 讨论区 @@ -11,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IZyTlqService extends IService { + IPage sysList(Page page, QueryWrapper queryWrapper, ZyTlqSys zyTlqSys); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/impl/ZyTlqServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/impl/ZyTlqServiceImpl.java index 9a63551e..f18d1475 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/impl/ZyTlqServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/zyTlq/service/impl/ZyTlqServiceImpl.java @@ -1,6 +1,10 @@ package org.jeecg.modules.kc.zyTlq.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.kc.zyTlq.entity.ZyTlq; +import org.jeecg.modules.kc.zyTlq.entity.ZyTlqSys; import org.jeecg.modules.kc.zyTlq.mapper.ZyTlqMapper; import org.jeecg.modules.kc.zyTlq.service.IZyTlqService; import org.springframework.stereotype.Service; @@ -16,4 +20,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class ZyTlqServiceImpl extends ServiceImpl implements IZyTlqService { + @Override + public IPage sysList(Page page, QueryWrapper queryWrapper, ZyTlqSys zyTlqSys) { + return baseMapper.sysList(page, queryWrapper, zyTlqSys); + } } diff --git a/jeecg-module-main/src/main/resources/officetemplates/exp1/teacher-tjfx.docx b/jeecg-module-main/src/main/resources/officetemplates/exp1/teacher-tjfx.docx new file mode 100644 index 0000000000000000000000000000000000000000..30bd92046dfdcc0cc698b4c11712f96ca71c015a GIT binary patch literal 262256 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Ǔ`aJ)%BXs&nOX(HvL6WgAQDsapW(zDc{+^%OE) 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 literal 0 HcmV?d00001 diff --git a/pom.xml b/pom.xml index 2352fcbb..734374cd 100644 --- a/pom.xml +++ b/pom.xml @@ -158,7 +158,17 @@ + + com.github.abel533 + ECharts + 3.0.0.6 + + + org.jfree + jfreechart + 1.5.3 +