From 66e16dceba4fc14dc25f2900975db88a0f5884a4 Mon Sep 17 00:00:00 2001 From: "dengchao@xgtl" <2325690622@qq.com> Date: Fri, 17 Apr 2020 11:22:41 +0800 Subject: [PATCH] Fix PublishedReportRepository related class --- .../apps/report/ReportController.java | 427 +++++++++--------- .../apps/report/ReportDesignController.java | 16 +- .../apps/report/ReportViewController.java | 97 ++-- .../repository/PublishedReportRepository.java | 78 ++-- 4 files changed, 303 insertions(+), 315 deletions(-) diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportController.java index 0aeb84f7..d9a2b3a5 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportController.java @@ -27,16 +27,19 @@ import com.chatopera.cc.util.dsdata.DSData; import com.chatopera.cc.util.dsdata.DSDataEvent; import com.chatopera.cc.util.dsdata.ExcelImportProecess; import com.chatopera.cc.util.dsdata.export.ExcelExporterProcess; +import lombok.RequiredArgsConstructor; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.PageRequest; +import org.springframework.http.HttpStatus; +import org.springframework.lang.NonNull; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.server.ResponseStatusException; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @@ -48,85 +51,78 @@ import java.text.SimpleDateFormat; import java.util.*; @Controller +@RequiredArgsConstructor @RequestMapping("/apps/report") public class ReportController extends Handler { + @NonNull + private final DataDicRepository dataDicRes; + @NonNull + private final ReportRepository reportRes; + @NonNull + private final PublishedReportRepository publishedReportRes; + @NonNull + private final MetadataRepository metadataRes; + @NonNull + private final ReportCubeService reportCubeService; @Value("${web.upload-path}") private String path; - @Value("${uk.im.server.port}") - private Integer port; - - @Autowired - private DataDicRepository dataDicRes; - - @Autowired - private ReportRepository reportRes; - - @Autowired - private PublishedReportRepository publishedReportRes; - - @Autowired - private MetadataRepository metadataRes ; - - @Autowired - private ReportCubeService reportCubeService; - @RequestMapping("/index") - @Menu(type = "setting" , subtype = "report" , admin= true) - public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String dicid) { - if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { + @Menu(type = "setting", subtype = "report", admin = true) + public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String dicid) { + if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); map.put("reportList", reportRes.findByOrgiAndDicid(super.getOrgi(request), dicid, PageRequest.of(super.getP(request), super.getPs(request)))); - }else { + } else { map.put("reportList", reportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request)))); } - map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; - return request(super.createAppsTempletResponse("/apps/business/report/index")); + map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); + return request(super.createAppsTempletResponse("/apps/business/report/index")); } @RequestMapping("/add") - @Menu(type = "setting" , subtype = "reportadd" , admin= true) - public ModelAndView quickreplyadd(ModelMap map , HttpServletRequest request , @Valid String dicid) { - if(!StringUtils.isBlank(dicid)){ - map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))) ; - } - map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; + @Menu(type = "setting", subtype = "reportadd", admin = true) + public ModelAndView quickreplyadd(ModelMap map, HttpServletRequest request, @Valid String dicid) { + if (!StringUtils.isBlank(dicid)) { + map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); + } + map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); return request(super.createRequestPageTempletResponse("/apps/business/report/add")); } @RequestMapping("/save") - @Menu(type = "setting" , subtype = "report" , admin= true) - public ModelAndView quickreplysave(ModelMap map , HttpServletRequest request , @Valid Report report) { - ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+report.getDicid())); - if(!StringUtils.isBlank(report.getName())){ - int count = reportRes.countByOrgiAndName(super.getOrgi(request), report.getName()) ; - if(count == 0) { - report.setOrgi(super.getOrgi(request)); - report.setCreater(super.getUser(request).getId()); - report.setReporttype(MainContext.ReportType.REPORT.toString()); - report.setCode(MainUtils.genID()); - reportRes.save(report) ; - }else { - view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=rt_name_exist&dicid="+report.getDicid())); - } - } - return view ; + @Menu(type = "setting", subtype = "report", admin = true) + public ModelAndView quickreplysave(HttpServletRequest request, @Valid Report report) { + ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + report.getDicid())); + if (!StringUtils.isBlank(report.getName())) { + int count = reportRes.countByOrgiAndName(super.getOrgi(request), report.getName()); + if (count == 0) { + report.setOrgi(super.getOrgi(request)); + report.setCreater(super.getUser(request).getId()); + report.setReporttype(MainContext.ReportType.REPORT.toString()); + report.setCode(MainUtils.genID()); + reportRes.save(report); + } else { + view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=rt_name_exist&dicid=" + report.getDicid())); + } + } + return view; } @RequestMapping("/delete") - @Menu(type = "setting" , subtype = "report" , admin= true) - public ModelAndView quickreplydelete(ModelMap map , HttpServletRequest request , @Valid String id) { - Report report = reportRes.findOne(id) ; - if(report!=null){ - reportRes.delete(report); - } - return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+report.getDicid())); + @Menu(type = "setting", subtype = "report", admin = true) + public ModelAndView quickreplydelete(@Valid String id) { + Report report = reportRes.findById(id) + .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Report %s not found", id))); + reportRes.delete(report); + return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + report.getDicid())); } + @RequestMapping("/edit") - @Menu(type = "setting" , subtype = "report" , admin= true) - public ModelAndView quickreplyedit(ModelMap map , HttpServletRequest request , @Valid String id) { - Report report = reportRes.findOne(id); + @Menu(type = "setting", subtype = "report", admin = true) + public ModelAndView quickreplyedit(ModelMap map, HttpServletRequest request, @Valid String id) { + Report report = reportRes.findById(id).orElse(null); map.put("report", report); if (report != null) { map.put("dataDic", dataDicRes.findByIdAndOrgi(report.getDicid(), super.getOrgi(request))); @@ -136,83 +132,82 @@ public class ReportController extends Handler { } @RequestMapping("/update") - @Menu(type = "setting" , subtype = "report" , admin= true) - public ModelAndView quickreplyupdate(ModelMap map , HttpServletRequest request , @Valid Report report) { - if(!StringUtils.isBlank(report.getId())){ - Report temp = reportRes.findOne(report.getId()) ; - if(temp!=null) { - temp.setName(report.getName()); - temp.setCode(report.getCode()); - temp.setDicid(report.getDicid()); - temp.setUpdatetime(new Date()); - temp.setDescription(report.getDescription()); - reportRes.save(temp) ; - } - } - return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+report.getDicid())); + @Menu(type = "setting", subtype = "report", admin = true) + public ModelAndView quickreplyupdate(@Valid Report report) { + if (!StringUtils.isBlank(report.getId())) { + reportRes.findById(report.getId()).ifPresent(temp -> { + temp.setName(report.getName()); + temp.setCode(report.getCode()); + temp.setDicid(report.getDicid()); + temp.setUpdatetime(new Date()); + temp.setDescription(report.getDescription()); + reportRes.save(temp); + }); + } + return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + report.getDicid())); } @RequestMapping({"/addtype"}) - @Menu(type="apps", subtype="kbs") - public ModelAndView addtype(ModelMap map , HttpServletRequest request , @Valid String dicid){ - map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; - if(!StringUtils.isBlank(dicid)){ - map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))) ; - } - return request(super.createRequestPageTempletResponse("/apps/business/report/addtype")); - } + @Menu(type = "apps", subtype = "kbs") + public ModelAndView addtype(ModelMap map, HttpServletRequest request, @Valid String dicid) { + map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); + if (!StringUtils.isBlank(dicid)) { + map.addAttribute("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); + } + return request(super.createRequestPageTempletResponse("/apps/business/report/addtype")); + } @RequestMapping("/type/save") - @Menu(type = "apps" , subtype = "report") - public ModelAndView typesave(HttpServletRequest request ,@Valid DataDic dataDic) { - List dicList = dataDicRes.findByOrgiAndName(super.getOrgi(request),dataDic.getName()) ; - if(dicList!=null && dicList.size() > 0){ - return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getParentid()+"&msg=qr_type_exist")); - }else { - dataDic.setOrgi(super.getOrgi(request)); - dataDic.setCreater(super.getUser(request).getId()); - dataDic.setCreatetime(new Date()); - dataDic.setTabtype(MainContext.QuickType.PUB.toString()); - dataDicRes.save(dataDic) ; - } - return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getId())); + @Menu(type = "apps", subtype = "report") + public ModelAndView typesave(HttpServletRequest request, @Valid DataDic dataDic) { + List dicList = dataDicRes.findByOrgiAndName(super.getOrgi(request), dataDic.getName()); + if (dicList != null && dicList.size() > 0) { + return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + dataDic.getParentid() + "&msg=qr_type_exist")); + } else { + dataDic.setOrgi(super.getOrgi(request)); + dataDic.setCreater(super.getUser(request).getId()); + dataDic.setCreatetime(new Date()); + dataDic.setTabtype(MainContext.QuickType.PUB.toString()); + dataDicRes.save(dataDic); + } + return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + dataDic.getId())); } @RequestMapping({"/edittype"}) - @Menu(type="apps", subtype="kbs") - public ModelAndView edittype(ModelMap map , HttpServletRequest request , String id){ - DataDic dataDic = dataDicRes.findByIdAndOrgi(id, super.getOrgi(request)) ; - map.addAttribute("dataDic", dataDic) ; - if(dataDic!=null) { - map.addAttribute("parentDataDic", dataDicRes.findByIdAndOrgi(dataDic.getParentid(), super.getOrgi(request))) ; - } - map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; - return request(super.createRequestPageTempletResponse("/apps/business/report/edittype")); - } + @Menu(type = "apps", subtype = "kbs") + public ModelAndView edittype(ModelMap map, HttpServletRequest request, String id) { + DataDic dataDic = dataDicRes.findByIdAndOrgi(id, super.getOrgi(request)); + map.addAttribute("dataDic", dataDic); + if (dataDic != null) { + map.addAttribute("parentDataDic", dataDicRes.findByIdAndOrgi(dataDic.getParentid(), super.getOrgi(request))); + } + map.addAttribute("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); + return request(super.createRequestPageTempletResponse("/apps/business/report/edittype")); + } @RequestMapping("/type/update") - @Menu(type = "apps" , subtype = "report") - public ModelAndView typeupdate(HttpServletRequest request ,@Valid DataDic dataDic) { - ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid="+dataDic.getId())); - DataDic tempDataDic= dataDicRes.findByIdAndOrgi(dataDic.getId(), super.getOrgi(request)) ; - if(tempDataDic !=null){ - //判断名称是否重复 - List dicList = dataDicRes.findByOrgiAndNameAndIdNot(super.getOrgi(request) , dataDic.getName() , dataDic.getId()) ; - if(dicList!=null && dicList.size() > 0) { - view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=qr_type_exist&dicid="+dataDic.getId())); - }else { - tempDataDic.setName(dataDic.getName()); - tempDataDic.setDescription(dataDic.getDescription()); - tempDataDic.setParentid(dataDic.getParentid()); - dataDicRes.save(tempDataDic) ; - } - } - return view ; + @Menu(type = "apps", subtype = "report") + public ModelAndView typeupdate(HttpServletRequest request, @Valid DataDic dataDic) { + ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + dataDic.getId())); + DataDic tempDataDic = dataDicRes.findByIdAndOrgi(dataDic.getId(), super.getOrgi(request)); + if (tempDataDic != null) { + //判断名称是否重复 + List dicList = dataDicRes.findByOrgiAndNameAndIdNot(super.getOrgi(request), dataDic.getName(), dataDic.getId()); + if (dicList != null && dicList.size() > 0) { + view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=qr_type_exist&dicid=" + dataDic.getId())); + } else { + tempDataDic.setName(dataDic.getName()); + tempDataDic.setDescription(dataDic.getDescription()); + tempDataDic.setParentid(dataDic.getParentid()); + dataDicRes.save(tempDataDic); + } + } + return view; } @RequestMapping({"/deletetype"}) - @Menu(type="apps", subtype="kbs") - public ModelAndView deletetype(ModelMap map , HttpServletRequest request , @Valid String id) { + @Menu(type = "apps", subtype = "kbs") + public ModelAndView deletetype(HttpServletRequest request, @Valid String id) { ModelAndView view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?dicid=" + id)); if (!StringUtils.isBlank(id)) { DataDic tempDataDic = dataDicRes.findByIdAndOrgi(id, super.getOrgi(request)); @@ -224,64 +219,66 @@ public class ReportController extends Handler { view = request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html?msg=report_exist&dicid=" + id)); } } - return view ; - } + return view; + } @RequestMapping("/imp") - @Menu(type = "setting" , subtype = "reportimp") - public ModelAndView imp(ModelMap map , HttpServletRequest request , @Valid String type) { - map.addAttribute("type", type) ; + @Menu(type = "setting", subtype = "reportimp") + public ModelAndView imp(ModelMap map, @Valid String type) { + map.addAttribute("type", type); return request(super.createRequestPageTempletResponse("/apps/business/report/imp")); } @RequestMapping("/impsave") - @Menu(type = "setting" , subtype = "reportimpsave") - public ModelAndView impsave(ModelMap map , HttpServletRequest request , @RequestParam(value = "cusfile", required = false) MultipartFile cusfile , @Valid String type) throws IOException { - DSDataEvent event = new DSDataEvent(); - String fileName = "quickreply/"+ MainUtils.getUUID()+cusfile.getOriginalFilename().substring(cusfile.getOriginalFilename().lastIndexOf(".")) ; - File excelFile = new File(path , fileName) ; - if(!excelFile.getParentFile().exists()){ - excelFile.getParentFile().mkdirs() ; - } - MetadataTable table = metadataRes.findByTablename("uk_report") ; - if(table!=null){ - FileUtils.writeByteArrayToFile(new File(path , fileName), cusfile.getBytes()); - event.setDSData(new DSData(table,excelFile , cusfile.getContentType(), super.getUser(request))); - event.getDSData().setClazz(Report.class); - event.setOrgi(super.getOrgi(request)); - if(!StringUtils.isBlank(type)){ - event.getValues().put("cate", type) ; - }else{ - event.getValues().put("cate", Constants.DEFAULT_TYPE) ; - } - event.getValues().put("type", MainContext.QuickType.PUB.toString()) ; - event.getValues().put("creater", super.getUser(request).getId()) ; + @Menu(type = "setting", subtype = "reportimpsave") + public ModelAndView impsave(HttpServletRequest request, @RequestParam(value = "cusfile", required = false) MultipartFile cusfile, @Valid String type) throws IOException { + DSDataEvent event = new DSDataEvent(); + String originalFilename = Objects.requireNonNull(cusfile.getOriginalFilename()); + String fileName = "quickreply/" + MainUtils.getUUID() + originalFilename.substring(originalFilename.lastIndexOf(".")); + File excelFile = new File(path, fileName); + if (!excelFile.getParentFile().exists()) { + //noinspection ResultOfMethodCallIgnored + excelFile.getParentFile().mkdirs(); + } + MetadataTable table = metadataRes.findByTablename("uk_report"); + if (table != null) { + FileUtils.writeByteArrayToFile(new File(path, fileName), cusfile.getBytes()); + event.setDSData(new DSData(table, excelFile, cusfile.getContentType(), super.getUser(request))); + event.getDSData().setClazz(Report.class); + event.setOrgi(super.getOrgi(request)); + if (!StringUtils.isBlank(type)) { + event.getValues().put("cate", type); + } else { + event.getValues().put("cate", Constants.DEFAULT_TYPE); + } + event.getValues().put("type", MainContext.QuickType.PUB.toString()); + event.getValues().put("creater", super.getUser(request).getId()); // exchange.getDSData().setProcess(new QuickReplyProcess(reportRes)); // reporterRes.save(exchange.getDSData().getReport()) ; - new ExcelImportProecess(event).process() ; //启动导入任务 - } + new ExcelImportProecess(event).process(); //启动导入任务 + } - return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html"+(!StringUtils.isBlank(type)? "?dicid="+type:""))); + return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html" + (!StringUtils.isBlank(type) ? "?dicid=" + type : ""))); } @RequestMapping("/batdelete") - @Menu(type = "setting" , subtype = "reportbatdelete") - public ModelAndView batdelete(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String[] ids ,@Valid String type) throws IOException { - if(ids!=null && ids.length > 0){ - Iterable topicList = reportRes.findAll(Arrays.asList(ids)) ; - reportRes.delete(topicList); - } + @Menu(type = "setting", subtype = "reportbatdelete") + public ModelAndView batdelete(@Valid String[] ids, @Valid String type) { + if (ids != null && ids.length > 0) { + Iterable topicList = reportRes.findAllById(Arrays.asList(ids)); + reportRes.deleteAll(topicList); + } - return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html"+(!StringUtils.isBlank(type) ? "?dicid="+type:""))); + return request(super.createRequestPageTempletResponse("redirect:/apps/report/index.html" + (!StringUtils.isBlank(type) ? "?dicid=" + type : ""))); } @RequestMapping("/expids") - @Menu(type = "setting" , subtype = "reportexpids") - public void expids(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String[] ids) throws IOException { - if(ids!=null && ids.length > 0) { - Iterable topicList = reportRes.findAll(Arrays.asList(ids)); + @Menu(type = "setting", subtype = "reportexpids") + public void expids(HttpServletResponse response, @Valid String[] ids) throws IOException { + if (ids != null && ids.length > 0) { + Iterable topicList = reportRes.findAllById(Arrays.asList(ids)); MetadataTable table = metadataRes.findByTablename("uk_report"); - List> values = new ArrayList>(); + List> values = new ArrayList<>(); for (Report topic : topicList) { values.add(MainUtils.transBean2Map(topic)); } @@ -293,16 +290,15 @@ public class ReportController extends Handler { } } - return ; } @RequestMapping("/expall") - @Menu(type = "setting" , subtype = "reportexpall") - public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response,@Valid String type) throws IOException { + @Menu(type = "setting", subtype = "reportexpall") + public void expall(HttpServletRequest request, HttpServletResponse response, @Valid String type) throws IOException { List reportList = reportRes.findByOrgiAndDicid(super.getOrgi(request), type); MetadataTable table = metadataRes.findByTablename("uk_report"); - List> values = new ArrayList>(); + List> values = new ArrayList<>(); for (Report report : reportList) { values.add(MainUtils.transBean2Map(report)); } @@ -313,77 +309,74 @@ public class ReportController extends Handler { ExcelExporterProcess excelProcess = new ExcelExporterProcess(values, table, response.getOutputStream()); excelProcess.process(); } - return; } @RequestMapping("/pbreportindex") - @Menu(type = "setting" , subtype = "pbreport" , admin= true) - public ModelAndView pbreportindex(ModelMap map , HttpServletRequest request , @Valid String dicid) { - if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { + @Menu(type = "setting", subtype = "pbreport", admin = true) + public ModelAndView pbreportindex(ModelMap map, HttpServletRequest request, @Valid String dicid) { + if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); map.put("reportList", publishedReportRes.findByOrgiAndDicid(super.getOrgi(request), dicid, PageRequest.of(super.getP(request), super.getPs(request)))); - }else { + } else { map.put("reportList", publishedReportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request)))); } - map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; - return request(super.createAppsTempletResponse("/apps/business/report/pbreportindex")); + map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); + return request(super.createAppsTempletResponse("/apps/business/report/pbreportindex")); } + @RequestMapping("/pbreportlist") - @Menu(type = "setting" , subtype = "pbreport" , admin= true) - public ModelAndView pbreportlist(ModelMap map , HttpServletRequest request , @Valid String dicid) { - if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { + @Menu(type = "setting", subtype = "pbreport", admin = true) + public ModelAndView pbreportlist(ModelMap map, HttpServletRequest request, @Valid String dicid) { + if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); map.put("reportList", publishedReportRes.findByOrgiAndDicid(super.getOrgi(request), dicid, PageRequest.of(super.getP(request), super.getPs(request)))); - }else { + } else { map.put("reportList", publishedReportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request)))); } - map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; - return request(super.createRequestPageTempletResponse("/apps/business/report/pbreportlist")); + map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); + return request(super.createRequestPageTempletResponse("/apps/business/report/pbreportlist")); } @RequestMapping("/pbdelete") - @Menu(type = "setting" , subtype = "pbreport" , admin= true) - public ModelAndView pbdelete(ModelMap map , HttpServletRequest request , @Valid String id) { - PublishedReport report = publishedReportRes.findOne(id) ; - if(report!=null){ - publishedReportRes.delete(report); - } - return request(super.createRequestPageTempletResponse("redirect:/apps/report/pbreportindex.html?dicid="+report.getDicid())); + @Menu(type = "setting", subtype = "pbreport", admin = true) + public ModelAndView pbdelete(@Valid String id) { + PublishedReport report = publishedReportRes.findById(id).orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("Report %s not found", id))); + publishedReportRes.delete(report); + return request(super.createRequestPageTempletResponse("redirect:/apps/report/pbreportindex.html?dicid=" + report.getDicid())); } /** * 报表 - * - * @param map - * @param request - * @param id - * @return - * @throws Exception */ @RequestMapping("/view") - @Menu(type = "report", subtype = "report") - public ModelAndView view(ModelMap map, HttpServletRequest request, @Valid String id) throws Exception { - if (!StringUtils.isBlank(id)) { - PublishedReport publishedReport = publishedReportRes.findById(id); - if(publishedReport!=null) { - map.addAttribute("publishedReport", publishedReport); - map.addAttribute("report", publishedReport.getReport()); - map.addAttribute("reportModels", publishedReport.getReport().getReportModels()); - List listFilters = publishedReport.getReport().getReportFilters(); - if(!listFilters.isEmpty()) { - Map filterMap = new HashMap(); - for(ReportFilter rf:listFilters) { - filterMap.put(rf.getId(), rf); - } - for(ReportFilter rf:listFilters) { - if(!StringUtils.isBlank(rf.getCascadeid())) { - rf.setChildFilter(filterMap.get(rf.getCascadeid())); - } - } - } - map.addAttribute("reportFilters", reportCubeService.fillReportFilterData(listFilters, request)); - } - } - return request(super.createRequestPageTempletResponse("/apps/business/report/view")); - } + @Menu(type = "report", subtype = "report") + public ModelAndView view(ModelMap map, HttpServletRequest request, @Valid String id) { + if (!StringUtils.isBlank(id)) { + publishedReportRes.findById(id).ifPresent(publishedReport -> { + + map.addAttribute("publishedReport", publishedReport); + map.addAttribute("report", publishedReport.getReport()); + map.addAttribute("reportModels", publishedReport.getReport().getReportModels()); + List listFilters = publishedReport.getReport().getReportFilters(); + if (!listFilters.isEmpty()) { + Map filterMap = new HashMap<>(); + for (ReportFilter rf : listFilters) { + filterMap.put(rf.getId(), rf); + } + for (ReportFilter rf : listFilters) { + if (!StringUtils.isBlank(rf.getCascadeid())) { + rf.setChildFilter(filterMap.get(rf.getCascadeid())); + } + } + } + try { + List list = reportCubeService.fillReportFilterData(listFilters, request); + map.addAttribute("reportFilters", list); + } catch (Exception e) { + e.printStackTrace(); + } + }); + } + return request(super.createRequestPageTempletResponse("/apps/business/report/view")); + } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportDesignController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportDesignController.java index 24b23498..abf8c432 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportDesignController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportDesignController.java @@ -252,7 +252,7 @@ public class ReportDesignController extends Handler { */ @RequestMapping("/modeldesign") @Menu(type = "report", subtype = "reportdesign") - public ModelAndView modeldesign(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String tabid, HashMap semap) { + public ModelAndView modeldesign(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String tabid) { List tpDicList = Dict.getInstance().getDic(Constants.CSKEFU_SYSTEM_DIC); for (SysDic sysDic : tpDicList) { if (sysDic.getCode().equals("report")) { @@ -587,7 +587,7 @@ public class ReportDesignController extends Handler { */ @RequestMapping("/getelement") @Menu(type = "report", subtype = "reportdesign") - public ModelAndView getelement(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String publishedid, HashMap semap) { + public ModelAndView getelement(ModelMap map, HttpServletRequest request, @Valid String id, @Valid String publishedid) { if (!StringUtils.isBlank(id)) { ReportModel model = this.getModel(id, super.getOrgi(request), publishedid); if (model != null) { @@ -618,8 +618,9 @@ public class ReportDesignController extends Handler { private ReportModel getModel(String id, String orgi, String publishedid) { if (!StringUtils.isBlank(publishedid)) { - PublishedReport publishedReport = publishedReportRes.findById(publishedid); - if (publishedReport != null) { + Optional optional = publishedReportRes.findById(publishedid); + if (optional.isPresent()) { + PublishedReport publishedReport = optional.get(); if (publishedReport.getReport() != null && !publishedReport.getReport().getReportModels().isEmpty()) { for (ReportModel rm : publishedReport.getReport().getReportModels()) { if (rm.getId().equals(id)) { @@ -997,7 +998,7 @@ public class ReportDesignController extends Handler { @RequestMapping("/changechartppy") @Menu(type = "report", subtype = "reportdesign") - public ModelAndView changechartppy(ModelMap map, HttpServletRequest request, @Valid ReportModel reportModel, @Valid ChartProperties chartProperties, HashMap semap) throws Exception { + public ModelAndView changechartppy(ModelMap map, HttpServletRequest request, @Valid ReportModel reportModel, @Valid ChartProperties chartProperties) throws Exception { ReportModel model = this.getModel(reportModel.getId(), super.getOrgi(request)); if (null != model) { model.setExchangerw(reportModel.isExchangerw()); @@ -1054,8 +1055,9 @@ public class ReportDesignController extends Handler { } } } else { - PublishedReport publishedReport = publishedReportRes.findById(publishedid); - if (publishedReport != null) { + Optional optional = publishedReportRes.findById(publishedid); + if (optional.isPresent()) { + PublishedReport publishedReport = optional.get(); map.addAttribute("publishedReport", publishedReport); ReportFilter filter = null; for (ReportFilter f : publishedReport.getReport().getReportFilters()) { diff --git a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportViewController.java b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportViewController.java index aab4b646..d75ebb3f 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportViewController.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/controller/apps/report/ReportViewController.java @@ -23,11 +23,11 @@ import com.chatopera.cc.persistence.repository.DataDicRepository; import com.chatopera.cc.persistence.repository.PublishedReportRepository; import com.chatopera.cc.persistence.repository.ReportCubeService; import com.chatopera.cc.util.Menu; +import lombok.RequiredArgsConstructor; import org.apache.commons.lang.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; +import org.springframework.lang.NonNull; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @@ -41,66 +41,59 @@ import java.util.Map; @Controller @RequestMapping("/apps/view") +@RequiredArgsConstructor public class ReportViewController extends Handler { - @Value("${web.upload-path}") - private String path; - - @Value("${uk.im.server.port}") - private Integer port; - - @Autowired - private DataDicRepository dataDicRes; - - @Autowired - private PublishedReportRepository publishedReportRes; - - @Autowired - private ReportCubeService reportCubeService; - + @NonNull + private final DataDicRepository dataDicRes; + @NonNull + private final PublishedReportRepository publishedReportRes; + @NonNull + private final ReportCubeService reportCubeService; @RequestMapping("/index") - @Menu(type = "setting" , subtype = "report" , admin= true) - public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String dicid , @Valid String id) throws Exception { - Page publishedReportList = null ; - if(!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { + @Menu(type = "setting", subtype = "report", admin = true) + public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String dicid, @Valid String id) throws Exception { + Page publishedReportList; + if (!StringUtils.isBlank(dicid) && !"0".equals(dicid)) { map.put("dataDic", dataDicRes.findByIdAndOrgi(dicid, super.getOrgi(request))); map.put("reportList", publishedReportList = publishedReportRes.findByOrgiAndDicid(super.getOrgi(request), dicid, PageRequest.of(super.getP(request), super.getPs(request)))); - }else { + } else { map.put("reportList", publishedReportList = publishedReportRes.findByOrgi(super.getOrgi(request), PageRequest.of(super.getP(request), super.getPs(request)))); } - if(publishedReportList!=null && publishedReportList.getContent().size() > 0) { - PublishedReport publishedReport = publishedReportList.getContent().get(0); - if(!StringUtils.isBlank(id)) { - for(PublishedReport report : publishedReportList) { - if(report.getId().equals(id)) { - publishedReport = report ; break ; - } - } - } - map.put("report", publishedReport) ; + if (publishedReportList != null && publishedReportList.getContent().size() > 0) { + PublishedReport publishedReport = publishedReportList.getContent().get(0); + if (!StringUtils.isBlank(id)) { + for (PublishedReport report : publishedReportList) { + if (report.getId().equals(id)) { + publishedReport = report; + break; + } + } + } + map.put("report", publishedReport); - if(publishedReport!=null) { - map.addAttribute("publishedReport", publishedReport); - map.addAttribute("report", publishedReport.getReport()); - map.addAttribute("reportModels", publishedReport.getReport().getReportModels()); - List listFilters = publishedReport.getReport().getReportFilters(); - if(!listFilters.isEmpty()) { - Map filterMap = new HashMap(); - for(ReportFilter rf:listFilters) { - filterMap.put(rf.getId(), rf); - } - for(ReportFilter rf:listFilters) { - if(!StringUtils.isBlank(rf.getCascadeid())) { - rf.setChildFilter(filterMap.get(rf.getCascadeid())); - } - } - } - map.addAttribute("reportFilters", reportCubeService.fillReportFilterData(listFilters, request)); - } + if (publishedReport != null) { + map.addAttribute("publishedReport", publishedReport); + map.addAttribute("report", publishedReport.getReport()); + map.addAttribute("reportModels", publishedReport.getReport().getReportModels()); + List listFilters = publishedReport.getReport().getReportFilters(); + if (!listFilters.isEmpty()) { + Map filterMap = new HashMap<>(); + for (ReportFilter rf : listFilters) { + filterMap.put(rf.getId(), rf); + } + for (ReportFilter rf : listFilters) { + if (!StringUtils.isBlank(rf.getCascadeid())) { + rf.setChildFilter(filterMap.get(rf.getCascadeid())); + } + } + } + map.addAttribute("reportFilters", reportCubeService.fillReportFilterData(listFilters, request)); + } } - map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))) ; - return request(super.createRequestPageTempletResponse("/apps/business/view/index")); + map.put("dataDicList", dataDicRes.findByOrgi(super.getOrgi(request))); + return request(super.createRequestPageTempletResponse("/apps/business/view/index")); } } diff --git a/contact-center/app/src/main/java/com/chatopera/cc/persistence/repository/PublishedReportRepository.java b/contact-center/app/src/main/java/com/chatopera/cc/persistence/repository/PublishedReportRepository.java index 71b84bb8..af0e93b8 100644 --- a/contact-center/app/src/main/java/com/chatopera/cc/persistence/repository/PublishedReportRepository.java +++ b/contact-center/app/src/main/java/com/chatopera/cc/persistence/repository/PublishedReportRepository.java @@ -1,39 +1,39 @@ -/* - * Copyright (C) 2017 优客服-多渠道客服系统 - * Modifications copyright (C) 2018-2019 Chatopera Inc, - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.chatopera.cc.persistence.repository; - -import com.chatopera.cc.model.PublishedReport; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; - -public interface PublishedReportRepository extends JpaRepository { - - List findByOrgiAndDataidOrderByDataversionDesc(String orgi, String dataid); - - Page findByOrgiAndDicid(String orgi, String dicid, Pageable pageRequest); - - Page findByOrgi(String orgi, Pageable pageRequest); - - PublishedReport findById(String id); - - List findByCode(String code); - - -} +/* + * Copyright (C) 2017 优客服-多渠道客服系统 + * Modifications copyright (C) 2018-2019 Chatopera Inc, + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.chatopera.cc.persistence.repository; + +import com.chatopera.cc.model.PublishedReport; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface PublishedReportRepository extends JpaRepository { + + List findByOrgiAndDataidOrderByDataversionDesc(String orgi, String dataid); + + Page findByOrgiAndDicid(String orgi, String dicid, Pageable pageRequest); + + Page findByOrgi(String orgi, Pageable pageRequest); + + // PublishedReport findById(String id); + + List findByCode(String code); + + +}